¡Oferta!

Android Things y visión artificial

25,00 

Otras opciones
25,00 

En Stock

  • ISBN: 9788426726667
  • Tipo de Encuadernación: Rústica
  • Dimensiones de producto: 17x1x24
  • Número de páginas: 440

Libro físico

  • Envíos a todo el mundo
  • Suscriptores obtienen descuentos en la compra de libros físicos, envíos gratuitos en España Peninsular y Baleares y acceso a todo el catálogo digital de Marcombo.
    ¿No estás suscrito? ¡Suscríbete!
¿Quieres un descuento? ¡Hazte en miembro!

Más información

Descripción

Índice

Detalles

Colecciones

Categorías

Características

  • Autor: Tomás, Jesús; Albiol, Antonio ; García , Miguel ; Santonja, Salvador
  • Fecha de publicación: 20/09/2018

Descripción

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.

Información adicional

Peso 1 kg
Dimensiones 24 × 17 × 1 cm

Índice

¿ 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