Taula de continguts:
- Pas 1: coses utilitzades en aquest projecte
- Pas 2: connexió de maquinari
- Pas 3: programació de programari
- Pas 4: Fet
Vídeo: Smart Lock de reconeixement facial amb LTE Pi HAT: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
El reconeixement facial és cada cop més utilitzat, el podem utilitzar per fer un pany intel·ligent.
Pas 1: coses utilitzades en aquest projecte
Components de maquinari
- Raspberry Pi 3 Model B.
- Mòdul de càmera Raspberry Pi V2
- Grove - Relleu
- LTE Cat 1 Pi HAT (Europa)
- Pantalla LCD HDMI IPS de 10,1 polzades 1200x1980
Aplicacions de programari i serveis en línia
- WinSCP
- Bloc de notes ++
Pas 2: connexió de maquinari
En aquest projecte, tenim previst fer fotos amb una càmera fotogràfica i reconèixer les cares que hi apareixen, i després mostrar el resultat del reconeixement a la pantalla. Si es coneixen les cares, obriu la porta i envieu qui ha obert la porta al número de telèfon especificat per SMS.
Per tant, heu de connectar una càmera a la interfície de la càmera de Raspberry Pi i instal·lar l’antena i el relleu Grove - Relay al barret LTE Pi i, a continuació, connecteu HAT al vostre Pi. La pantalla es pot connectar a Raspberry Pi mitjançant un cable HDMI, no oblideu connectar l’alimentació a la pantalla i a Pi.
Pas 3: programació de programari
Reconeixement facial
Gràcies per Adam Geitgey i el seu projecte de reconeixement facial, podem utilitzar la biblioteca de reconeixement facial més senzilla del món a Raspberry Pi. Els passos següents us mostraran com configurar el reconeixement facial a Pi.
Pas 1. Utilitzeu raspi-config per configurar la memòria de la càmera i la GPU.
sudo raspi-config
Triar Opcions d’interfície: càmera per habilitar la càmera i, a continuació, triar Opcions avançades - Dividir memòria per configurar la memòria GPU, s’ha de canviar a 64. Després d’acabar, reinicieu el Raspberry Pi.
Pas 2. Instal·leu les biblioteques necessàries.
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
Pas 3. Feu que picamerea admeti matriu.
sudo pip3 install --upgrade picamera [array]
Pas 4. Instal·leu dlib i reconeixement facial.
sudo pip3 instal·la dlib
sudo pip3 instal·la reconeixement facial
Pas 5. Baixeu i executeu un exemple de reconeixement facial
git clone --single-branch
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
AVÍS: Si teniu ImportError: libatlas.so.3: no es pot obrir un fitxer d’objectes compartits: no hi ha cap fitxer ni directori, executeu l’ordre següent per solucionar-lo.
Relleu
Quan el reconeixement facial estigui a punt, podem continuar afegint funcions addicionals. Hem connectat Grove - Relay a LTE Cat 1 Pi HAT, però utilitza el port digital en lloc del port I2C.
Es tracta d’un pin-out per a Raspberry Pi 3B, podem veure el pin SDA i el pin SCL ubicats als pins 3 i 5 del tauler.
Per tant, podem controlar el relé mitjançant les sortides del senyal digital al pin 5. Executeu el programa Python del Raspberry Pi cap avall, si res no surt malament, sentireu un Ti-Ta del relé.
importar RPi. GPIO com a GPIO
RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) sortida GPIO (RELAY_PIN, GPIO. HIGH)
Així que aquí teniu la idea, carreguem les cares conegudes d’una carpeta, reconeixem les cares capturades per la càmera fotogràfica, si la cara de la carpeta, el relé de control per desbloquejar la porta. Els podem empaquetar a una classe, aquí teniu el mètode load_known_faces () i el mètode unlock (); el programa complet es pot descarregar al final d’aquest article.
cares_de_conegudes_carregades (auto):
cares_ conegudes = os.listdir (auto._ camí_cares conegudes) per a cara_ coneguda a cares conegudes: auto._ nom_cares conegudes.append (cara_coneguda [0: len (cara_coneguda) - len ('. jpg')]) imatge_cara_coneguda = reconeixement_carregat.arxiu_imatge_carregat (auto._cares_ conegudes_) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ known_faces_encoding) def unlock (self): si self._ coincideix.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Porta oberta') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True true._ retry_count + = 1 print ('Torneu-ho a provar … { } '. Format (self._ retry_count)) retorna False
Penseu de manera transcendental, podem mostrar a la imatge qui ha reconegut, les biblioteques PIL i matplotlib poden ser útils, entre elles, cal instal·lar matplotlib manualment, executeu aquesta ordre al terminal del vostre Raspberry Pi.
sudo pip3 instal·la matplotlib
Importeu-los al vostre codi i canvieu si bloqueja el mètode unlock () com aquest:
img = Image.open ('{} / {}. jpg'.format (auto._ camí_de_cares conegut, auto._ nom_cares_ conegut [0]))
plt.imshow (img) plt.ion () GPIO.output (auto._ relay_pin, GPIO. HIGH) print ('Porta oberta') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True
Ara, si es reconeix una cara, la imatge de la carpeta es mostrarà a la pantalla.
SMS
De vegades volem saber qui hi ha a la nostra habitació i ara hi ha un lloc per a LTE Cat 1 Pi HAT. Connecteu-hi una targeta SIM i seguiu els passos per comprovar si funciona o no.
Pas 1. Activeu UART0 a Raspberry Pi
Utilitzeu nano per editar config.txt a / boot
sudo nano /boot/config.txt
afegiu dtoverlay = pi3-disable-bt a la part inferior i desactiveu el servei hciuart
sudo systemctl desactiva hciuart
a continuació, suprimiu console = serial0, 115200 a cmdline.txt a / boot
sudo nano /boot/cmdline.txt
Després de tot el que heu fet, heu de reiniciar el Raspberry Pi.
Pas 2. Descarregueu l'exemple i executeu-lo.
Obriu un terminal al vostre Raspberry Pi, escriviu-los aquesta línia per línia.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py install cd test sudo python test01.py
Si veieu aquestes sortides al vostre terminal, el LTE Cat 1 Pi HAT funciona bé.
S'ha detectat una capçalera GPIO de 40 pins
Habilitació de CTS0 i RTS0 en GPIO de 16 i 17 rts cts en despertar … nom del mòdul: LARA-R211 RSSI: 3
Ara sabíem que el HAT funciona bé, com utilitzar-lo per enviar SMS? El primer que heu de saber és que el Raspberry Pi es comunica amb el HAT mitjançant comandes d’enviament AT per part d’UART. Podeu enviar comandes AT a LTE HAT executant aquest codi en python
des de la importació ublox_lara_r2 *
u = Ublox_lara_r2 () u.initialize () u.reset_power () # Massatge de depuració tancada u.debug = Fals u.sendAT ( )
La comanda AT per enviar SMS és la següent
AT + CMGF = 1
AT + CMGS =
així que aquí teniu el mètode _send_sms ():
def _send_sms (auto):
if self._ phonenum == None: return False for unlocker in 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)): imprimeix (self._ ublox.response) si self._ ublox.sendAT (' {} entra a la sala. / x1a'.format (unlocker)): print (auto._ ublox.response)
AVÍS: La biblioteca de LTE Cat 1 Pi HAT escrita per python2, que no és molt compatible amb python3, si la voleu utilitzar amb reconeixement facial, descarregueu-la des de l'enllaç del final d'aquest article.
Recomanat:
Mirall de reconeixement facial amb compartiment secret: 15 passos (amb imatges)
Mirall de reconeixement facial amb compartiment secret: sempre he estat intrigat pels compartiments secrets sempre creatius que s’utilitzen en històries, pel·lícules i similars. Per tant, quan vaig veure el Concurs de compartiments secrets, vaig decidir experimentar jo mateixa amb la idea i fer un mirall d’aspecte normal que obrís un
Timbre amb reconeixement facial: 7 passos (amb imatges)
Timbre amb reconeixement facial: motivació Recentment, al meu país hi ha hagut una onada de robatoris dirigits a persones grans a casa seva. Normalment, l’accés el concedeixen els mateixos ocupants, ja que els visitants els convencen que són cuidadors / infermeres. És
Reconeixement facial ESP32 CAM amb suport MQTT - AI-Thinker: 4 passos
Reconeixement facial ESP32 CAM amb suport MQTT | AI-Thinker: Hola, volia compartir el meu codi per a un projecte si necessitava tenir una CAM ESP amb reconeixement facial que pogués enviar dades a MQTT. Doncs bé … després de potser 7 hores buscant exemples de codis múltiples i buscant què és què, tinc finis
Sistema de seguretat de reconeixement facial per a una nevera amb Raspberry Pi: 7 passos (amb imatges)
Sistema de seguretat de reconeixement facial per a un refrigerador amb Raspberry Pi: navegant per Internet he descobert que els preus dels sistemes de seguretat varien de 150 a 600 $ i més, però no totes les solucions (fins i tot les molt cares) es poden integrar amb altres eines intel·ligents a casa! Per exemple, no es pot configurar
Reconeixement facial en temps real: un projecte d'extrem a extrem: 8 passos (amb imatges)
Reconeixement facial en temps real: un projecte de punta a punta: en el meu darrer tutorial que explorava OpenCV, vam aprendre EL SEGUIMENT AUTOMÀTIC D'OBJECTES DE VISIÓ. Ara utilitzarem la nostra PiCam per reconèixer les cares en temps real, com podeu veure a continuació: Aquest projecte es va fer amb aquest fantàstic "Open Source Computer Vision Library & qu