INHOUDSOPGAWE:

Gesigsherkenning Slim slot met LTE Pi -hoed: 4 stappe
Gesigsherkenning Slim slot met LTE Pi -hoed: 4 stappe

Video: Gesigsherkenning Slim slot met LTE Pi -hoed: 4 stappe

Video: Gesigsherkenning Slim slot met LTE Pi -hoed: 4 stappe
Video: The DOOGEE X97 PRO: The Perfect Smartphone for Those Who Want to Get the Most Out of Their Money 2024, November
Anonim
Gesigsherkenning slim slot met LTE Pi -hoed
Gesigsherkenning slim slot met LTE Pi -hoed

Gesigsherkenning word meer en meer algemeen gebruik; ons kan dit gebruik om 'n slim slot te maak.

Stap 1: Dinge wat in hierdie projek gebruik word

Hardeware komponente

  • Framboos Pi 3 Model B
  • Framboos Pi -kameramodule V2
  • Grove - aflos
  • LTE Cat 1 Pi HAT (Europa)
  • 10,1 duim 1200x1980 HDMI IPS LCD -skerm

Sagteware -programme en aanlyndienste

  • WinSCP
  • Notepad ++

Stap 2: Hardewareverbinding

Hardewareverbinding
Hardewareverbinding

In hierdie projek is ons van plan om met Picamera foto's te neem en gesigte daarin te herken, en dan 'n herkenningsresultaat op die skerm weer te gee. As die gesigte bekend is, maak die deur oop en stuur wie die deur oopgemaak het na die gespesifiseerde telefoonnommer per SMS.

U moet dus 'n kamera aan die kamera -koppelvlak van Raspberry Pi koppel, antenna en Grove installeer - Relay na LTE Pi -hoed, en koppel dan HAT aan op u Pi. Die skerm kan via 'n HDMI -kabel aan die Raspberry Pi gekoppel word; moenie vergeet om die krag aan u skerm en Pi te koppel nie.

Stap 3: sagteware programmering

Gesigsherkenning

Dankie vir Adam Geitgey en sy gesigsherkenningsprojek, ons kan die eenvoudigste biblioteek vir gesigsherkenning ter wêreld op Raspberry Pi gebruik. Die volgende stappe sal u wys hoe u gesigsherkenning op Pi kan instel.

Stap 1. Gebruik raspi-config om kamera- en GPU-geheue op te stel.

sudo raspi-config

As u koppelvlakopsies kies - kamera om die picamera in staat te stel, kies dan Advanced Options - Memory Split om GPU -geheue in te stel, moet dit verander word na 64. Herlaai u Raspberry Pi nadat u klaar is.

Stap 2. Installeer vereiste 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

Stap 3. Maak picamerea ondersteun skikking.

sudo pip3 installeer -upgrade picamera [skikking]

Stap 4. Installeer dlib en gesigherkenning.

sudo pip3 installeer dlib

sudo pip3 installeer face_recognition

Stap 5. Laai en voer voorbeeld van gesigsherkenning af

git-kloon-enkele tak

cd./face_recognition/exempels python3 facerec_on_raspberry_pi.py

KENNISGEWING: As u ImportError: libatlas.so.3 gekry het: kan die gedeelde voorwerplêer nie oopgemaak word nie: daar is nie so 'n lêer of gids nie, voer die volgende opdrag uit om dit reg te stel.

Relay

As gesigsherkenning gereed is, kan ons voortgaan om ekstra funksies by te voeg. Ons het Grove - Relay gekoppel aan LTE Cat 1 Pi HAT, maar dit gebruik eerder digitale poort as I2C -poort.

Dit is pin-out vir Raspberry Pi 3B; ons kan die SDA-pen en SCL-pen in die pen 3 en pen 5 van die bord sien.

Beeld
Beeld

Sodat ons die relais kan beheer deur die digitale sein na pin 5 te stuur. Begin die luislangprogram op u Raspberry Pi, as niks verkeerd loop nie, hoor u 'n Ti-Ta van die relais.

voer RPi. GPIO in as GPIO

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

So hier is die idee: ons laai bekende gesigte uit 'n vouer, herken gesigte wat deur fotokamera vasgevang is, as die gesig in die vouer, bedieningsrelais die deur oopmaak. Ons kan dit in 'n klas verpak, hier is die load_known_faces () metode en die unlock () metode, die voltooide program kan aan die einde van hierdie artikel afgelaai word.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) vir known_face in 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_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 ('Deur oopgemaak') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Probeer asseblief weer … { } '. formaat (self._ retry_count)) terugkeer Onwaar

Dink transendentaal, ons kan die prentjie wys wie die biblioteke PIL en matplotlib kan help, onder andere moet matplotlib handmatig geïnstalleer word, voer hierdie opdrag uit in die terminale van u Raspberry Pi.

sudo pip3 installeer matplotlib

Voer dit in u kode in, en verander as u die ontsluitingsmetode () blokkeer soos volg:

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

plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Deur oopgemaak') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True

As 'n gesig herken word, word die prentjie in die gids op die skerm vertoon.

Beeld
Beeld

SMS

Soms wil ons weet wie in ons kamer is, en nou is daar 'n plek vir LTE Cat 1 Pi HAT. Koppel 'n SIM -kaart daaraan en volg die stappe om te toets of dit werk of nie.

Stap 1. Aktiveer UART0 in Raspberry Pi

Gebruik nano om config.txt in /boot te wysig

sudo nano /boot/config.txt

voeg dtoverlay = pi3-disable-bt onderaan, en skakel hciuart-diens uit

sudo systemctl skakel hciuart uit

verwyder dan console = serial0, 115200 in cmdline.txt in /boot

sudo nano /boot/cmdline.txt

Nadat alles gedoen is, moet u u Raspberry Pi herlaai.

Stap 2. Laai voorbeeld af en voer dit uit.

Maak 'n terminale op u Raspberry Pi oop, tik hierdie opdrag hier reël vir reël.

cd ~

git kloon https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py installeer cd toets sudo python test01.py

As u hierdie uitsette in u terminale sien, werk die LTE Cat 1 Pi HAT goed.

'N 40-pins GPIO-opskrif is opgespoor

Aktiveer CTS0 en RTS0 op GPIO's 16 en 17 rts cts by wakker word … module naam: LARA-R211 RSSI: 3

Nou het ons geweet dat die HAT goed werk, hoe om dit te gebruik om SMS te stuur? Die eerste ding wat u moet weet, is dat die Raspberry Pi met die HAT kommunikeer via stuur AT -opdragte deur UART. U kan AT -opdragte na LTE HAT stuur deur hierdie kode in python uit te voer

vanaf ublox_lara_r2 invoer *

u = Ublox_lara_r2 () u.initialiseer () u.reset_power () # Sluit ontfoutingsmassage u.debug = Onwaar u.sendAT ('')

Die AT -opdrag vir die stuur van SMS is soos volg

AT+CMGF = 1

AT+CMGS =

so hier is _send_sms () metode:

def _send_sms (self):

if self._ phonenum == None: return Onwaar vir unlocker in self._ herken_face_name (): as self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): druk (self._ ublox.response) as self. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum)): druk (self._ ublox.response) as self._ ublox.sendAT (' {} die kamer betree. / x1a'.format (ontgrendelaar)): druk (self._ ublox.response)

KENNISGEWING: Die biblioteek van die LTE Cat 1 Pi HAT, geskryf deur python2, wat nie baie versoenbaar is met python3 nie, as u dit met gesigherkenning wil gebruik, laai dit dan van die skakel af aan die einde van hierdie artikel.

Aanbeveel: