Sadržaj:

Smart Lock za prepoznavanje lica sa LTE Pi HAT: 4 koraka
Smart Lock za prepoznavanje lica sa LTE Pi HAT: 4 koraka

Video: Smart Lock za prepoznavanje lica sa LTE Pi HAT: 4 koraka

Video: Smart Lock za prepoznavanje lica sa LTE Pi HAT: 4 koraka
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembar
Anonim
Smart Lock za prepoznavanje lica sa LTE Pi HAT
Smart Lock za prepoznavanje lica sa LTE Pi HAT

Prepoznavanje lica sve se više koristi, možemo ga koristiti za izradu pametne brave.

Korak 1: Stvari koje se koriste u ovom projektu

Hardverske komponente

  • Raspberry Pi 3 Model B
  • Modul kamere Raspberry Pi V2
  • Grove - Relej
  • LTE Cat 1 Pi HAT (Evropa)
  • 10.1 inčni HDMI IPS LCD ekran rezolucije 1200x1980

Softverske aplikacije i mrežne usluge

  • WinSCP
  • Notepad ++

Korak 2: Povezivanje hardvera

Hardverska veza
Hardverska veza

U ovom projektu planiramo snimiti slike s pikamerom i prepoznati lica na njima, a zatim prikazati rezultat prepoznavanja na ekranu. Ako su poznata lica, otvorite vrata i putem SMS -a pošaljite ko je otvorio vrata na navedeni broj telefona.

Dakle, morate spojiti kameru na interfejs kamere Raspberry Pi, instalirati antenu i Grove - relej na LTE Pi šešir, zatim priključiti HAT na svoj Pi. Zaslon se može povezati s Raspberry Pi putem HDMI kabela, ne zaboravite priključiti napajanje na zaslon i Pi.

Korak 3: Programiranje softvera

Prepoznavanje lica

Hvala Adamu Geitgeyu i njegovom projektu prepoznavanja lica, možemo koristiti najjednostavniju svjetsku biblioteku za prepoznavanje lica na Raspberry Pi. Sljedeći koraci pokazat će vam kako postaviti prepoznavanje lica na Pi.

Korak 1. Pomoću raspi-config konfigurirajte kameru i GPU memoriju.

sudo raspi-config

Odabirom opcija sučelja - Kamera za omogućavanje kamere, zatim odabirom Napredne opcije - Podjela memorije za postavljanje GPU memorije, treba je promijeniti na 64. Nakon završetka, ponovo pokrenite svoj Raspberry Pi.

Korak 2. Instalirajte potrebne biblioteke.

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

Korak 3. Napravite niz za podršku picamerea.

sudo pip3 install --upgrade picamera [niz]

Korak 4. Instalirajte dlib i prepoznavanje lica.

sudo pip3 install dlib

sudo pip3 instalirajte face_recognition

Korak 5. Preuzmite i pokrenite primjer prepoznavanja lica

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

OBAVIJEST: Ako imate ImportError: libatlas.so.3: ne može otvoriti datoteku dijeljenih objekata: Nema takve datoteke ili direktorija, pokrenite sljedeću naredbu da biste je popravili.

Relej

Kad prepoznavanje lica bude spremno, možemo nastaviti dodavati dodatne funkcije. Povezali smo Grove - Relej na LTE Cat 1 Pi HAT, ali koristi digitalni port umjesto I2C priključka.

Ovo je pin-out za Raspberry Pi 3B, možemo vidjeti SDA pin i SCL pin smješteni u pin 3 i pin 5 ploče.

Image
Image

Tako možemo kontrolirati relej izlazeći digitalni signal na pin 5. Pokrenite slijedeći python program na vašem Raspberry Pi-u, ako ništa ne pođe po redu, od releja ćete čuti Ti-Ta.

uvezite RPi. GPIO kao GPIO

RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.izlaz (RELAY_PIN, GPIO. HIGH)

Evo ideje, učitavamo poznata lica iz mape, prepoznajemo lica snimljena pikamerom, ako je lice u mapi, upravljački relej za otključavanje vrata. Možemo ih pakirati u klasu, evo metode load_known_faces () i unlock (), dovršeni program se može preuzeti na kraju ovog članka.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) za known_face u known_faces: self._ known_faces_name.append (known_face [0: len (known_face) - len ('. jpg')]) known_face_image = face_recognition.load_image_file (self._ known_face_p) 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 ('Vrata su otvorena') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Molimo pokušajte ponovo … { } '. format (self._ retry_count)) return False

Razmislite transcendentalno, možemo pokazati sliku ko je prepoznao, biblioteke PIL i matplotlib mogu biti od pomoći, među njima, matplotlib treba instalirati ručno, pokrenite ovu naredbu na vašem terminalu Raspberry Pi.

sudo pip3 install matplotlib

Uvezite ih u svoj kôd i promijenite metodu blokade u unlock () ovako:

img = Image.open ('{}/{}. jpg'.format (self._ known_faces_path, self._ known_faces_name [0]))

plt.imshow (img) plt.ion () GPIO.izlaz (self._ relay_pin, GPIO. HIGH) ispis ('Vrata su otvorena') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () vraća True

Sada, ako je lice prepoznato, slika u mapi će se prikazati na ekranu.

Image
Image

SMS

Ponekad želimo znati ko je u našoj sobi, a sada postoji mjesto za LTE Cat 1 Pi HAT. Priključite SIM karticu na nju i slijedite dolje navedene korake da biste provjerili hoće li raditi ili ne.

Korak 1. Omogućite UART0 u Raspberry Pi

Koristite nano za uređivanje config.txt u /boot

sudo nano /boot/config.txt

na dno dodajte dtoverlay = pi3-disable-bt i onemogućite hciuart uslugu

sudo systemctl onemogućiti hciuart

zatim izbrišite console = serial0, 115200 u cmdline.txt u /boot

sudo nano /boot/cmdline.txt

Nakon što sve učinite, trebali biste ponovno pokrenuti Raspberry Pi.

Korak 2. Preuzmite primjer i pokrenite ga.

Otvorite terminal na svom Raspberry Pi -u, upišite mu ovu naredbu red po red.

cd ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py instalirajte cd test sudo python test01.py

Ako vidite ove izlaze na svom terminalu, LTE Cat 1 Pi HAT radi dobro.

Otkriveno 40-pinsko GPIO zaglavlje

Omogućavanje CTS0 i RTS0 na GPIO-ovima 16 i 17 rts cts pri buđenju … naziv modula: LARA-R211 RSSI: 3

Sada smo znali da HAT dobro radi, kako ga koristiti za slanje SMS -a? Prvo što trebate znati je da Raspberry Pi komunicira s HAT -om putem slanja AT naredbi putem UART -a. Možete poslati AT naredbe na LTE HAT pokretanjem ovog koda u pythonu

iz ublox_lara_r2 import *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Zatvori otklanjanje grešaka u.debug = False u.sendAT ('')

AT naredba za slanje SMS -a je sljedeća

AT+CMGF = 1

AT+CMGS =

pa evo metode _send_sms ():

def _send_sms (self):

if self._ phonenum == None: return False za otključavanje u self._ prepoznati_ime_nazive (): if self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response) if self. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ telefonski broj)): ispis (self._ ublox.response) ako self._ ublox.sendAT (' {} uđite u sobu. / x1a'.format (otključavanje)): print (self._ ublox.response)

OBAVIJEST: Knjižnica LTE Cat 1 Pi HAT -a koju je napisao python2, koja nije baš kompatibilna s python3, ako je želite koristiti za prepoznavanje lica, preuzmite je sa veze s kraja ovog članka.

Preporučuje se: