Spisu treści:

Rozpoznawanie i identyfikacja twarzy - Arduino Face ID przy użyciu OpenCV Python i Arduino.: 6 kroków
Rozpoznawanie i identyfikacja twarzy - Arduino Face ID przy użyciu OpenCV Python i Arduino.: 6 kroków

Wideo: Rozpoznawanie i identyfikacja twarzy - Arduino Face ID przy użyciu OpenCV Python i Arduino.: 6 kroków

Wideo: Rozpoznawanie i identyfikacja twarzy - Arduino Face ID przy użyciu OpenCV Python i Arduino.: 6 kroków
Wideo: Czy da się oszukać systemy rozpoznawania twarzy? 2024, Wrzesień
Anonim
Image
Image

Rozpoznawanie twarzy AKA face ID to obecnie jedna z najważniejszych funkcji w telefonach komórkowych.

Miałem więc pytanie „czy mogę mieć identyfikator twarzy dla mojego projektu Arduino”, a odpowiedź brzmi tak…

Moja podróż zaczęła się następująco:

Krok 1: Dostęp do kamery internetowej

krok 2: Identyfikacja twarzy.

Krok 3: Zbieranie danych

Krok 4: Trening

Krok 5: Rozpoznawanie twarzy

Krok 6: Programowanie Arduino

Poniżej wyjaśnię wszystkie kroki. Mam nadzieję, że ci to pomoże.

Krok 1: Dostęp do kamery internetowej

Dostęp do kamery internetowej
Dostęp do kamery internetowej

Pierwszym krokiem do rozpoznawania twarzy był dostęp do kamery lub wizji komputerowej. Ponieważ Indie są zablokowane, najtańszym rozwiązaniem, jakie znalazłem, było użycie kamery internetowej mojego komputera, do której miałem dostęp za pomocą programu python przy użyciu modułu openCV.

Być może myślisz, co to jest OpenCV, prawda?

OpenCV (Open Source Computer Vision Library) to biblioteka oprogramowania do wizji komputerowej i uczenia maszynowego typu open source. OpenCV został zbudowany, aby zapewnić wspólną infrastrukturę dla aplikacji widzenia komputerowego i przyspieszyć wykorzystanie percepcji maszynowej w produktach komercyjnych.

Jeśli Opencv jest zainstalowany na twoim komputerze, możesz zacząć. Jeśli nie, wykonaj ten krok.

otwórz wiersz polecenia i wpisz „pip install opencv”.

Ostrzeżenie: może pojawić się błąd, ponieważ „pip” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne. dla których musisz dodać ścieżkę instalacji pip do zmiennej systemowej PATH. Przejrzyj ten post, może ci to pomóc.

stackoverflow.com/questions/23708898/pip-i…

Po zainstalowaniu OpenCV dobrze jest iść… Aby sprawdzić, czy jest poprawnie zainstalowany, otwórz interpreter Pythona i zaimportuj bibliotekę. Zobacz powyższy obrazek, który powinien być twoim wyjściem.

Pobierz plik Pythona „AccessTo_webcam.py” i uruchom go. Zamieściłem tam wszystkie niezbędne uwagi.

Proszę bardzo, teraz masz dostęp do kamery internetowej. Bardzo dobrze. przejdźmy do kroku 2.

Krok 2: Identyfikacja twarzy

Identyfikacja twarzy
Identyfikacja twarzy

za pomocą tego samego modułu OpenCV musimy określić, czy w strumieniu wideo jest twarz, czy nie.

OpenCV zapewnia metodę szkolenia lub wstępnie wytrenowane modele zwane klasyfikatorem kaskadowym. Wstępnie wytrenowane modele znajdują się w folderze danych w instalacji OpenCV. Udostępniam ten plik, po prostu pobierz go i umieść w folderze projektu. Folder, w którym przechowywany jest plik „AccessTo_webcam.py”. Jeśli jeszcze go nie stworzyłeś, zrób to.

Pobierz „haarcascade_frontalface_default” i umieść go w głównym folderze projektu.

Pobierz "Face_identification.py" i umieść go w głównym folderze projektu. Całe wyjaśnienie jest w nim zawarte.

Teraz możesz zidentyfikować twarze w strumieniu wideo. Przejdźmy więc do kroku 3.

Krok 3: Zbieranie danych

Zbieranie danych
Zbieranie danych

Aby rozpoznawać twarze, musimy wyszkolić nasz program Pythona. Do czego potrzebujemy pewnych danych.

Zbieranie danych jest raczej najłatwiejszym krokiem w tym projekcie. utwórz folder o nazwie „image_data” w głównym folderze projektu. Wewnątrz folderu „image_data” utwórz kilka dodatkowych folderów z imieniem i nazwiskiem osoby, w których będziemy przechowywać dane. na przykład:

W folderze "image_data" utworzyłem jeszcze dwa foldery o nazwach "HRK" i "Yahiya". jak pokazano na powyższym obrazku.

Teraz stwórz własne foldery i nazwij je.

Po utworzeniu folderów zacznij zbierać obrazy tej konkretnej osoby. Polecam zebranie blisko 20 zdjęć na osobę. Możesz również dodać więcej zdjęć, ale dopilnuj, aby dane zebrane dla wszystkich osób zawierały taką samą liczbę zdjęć. Pomaga zapewnić dokładność.

to wszystko, teraz przejdźmy do kroku 4.

Krok 4: Trening

W skrócie, przejrzymy wszystkie foldery i obrazy znajdujące się w folderze „image_data” i utworzymy słownik, który będzie zawierał identyfikator etykiety i odpowiednią nazwę. Jednocześnie załadujemy obraz, aby wykryć twarz w każdym obrazie, który nazywamy "Regionem zainteresowania" i utworzymy plik ".yml", który zawiera te informacje.

Zakładając, że masz dane zebrane dla osób X i Y.

oznaczymy osobę X jako 1, która będzie jego identyfikatorem etykiety, a nazwa będzie sama X. Wczytujemy obraz, aby znaleźć jego twarz, tj. Region zainteresowania i dołączamy dane do listy.

podobne kroki zostaną wykonane dla osoby Y. I na koniec utworzymy plik ".yml".

Pobierz plik „face_trainer.py” i umieść go w głównym folderze projektu. Wszystkie niezbędne wyjaśnienia znajdują się w samym pliku.

Po uruchomieniu tego programu przejdzie on przez wszystkie obrazy i utworzy dwa pliki o nazwach „labels.pickle” i „trainner.yml”. Teraz wyszkoliłeś swój własny model. więc przejdźmy do kroku 5.

Krok 5: Rozpoznawanie twarzy

Rozpoznawanie twarzy
Rozpoznawanie twarzy

Jeśli poprawnie wykonałeś wszystkie kroki, być może stworzyłeś własne wytrenowane dane. Teraz użyjemy tych danych do rozpoznawania twarzy.

Zasadniczo załadujemy nasze wytrenowane modele do pliku Pythona, uzyskamy dostęp do naszej kamery internetowej i zidentyfikujemy twarze w strumieniu wideo i wykonamy porównanie lub prognozę między bieżącą twarzą zidentyfikowaną w strumieniu wideo a modelem, który został wyszkolony. jeśli dane są dopasowane, to mówimy, że dana osoba została rozpoznana, to po prostu takie proste…

Pobierz "face_recognise.py" i uruchom go. Znajdują się w nim wszystkie niezbędne informacje. Teraz twoja twarz mogła zostać rozpoznana. jeśli dokładność nie jest dobra, spróbuj zaktualizować dane. jeśli wszystko w porządku, przejdźmy do kroku 6/

Krok 6: Programowanie Arduino

Ostatnim i ostatnim krokiem jest zaprogramowanie Arduino i zapewnienie sposobu komunikacji między pythonem a Arduino. Do komunikacji wykorzystałem „Komunikację szeregową”. Przejrzyj film, do którego załączyłem powyżej, aby dowiedzieć się, jak działa komunikacja szeregowa i ją ustanowić. Wszystkie wymagane pliki znajdziesz w opisie filmu.

Jeśli przejrzałeś film, pozwól, że wyjaśnię ci, co zrobiłem. Gdy moja twarz zostanie rozpoznana, podany identyfikator etykiety to 2. Gdy identyfikator etykiety wynosi 2, wyślę „1” jako dane szeregowe do mojego Arduino. Który włączy mój obwód ścigacza LED. Jeśli identyfikator etykiety jest inny niż 2, wyślę „0” jako dane szeregowe, co spowoduje wyłączenie mojego obwodu chaserowego LED.

Pobierz plik „ard_chaser.ino”. Jest to prosty program chaserowy LED, który wykorzystuje komunikację szeregową.

Podobnie pobierz plik „face_recogniser1.py”, który nawiąże komunikację szeregową między Arduino a programem Python.

Proszę bardzo. Mam nadzieję, że nauczyłeś się czegoś nowego. Subskrybuj mój kanał na YouTube, aby uzyskać więcej informacji związanych z pythonem i Arduino. Udostępnij to, jeśli Ci się spodobało. Wspieraj.

Dziękuję Ci.

Zalecana: