Tabla de contenido:
- Paso 1: Cosas utilizadas en este proyecto
- Paso 2: Conexión de hardware
- Paso 3: Programación de software
- Paso 4: Listo
Video: Bloqueo inteligente de reconocimiento facial con LTE Pi HAT: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
El reconocimiento facial se usa cada vez más y podemos usarlo para hacer un candado inteligente.
Paso 1: Cosas utilizadas en este proyecto
Componentes de hardware
- Raspberry Pi 3 Modelo B
- Módulo de cámara Raspberry Pi V2
- Grove - Relevo
- LTE Cat 1 Pi HAT (Europa)
- Pantalla LCD IPS HDMI de 10,1 pulgadas 1200x1980
Aplicaciones de software y servicios en línea
- WinSCP
- Bloc de notas ++
Paso 2: Conexión de hardware
En este proyecto, planeamos tomar fotografías con picamera y reconocer caras en ellas, luego mostrar el resultado del reconocimiento en la pantalla. Si se conocen rostros, abra la puerta y envíe quién abrió la puerta al número de teléfono especificado por SMS.
Por lo tanto, debe conectar una cámara a la interfaz de la cámara de Raspberry Pi e instalar la antena y Grove - Relay to LTE Pi hat, luego conectar HAT a su Pi. La pantalla se puede conectar a Raspberry Pi a través de un cable HDMI, no olvide conectar la alimentación a su pantalla y Pi.
Paso 3: Programación de software
Reconocimiento facial
Gracias por Adam Geitgey y su proyecto de reconocimiento facial, podemos usar la biblioteca de reconocimiento facial más simple del mundo en Raspberry Pi. Los siguientes pasos le mostrarán cómo configurar el reconocimiento facial en Pi.
Paso 1. Utilice raspi-config para configurar la cámara y la memoria de la GPU.
sudo raspi-config
Seleccionando Opciones de interfaz - Cámara para habilitar la picamera, luego seleccionando Opciones avanzadas - División de memoria para configurar la memoria de la GPU, debe cambiarse a 64. Después de terminar, reinicia tu Raspberry Pi.
Paso 2. Instale las bibliotecas necesarias.
sudo apt-get update
sudo apt-get upgrade sudo apt-get install build-essential / cmake / gfortran / git / wget / curl / graphicsmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-get clean
Paso 3. Haz que la matriz de soportes picamerea.
sudo pip3 install --upgrade picamera [array]
Paso 4. Instale dlib y reconocimiento facial.
sudo pip3 instalar dlib
sudo pip3 instalar face_recognition
Paso 5. Descargue y ejecute el ejemplo de reconocimiento facial
git clone --single-branch
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
AVISO: Si tiene ImportError: libatlas.so.3: no se puede abrir el archivo de objeto compartido: no existe tal archivo o directorio, ejecute el siguiente comando para solucionarlo.
Relé
Cuando el reconocimiento facial esté listo, podemos continuar agregando funciones adicionales. Conectamos Grove - Relay a LTE Cat 1 Pi HAT, pero usa un puerto digital en lugar del puerto I2C.
Este es el pin-out para Raspberry Pi 3B, podemos ver el pin SDA y el pin SCL ubicados en el pin 3 y el pin 5 de la placa.
Entonces podemos controlar el relé mediante salidas de señal digital al pin 5. Ejecute el siguiente programa de Python en su Raspberry Pi, si nada sale mal, escuchará un Ti-Ta desde el relé.
importar RPi. GPIO como GPIO
RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) Salida GPIO (RELAY_PIN, GPIO. HIGH)
Entonces aquí está la idea, cargamos caras conocidas de una carpeta, reconocemos caras capturadas por picamera, si la cara en la carpeta, control de relé para desbloquear la puerta. Podemos empaquetarlos en una clase, aquí está el método load_known_faces () y el método unlock (), el programa completo se puede descargar al final de este artículo.
def load_known_faces (self):
caras_conocidas = os.listdir (self._ ruta_faces_conocidas) para cara_conocida en caras_conocidas: self._ nombre_faces_conocidas.append (cara_conocida [0: len (cara_conocida) - len ('. jpg')]) imagen_cara_conocida = face_recognition.cargar_archivo_imagen (ruta_automática + caras_conocidas) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ known_faces_encoding) def unlock (self): if self._ match.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Puerta abierta') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count + = 1 print ('Inténtalo de nuevo… { } '. format (self._ retry_count)) return False
Piense de manera trascendental, podemos mostrar la imagen que reconoció, las bibliotecas PIL y matplotlib pueden ser útiles, entre ellas, matplotlib debe instalarse manualmente, ejecute este comando en la terminal de su Raspberry Pi.
sudo pip3 instalar matplotlib
Impórtelos en su código y cambie if block en el método unlock () de esta manera:
img = Image.open ('{} / {}. jpg'.format (self._ ruta_faces_conocidas, self._ nombre_faces_conocidas [0]))
plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Puerta abierta') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True
Ahora, si se reconoce un rostro, la imagen de la carpeta se mostrará en la pantalla.
SMS
A veces queremos saber quién está en nuestra habitación, y ahora hay un lugar para LTE Cat 1 Pi HAT. Conecte una tarjeta SIM y siga los pasos a continuación para probar si funciona o no.
Paso 1. Habilite UART0 en Raspberry Pi
Utilice nano para editar config.txt en / boot
sudo nano /boot/config.txt
agregue dtoverlay = pi3-disable-bt al final y deshabilite el servicio hciuart
sudo systemctl deshabilitar hciuart
luego elimine console = serial0, 115200 en cmdline.txt en / boot
sudo nano /boot/cmdline.txt
Una vez hecho todo, debe reiniciar su Raspberry Pi.
Paso 2. Descargue el ejemplo y ejecútelo.
Abra una terminal en su Raspberry Pi, escriba estos comandos línea por línea.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py instalar cd test sudo python test01.py
Si ve estas salidas en su terminal, el LTE Cat 1 Pi HAT funciona bien.
Se detectó un encabezado GPIO de 40 pines
Habilitando CTS0 y RTS0 en GPIOs 16 y 17 rts cts al despertar… nombre del módulo: LARA-R211 RSSI: 3
Ahora que sabíamos que el HAT funciona bien, ¿cómo usarlo para enviar SMS? Lo primero que debe saber es que la Raspberry Pi se comunica con el HAT a través de comandos de envío AT por UART. Puede enviar comandos AT a LTE HAT ejecutando este código en python
desde ublox_lara_r2 import *
u = Ublox_lara_r2 () u.initialize () u.reset_power () # Cerrar el masaje de depuración u.debug = False u.sendAT ('')
El comando AT para enviar SMS es el siguiente
AT + CMGF = 1
AT + CMGS =
así que aquí está el método _send_sms ():
def _send_sms (auto):
if self._ phonenum == None: return False para desbloqueador en self._ Recognise_face_names (): if self._ ublox.sendAT ('AT + CMGF = 1 / r / n'): print (self._ ublox.response) if self. _ublox.sendAT ('AT + CMGS = "{}" / r / n'.format (self._ phonenum)): print (self._ ublox.response) if self._ ublox.sendAT (' {} entrar en la habitación. / x1a'.format (desbloqueador)): print (self._ ublox.response)
AVISO: La biblioteca LTE Cat 1 Pi HAT escrita por python2, que no es muy compatible con python3, si desea usarla con reconocimiento facial, descárguela del enlace al final de este artículo.
Recomendado:
Abellcadabra (sistema de bloqueo de puertas con reconocimiento facial): 9 pasos
Abellcadabra (Sistema de bloqueo de puertas con reconocimiento facial): Durante la cuarentena, traté de encontrar una manera de matar el tiempo construyendo un sistema de reconocimiento facial para la puerta de la casa. Lo llamé Abellcadabra, que es una combinación entre Abracadabra, una frase mágica con timbre que solo tomo el timbre. JAJAJA
Marco de fotos OSD con reconocimiento facial: 11 pasos (con imágenes)
Marco de fotos OSD con reconocimiento de rostros: este instructivo muestra cómo hacer un marco de fotos con visualización en pantalla (OSD) con reconocimiento de rostros. El OSD puede mostrar la hora, el clima u otra información de Internet que desee
Espejo de reconocimiento facial con compartimento secreto: 15 pasos (con imágenes)
Espejo de reconocimiento facial con compartimento secreto: siempre me han intrigado los compartimentos secretos siempre creativos que se utilizan en historias, películas y cosas por el estilo. Entonces, cuando vi el Concurso de Compartimiento Secreto, decidí experimentar yo mismo con la idea y hacer un espejo de aspecto ordinario que abre una s
Timbre con reconocimiento facial: 7 pasos (con imágenes)
Timbre con reconocimiento facial: motivación Recientemente, ha habido una ola de robos en mi país que están dirigidos a personas mayores en sus propios hogares. Por lo general, el acceso lo otorgan los propios ocupantes, ya que los visitantes los convencen de que son cuidadores / enfermeras. Eso
Sistema de seguridad de reconocimiento facial para un refrigerador con Raspberry Pi: 7 pasos (con imágenes)
Sistema de seguridad de reconocimiento facial para un refrigerador con Raspberry Pi: navegando por Internet descubrí que los precios de los sistemas de seguridad varían de 150 $ a 600 $ y más, pero no todas las soluciones (incluso las más caras) se pueden integrar con otras herramientas inteligentes en su hogar! Por ejemplo, no puede configurar