Páginas:
440
Edición:
1
Fecha de publicación:
20/09/2018
ISBN:
9788426726667
Formato:
17x24 cms

Android Things y visión artificial

26,80 25,46
26,80 25,46
Añadir a cesta
Recíbelo en 24/48h

En un futuro cercano, viviremos la revolución de Internet de las cosas (IoT), donde cada vez más dispositivos tendrán acceso a Internet. Esto abre un abanico de nuevas posibilidades con el consecuente potencial de nuevas aplicaciones. Android Things puede ser un actor importante en este nuevo mercado. Todo esto y mucho más se trata en este libro:

Análisis de imágenes con OpenCV: Utiliza desde Android la herramienta más extendida y potente para procesar imágenes en tiempo real. Comprende todos los conceptos teóricos necesarios para realizar un preproceso que resalte los elementos que tratas de localizar. Segmenta las zonas donde están los objetos a reconocer. Extrae las características que pueden identificar los objetos. Desarrolla un proyecto que reconozca señales de tráfico en tiempo real y que te avise si tu velocidad es excesiva.
Desarrollo de aplicaciones para Internet de las cosas: Instala Android Things en una Raspberry Pi e interacciona con sensores a través de sus entradas/salidas (GPIO, PWM, I2C y UART). Interacciona con un microcontrolador Arduino. Integra Google Assistant para que tu dispositivo responda a comandos de voz. Descubre y configura nodos IoT usando Nearby Connections.
Crea servicios web RESTfull en Android Things. Aprende a utilizar MQTT para aplicaciones de IoT.

Programación en código nativo: Usa NDK para escribir directamente tus algoritmos en C/C++ y compílalos a código nativo del procesador. Reconoce en que circunstancias has de utilizar código nativo. Realiza apps mixtas usando JNI.
Ingeniería inversa: Aprende a jaquear aplicaciones para evitar que lo hagan con las tuyas. Estudia el código y modifica
aplicaciones de terceros. Ofusca el código e incluye licencias de Google Play para evitar usos no autorizados de su aplicación.
Evita que se realice ingeniería inversa en tus aplicaciones.

El libro propone un aprendizaje dinámico, con actividades, muchas de ellas a través de Internet:
Ejercicio paso a paso: La mejor forma de aprender es practicando.
Práctica: Para afianzar lo aprendido hay que practicar.
Preguntas de repaso: ¿Lo has entendido todo correctamente?
Trivial programación Android: Mide tus conocimientos jugando en red.

¿ Cómo leer este libro? ……………………………………………………….. XII

CAPÍTULO 1. Análisis de imagen en Android usando OpenCV ……………… 1
1.1 Introducción ……………………………………………………………………………….. 2
1.2 Instalación de OpenCV para Android …………………………………………….. 3
1.2.1 Prerrequisitos ……………………………………………………………………………. 3
1.2.2 Instalación de la librería OpenCV y los ejemplos ……………………………. 4
1.2.3 Prueba en el dispositivo…………………………………………………………………. 5
1.3 Imágenes digitales …………………………………………………………………………… 6
1.3.1 Imágenes en color …………………………………………………………………………. 7
1.3.2 Imágenes en Android ……………………………………………………………………… 8
1.4 Programas básicos con OpenCV en Android ……………………………………….. 9
1.4.1 Primer programa para procesamiento de imágenes usando OpenCV…….. 10
1.4.2 Configurar la cámara y su resolución ………………………………………………… 16
1.4.3 Seleccionar la entrada desde fichero ………………………………………………….. 19
1.4.4 Guardar el resultado …………………………………………………………………………. 21
1.4.5 La clase Mat de OpenCV ……………………………………………………………………. 22
1.4.6 Determinar la orientación del dispositivo ……………………………………………. 24
1.4.7 Separar el procesamiento de las imágenes ……………………………………………. 26
1.4.8 Procesar imágenes monocromas ………………………………………………………… 27
1.4.9 Procesamiento de las imágenes en fases ……………………………………………… 27
1.4.10 Conclusión ………………………………………………………………………………………. 35

CAPÍTULO 2. Visión artificial: preproceso …………………………………………….. 37
2.1 Transformaciones de Intensidad …………………………………………………………… 38
2.1.1 Histogramas …………………………………………………………………………………….. 39
2.1.2 Aumento lineal del contraste ………………………………………………………………. 40
2.1.3 Ecualilzación del histograma ………………………………………………………………. 45
2.1.4 Del color al monocromo ………………………………………………………………………. 47
2.1.5 Funciones OpenCV relevantes ……………………………………………………………….. 51
2.1.6 Resumen de las transformaciones de intensidad ……………………………………… 53
2.2 Preproceso : Operadores locales ……………………………………………………………….. 53
2.2.1 Filtros lineales ……………………………………………………………………………………… 55
2.2.2 Filtros morfológicos …………………………………………………………………………….. 70
2.2.3 Operadores morfológicos en OpenCV …………………………………………………… 77

