Tabla de contenido:

Bloqueo inteligente de reconocimiento facial con LTE Pi HAT: 4 pasos
Bloqueo inteligente de reconocimiento facial con LTE Pi HAT: 4 pasos

Video: Bloqueo inteligente de reconocimiento facial con LTE Pi HAT: 4 pasos

Video: Bloqueo inteligente de reconocimiento facial con LTE Pi HAT: 4 pasos
Video: Cómo activar el reconocimiento facial en Samsung Galaxy A14 2024, Mes de julio
Anonim
Bloqueo inteligente de reconocimiento facial con LTE Pi HAT
Bloqueo inteligente de reconocimiento facial con LTE Pi HAT

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

Conexión de hardware
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.

Imagen
Imagen

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.

Imagen
Imagen

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: