Revista 100% Verde

Simple cámara de seguridad

Por Soloelectronicos @soloelectronico

En efecto gracias al nivel de integración alcanzado , cada vez hay soluciones más "sencillas" a problemas de computación en tiempo real que tradicionalmente han sido muy complejos como por ejemplo puede ser el reconocimiento y detección de imágenes en tiempo real .

Como muestra de este tipo de soluciones vamos a ver la placa ESP-EYE , una pequeña placa de desarrollo del fabricante chino Espressif centrada en el reconocimiento de imágenes con procesamiento de audio en aplicaciones AIoT

Realmente esta solución se basa en dos componentes claramente diferenciados:

    El hardware : esta solución es soportable por muy diferentes propuesta pero el hw más sencillo y del que vamos a ver en este post el ESP-EYE , una placa de desarrollo de menos de 30€ para el reconocimiento de imágenes y el procesamiento de audio, que se puede utilizar en varias aplicaciones AIoT. Cuenta con un chip ESP32, una cámara de 2 megapíxeles y un micrófono. ESP-EYE ofrece mucho almacenamiento, con una PSRAM de 8 Mbyte y un flash de 4 Mbyte. También es compatible con la transmisión de imágenes a través de Wi-Fi y depuración a través de un puerto Micro-USB. Aunque el ESP-EYE es una opción en kit muy asequible, el fabricante también ofrece una opción más potente :Esp-Wrover-Kit
    El software : ESP-WHO, que es un marco de desarrollo de detección y reconocimiento de rostros diseñado para aplicaciones AIoT. Puede usarse con la placa de desarrollo ESP-EYE, el ESP-WROVER-KIT calificado por Amazon FreeRTOS u otras placas de desarrollo basadas en ESP32. Luego, al agregar solo unos pocos periféricos, como cámaras y pantallas, puede crear fácilmente aplicaciones AIoT completas. Para ejecutar ESP-WHO, debe tener una placa de desarrollo que integre un módulo ESP32 que tenga suficientes pines GPIO y más de 4 MB de RAM externa SP como la placa anteriormente comentada (ESP-EYE ), aunque no obstante ESP-WROVER-KIT también pueden ser otra opción como placa de pruebas.

Como hemos comentados hablado estamos ante una Placa de desarrollo de Espressif para reconocimiento de imágenes y procesamiento de audio en aplicaciones AIoT.

Espressif , el fabricante ofrece una solución AIoT completa que combina ESP32 con un marco de desarrollo de inteligencia artificial (AI). Esta solución incluye la placa de desarrollo ESP-EYE, junto con los marcos de desarrollo IoT y AI de Espressif, también conocidos como ESP-IDF y ESP-WHO, respectivamente.

Simple cámara de seguridad

ESP-EYE es una placa de desarrollo para el reconocimiento de imágenes y el procesamiento de audio, que se puede utilizar en varias aplicaciones AIoT. Cuenta con un chip ESP32, una cámara de 2 megapíxeles y un micrófono, todo ello integrado en una minúscula placa de 8 x4 cm (mas o menos como un pen-drive USB).

ESP-EYE ofrece mucho almacenamiento, con una PSRAM de 8 Mbyte y un flash de 4 Mbyte. También es compatible con la transmisión de imágenes a través de Wi-Fi y depuración a través de un puerto Micro-USB.

Simple cámara de seguridad

Aunque el sl fabricante ha dejado disponible en Github su sw , también puede apoyarse en otras soluciones del mismo fabricante como el ESP-WROVER-KIT-VB que f ofrece una solución integrada AIoT completa que combina un ESP32 con un marco de desarrollo de inteligencia artificial y además incluye la placa de desarrollo ESP-EYE, junto con los marcos de desarrollo IoT y AI de Espressif, también conocidos como ESP-IDF y ESP-WHO, respectivamente.

ESP-WROVER-KIT-VB

Es una placa de desarrollo de ultra bajo consumo altamente integrada que incluye Flash y PSRAM agregando una interfaz USB, una pantalla LCD de 3.2 ", una interfaz de cámara OV7670 y una ranura para tarjeta micro SD.Alcanza un gran rendimiento con una RAM de 4.5 MB y una C PU de doble núcleo de 240 MHz permitiendo creer cámaras de Internet, pantallas inteligentes o radios de Internet conectando pantallas LCD, micrófonos y códecs ) , todo ello a un precio relativamente competitivo ( unos 62€)

Esta placa Esp-Wrover-Kit también del mismo fabricante Expressif es otra opción que puede soportar el software ESP-WHO , En este caso es una una placa de desarrollo calificada por AWS( Amazon Web Services ) . Además del ESP-IDF SDK de Espressif, puede usar Amazon FreeRTOS en ESP-WROVER-KIT-VB. Amazon FreeRTOS proporciona conectividad lista para usar con AWS IoT, AWS Greengrass y otros servicios de AWS.

Aunque ESP32 admite la depuración JTAG, este modulo ESP-WROVER-KIT-VB integra un depurador USB también, lo cual hace que la depuración y el rastreo de aplicaciones complejas sea muy fácil, sin la necesidad de ningún hardware adicional.

ESP-WROVER-KIT-VB es pues la versión mejorada del ESP-WROVER-KIT ( de hecho cuesta casi el doble que la version anterior) . Su PSRAM en l aversion 2 aumenta a 8 MBytes, mientras que esta placa de desarrollo también cuenta con una interfaz de tarjeta Micro-SD de alta velocidad, una interfaz de cámara VGA, un panel LCD SPI de 3.2 "y capacidades de expansión de E / S. Asimismo cuenta con un procesador de doble núcleo, radios Bluetooth y WiFi, y 520 KB de SRAM.

Simple cámara de seguridad

Ultimamente estan distribuyendo la versión 3 que contiene 32 Mbit adicionales de PSRAM siendo el ESP32 s compatible con SPI, I2C, serie, etc.

Espressif admite dos cadenas de herramientas:

  • El entorno de lenguaje C nativo que se ejecuta bajo el sistema operativo en tiempo real FreeRTOS
  • El entorno Arduino C / C ++. Los programas desarrollados usando el entorno Arduino en realidad se ejecutan como una tarea en FreeRTOS y pueden usar las bibliotecas FreeRTOS.

Puede ser preocupante el soporte para el controlador LCD ya que las versiones 2 y 3 de la placa utilizan un controlador ST7789V pero la placa de la versión 1 utiliza un controlador ILI9341. La última versión de la demostración TFT simple en ESP32 SDK llamada spi_master se puede configurar para ejecutarse en cualquiera de los ESP32-WROVER-KIT. No obstante "Loboris" en github tiene una biblioteca TFT con todas las funciones con opción de configuración para construir la biblioteca y el programa de demostración para la versión 3 WROVER-KIT. Incluso con SPI, la actualización de la pantalla es muy rápida.

No se incluye documentación con la placa, pero hay mucha documentación en la web, y el SDK nativo viene con una serie de ejemplos útiles. La desventaja es que el ESP32 es relativamente nuevo, parte del software está cambiando y faltan algunas bibliotecas de Arduino.

Sin dua el ESP32-WROVER-KIT es una gran pieza de hardware, aunque su uso requiere cierta experiencia con microcontroladores y cierta tenacidad para examinar la documentación en línea y el código de ejemplo , pero quizás valga la pena el esfuerzo por toda la potencia que le brinda esta placa.

EL software

El sw necesario se compone del marco de desarrollo IoT ( también llamado ESP-IDF ) y la AI de Espressif ( también conocidos como ESP-WHO ).

Para ejecutar ESP-WHO, debe tener una placa de desarrollo que integre un módulo ESP32 generico que tenga suficientes pines GPIO y más de 4 MB de RAM externa SPI y una cámara CCD . Lo mas sencillo es usar el ESP-WROVER-KIT o el recomndado por el fabricante: el ESP-EYE que hemos visto integra el ESP32 y la cámara integrado en una solución de bajo coste

Simple cámara seguridad

ESP-WHO es pues la utilidad de detección, reconocimiento e imagen son el núcleo de la plataforma constando en realidad de los siguientes módulos:

  • Image Utility ofrece API de procesamiento de imágenes fundamentales.
  • La detección toma imágenes como entrada y proporciona la posición de la cara si hay una cara. Se implementa con el modelo MTMN, que se refiere a MTCNN y MobileNets .
  • El reconocimiento es identificar a la persona en particular y necesita los resultados de la detección. Se implementa con el modelo MobileFace.
  • La optimización consiste principalmente en aumentar la precisión de la inferencia y acelerar todo el proceso. Pero también podría cambiar la estructura de la red, actualizar los coeficientes, refactorizar el código, etc.

Tanto la entrada como la salida son flexibles porque las fuentes de imagen pueden ingresarse a través de la cámara ( aunque sin embargo, no proporcionan muchos controladores en este momento, ya que los de otros módulos de cámara se lanzarán en el futuro) y porque los resultados se pueden mostrar a través de la línea de comando, un LCD o incluso el sitio web a través del servicio de Wi-Fi http.

Para saber cómo configurar el módulo ESP32 para sus aplicaciones, puede consultar el archivo README.md de cada ejemplo del respositorio de github ( https://github.com/espressif/esp-who )

Preparación de software

La resolución recomendada de la imagen de entrada es QVGA (320×240) . En cuanto a elegir la cámara si no usa el citado modulo recomendado ESP-EYE el módulo ESP32 usado deberá tener libre los pines específicos según la cámara que use Por ahora el sw proporcionado soporta el controlador de OV2640 y OV3660 , que son muy recomendables para comenzar.

Veamos como instalar los dos módulos sw necesarios:

ESP-WHO

Asegúrese de clonar el proyecto de forma recursiva usando el siguiente comando:

git clone --recursive https://github.com/espressif/esp-who.git

Si clona un proyecto sin --recursive ( es decir usando el indicador --recursive), vaya al directorio esp-who y ejecute el comando git submodule update --init antes de hacer nada.

ESP-IDF

Consulte las guías de configuración para obtener instrucciones detalladas para configurar el ESP-IDF: Guía de inicio para la versión estable de ESP-IDF

En este caso, tomamos ESP-IDF v3.2 como la versión de prueba.Si ya ha configurado ESP-IDF antes y no desea cambiar el existente, puede señalar IDF_PATH al ESP-IDF que se encuentra en ESP-WHO.

Otros componentes sw

Otros componentes sw necesarios lo constituye el marco principal del SDK, con algunos controladores y algunos algoritmos dentro.

  • Cámara : El componente de cámara contiene controladores para dispositivos de cámara de ESP32.
  • Face de esp: El componente esp-face contiene las API de las redes neuronales ESP-WHO, incluido el marco de detección y reconocimiento de rostros.

La carpeta de /examples/ del respositorio de github ( https://github.com/espressif/esp-who ) contiene ejemplos de aplicaciones que demuestran las características API de ESP-WHO.

Una buena muestra es la detección de rostros , para lo cual habría que seguir los siguientes pasos:

  1. esp-who/examples/single_chip/detection_with_command_line a una carpeta de ejemplo esp-who/examples/single_chip/detection_with_command_line .
  2. cd esp-who/examples/single_chip/detection_with_command_line
    Compila y actualiza el proyecto. idf.py build idf.py flash -p [PORT]
    Los usuarios avanzados pueden modificar algunas opciones mediante el comando idf.py menuconfig .

Verifique README.md de cada ejemplo del respositorio de github ( https://github.com/espressif/esp-who ) para más detalles.

Demo

En el siguiente , podemos ver cómo hacer su propio proyecto de seguridad para el hogar en solo 5 minutos utilizando la placa ESP-EYE y una Raspberry Pi para visualizar el resultado aunque puede usarse un pc portatil ,tableta , etc en su lugar . Este proyecto además es plug and play pues apenas requiere ningún conocimiento de codificación o hardware.

Para hacer su propio dispositivo de transmisión inalámbrica por tanto sólo usaremos una a pantalla LCD táctil conectada a la Raspberry pi . Como normalmente el fabricante del LCD suele incluir las instrucciones necesarias para conectar esta a la Raspberry Pi y que sea funcional en la demo no se requiere ninguna codificación y tampoco ningún circuito ya que nos bastará conectar estos dispositivos y empezar a transmitir

Simple cámara de seguridad

En primer lugar necesitaremos encender este ESP alimentando con 5v DC por medio del puerto microUSB . En el inicio del LED rojo se enciende en el ESP ,pero el LED rojo comenzará a parpadear que revela que este dispositivo se despierta y ha creado su punto de acceso propio al que se puede conectar todos los dispositivos .

En este ejemplo como se usa Raspberry Pi para ver los datos que vienen del CSPI ,encenderemos la placa Raspberry Pi . Para la primera vez que se conecte es recomendable tener teclado y ratón conectados a la Raspberry Pi , pero esto sólo será para la primera vez pues después el ajuste se guardará en esta Raspberry Pi y no necesitará teclado y ratón ,ya que se puede utilizar la pantalla táctil

Cómo está abierto el punto de acceso ,sólo necesitamos para conectar a través de este punto , abrir el navegador web y conectarnos a esta dirección IP( doble barra oblicua ,dos puntos y la ip del módulo y podremos ver la imagen que esta transmitiendo la cámara .

Para la segunda vez no hay necesidad de utilizar este tipo de teclado porque una Raspberry Pi automáticamente se conectara con este punto de acceso particular y en el navegador puede usar esta dirección IP ,la cual se guardará en el historial para que pueda tocar la dirección IP en el historial y acceder directamente

En este video, pues hemos visto cómo hacer su propio proyecto de seguridad para el hogar en solo 5 minutos utilizando el tablero ESP-EYE y Raspberry Pi, proyecto por cierto que como hemos visto es plug and play , y no requiere ningún conocimiento de codificación o hardware.

!Este módulo sin duda es una versátil aliado para múltiples retos que se nos presente!


Volver a la Portada de Logo Paperblog