CAPÍTULO 3. Visión artificial : Segmentación y reconocimiento ……………………………. 81
3.1 Binarización ………………………………………………………………………. 82
3.1.1 Umbralización fija ………………………………………………………….. 84
3.1.2 Umbralización dependiente de la imagen …………………………. 84
3.1.3 Umbralización por Otsu …………………………………………………… 86
3.1.4 Umbralización adaptativa …………………………………………………. 88
3.1.5 Umbralización en OpenCV …………………………………………………. 89
3.2 Segmentación ………………………………………………………………………. 80
3.2.1 La segmentación en OpenCV ………………………………………………. 92
3.2.2 Objetos delgados y objetos con agujeros ………………………………. 94
3.2.3 Opciones de findContours() …………………………………………………. 95
3.3 Características ……………………………………………………………………….. 97
3.3.1 El Bounding Box …………………………………………………………………… 97
3.3.2 Análisis del interior del rectángulo …………………………………………. 102
3.4 Reconocimiento de dígitos ……………………………………………………….. 104
3.4.1 Extracción de características …………………………………………………… 104
3.4.2 Clasificación …………………………………………………………………………… 106

CAPÍTULO 4. Android Things: Entradas / Salidas ………………………………… 119
4.1 Internet de las cosas …………………………………………………………………….. 120
4.2 Introducción a Android Things ………………………………………………………… 121
4.2.1 Solución completamente administrada ……………………………………………. 122
4.2.2 Plataformas hardware soportadas …………………………………………………….. 125
4.2.3 SDK de Android Things …………………………………………………………………….. 128
4.2.4 Consola Android Things …………………………………………………………………….. 130
4.3 Raspberry Pi 3 ……………………………………………………………………………………. 130
4.3.1 Comparativa con otros modelos ………………………………………………………….. 131
4.3.2 Características ………………………………………………………………………………….. 132
4.3.3 Alternativas pra el Sistemas Operativos ………………………………………………. 133
4.4 Instalaciones de Android Things …………………………………………………………….. 134
4.4.1 Descarga de la Imagen del Sistema de Android Things …………………………… 134
4.4.2 Configuración de la conexión a Internet …………………………………………………. 135
4.4.3 Acceder al dispositivo desde Android Studio ……………………………………………. 140
4.4.4 Un primer proyecto ………………………………………………………………………………… 140
4.4.5 Uso del laboratorio remoto ………………………………………………………………………. 142
4.5 Algunos conceptos de electrónica ……………………………………………………………….. 144
4.5.1 Voltaje y fuente de alimentación ………………………………………………………………… 144
4.5.2 Señales analógcas y digitales ………………………………………………………………………. 145
4.5.3 Resistencia pull-up / pull-down ………………………………………………………………….. 145
4.5.4 LED y cálculo de resistencia de ajuste ………………………………………………………… 146
4.6 Entradas / Salidas en Android Things …………………………………………………………… 147
4.6.1 Conexiones GPIO ………………………………………………………………………………………. 148
4.6.2 Salidas PWM ……………………………………………………………………………………………. 153
4.6.3 Bus series I2C …………………………………………………………………………………………… 156
4.6.4 Entradas/ salidas series SPI ………………………………………………………………………. 163
4.6.5 Entradas /salidas series UART ………………………………………………………………….. 163
4.6.6 Medidor ultrasónico de distancia ……………………………………………………………….. 166
4.7 Usar un microcontrolador Arduino como esclavo …………………………………………… 169
4.8 Controladores de usuario …………………………………………………………………………….. 176
4.8.1 Utilizar controladores ……………………………………………………………………………… 176
4.8.2 Escribir contoladores de usuario ……………………………………………………………….. 177
4.9 Integrar Google Assitant SDK ……………………………………………………………………….. 180
4.9.1 Añadir control de volumen …………………………………………………………………………. 188
4.9.2 Usar acciones predefinidas en Google Assistant …………………………………………. 189
4.9.3 Definir acciones personalizadas ………………………………………………………………….. 192

CAPÍTULO 5. Android Things: Comunicaciones ……………………… 195
5.1 Opciones de comunicación en Android Things ………………………………………. 196
5.2 Comunicaciones offine …………………………………………………………………………. 197
5.2.1 Bluetooth …………………………………………………………………………………………. 198
5.2.2  LoWPAN ………………………………………………………………………………………….. 199
5.2.3 Nearby Connections …………………………………………………………………………….. 200
5.3 Comunicaciones online …………………………………………………………………………….  221
5.3.1 Servidor web en Android Things …………………………………………………………….. 221
5.3.2 Protocolos de comunicaciones ……………………………………………………………….. 227

CAPÍTULO 6: Programación en código nativo …………………………………………………… 271
6.1 Android NDK …………………………………………………………………………………………… 272
6.1.1 Cuándo utilizar código nativo ………………………………………………………………….. 273
6.1.2 Contenido de Android NDK …………………………………………………………………….. 275
6.2 Instalación de Android NDK ………………………………………………………………………. 277
6.2.1 Instalación Android NDK en Android Stuido 2.2 o superior ………………………… 278
6.2.2 Intslación Android NDK en Android Stuido 2.1 o inferior …………………………… 279
6.3 Funcionamiento y estructura de Android NDK …………………………………………….. 285
6.3.1 Desarollo práctico de Android NDK con CMake ………………………………………… 286
6.3.2 Desarrollo práctico de Android NDK con ndk- build ………………………………….. 298
6.4 interfaz entre JAVA y C/C++ (JNI) …………………………………………………………….309
6.4.1 Bibliotecas de enlace estático y dinámico …………………………………………………. 309
6.4.2 Tipos fundamentales , referencias y arrays ……………………………………………….. 310
6.4.3 Desarrollo paso a paso de un programa mediante JNNI (I) ……………………….. 312
6.4.4 Acceso a métodos Java desde código nativo (JNI calback) ………………………….. 317
6.4.5 Excepciones ……………………………………………………………………………………………. 323
6.5 Rendimiento de aplicaciones con código nativo …………………………………………….. 324
6.6 Procesado con imagen con código nativo ………………………………………………………. 329

CAPÍTULO 7. Ingeniería inversa en Android ………………………………………………………. 335
7.1 El formato APK …………………………………………………………………………………………… 336
7.2 Decompilando aplicaciones Android ……………………………………………………………. 342
7.2.1 Un primer vistazo al contenido de un fichero .apk ………………………………………. 342
7.2.2 La máquina virtual Dalvik/ART  ………………………………………………………………… 343
7.2.3 Decompilando aplicaiones Android ……………………………………………………………. 348
7.3 Modificando aplicaciones Android ……………………………………………………………….. 348
7.3.1 Modificando recursos binarios de una aplicación ………………………………………… 348
7.3.2 Modificando recursos XML de una aplicación ……………………………………………. 351
7.3.3 Modificando el código de una aplicación ……………………………………………………. 352
7.4 Ofuscación del código …………………………………………………………………………………. 356
7.5 Obtención de licencias con Google Play ………………………………………………………. 360
7.5.1 Cómo funciona el servicio de licencias …………………………………………………….. 361
7.5.2 Como añadir una licencia a nuestra aplicación ………………………………………… 362
7.5.3 ¿Quñe es una política de licencia ? ………………………………………………………….. 369
7.6 Cómo evitar que se elimine la verificación de licencia en nuestras aplicaciones ……. 370
7.6.1 Ingeniería inversa en una aplicación con licencia……………………………………………. 371
7.6.2 Primera contramediida: ofuscar el código …………………………………………………….. 376
7.6.3 Segunda contramedida : no usar la librería LVL estándar …………………………………. 379
7.6.4 Tercera contramedida : verificar que no ha modificado nuestra APK ………………….. 381

Anexo A el paquete camera2 de Android ………………………………………………………… 387
1.1 Introducción ………………………………………………………………………………………….. 387
1.2 Obtener información sobre las cámaras ……………………………………………………. 388
1.2.1 Nivel de Hardware Soportado ……………………………………………………………….. 389
1.2.2 Orientación y posición de las cámaras ……………………………………………………. 390
1.2.3 Métodos de enfoque y exposición ……………………………………………………………. 392
1.2.4 Tamaños de imagen ………………………………………………………………………………. 394
1.3 Arrancar la captura y visualizar …………………………………………………………………. 396
1.3.1 Capturando fotos……………………………………………………………………………………… 402
1.4 Analizando imágenes de forma continua ……………………………………………………… 408
1.4.1 Accediendo a los  pixels ……………………………………………………………………………….. 411
1.4.2 Conclusión ………………………………………………………………………………………………… 413
1.5 Zoom Digital …………………………………………………………………………………………………. 414
1.5.1 Determinación de las dimensiones del sensor y la distancia focal ………………………… 415
1.5.2 Determinación del máximo zoom digital …………………………………………………………… 416
1.5.3 Seleccionando una zona útil del sensor …………………………………………………………….. 417
1.5.4 Controlando el nivel de zoom mediante gestos ………………………………………………….. 418
1.5.5 Conclusión …………………………………………………………………………………………………….. 419
1.6 Detección Facial ………………………………………………………………………………………………… 419
1.7 Conclusión …………………………………………………………………………………………………………. 423

A color
Páginas:
440
Edición:
1
Año Publicación:
20/09/2018
ISBN:
9788426726667
Formato:
17x24 cms
Colección

Relacionados

¿Quiéres conocer las últimas novedades?

Inscribiéndote recibirás unos regalos exclusivos para ti