Serwisy partnerskie:
Close icon
Serwisy partnerskie

Inteligentny dron z rozpoznawaniem twarzy i monitorowaniem ruchu drogowego w czasie rzeczywistym

Article Image
Elmax
Czy obecne drony mogą znaleźć przestępców używając AI do rozpoznawania twarzy? Tak, można teraz zrobić taki dron przy bardzo niskich kosztach. Będzie w stanie pomóc rządowi znaleźć ludzi i przestępców, terrorystów, znaleźć bunkry i wszelkie inne rzeczy w bardzo skuteczny sposób. Można go zrobić samemu. Niniejszy artykuł opisuje jak wykonać inteligentnego drona, którego można wyposażyć w SOC takie jak RPi 4 i kod przetwarzania obrazu.

W projekie użyto drona z ramą F450 z wykorzystaniem silnika 1000 kv.

Przede wszystkim trzeba zebrać następujące komponenty do wykonania drona.

Wykaz elementów
Ilość
Symbol
Nazwa/opis/gdzie kupić
1
Kompletny zestaw do budowy quadrocoptera F450
Rama F450 rama quadcoptera zestaw P M2.6 i 6M GPS 2212 1000KV HP 30A
1
3C11.1V bateria lipo
Bateria 3s 11,2V Li-po
8
Baterie alkaliczne AA
Bateria 1,5 V
1
Komputer
Raspberry Pi 4
1
Kamera
Kamera

Dodatkowo będzie potrzebne złącza Xt60 lub podobne, zależnie od posiadanej baterii.

Budowa i montaż

W innym artykule opisane zostało jak można wykonać drona F450 z kontrolerem lotu KK.2.2.
Zakładając, że zbudowałeś drona używając naszego poprzedniego artykułu teraz przejdźmy do części związanej ze sztuczną inteligencją drona.

Tworzenie inteligentnego drona przy użyciu AI i rozpoznawania twarzy

Na początku próbowano zamontować drona z modułem obliczeniowym RPi i płytką balenaFin posiadającą 1 GB pamięci ram i 16 GB pamięci masowej, a ponieważ balenaFin pobiera 12 V prądu stałego łatwo jest ją zasilić baterią Lipo, ale problem jaki napotkano to fakt, że jest trochę ciężka i zbyt duża do zamontowania na dronie. Wtedy zdano sobie sprawę że RP4 pobiera prąd 2 A i 5 V, który może być również zasilany przez jeden z liniowych ESC, które użyto z silnikiem.

Tak więc ostatecznie zamieniono balenaFin na małe RPi 4.

Montaż RPi 4 i kamery na ramie F450

Do rozpoznawania twarzy należy zamontować kamerę Rpi na ramie drona za pomocą np. taśmy izolacyjnej. Następnie odciąć przewód +ve i -Ve jednego z ESC, który jest podłączony do kontrolera lotu ponieważ kontroler lotu wykorzystuje tylko pierwsze piny ESC do zasilania. Resztę wolnych pinów ESC użyto do zasilania Raspberry Pi.

Fotografia 1. Wejście zasilania Raspberry Pi

Następnie należy zamontować kamerę RPi na dronie jak na zdjęciu poniżej.

Fotografia 2. Mocowanie kamery
Fotografia 3. Kamera zamontowana na dronie AI

Kodowanie drona do rozpoznawania twarzy

Ma to na celu rozpoznawanie osoby stojącej przed robotem (znanej lub nieznanej). W kodzie trzeba zaimportować 3 moduły: face recognition, cv2 oraz numpy. Trzeba utworzyć różne tablice do rozpoznawania twarzy i nazwisk. Upewnij się, że zapisałeś nazwę pliku obrazu dla właściwej osoby w celu poprawnego rozpoznawania twarzy (rysunki 4 i 5).

Rysunek 4. Kod rozpoznawania twarzy
Rysunek 5. Imiona osób do rozpoznania

W następnej części kodu, trzeba dopasować twarz, która została uchwycona przez kamerę do tablicy znanych twarzy. Jeżeli twarz będzie pasować, wtedy kod uruchomi syntezator espeak i używając składni 'espeak.synth()' wypowie imię tej osoby wraz z dodatkowym komunikatem jeśli tego chcemy.

Rysunek 6.

Następnie podłącz wzmacniacz PAM jak na poniższym schemacie połączeń i podłącz zasilanie za pomocą GPIO pin 5 V i GND Rpi 4.

Rysunek 7. Podłączenie drona AI

Wykrywanie osób, które utknęły w obszarze objętym powodzią lub trzęsieniem ziemi

W następnym kroku napisz kod do wykrywania osób tak, aby kamera drona mogła robić nagrania na żywo w czasie powodzi lub trzęsienia ziemu i wykrywać ludzi, którzy potrzebują pomocy.

Po pierwsze, zainstaluj następujące biblioteki w Pythonie:

  • Espeak
  • Numpy
  • Scipy
  • Opencv
  • Dlib
  • Keras
  • TensorFlow/TensorFlow Lite

Aby zainstalować powyższe biblioteki, należy otworzyć terminal LX, a następnie wpisać następujące polecenia:

sudo apt-get update
sudo apt-get upgrade
sudo nano /etc/dphys-swapfile

Następnie zmień linię CONF_SWAPSIZE=100 na CONF_SWAPSIZE=1024 i wykonaj komendy:

sudo /etc/init.d/dphys-swapfile stop  
sudo /etc/init.d/dphys-swapfile start
sudo pip3 install opencv
sudo pip3 install numpy
wget https://bootstrap.pypa.io/get-pip.py
pip3 install dlib
pip3 install tensorflow

Po zakończeniu instalacji można przystąpić do klonowania modułów TF oraz przykładów i plików za pomocą poniższej komendy:

git clone https://github.com/tensorflow/tensorflow.git

Po udanym klonowaniu należy przejść do katalogu → folder research → utworzyć nowy plik Pythona i wkleić do niego kod dołączony do artykułu.

Kodowanie

Dla wykrywania tłumu i monitorowania ruchu trzeba wpierw przygotować kilka rzeczy przed rozpoczęciem kodowania. Należy utworzyć specjalny plik .pbtxt, który zawiera nazwę rzeczy do wykrycia. Chcemy, aby dron wykrywał ludzi, więc otwórz folder Tensorflow → models → research → object detection → data a następnie utwórz jeden plik o nazwie crowd.pbtxt, do którego wstaw tylko ludzi, a potem jeszcze jeden plik traffic.pbtxt z listą obiektów do wykrycia w ruchu ulicznym, takich jak samochody, autobusy, ludzie, tablice informacyjne, ciężarówki itp. jak na rysunkach 8, 9, 10.

W pierwszej części kodu, trzeba zainicjalizować wymaganą bibliotekę. Następnie utworzyć kod, który używa modułu kamery do robienia obrazu na żywo, a następnie przetwarzania go klatka po klatce w celu wykrycia ludzi. Tak więc tutaj, jak widać na wycinku kodu, zaimportowano wymagane biblioteki.

Następnie trzeba zdefiniować nazwę pliku .pbtxt, który utworzyliśmy wcześniej i który zawiera listę obiektów do wykrycia. Potem utworzyć kod, który sprawdza liczbę wykrytych na obrazie osób i informuje o tym. Podobnie można zrobić dla monitorowania ruchu drogowego. Wystarczy zmienić plik .pbtxt użyty w kodzie na plik traffic.pbtxt, aby wykrywać samochód, autobus itp. na drodze i policzyć je.

Uwaga: Można również zrobić badanie lasu i wykrywanie zwierząt posługując się tym samym kodem. Trzeba tylko utworzyć plik z listą zwierząt do wykrycia i użyć go w kodzie.

Rysunek 8.
Rysunek 9. Ustawienie .pbtxt
Rysunek 10.
Rysunek 11. Wykrywanie ruchu ulicznego
Rysunek 12. Wykrycie ludzi/tłumu
Rysunek 12. Wykrycie ludzi/tłumu

Testowanie

Należy uruchomić każdy kod (drone- code1.py, dronecrowd.py i dron- etraffic.py) osobno w różnym czasie dla różnych zastosowań. Na przykład, gdy droncode1.py jest gotowy i uruchomiony, zamontuj go na dronie. Na ekranie komputera można zobaczyć obrazy na żywo przechwytywane przez kamerę. Można wysłać drona z kamerą na wyznaczony obszar w celu wykrywania i monitorowania. Odległość, na jaką może polecieć dron, zależy od zasięgu sieci Wi-Fi.

Rysunek 13. Rozpoznawanie twarzy przez AI Drone
Rysunek 14. AI Drone wykrywający ludzi i ruch uliczny
Wideo
Do pobrania
Download icon Inteligentny dron z rozpoznawaniem twarzy i monitorowaniem ruchu drogowego w czasie rzeczywistym - kod źródłowy

Artykuł Artificial Intelligence Drone With Real Time Face Recognition, Traffic Monitoring opracowano w wersji polskiej na podstawie współpracy z portalem www.electronicsforu.com.

Firma:
Tematyka materiału: Dron, Wi-Fi, Przetwarzanie obrazu
AUTOR
Źródło
www.electronicsforu.com
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"