Revista 100% Verde

Contador con reconocimiento facial para Raspbery Pi 3

Por Soloelectronicos @soloelectronico

Con una Raspberry Pi se pueden hacer muchas cosas , pero seguramente se sorprenda que incluso puede utilizar la cámara para experimentar con reconocimiento facial, labor que ha hecho DekuNukem utilizando una Raspberry Pi 3, el módulo de la cámara de Raspberry Pi y una pantalla OLED para la visualización de los datos

El concepto es relativamente simple: la pi-camera toma una foto cada 15 segundos, de modo que si se encuentra nuestra cara, la cual previamente habremos cargado, se registra la hora actual. y el tiempo registrado se suma para calcular el horario laboral exacto todas las semanas mostrándose el resultado en una pantalla OLED.

Para este proyecto estrictamente como puede deducirse no es necesario incluir la pantalla OLED ya que nos podemos conectar a la propia Raspberry Pi 3 para consultar ese dato , pero definitivamente la pantalla extra añade inmediatez y flexibilidad , dejando ver el tiempo diario y semanal de un vistazo sin tener que acceder su frambuesa Pi para ver los datos.

Contador con  reconocimiento facial para Raspbery Pi 3

Resumiendo estos son los componentes usados :

  • Raspberry Pi 3 Model B. También podría funcionar en Zero
  • Módulo de cámara Raspberry Pi
  • OPCIONAL : pantalla OLED de 1.3 pulgadas de 128×64. Pantallas de 0.96 pulgadas OLED también funcionan.Que sea OLED es opcional; Omita los pasos relacionados con la pantalla si se opta por no usar esta

Modulo de visualización

Se puede conectar una OLED a la Pi con el Pi interfaz I2C o SPI. En general, I2C utiliza menos pines pero es algo más lenta. SPI es mas rápido, pero requiere un numero o de pines del GPIO extra por lo que esta elección debe considerarse en función de sus necesidades .

La interfaz I2C es la normal que se use por su mayor sencillez pero para 'escritura' en la pantalla solamente, asi todavía tendrá el marco entero 512 bytes del búfer en el microcontrolador RAM aunque no se podran leer datos de lo OLED (aunque I2C es un protocolo bidireccional).

Antes de comenzar el cableado de la pantalla , en muchas de estas debe conectarse una franja de pines que deben soldarse a la placa OLED , pues no es posible simplemente hacer las conexiones enrollándolos a las cabeceras

Si su OLED compatible con I2C y SPI, asegúrese de comprobar cómo se configuran los puentes de soldadura para configurar la interfaz correcta, asi que para comenzar, usted necesitará dos puentes en la parte posterior de la pantalla OLED de la soldadura. Debe soldarse como 'cerrado' para configurar la pantalla en modo I2C

Contador con  reconocimiento facial para Raspbery Pi 3

Para usar la Raspberry Pi 3 , habilitar I2C antes desde el interfaz de Raspbian antes de cablearlo

Las conexiones necesarias son las siguientes:

  • Conectar pin 3 de GND de la Raspberry Pi 3 , al pin GND de la pantalla (cable negro).
  • Conectar VIN de la pantalla al pin 1 Raspberry Pi 3 , de 3.3 voltios (cable rojo).
  • Conectar el terminal Reset de la pantalla al pin pin32 de la Raspberry Pi 3 , (cable azul). Alternativamente puede usar cualquier pin digital libre de GPIO para el pin de reset.
  • Conecte el pin SCL de la pantalla al pin 5 SCL de la Raspberry Pi 3 , (cable morado).
  • Conectar el pin SDA de la pantalla al pin 3 SDA de la Raspberry Pi 3 (cable naranja).
Contador con  reconocimiento facial para Raspbery Pi 3

El módulo de cámara es un complemento personalizado y diseñado para Rasbperry Pi. Se conecta a Raspberry Pi a través de uno de los dos pequeños conectores de la parte superior de la placa. La cámara debe ser compatible con la última versión de Raspbian, el sistema operativo preferido de Raspberry Pi.

El módulo en sí, es pequeño, en torno a 25 mm x 20 mm x 9 mm. Se conecta a Raspberry Pi 3 mediante un cable plano flexible al conector de cámara .

Contador con  reconocimiento facial para Raspbery Pi 3

Resto de conexiones

Como dekuNukem explica en el repositorio de GitHub para la construcción del prototipo se puede utilizar una placa de prototipos para montar incluso la pantalla adhiriendo esta a la pcb , conectado el conjunto a la Raspberry Pi por el GPIO ,lo cual es una forma agradable y sencilla de tener todo el proyecto juntos sin cables sueltos o incluso simplificar si se necesita modificarlo.

Puede colocar la cámara y el OLED juntos en una placa perforada que se conecta al bus GPIO o por supuesto, puede colocarlos en otro lugar o diseñar su propia PCB.

Librerias necesarias

Para este proyecto se necesitan las siguientes librerias:

Proporcione su foto

El programa necesita una imagen de su rostro para saber cómo se ve. Obtenga una imagen de su cara bien iluminada con un fondo limpio, llamándola por ejemplo me.jpg y colóquela en la carpeta del software.

La resolución debe ser de alrededor de 400×400, de lo contrario el tiempo de procesamiento va a ser largo. Ya se proporciona un ejemplo, así que simplemente reemplace esta por el suyo.

Ejecucion del programa

Ejecute python3 detect.py para iniciar la detección de rostros y el registro.
Ejecute python3 display_oled.py para mostrar las estadísticas de tiempo en el OLED.
O si no usa un OLED, ejecute python3 display_text.py para imprimir las estadísticas en el terminal.
Es posible que tenga que expeimentar r con camera.rotation y camera.brightness al principio de detect.py, dependiendo de cómo esté orientada la cámara y de su condición de iluminación. Puede abrir image.jpg para ver la última foto tomada.
El pin de reinicio OLED predeterminado es 17, cámbielo a lo que usa en d isplay_oled.py.

Esta incursión en reconocimiento facial puede incorporarse en otros proyectos de automatización del hogar: como por ejemplo una identificación de usuario de Magic Mirror, quizás, o un timbre que reconoce a amigos y familiares.

En todo caso la idea presentada en su simpleza destaca uan genialidad pues nos da una estadística visual y desatendida de las horas que nos pasamos delante de la pantalla.


Volver a la Portada de Logo Paperblog