Turinys:

Veido atpažinimo išmanioji užraktas su LTE Pi HAT: 4 veiksmai
Veido atpažinimo išmanioji užraktas su LTE Pi HAT: 4 veiksmai

Video: Veido atpažinimo išmanioji užraktas su LTE Pi HAT: 4 veiksmai

Video: Veido atpažinimo išmanioji užraktas su LTE Pi HAT: 4 veiksmai
Video: Veidų atpažinimo terminalas su temperatūros matavimu! Išpakavimas ir trumpa apžvalga /EPISODE 7 2024, Gruodis
Anonim
Veido atpažinimo išmanioji užraktas su LTE Pi HAT
Veido atpažinimo išmanioji užraktas su LTE Pi HAT

Veido atpažinimas vis plačiau naudojamas, mes galime jį panaudoti išmaniajam užraktui sukurti.

1 žingsnis: šiame projekte naudojami dalykai

Techninės įrangos komponentai

  • Raspberry Pi 3 B modelis
  • „Raspberry Pi“fotoaparato modulis V2
  • Giraitė - estafetė
  • „LTE Cat 1 Pi HAT“(Europa)
  • 10,1 colio 1200x1980 HDMI IPS LCD ekranas

Programinės įrangos programos ir internetinės paslaugos

  • WinSCP
  • Užrašinė ++

2 žingsnis: aparatinės įrangos prijungimas

Techninės įrangos ryšys
Techninės įrangos ryšys

Šiame projekte planuojame fotografuoti su „picamera“ir atpažinti juose veidus, tada ekrane parodyti atpažinimo rezultatą. Jei veidai žinomi, atidarykite duris ir siųskite SMS žinute nurodytą telefono numerį, kas atidarė duris.

Taigi jums reikia prijungti fotoaparatą prie „Raspberry Pi“fotoaparato sąsajos ir įdiegti anteną ir „Grove - Relay“prie „LTE Pi“skrybėlės, tada prijunkite HAT prie savo „Pi“. Ekraną galima prijungti prie „Raspberry Pi“HDMI kabeliu, nepamirškite prijungti maitinimo prie ekrano ir „Pi“.

3 žingsnis: programinės įrangos programavimas

Veido atpažinimas

Dėkojame už Adomą Geitgey ir jo veido atpažinimo projektą, „Raspberry Pi“galime naudoti paprasčiausią pasaulyje veido atpažinimo biblioteką. Šie veiksmai parodys, kaip nustatyti veido atpažinimą „Pi“.

Žingsnis 1. Naudokite raspi-config, kad sukonfigūruotumėte fotoaparato ir GPU atmintį.

sudo raspi-config

Pasirinkę sąsajos parinktis - fotoaparatą, kad įjungtumėte „picamera“, tada pasirinkdami „Advanced Options“- „Memory Split“, kad nustatytumėte GPU atmintį, ji turėtų būti pakeista į 64. Baigę iš naujo paleiskite „Raspberry Pi“.

Žingsnis 2. Įdiekite reikalingas bibliotekas.

sudo apt-get atnaujinimas

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

Žingsnis 3. Padarykite „picamerea“palaikymo masyvą.

sudo pip3 įdiegti -atnaujinti picamera [masyvas]

Žingsnis 4. Įdiekite dlib ir veido atpažinimą.

sudo pip3 įdiegti dlib

sudo pip3 įdiegti face_recognition

Žingsnis 5. Atsisiųskite ir paleiskite veido atpažinimo pavyzdį

git klonas-viena šaka

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

PASTABA: Jei turite „ImportError“: libatlas.so.3: negali atidaryti bendro objekto failo: Nėra tokio failo ar katalogo, paleiskite šią komandą, kad ją pataisytumėte.

Estafetė

Kai veido atpažinimas bus paruoštas, galėsime ir toliau pridėti papildomų funkcijų. Mes prijungėme „Grove - Relay“prie „LTE Cat 1 Pi HAT“, tačiau jis naudoja skaitmeninį, o ne „I2C“prievadą.

Tai yra „Raspberry Pi 3B“kaištis, matome SDA kaištį ir SCL kaištį, esančius plokštės kaištyje 3 ir 5.

Vaizdas
Vaizdas

Taigi mes galime valdyti relę išvesdami skaitmeninį signalą į 5 kaištį. Vykdykite „Raspberry Pi“python programą, jei nieko nenutiks, iš relės išgirsite Ti-Ta.

importuoti RPi. GPIO kaip GPIO

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

Taigi čia yra idėja, mes įkeliame žinomus veidus iš aplanko, atpažįstame veidus, užfiksuotus „picamera“, jei veidas aplanke, valdykite relę, kad atrakintumėte duris. Mes galime juos supakuoti į klasę, čia yra load_known_faces () metodas ir unlock () metodas, užbaigtą programą galima atsisiųsti šio straipsnio pabaigoje.

def load_known_faces (savarankiškai):

Žinomi_sifai = os.listdir (savarankiškai._ žinomi_veiksmų keliai) žinomiems veidams žinomuose veiduose: savarankiškai._ žinomi_veidų_pavadinimai.pridėti (žinoma_veidai [0: len (žinomi_veidai) - len ('. jpg')]) žinomi) savarankiškai._ žinomi_veidai_kodavimas.pridėti (veidas_atpažinimas.veido_kodavimas (žinomas_veido_paveikslėlis) [0]) grąžinti len (savarankiškai._ žinomi_veidai_kodavimas) def atblokuoti (savarankiškai): jei savarankiškai._ sutapo.skaičius (tiesa)> 0: GPIO. išvestis (savarankiška._ relės_pin, GPIO. HIGH) print („Durys atidarytos“) time.sleep (5) GPIO.putput (self._ relės_pin, GPIO. LOW) self._ reset_recognise_params () return true self._ retry_count += 1 print ('Prašome bandyti dar kartą … { } '. format (self._ retry_count)) return False

Pagalvokite transcendentiškai, mes galime parodyti paveikslėlį, kuris atpažino, bibliotekos PIL ir matplotlib gali būti naudingos, tarp jų matplotlib reikia įdiegti rankiniu būdu, paleiskite šią komandą savo Raspberry Pi terminale.

sudo pip3 įdiegti matplotlib

Importuokite juos į savo kodą ir pakeiskite, jei blokuojate atrakinimo () metodu, kaip šis:

img = Image.open ('{}/{}. jpg'.format (self._ žinomas_veidų_ kelias, savarankiškas._ žinomas_veidų_vardas [0]))

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

Dabar, jei veidas atpažįstamas, aplanke esanti nuotrauka bus rodoma ekrane.

Vaizdas
Vaizdas

trumpoji žinutė

Kartais norime sužinoti, kas yra mūsų kambaryje, o dabar yra vieta „LTE Cat 1 Pi HAT“. Prijunkite SIM kortelę prie jos ir atlikite toliau nurodytus veiksmus, kad patikrintumėte, ar ji veiks, ar ne.

Žingsnis 1. Įjunkite UART0 programoje „Raspberry Pi“

Naudokite nano norėdami redaguoti config.txt failą /boot

sudo nano /boot/config.txt

pridėkite dtoverlay = pi3-disable-bt prie jo apačios ir išjunkite „hciuart“paslaugą

sudo systemctl išjungti hciuart

tada ištrinkite konsolę = serial0, 115200 į cmdline.txt /boot

sudo nano /boot/cmdline.txt

Kai viskas bus padaryta, turėtumėte iš naujo paleisti „Raspberry Pi“.

Žingsnis 2. Atsisiųskite pavyzdį ir paleiskite.

Atidarykite „Raspberry Pi“terminalą, įveskite šias komandas eilutei po eilutės.

cd ~

git klonas https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py įdiegti cd testą sudo python test01.py

Jei matote šiuos išėjimus savo terminale, „LTE Cat 1 Pi HAT“veikia gerai.

Aptikta 40 kontaktų GPIO antraštė

Įgalinamas CTS0 ir RTS0 GPIO 16 ir 17 rts cts pabudus… modulio pavadinimas: LARA-R211 RSSI: 3

Dabar mes žinojome, kad skrybėlė veikia gerai, kaip ja naudotis SMS žinutėms siųsti? Pirmas dalykas, kurį reikia žinoti, yra tai, kad „Raspberry Pi“bendrauja su HAT per UART siųstas AT komandas. AT komandas galite siųsti į LTE HAT, paleisdami šį kodą „python“

iš „ublox_lara_r2“importo *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Uždaryti derinimo masažą u.debug = False u.sendAT ( )

AT komanda SMS siuntimui yra tokia

AT+CMGF = 1

AT+CMGS =

taigi čia yra _send_sms () metodas:

def _send_sms (savarankiškai):

jei aš._ fononas == Nėra: grąžinkite klaidą, jei užblokuojate save._ atpažinkite_veido_vardus (): jei save._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response), jei pats. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ fononum)): print (self._ ublox.response) if self._ ublox.sendAT (' {} įeiti į kambarį. / x1a'.format (unlocker)): print (self._ ublox.response)

PASTABA: „LTE Cat 1 Pi HAT“biblioteka, parašyta „python2“, kuri nėra labai suderinama su „python3“. Jei norite naudoti ją su veido atpažinimu, atsisiųskite ją iš nuorodos šio straipsnio pabaigoje.

Rekomenduojamas: