Dlatego też, aby stworzyć rozwiązanie, które może wykonać tę pracę bez wysiłku, oto projekt systemu rozpoznawania twarzy i kontroli termowizyjnej. Urządzenie działa poprzez rozpoznawanie twarzy każdej osoby i przeprowadza termiczne badanie przesiewowe w celu wykrycia temperatury ciała. Jeśli osoba ma bardzo wysoką temperaturę, system nie zezwala na wejście, a zamiast tego automatycznie powiadamia ją o konieczności wykonania testu COVID-19. Jeśli temperatura ciała mieści się w wymaganym normalnym zakresie temperatur i jest w porządku, wejście jest dozwolone po odpowiedniej sanityzacji.
Aby rozpocząć projekt, zbierz następujące komponenty:
Przygotowanie
Potrzebny jest RPi z najnowszym Raspbianem. Zazwyczaj jest on preinstalowany z Pythonem3, ale jeśli go nie ma, to trzeba zainstalować najnowsze środowisko Pythona i IDE.
Następnie trzeba otworzyć terminal Linuksa i zainstalować następujące biblioteki za pomocą poniższej komendy (patrz rysunek 1):
sudo pip3 install face-recognition
sudo apt-get install espeak
sudo apt-get install espeak python-espeak
sudo pip3 install opencv2
Kodowanie
Po zainstalowaniu bibliotek, otwórz IDE Pythona i zacznij pisać kod, importując do niego następujące biblioteki:
- Espeak – Aby ogłosić temperaturę i wykryć twarz osoby.
- Face_recoginition – Do rozpoznawania twarzy.
- Data i czas – Aby dodać datę i czas osoby wchodzącej na teren i później zapisać je w bazie danych.
- Opencv – Do przechwytywania wideo i przetwarzania go klatka po klatce w celu rozpoznania twarzy.
Następnie trzeba ustawić nazwę pliku z obrazem każdej osoby, którą chcemy rozpoznać. Jeśli nie mamy obrazu danej osoby w bazie danych to jest ona traktowana jako nieznana. Następnie należy utworzyć tablicę zawierającą listę nazwisk i obrazów wszystkich rozpoznanych osób. Nazwisko i obrazek muszą być w tej samej kolejności.
Potem, klatka wideo będzie przetwarzana w pętli while, która rozpozna imię osoby i dopasuje je do odpowiedniej twarzy, która została wykryta. Jeśli jest ona różna, to zostanie użyty czujnik MLX90614 do zmierzenia temperatury osoby. Następnie, używając espeak, zostanie ogłoszone imię i temperatura tej osoby.
Następnie instrukcje if(), które napisano sprawdzają czy temperatura jest wyższa niż 37 stopni Celsjusza czy nie. Jeśli temperatura jest wyższa niż 37 stopni Celsjusza, system informuje osobę, aby nie wchodziła na teren obiektu. Przechwytuje również zdjęcie osoby oraz jej temperaturę i zapisuje je w folderze bazy danych wraz ze znacznikiem czasu.
Jeśli temperatura osoby jest niższa niż 37 stopni Celsjusza, system pozwala jej wejść na teren po odpowiedniej sanityzacji. Wizerunek osoby jest również zapisywany w osobnym folderze bazy danych, który zawiera imię i nazwisko oraz temperaturę wraz ze znacznikiem czasu.
Poniżej znajduje się kod, który pokazuje obraz (pobrany z przechwyconego wideo) wraz z nazwiskiem i temperaturą. Obrys prostokątnej ramki przedstawiającej imię i nazwisko oraz obraz będzie zmieniał swój kolor w zależności od wykrytej temperatury (czerwony = wysoka temperatura, zielony = niska temperatura).
Połączenie
Po zakodowaniu należy podłączyć czujnik MLX zgodnie z poniższą tabelą. Podłącz kamerę, wyświetlacz HDMI i czujnik jak pokazano na poniższym rysunku.
Testowanie
Po zakończeniu konfiguracji, włącz Raspberry Pi i zamontuj urządzenie na ścianie lub drzwiach. Ponownie uruchom kod i poczekaj kilka sekund. Urządzenie pokaże temperaturę i twarz osoby stojącej przy wejściu. W przypadku wykrycia wysokiej temperatury/gorączki urządzenie nie pozwoli wejść tej osobie.
Dalej będzie można sprawdzić w bazie danych informacje o każdej osobie przechodzącej przez proces kontroli termicznej.