Spisu treści:

Inteligentna blokada rozpoznawania twarzy z LTE Pi HAT: 4 kroki
Inteligentna blokada rozpoznawania twarzy z LTE Pi HAT: 4 kroki

Wideo: Inteligentna blokada rozpoznawania twarzy z LTE Pi HAT: 4 kroki

Wideo: Inteligentna blokada rozpoznawania twarzy z LTE Pi HAT: 4 kroki
Wideo: 11 ustawień w iPhonie, które POWINIENEŚ OD RAZU ZMIENIĆ 📲 2024, Grudzień
Anonim
Rozpoznawanie twarzy Smart Lock z LTE Pi HAT
Rozpoznawanie twarzy Smart Lock z LTE Pi HAT

Rozpoznawanie twarzy staje się coraz szerzej stosowane, możemy je wykorzystać do wykonania inteligentnego zamka.

Krok 1: Rzeczy użyte w tym projekcie

Komponenty sprzętowe

  • Raspberry Pi 3 Model B
  • Moduł kamery Raspberry Pi V2
  • Gaj - Sztafeta
  • LTE Cat 1 Pi HAT (Europa)
  • 10.1 calowy wyświetlacz LCD IPS 1200x1980 HDMI

Aplikacje i usługi online

  • WinSCP
  • Notatnik++

Krok 2: Połączenie sprzętowe

Połączenie sprzętowe
Połączenie sprzętowe

W tym projekcie planujemy robić zdjęcia picamerą i rozpoznawać w nich twarze, a następnie wyświetlać wynik rozpoznawania na ekranie. Jeśli twarze są znane, otwórz drzwi i wyślij, kto otworzył drzwi, na podany numer telefonu przez SMS.

Musisz więc podłączyć kamerę do interfejsu kamery Raspberry Pi i zainstalować antenę i Grove - Relay do kapelusza LTE Pi, a następnie podłączyć HAT do swojego Pi. Ekran można podłączyć do Raspberry Pi za pomocą kabla HDMI, nie zapomnij podłączyć zasilania do ekranu i Pi.

Krok 3: Programowanie oprogramowania

Rozpoznawanie twarzy

Dzięki Adamowi Geitgeyowi i jego projektowi Face Recognition możemy korzystać z najprostszej na świecie biblioteki rozpoznawania twarzy na Raspberry Pi. Poniższe kroki pokażą, jak skonfigurować rozpoznawanie twarzy na Pi.

Krok 1. Użyj raspi-config, aby skonfigurować pamięć kamery i GPU.

sudo raspi-config

Wybierając Opcje interfejsu - Kamera, aby włączyć picamerę, a następnie wybierając Opcje zaawansowane - Podział pamięci, aby ustawić pamięć GPU, należy zmienić ją na 64. Po zakończeniu zrestartuj Raspberry Pi.

Krok 2. Zainstaluj wymagane biblioteki.

aktualizacja sudo apt-get

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. Dodać picamerea obsługuje tablicę.

sudo pip3 install --upgrade picamera[tablica]

Krok 4. Zainstaluj dlib i rozpoznawanie twarzy.

sudo pip3 zainstaluj dlib

sudo pip3 zainstaluj face_recognition

Krok 5. Pobierz i uruchom przykład rozpoznawania twarzy

git clone --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

UWAGA: Jeśli masz ImportError: libatlas.so.3: nie można otworzyć udostępnionego pliku obiektu: Brak takiego pliku lub katalogu, uruchom następujące polecenie, aby to naprawić.

Przekaźnik

Gdy rozpoznawanie twarzy jest gotowe, możemy kontynuować dodawanie dodatkowych funkcji. Grove - Relay podłączyliśmy do LTE Cat 1 Pi HAT, ale używa on portu cyfrowego zamiast portu I2C.

To jest wyprowadzenie dla Raspberry Pi 3B, widzimy pin SDA i pin SCL znajdujące się na pinach 3 i pinie 5 płyty.

Obraz
Obraz

Możemy więc sterować przekaźnikiem za pomocą wyjścia cyfrowego sygnału do pinu 5. Uruchom następujący program Pythona na swoim Raspberry Pi, jeśli nic nie pójdzie nie tak, usłyszysz Ti-Ta z przekaźnika.

importuj RPi. GPIO jako GPIO

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

Oto pomysł, ładujemy znane twarze z folderu, rozpoznajemy twarze przechwycone przez picamerę, jeśli twarz znajduje się w folderze, sterujemy przekaźnikiem, aby odblokować drzwi. Możemy je spakować do klasy, oto metoda load_known_faces() i unlock(), gotowy program można pobrać na końcu tego artykułu.

def load_known_faces(self):

znane_twarze = os.listdir(self._known_faces_path) dla znanej_twarzy w znanych_twarzach: self._known_faces_name.append(known_face[0: len(known_face) - len('.jpg')])known_face_image = face_recognition.load_image_file(self._known_faces_) 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('Drzwi otwarte') time.sleep(5) GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True self._retry_count += 1 print('Spróbuj ponownie…{ }'.format(self._retry_count)) return False

Myśl transcendentalnie, możemy pokazać obraz, który rozpoznał, biblioteki PIL i matplotlib mogą być pomocne, między innymi matplotlib musi być zainstalowany ręcznie, uruchom to polecenie w terminalu Raspberry Pi.

sudo pip3 zainstaluj matplotlib

Zaimportuj je do swojego kodu i zmień if block w metodzie unlock() w następujący sposób:

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('Drzwi otwarte') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() zwraca Prawda

Teraz po rozpoznaniu twarzy na ekranie zostanie wyświetlony obraz z folderu.

Obraz
Obraz

SMS

Czasem chcemy wiedzieć kto jest w naszym pokoju, a teraz jest miejsce na LTE Cat 1 Pi HAT. Podłącz do niego kartę SIM i postępuj zgodnie z instrukcjami, aby sprawdzić, czy działa, czy nie.

Krok 1. Włącz UART0 w Raspberry Pi

Użyj nano do edycji pliku config.txt w /boot

sudo nano /boot/config.txt

dodaj dtoverlay=pi3-disable-bt na dole i wyłącz usługę hciuart

sudo systemctl wyłącz hciuart

następnie usuń console=serial0, 115200 w cmdline.txt w /boot

sudo nano /boot/cmdline.txt

Po wykonaniu wszystkich czynności powinieneś ponownie uruchomić Raspberry Pi.

Krok 2. Pobierz przykład i uruchom go.

Otwórz terminal na swoim Raspberry Pi, wpisz do niego te polecenia linia po linii.

cd ~

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

Jeśli widzisz te wyjścia w swoim terminalu, LTE Cat 1 Pi HAT działa dobrze.

Wykryto 40-pinowy nagłówek GPIO

Włączenie CTS0 i RTS0 na GPIO 16 i 17 rts cts po wybudzeniu… nazwa modułu: LARA-R211 RSSI: 3

Teraz wiedzieliśmy, że HAT działa dobrze, jak używać go do wysyłania SMS-ów? Pierwszą rzeczą, którą musisz wiedzieć, jest to, że Raspberry Pi komunikuje się z HAT poprzez wysyłanie poleceń AT przez UART. Możesz wysyłać polecenia AT do LTE HAT, uruchamiając ten kod w pythonie

z importu ublox_lara_r2 *

u = Ublox_lara_r2() u.initialize() u.reset_power() # Zamknij komunikat debugowania u.debug = False u.sendAT('')

Polecenie AT do wysyłania SMS-ów wygląda następująco

AT+CMGF=1

AT+CMGS=

więc oto metoda _send_sms():

def _send_sms(self):

if self._phonenum == None: zwróć False dla odblokowania w 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) jeśli self._ublox.sendAT('{} wchodzi do pokoju.\ x1a'.format(unlocker)): print(self._ublox.response)

UWAGA: Biblioteka LTE Cat 1 Pi HAT napisana przez python2, która nie jest zbyt kompatybilna z python3, jeśli chcesz jej używać z rozpoznawaniem twarzy, pobierz ją z linku na końcu tego artykułu.

Zalecana: