Cuprins:

Blocare inteligentă de recunoaștere a feței cu LTE Pi HAT: 4 pași
Blocare inteligentă de recunoaștere a feței cu LTE Pi HAT: 4 pași

Video: Blocare inteligentă de recunoaștere a feței cu LTE Pi HAT: 4 pași

Video: Blocare inteligentă de recunoaștere a feței cu LTE Pi HAT: 4 pași
Video: Huskylens: tutorial de recunoasterea fetei cu micro:bit 2024, Noiembrie
Anonim
Blocare inteligentă de recunoaștere a feței cu LTE Pi HAT
Blocare inteligentă de recunoaștere a feței cu LTE Pi HAT

Recunoașterea feței este din ce în ce mai utilizată, o putem folosi pentru a crea o blocare inteligentă.

Pasul 1: Lucruri utilizate în acest proiect

Componente hardware

  • Raspberry Pi 3 Model B.
  • Raspberry Pi Camera Module V2
  • Grove - Releu
  • LTE Cat 1 Pi HAT (Europa)
  • Afișaj LCD IPS HDMI de 10,1 inci 1200x1980

Aplicații software și servicii online

  • WinSCP
  • Notepad ++

Pasul 2: Conexiune hardware

Conexiune hardware
Conexiune hardware

În acest proiect, intenționăm să facem fotografii cu picamera și să recunoaștem fețele din ele, apoi să afișăm rezultatul recunoașterii pe ecran. Dacă se cunosc fețe, deschide ușa și trimite cine a deschis ușa la numărul de telefon specificat prin SMS.

Deci, trebuie să conectați o cameră la interfața camerei Raspberry Pi și să instalați antena și Grove - Releu la pălăria LTE Pi, apoi conectați HAT la Pi. Ecranul poate fi conectat la Raspberry Pi printr-un cablu HDMI, nu uitați să conectați alimentarea la ecran și la Pi.

Pasul 3: Programare software

Recunoaștere facială

Mulțumim pentru Adam Geitgey și proiectul său de recunoaștere a feței, putem folosi cea mai simplă bibliotecă de recunoaștere a feței din lume pe Raspberry Pi. Următorii pași vă vor arăta cum să configurați recunoașterea feței pe Pi.

Pasul 1. Utilizați raspi-config pentru a configura camera și memoria GPU.

sudo raspi-config

Alegerea Opțiunilor interfeței - Cameră pentru a activa camera foto, apoi alegerea Opțiuni avansate - Memorie împărțită pentru a seta memoria GPU, aceasta ar trebui schimbată la 64. După finalizare, reporniți Raspberry Pi.

Pasul 2. Instalați bibliotecile necesare.

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

Pasul 3. Asigurați picamerea acceptă matrice.

sudo pip3 install --upgrade picamera [array]

Pasul 4. Instalați dlib și recunoașterea feței.

sudo pip3 instalează dlib

sudo pip3 instalează face_recognition

Pasul 5. Descărcați și rulați exemplu de recunoaștere a feței

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

AVIZ: Dacă ați primit ImportError: libatlas.so.3: nu se poate deschide fișierul de obiect partajat: Nu există un astfel de fișier sau director, executați următoarea comandă pentru a remedia problema.

Releu

Când recunoașterea feței este gata, putem continua să adăugăm funcții suplimentare. Am conectat Grove - Relay la LTE Cat 1 Pi HAT, dar utilizează mai degrabă un port digital decât un port I2C.

Acesta este pin-out pentru Raspberry Pi 3B, putem vedea pin SDA și pin SCL situate în pinul 3 și pinul 5 al plăcii.

Imagine
Imagine

Deci, putem controla releul prin ieșiri de semnal digital la pinul 5. Rulați urmărind programul Python în jos pe Raspberry Pi, dacă nimic nu merge prost, veți auzi un Ti-Ta din releu.

importați RPi. GPIO ca GPIO

RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) ieșire GPIO (RELAY_PIN, GPIO. HIGH)

