Spisu treści:
- Krok 1: Rzeczy użyte w tym projekcie
- Krok 2: Połączenie sprzętowe
- Krok 3: Programowanie oprogramowania
- Krok 4: Gotowe
Wideo: Inteligentna blokada rozpoznawania twarzy z LTE Pi HAT: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
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
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.
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.
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:
Abellcadabra (system zamka drzwi do rozpoznawania twarzy): 9 kroków
Abellcadabra (System zamka do drzwi rozpoznawania twarzy): Leżąc podczas kwarantanny, próbowałem znaleźć sposób na zabicie czasu, budując rozpoznawanie twarzy dla drzwi do domu. Nazwałem go Abellcadabra - co jest połączeniem Abracadabra, magicznej frazy z dzwonkiem do drzwi, który biorę tylko dzwonkiem. KUPA ŚMIECHU
Lustro do rozpoznawania twarzy z tajnym schowkiem: 15 kroków (ze zdjęciami)
Lustro do rozpoznawania twarzy z tajnym przedziałem: Zawsze intrygowały mnie zawsze kreatywne tajne przedziały używane w opowiadaniach, filmach i tym podobnych. Kiedy więc zobaczyłem konkurs na sekretny przedział, postanowiłem sam poeksperymentować z tym pomysłem i zrobić zwyczajnie wyglądające lustro, które otwiera
Blokada drzwi do rozpoznawania twarzy: 8 kroków
Blokada drzwi do rozpoznawania twarzy: Około miesiąca w przygotowaniu, przedstawiam zamek do drzwi do rozpoznawania twarzy! Starałem się, aby wyglądało jak najładniej, ale mogę zrobić tylko tyle, co 13-latek. Ta blokada drzwi do rozpoznawania twarzy jest obsługiwana przez Raspberry Pi 4, ze specjalną przenośną bat
System bezpieczeństwa rozpoznawania twarzy w lodówce z Raspberry Pi: 7 kroków (ze zdjęciami)
System bezpieczeństwa rozpoznawania twarzy dla lodówki z Raspberry Pi: Przeglądając internet odkryłem, że ceny systemów bezpieczeństwa wahają się od 150$ do 600$ i więcej, ale nie wszystkie rozwiązania (nawet te bardzo drogie) można zintegrować z innymi inteligentne narzędzia w Twoim domu! Na przykład nie można ustawić
Inteligentna blokada BT (hasło głosowe): 8 kroków
BT Smart Lock (hasło głosowe): Jest to instrukcja wyjaśniająca tworzenie inteligentnego zamka do drzwi, który może być sterowany za pomocą smartfona za pomocą łączności Bluetooth. Sterowanie opiera się na głosie. System odblokowuje drzwi, jeśli jest to określone nuta jest wypowiadana przez użycie