Projekt może być wykorzystany do celów bezpieczeństwa poprzez streaming video na żywo wraz z tym systemem. Autorski prototyp używany do testów pokazany jest na fotografii 1.
Można użyć dowolnej maski twarzy, w tym dostępnej na rynku maski robota Tahta. W tym projekcie wykorzystano otwartoźródłową maskę twarzy robota InMoov, którą przedstawiono na fotografii 2.
Montaż twarzy robota
Etapy montażu mogą się różnić w zależności od kształtu i wielkości głowy robota. Do testów użyliśmy głowy robota InMoov, stworzonej przy użyciu drukarki 3D. Możesz nawet wydrukować w 3D własną twarz i użyć jej jako głowy robota lub kupić wydrukowaną w 3D głowę robota z thingiverse.com.
Dwa moduły wyświetlacza OLED (DIS1 i DIS2) są używane jako oczy robota. Przylutuj oba moduły wyświetlacza i wykonaj odpowiednie połączenia. Upewnij się, że wyświetlacze OLED są dobrze przykręcone do okularu głowy robota, jak pokazano na rysunku 3. Połączenia wyświetlaczy OLED z Arduino są wymienione w tabeli poniżej.
Następnie należy ostrożnie zamontować kamerę Raspberry Pi (podłączoną do płytki Raspberry Pi) w pobliżu wyświetlaczy OLED. Przymocuj serwomechanizm w pobliżu ust głowy robota. Pozwoli to na otwieranie i zamykanie linii szczęk robota (patrz fotografia 4).
Podpora głowy robota
Mocno przymocuj drugi serwomotor do kartonowej lub drewnianej podstawy za pomocą śrub lub kleju na gorąco. Zapewni to ruch głowy robota w górę i w dół.
Aby stworzyć solidną podporę, przymocuj trzy cienkie metalowe pręty w pobliżu drugiego serwomotoru, tak jak do statywu aparatu fotograficznego. Przymocuj jeden koniec jednego z metalowych prętów do wału drugiego serwomechanizmu, a pozostałe dwa pręty do głowy robota, jak pokazano na fotografiach 5 i 6. W przedstawionym projekcie serwomotory służyły jako podpora; ruch szczęk i głowy nie był realizowany.
Finalna głowa robota z oczami, wykorzystująca dwa moduły wyświetlaczy OLED, będzie wyglądała jak na fotogafii 7.
Kodowanie
Kodowanie składa się z dwóch części: Kodowanie dla oczu robota za pomocą Arduino oraz kodowanie dla rozpoznawania twarzy za pomocą Raspberry Pi.
Kodowanie dla oczu robota. Przed rozpoczęciem pracy z kodem Arduino (smartface_recog.ino), przejdź do Library Manager w Arduino IDE i zainstaluj następujące biblioteki:
- Adafruit GFX
- SSD1306 OLED
Dodaj powyższe biblioteki Arduino do kodu za pomocą funkcji 'include', a następnie wstaw bitmapowy kod szesnastkowy dla oczu, jak pokazano na rysunku 8.
Następnie utwórz funkcję loop(), która będzie wywoływała kody bitmap, aby pokazać je na wyświetlaczu OLED. Aby uczynić oczy bardziej interaktywnymi i żywymi, użyj funkcji random() (patrz rysunek 9).
Kodowanie dla rozpoznawania twarzy. Raspberry Pi służy do rozpoznawania osoby stojącej przed robotem (znanej lub nieznanej). Zainstaluj następujące biblioteki w Raspberry Pi dla środowiska Python3:
- Numpy
- Scipy
- Open cv
- Cv2
- Face recognition
- Espeak
- Matplot
- Keras
Aby zainstalować te biblioteki, należy postępować zgodnie z instrukcjami instalacji bibliotek dostępnymi w folderze dokumentacji każdej z nich.
Zaimportuj w kodzie Pythona trzy moduły: face recognition, cv2 i numpy, jak pokazano na rysunku 10. Utwórz różne tablice do rozpoznawania twarzy i nazwisk. Upewnij się, że w kodzie znajdują się nazwy plików graficznych wszystkich znanych osób (które mają być rozpoznawane) i przechowuj je w folderze do poprawnego rozpoznawania twarzy (patrz rysunek 11).
W następnej części kodu program dopasowuje twarz, która została uchwycona przez kamerę, do tablicy znanych twarzy. Jeśli twarz się zgadza, kod uruchamia funkcję syntezatora espeak.synth(), aby wywołać imię osoby przez głośnik podłączony do Raspberry Pi. Kod z funkcją 'espeak.synth()' jest pokazany na rysunku 12.
Połączenie z głośnikiem i kamerą
Aby uzyskać wyjście audio przez Raspberry Pi, podłącz wyjście audio TRRS (Aux) Raspberry Pi do TRRS(Aux) dowolnego głośnika ze wzmacniaczem. Podłącz moduł kamery Raspberry Pi do portu kamery obecnego na płytce Raspberry Pi.
Następnie włącz zasilanie płytki Arduino Nano połączonej z wyświetlaczami OLED poprzez pin 5 V Raspberry Pi. Twój robot rozpoznający twarze jest gotowy do pracy.
Procedura testowa
Po zakończeniu podłączania sprzętu i konfiguracji oprogramowania, zrestartuj Raspberry Pi.
Otwórz skrypt rozpoznawania twarzy (FaceRecoginitionv1.py) w terminalu Raspberry Pi i uruchom go. Powinieneś być w stanie zobaczyć ruchy oczu robota poprzez wyświetlacze OLED.
Jeśli staniesz przed kamerą, robot rozpozna twoją twarz. Wywoła Twoje imię, a także wyświetli je na ekranie komputera, jak pokazano na rysunku 13. Jeśli twoje imię nie jest zawarte w kodzie, na ekranie pojawi się komunikat „nieznany”.