Iată deci ideea, încărcăm fețele cunoscute dintr-un folder, recunoaștem fețele capturate de picamera, dacă fața din folder, releu de control pentru a debloca ușa. Le putem împacheta într-o clasă, aici este metoda load_known_faces () și unlock (), programul finalizat poate fi descărcat la sfârșitul acestui articol.

def load_known_faces (auto):

cunoscut_faces = os.listdir (self._ cunoscut_faces_path) pentru cunoscut_face în cunoscut_faces: self._ cunoscut_faces_name.append (cunoscut_face [0: len (cunoscut_face) - len ('. jpg')]) cunoscut_face_image = face_recognition.load_image_file (self._ cunoscut_faces_) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ known_faces_encoding) def unlock (self): if self._ matched.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Ușa deschisă') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True True._ retry_count + = 1 print ('Vă rugăm să încercați din nou … { } '. format (self._ retry_count)) returnează False

Gândiți-vă transcendental, putem arăta cine a recunoscut, bibliotecile PIL și matplotlib pot fi utile, printre acestea, matplotlib trebuie instalat manual, rulați această comandă în terminalul Raspberry Pi.

sudo pip3 instalează matplotlib

Importați-le în codul dvs. și schimbați dacă blocați în metoda unlock () astfel:

img = Image.open ('{} / {}. jpg'.format (auto._ cunoscut_faces_path, self._ cunoscut_faces_name [0]))

plt.imshow (img) plt.ion () GPIO.output (auto._ relay_pin, GPIO. HIGH) print („Ușa deschisă”) plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

Acum, dacă o față este recunoscută, imaginea din folder va fi afișată pe ecran.

Imagine
Imagine

SMS

Uneori vrem să știm cine este în camera noastră, iar acum există un loc pentru LTE Cat 1 Pi HAT. Conectați o cartelă SIM și urmați pașii în jos pentru a testa dacă funcționează sau nu.

Pasul 1. Activați UART0 în Raspberry Pi

Utilizați nano pentru a edita config.txt în / boot

sudo nano /boot/config.txt

adăugați dtoverlay = pi3-disable-bt în partea de jos a acestuia și dezactivați serviciul hciuart

sudo systemctl dezactivați hciuart

apoi ștergeți consola = serial0, 115200 în cmdline.txt în / boot

sudo nano /boot/cmdline.txt

După ce ați făcut totul, ar trebui să reporniți Raspberry Pi.

Pasul 2. Descărcați exemplul și rulați-l.

Deschideți un terminal pe Raspberry Pi, tastați aceste comenzi pentru a-l rând cu rând.

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

Dacă vedeți aceste ieșiri în terminalul dvs., LTE Cat 1 Pi HAT funcționează bine.

Antet GPIO cu 40 de pini detectat

Activarea CTS0 și RTS0 pe GPIO-urile 16 și 17 rts cts la trezire … numele modulului: LARA-R211 RSSI: 3

Acum știam că HAT funcționează bine, cum să-l folosim pentru a trimite SMS-uri? Primul lucru pe care trebuie să-l știți este că Raspberry Pi comunică cu HAT prin comenzi de trimitere AT de către UART. Puteți trimite comenzi AT către LTE HAT executând acest cod în python

din importul ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Masaj de depanare închisă u.debug = False u.sendAT ( )

Comanda AT pentru trimiterea de SMS-uri este următoarea

AT + CMGF = 1

AT + CMGS =

deci iată metoda _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)): print (self._ ublox.response) if self._ ublox.sendAT (' {} intră în cameră. / x1a'.format (unlocker)): print (self._ ublox.response)

ANUNȚ: Biblioteca LTE Cat 1 Pi HAT scrisă de python2, care nu este foarte compatibilă cu python3, dacă doriți să o utilizați cu recunoașterea feței, vă rugăm să o descărcați de pe linkul de la sfârșitul acestui articol.

Recomandat: