Obsah:

Inteligentný zámok na rozpoznanie tváre s LTE Pi HAT: 4 kroky
Inteligentný zámok na rozpoznanie tváre s LTE Pi HAT: 4 kroky

Video: Inteligentný zámok na rozpoznanie tváre s LTE Pi HAT: 4 kroky

Video: Inteligentný zámok na rozpoznanie tváre s LTE Pi HAT: 4 kroky
Video: Простое и глубокое введение в Самоисследование от Шри Муджи 2024, November
Anonim
Inteligentný zámok na rozpoznanie tváre s LTE Pi HAT
Inteligentný zámok na rozpoznanie tváre s LTE Pi HAT

Rozpoznávanie tváre je stále viac používané, môžeme ho použiť na výrobu inteligentného zámku.

Krok 1: Veci použité v tomto projekte

Hardvérové komponenty

  • Raspberry Pi 3 Model B
  • Modul kamery Raspberry Pi V2
  • Grove - relé
  • LTE Cat 1 Pi HAT (Európa)
  • 10,1 palcový 1 200 x 1980 HDMI IPS LCD displej

Softvérové aplikácie a online služby

  • WinSCP
  • Poznámkový blok ++

Krok 2: Pripojenie hardvéru

Hardvérové pripojenie
Hardvérové pripojenie

V tomto projekte plánujeme fotografovať s pikamerou a rozpoznávať v nich tváre a potom na obrazovke zobraziť výsledok rozpoznania. Ak sú známe tváre, otvorte dvere a pošlite, kto dvere otvoril, na SMS na uvedené telefónne číslo.

Musíte teda pripojiť kameru k rozhraniu kamery Raspberry Pi a nainštalovať anténu a klobúk Grove - Relay to LTE Pi, potom k svojmu Pi pripojiť HAT. Obrazovku je možné k Raspberry Pi pripojiť pomocou kábla HDMI, nezabudnite však pripojiť napájanie k obrazovke a Pi.

Krok 3: Programovanie softvéru

Rozpoznávanie tváre

Vďaka Adamovi Geitgeyovi a jeho projektu Face Recognition, môžeme na Raspberry Pi používať najjednoduchšiu knižnicu rozpoznávania tvárí na svete. Nasledujúce kroky vám ukážu, ako nastaviť rozpoznávanie tváre na Pi.

Krok 1. Na konfiguráciu pamäte fotoaparátu a GPU použite konfiguráciu raspi-config.

sudo raspi-config

Ak chcete zapnúť pikameru, vyberte položku Možnosti rozhrania - Fotoaparát a potom vyberte položku Rozšírené možnosti - Rozdelenie pamäte na nastavenie pamäte GPU. Mali by ste ju zmeniť na 64. Po dokončení reštartujte počítač Raspberry Pi.

Krok 2. Nainštalujte požadované knižnice.

sudo apt-get aktualizácia

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

Krok 3. Vytvorte pole picamerea, ktoré podporuje pole.

sudo pip3 install --upgrade picamera [pole]

Krok 4. Nainštalujte dlib a rozpoznávanie tváre.

sudo pip3 nainštalujte dlib

sudo pip3 nainštalujte face_recognition

Krok 5. Stiahnite si a spustite príklad rozpoznávania tváre

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

UPOZORNENIE: Ak máte ImportError: libatlas.so.3: nemožno otvoriť súbor zdieľaného objektu: Žiadny takýto súbor alebo adresár, spustite nasledujúci príkaz a opravte ho.

Relé

Keď je rozpoznávanie tváre pripravené, môžeme pokračovať v pridávaní ďalších funkcií. Pripojili sme Grove - Relay k LTE Cat 1 Pi HAT, ale používa skôr digitálny port ako I2C port.

Toto je pin-out pre Raspberry Pi 3B, môžeme vidieť pin SDA a SCL pin umiestnený na pine 3 a pine dosky.

Obrázok
Obrázok

Takže môžeme ovládať relé pomocou výstupov digitálneho signálu na pin 5. Spustite nasledujúci program python na vašom Raspberry Pi, ak sa nič nepokazí, budete počuť Ti-Ta z relé.

importujte RPi. GPIO ako GPIO

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

Takže tu je myšlienka, načítame známe tváre z priečinka, rozpoznáme tváre zachytené pikamerou, ak tvár v priečinku, ovládacím relé odomkneme dvere. Môžeme ich zbaliť do triedy, tu je metóda load_known_faces () a metóda unlock (), dokončený program si môžete stiahnuť na konci tohto článku.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) for 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_path) 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 ('Dvere otvorené') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Skúste to znova … { } '. format (self._ retry_count)) návrat False

Myslite transcendentálne, môžeme ukázať obrázok, kto rozpoznal, môžu byť nápomocné knižnice PIL a matplotlib, medzi nimi je potrebné matplotlib nainštalovať ručne, spustite tento príkaz na termináli vášho Raspberry Pi.

sudo pip3 nainštalujte matplotlib

Importujte ich do svojho kódu a zmeňte, ak je blokovanie v odblokovacej () metóde takto:

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 ('Door open') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () vrátiť True

Ak je teraz rozpoznaná tvár, na obrazovke sa zobrazí obrázok v priečinku.

Obrázok
Obrázok

SMS

Niekedy chceme vedieť, kto je v našej miestnosti, a teraz je miesto pre LTE Cat 1 Pi HAT. Pripojte k nej kartu SIM a podľa nasledujúcich pokynov vyskúšajte, či bude fungovať alebo nie.

Krok 1. Povoliť UART0 v Raspberry Pi

Použite nano na úpravu súboru config.txt v /boot

sudo nano /boot/config.txt

pridajte dtoverlay = pi3-disable-bt do jeho spodnej časti a vypnite službu hciuart

sudo systemctl vypnúť hciuart

potom odstráňte konzolu = serial0, 115200 v cmdline.txt v /boot

sudo nano /boot/cmdline.txt

Po dokončení všetkého by ste mali reštartovať svoj Raspberry Pi.

Krok 2. Stiahnite si príklad a spustite ho.

Otvorte na svojom Raspberry Pi terminál, zadajte do neho tieto riadky po riadkoch.

CD ~

git klon 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

Ak vidíte tieto výstupy vo svojom termináli, LTE Cat 1 Pi HAT funguje dobre.

Zistená 40-kolíková hlavička GPIO

Povolenie CTS0 a RTS0 na GPIO 16 a 17 rts pri prebudení … názov modulu: LARA-R211 RSSI: 3

Teraz sme vedeli, že HAT funguje dobre, ako ho použiť na odosielanie SMS? Prvá vec, ktorú musíte vedieť, je, že Raspberry Pi komunikuje s HAT prostredníctvom príkazov odosielania AT od UART. Príkazy AT môžete odosielať do LTE HAT spustením tohto kódu v pythone

z importu ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Zavrieť masáž ladenia u.debug = False u.sendAT ('')

Príkaz AT na odosielanie SMS je nasledujúci

AT+CMGF = 1

AT+CMGS =

takže tu je metóda _send_sms ():

def _send_sms (self):

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 (' {} enter the room. / x1a'.format (unlocker)): print (self._ ublox.response)

UPOZORNENIE: Knižnica LTE Cat 1 Pi HAT napísaná spoločnosťou python2, ktorá nie je veľmi kompatibilná s jazykom python3, ak ju chcete používať s funkciou rozpoznávania tváre, stiahnite si ju z odkazu na konci tohto článku.

Odporúča: