Sisällysluettelo:

Kasvontunnistus Smart Lock LTE Pi HAT: 4 vaihetta
Kasvontunnistus Smart Lock LTE Pi HAT: 4 vaihetta

Video: Kasvontunnistus Smart Lock LTE Pi HAT: 4 vaihetta

Video: Kasvontunnistus Smart Lock LTE Pi HAT: 4 vaihetta
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Marraskuu
Anonim
Kasvojentunnistus Smart Lock LTE Pi HAT -ominaisuudella
Kasvojentunnistus Smart Lock LTE Pi HAT -ominaisuudella

Kasvojentunnistusta käytetään yhä laajemmin, voimme käyttää sitä älykkään lukon luomiseen.

Vaihe 1: Tässä projektissa käytetyt asiat

Laitteiston osat

  • Raspberry Pi 3 Malli B
  • Raspberry Pi -kameramoduuli V2
  • Grove - Viesti
  • LTE Cat 1 Pi HAT (Eurooppa)
  • 10,1 tuuman 1200x1980 HDMI IPS LCD -näyttö

Ohjelmistosovellukset ja verkkopalvelut

  • WinSCP
  • Muistio ++

Vaihe 2: Laitteistoyhteys

Laitteistoyhteys
Laitteistoyhteys

Tässä projektissa aiomme ottaa kuvia pikakameralla ja tunnistaa niissä kasvot ja näyttää tunnistustuloksen näytöllä. Jos kasvot ovat tiedossa, avaa ovi ja lähetä tekstiviestillä määritettyyn puhelinnumeroon kuka avasi oven.

Joten sinun on liitettävä kamera Raspberry Pi -kameran käyttöliittymään ja asennettava antenni ja Grove - Rele LTE Pi -hattuun ja liitettävä HAT Pi -laitteeseen. Näyttö voidaan liittää Raspberry Pi -laitteeseen HDMI -kaapelilla, älä unohda kytkeä virtaa näyttöön ja Pi: hen.

Vaihe 3: Ohjelmointi

Kasvojen tunnistus

Kiitos Adam Geitgeystä ja hänen kasvojentunnistusprojektistaan, voimme käyttää maailman yksinkertaisinta kasvojentunnistuskirjastoa Raspberry Pi: llä. Seuraavat vaiheet näyttävät, kuinka voit määrittää kasvojentunnistuksen Pi -laitteeseen.

Vaihe 1. Määritä kameran ja näytönohjaimen muisti raspi-config-toiminnolla.

sudo raspi-config

Kun valitset käyttöliittymän vaihtoehdot - Kamera ottaaksesi pikakameran käyttöön, valitse sitten Lisäasetukset - Muistijakaja asettaaksesi GPU -muistin. Muuta se 64. Kun olet valmis, käynnistä Raspberry Pi uudelleen.

Vaihe 2. Asenna tarvittavat kirjastot.

sudo apt-get päivitys

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

Vaihe 3. Tee picamerea -tuki.

sudo pip3 install -päivitä picamera [array]

Vaihe 4. Asenna dlib ja kasvojentunnistus.

sudo pip3 asenna dlib

sudo pip3 asenna face_recognition

Vaihe 5. Lataa ja suorita esimerkki kasvojentunnistuksesta

git klooni-yksi haara

cd./face_recognition/esimerkit python3 facerec_on_raspberry_pi.py

VAROITUS: Jos sinulla on ImportError: libatlas.so.3: ei voi avata jaetun objektin tiedostoa: Ei tällaista tiedostoa tai hakemistoa, korjaa se suorittamalla seuraava komento.

Rele

Kun kasvojentunnistus on valmis, voimme jatkaa lisäominaisuuksien lisäämistä. Yhdistimme Grove - releen LTE Cat 1 Pi HAT -laitteeseen, mutta se käyttää digitaalista porttia I2C -portin sijaan.

Tämä on Raspberry Pi 3B: n pin-out, voimme nähdä SDA-nastan ja SCL-tapin, jotka sijaitsevat levyn nastoissa 3 ja 5.

Kuva
Kuva

Voimme siis ohjata relettä antamalla digitaalisen signaalin nastaan 5. Suorita Raspberry Pi -laitteen python-ohjelma, jos mikään ei mene pieleen, kuulet releen Ti-Ta.

Tuo RPi. GPIO GPIO: ksi

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

Joten tässä on idea, lataamme tunnetut kasvot kansiosta, tunnistamme picamera -kameran ottamat kasvot, jos kansion kasvot, ohjaa rele oven avaamiseksi. Voimme pakata ne luokkaan, tässä on load_known_faces () -menetelmä ja unlock () -metodi, valmis ohjelma voidaan ladata tämän artikkelin lopussa.

def load_known_faces (itse):

tunnetut_kasvot = os.listdir (itse._ tunnetut_käytäntöpolut) tunnetuille kasvoille tunnetuissa käyttöliittymissä: itse._ tunnetut kasvot_nimi.append (tunnetut_kasvot [0: len (tunnetut_kasvot) - len ('. jpg')]) tunnetut kasvot -kuvat = kasvotunnistus.latauskuvakuvatiedostot (tunnetut) itse._ tunnetut_liittymät_koodaus.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 ('Ovi auki') time.sleep (5) GPIO. output (self._ rele_pin, GPIO. LOW) self._ reset_recognise_params () return true self._ retry_count += 1 print ('Yritä uudelleen… { } '. format (self._ retry_count)) return False

Ajattele transsendenttisesti, voimme näyttää kuvan, kuka tunnisti, kirjastot PIL ja matplotlib voivat olla hyödyllisiä, muun muassa matplotlib on asennettava manuaalisesti, suorita tämä komento Raspberry Pi -päätteessäsi.

sudo pip3 asenna matplotlib

Tuo ne koodiin ja muuta, jos estät lukituksen avausmenetelmässä () seuraavasti:

img = Image.open ('{}/{}. jpg'.format (itse._ tunnetut_käyttöpolut, itse._ tunnetut_käyttäjien_nimet [0]))

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

Jos kasvot tunnistetaan, kansion kuva näytetään näytöllä.

Kuva
Kuva

tekstiviesti

Joskus haluamme tietää, kuka on huoneessamme, ja nyt on paikka LTE Cat 1 Pi HATille. Liitä SIM -kortti siihen ja testaa toimiiko se noudattamalla vaiheita.

Vaihe 1. Ota UART0 käyttöön Raspberry Pi: ssä

Käytä nanoa muokataksesi config.txt -tiedostoa /boot

sudo nano /boot/config.txt

lisää dtoverlay = pi3-disable-bt sen pohjaan ja poista hciuart-palvelu käytöstä

sudo systemctl poista hciuart käytöstä

poista sitten konsoli = serial0, 115200 cmdline.txt -tiedostossa /boot

sudo nano /boot/cmdline.txt

Kun kaikki on tehty, sinun on käynnistettävä Raspberry Pi uudelleen.

Vaihe 2. Lataa esimerkki ja suorita se.

Avaa pääte Raspberry Pi -laitteellasi, kirjoita nämä komennot sille rivi riviltä.

cd ~

git-klooni https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd cd ublox_lara_r2_pi_hat sudo python setup.py asenna cd-testi sudo python test01.py

Jos näet nämä lähdöt päätelaitteessasi, LTE Cat 1 Pi HAT toimii hyvin.

40-nastainen GPIO-otsikko havaittu

CTS0: n ja RTS0: n ottaminen käyttöön GPIO-laitteissa 16 ja 17 rts cts herätessä… moduulin nimi: LARA-R211 RSSI: 3

Nyt tiesimme, että HAT toimii hyvin, miten sitä käytetään tekstiviestien lähettämiseen? Ensimmäinen asia, joka sinun on tiedettävä, on, että Raspberry Pi kommunikoi HAT: n kanssa UART: n lähettämien AT -komentojen kautta. Voit lähettää AT -komentoja LTE HAT: lle suorittamalla tämän koodin pythonissa

ublox_lara_r2 -tuonnista *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Sulje virheenkorjaus hieronta u.debug = False u.sendAT ('')

AT -komento tekstiviestien lähettämiseen on seuraava

AT+CMGF = 1

AT+CMGS =

joten tässä on _send_sms () -menetelmä:

def _send_sms (itse):

jos itse._ phonenum == Ei mitään: palauta False for unlocker in self._ tunnista_kasvun_nimet (): if self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response) if self. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum)): tulosta (self._ ublox.response) jos itse._ ublox.sendAT (' {} astu huoneeseen. / x1a'.format (lukituksen avaaja)): tulosta (itse._ ublox.response)

HUOMAUTUS: LTE Cat 1 Pi HAT: n kirjasto, jonka on kirjoittanut python2, joka ei ole kovin yhteensopiva python3: n kanssa. Jos haluat käyttää sitä kasvojentunnistuksen kanssa, lataa se tämän artikkelin lopussa olevasta linkistä.

Suositeltava: