Obsah:
- Zásoby
- Krok 1: Instalace Pythonu a OpenCV
- Krok 2: Jaké jsou vlastnosti podobné Haaru?
- Krok 3: Kódování v Pythonu
- Krok 4: Programování Arduina
- Krok 5: Závěr
Video: Zařízení pro sledování obličeje! Python a Arduino: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Od Techovator0819Můj kanál na YouTubeDalší od autora:
O: Miluji vytváření nových věcí. Jako věci zabývající se mikrořadiči, strojírenstvím, umělou inteligencí, počítačovou vědou a vším, co mě zajímá. A zde najdete všechny … Více o Techovator0819 »
Ahoj všichni, kdo čtete tento návod. Toto je zařízení pro sledování obličeje, které funguje na knihovně pythonu s názvem OpenCV. CV je zkratka pro 'Computer Vision'. Poté jsem nastavil sériové rozhraní mezi PC a Arduino UNO. To tedy znamená, že to nefunguje pouze na Pythonu.
Toto zařízení rozpozná váš obličej v rámečku a poté odešle určité příkazy do Arduina, aby umístil kameru tak, aby zůstala uvnitř rámečku! Zní to skvěle? Pojďme tedy do toho.
Zásoby
1. Arduino UNO
2. 2 x servomotory (Všechny servomotory budou v pořádku, ale použil jsem Tower Pro SG90)
3. Instalace Pythonu
4. Instalace OpenCV
5. Webová kamera
Krok 1: Instalace Pythonu a OpenCV
Instalace Pythonu je docela přímočará!
www.python.org/downloads/
Pomocí výše uvedeného odkazu si můžete stáhnout verzi pythonu (Mac, Windows nebo Linux), která vám nejlépe vyhovuje (64bitová nebo 32bitová verze). Zbytek procesu instalace je jednoduchý a budete provedeni rozhraním.
Po dokončení instalace otevřete příkazový řádek a zadejte následující:
pip install opencv-python
To by mělo nainstalovat knihovnu openCV. V případě řešení potíží se můžete podívat na TUTO stránku.
Poté, co jsme nastavili prostředí a všechny předpoklady, uvidíme, jak to vlastně můžeme vytvořit!
Krok 2: Jaké jsou vlastnosti podobné Haaru?
Haarské funkce jsou rysy digitálního obrazu. Název pochází z Haarových vlnek. Jedná se o rodinu čtvercových vln, které se používají k identifikaci rysů digitálního obrazu. Haar kaskády je v podstatě klasifikátor, který nám pomáhá detekovat objekty (v našem případě tváře) pomocí funkcí podobných haar.
V našem případě pro jednoduchost použijeme předem vyškolené Haar Cascade k identifikaci tváří. Můžete následovat TENTO odkaz na stránku github a stáhnout si xml soubor pro Haar Cascade.
1. Klikněte na 'haarcascade_frontalface_alt.xml'
2. Klikněte na tlačítko „Raw“v pravé horní části okna kódu.
3. Přesměruje vás na jinou stránku pouze s textem.
4. Klikněte pravým tlačítkem a klikněte na „Uložit jako …“
5. Uložte jej do stejného adresáře nebo složky jako kód pythonu, o kterém se chystáte napsat.
Krok 3: Kódování v Pythonu
importovat cv2
import numpy as np doba importu sériového importu
Importujeme všechny knihovny, které potřebujeme.
ard = serial. Serial ("COM3", 9600)
Vytváříme sériový objekt s názvem 'ard'. Jako parametry zadáváme také Název portu a BaudRate.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Vytváříme další objekt pro naši Haar Cascade. Ujistěte se, že soubor HaarCascade zůstane ve stejné složce jako tento program python.
vid = cv2. VideoCapture (0)
Vytvoříme objekt, který zachytí video z webové kamery. 0 jako parametr znamená první webovou kameru připojenou k mému počítači.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
zatímco pravda:
_, frame = vid.read ()#načte aktuální snímek do proměnného rámce grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)#převede snímek -> obrázek ve stupních šedi#následující řádek detekuje tváře. #First parameter is the image on which you want to detect on #minSize = () specifies the minimum size of the face in points of Pixels #Click the above link to get more about the Cascade Classification faces = face_cascade.detectMultiScale (grey, minSize = (80, 80), minNeighbors = 3) #A pro smyčku pro detekci tváří. for (x, y, w, h) in faces: cv2.rectangle (frame, (x, y), (x+w, y+h), (255, 0, 0), 2) #draws a squarele around obličej Xpos = x+(w/2)#vypočítá souřadnici X středu obličeje. Ypos = y+(h/2) #vypočítá souřadnici Y středu obličeje, pokud Xpos> 280: #Následující bloky kódu kontrolují, zda je obličej ard.write ('L'.encode ()) #on vlevo, vpravo, nahoře nebo dole vzhledem k času. spánek (0,01) #střed rámečku. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0,01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0,01) else: ard.write ('S'.encode ()) time.sleep (0,01) break cv2.imshow (' frame ', frame)#zobrazí rámeček v samostatném okně. k = cv2.waitKey (1) & 0xFF, pokud (k == ord ('q')): #if 'q' je stisknuto na klávesnici, opustí smyčku while. přestávka
cv2.destroyAllWindows () #zavře všechna okna
ard.close () #zavře sériovou komunikaci
vid.release () #přestává přijímat video z webové kamery.
Krok 4: Programování Arduina
Nebojte se upravit program podle nastavení hardwaru, které vyhovuje vašim potřebám.
#zahrnout
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
neplatné nastavení () {
// sem vložte instalační kód, aby se spustil jednou: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); zpoždění (1000); }
char vstup = ""; // do této proměnné je uložen sériový vstup
prázdná smyčka () {
// sem vložte svůj hlavní kód, aby se spustil opakovaně: if (Serial.available ()) {// kontroluje, zda jsou nějaká data v sériovém bufferu input = Serial.read (); // čte data do proměnné if (input == 'U') {servoY.write (y+1); // upraví úhel serva podle vstupu y += 1; // aktualizuje hodnotu úhlu} else if (input == 'D') {servoY.write (y-1); y -= 1; } else {servoY.write (y); } if (input == 'L') {servoX.write (x-1); x -= 1; } else if (vstup == 'R') {servoX.write (x+1); x += 1; } else {servoX.write (x); } input = ""; // vymaže proměnnou} // proces se stále opakuje !!:)}
Krok 5: Závěr
Toto je jeden pěkný a interaktivní způsob, pomocí kterého můžete navrhnout začlenění počítačové vize do svých projektů Arduino. Computer Vision je vlastně docela zábava. A opravdu doufám, že se vám to líbilo. Pokud ano, dejte mi vědět v komentářích. A přihlaste se k odběru mého youtube kanálu. Předem děkuji <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Doporučuje:
Sestavte zařízení pro sledování energie pomocí částicového elektronu: 5 kroků (s obrázky)
Vybudujte zařízení pro monitorování energie pomocí částicového elektronu: Ve většině podniků považujeme energii za obchodní náklady. Účtenka se zobrazuje v naší poště nebo e -mailech a platíme ji před datem zrušení. Se vznikem IoT a chytrých zařízení začíná Energy zaujímat nové místo v obchodní „bala
Sady inteligentních robotů pro sledování robotů Sledování automobilů Fotosenzitivní: 7 kroků
Sady inteligentních robotů pro sledování robotů Sledovací auto Fotosenzitivní: Design od SINONING ROBOT Můžete si koupit od sledovacího robota carTheoryLM393 čip porovnat dva fotorezistory, když je na jedné straně LED dioda fotorezistoru na BÍLÉ, strana motoru se okamžitě zastaví, druhá strana motoru roztočit, aby
Xpedit - zařízení pro sledování atmosféry pro pěší turistiku a trekking: 12 kroků (s obrázky)
Xpedit - zařízení pro sledování atmosféry pro pěší turistiku a trekking: Když plánujete dobrodružnou cestu nebo trekking do divočiny, je důležité mít v batohu zařízení, které vám pomůže porozumět prostředí. Pro svůj nadcházející dobrodružný výlet jsem plánoval postavit kapesní zařízení, které pomáhá
Halloweenské roboty pro sledování obličeje a rozpoznávání úsměvu: 8 kroků (s obrázky)
Sledování tváře a detekce úsměvu Halloween Halloween roboti: Halloween se blíží! Rozhodli jsme se postavit něco skvělého. Seznamte se s roboty Ghosty a Skully. Mohou sledovat vaši tvář a vědí, že se usmíváte a smějete se s vámi! Tento projekt je dalším příkladem použití aplikace iRobbie, která převádí iPhone na
Floger: zařízení pro sledování počasí Parametr: 6 kroků
Floger: Zařízení ke sledování povětrnostních parametrů: Malé připojené zařízení AUTONOMUS ke sledování několika užitečných proměnných, které vám pomohou při zahradnictví Toto zařízení je určeno k měření různých povětrnostních parametrů: Podlaha a teplota vzduchu Vlhkost podlahy a vzduchu Světelnost zobrazte na