Turinys:
- Prekės
- 1 veiksmas: „Python“ir „OpenCV“diegimas
- 2 žingsnis: Kokios yra į Haar panašios savybės?
- 3 žingsnis: kodavimas „Python“
- 4 žingsnis: „Arduino“programavimas
- 5 žingsnis: Išvada
Video: Veido stebėjimo įrenginys! „Python“ir „Arduino“: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Mano „Youtube“kanalasSekite daugiau autoriaus:
Apie: Man tiesiog patinka kurti naujus dalykus. Kaip ir dalykai, susiję su mikrovaldikliais, mechanine inžinerija, dirbtiniu intelektu, kompiuterių mokslu ir viskuo, kas mane domina. Čia rasite visas… Daugiau apie Techovator0819 »
Sveiki visi, skaitantys šią pamoką. Tai veido sekimo įrenginys, veikiantis „python“bibliotekoje „OpenCV“. CV reiškia „Kompiuterinė vizija“. Tada aš sukūriau nuosekliąją sąsają tarp kompiuterio ir „Arduino UNO“. Tai reiškia, kad tai veikia ne tik „Python“.
Šis prietaisas atpažįsta jūsų veidą rėmelyje, tada siunčia tam tikras komandas „Arduino“, kad fotoaparatas būtų pastatytas taip, kad jis liktų kadro viduje! Skamba gerai? Tada leiskimės į jį.
Prekės
1. Arduino UNO
2. 2 x servo varikliai (bet kokie servo varikliai bus tinkami, bet aš naudoju Tower Pro SG90)
3. Python diegimas
4. „OpenCV“diegimas
5. Interneto kamera
1 veiksmas: „Python“ir „OpenCV“diegimas
Įdiegti „Python“yra gana paprasta!
www.python.org/downloads/
Galite atsisiųsti aukščiau esančią nuorodą, kad atsisiųstumėte jums tinkamiausią „python“versiją („Mac“, „Windows“ar „Linux“) (64 bitų arba 32 bitų). Likusi diegimo proceso dalis yra paprasta ir jus vadovaus sąsaja.
Baigę diegti, atidarykite komandų eilutę ir įveskite:
pip įdiegti opencv-python
Tai turėtų įdiegti „openCV“biblioteką. Jei kyla problemų, galite peržiūrėti ŠĮ puslapį.
Nustatę aplinką ir visas būtinas sąlygas, pažiūrėkime, kaip tai iš tikrųjų galime sukurti!
2 žingsnis: Kokios yra į Haar panašios savybės?
Į „Haar“panašios savybės yra skaitmeninio vaizdo ypatybės. Pavadinimas kilęs iš „Haar wavelets“. Tai yra kvadrato formos bangų šeima, kuri naudojama skaitmeninio vaizdo bruožams atpažinti. „Haar kaskados“iš esmės yra klasifikatorius, padedantis aptikti objektus (mūsų atveju veidus), naudojant į ryklius panašias savybes.
Mūsų atveju paprastumo dėlei veidams identifikuoti naudosime iš anksto apmokytas „Haar Cascades“. Galite sekti ŠIĄ „github“puslapio nuorodą ir atsisiųsti „Haar Cascade“xml failą.
1. Spustelėkite „haarcascade_frontalface_alt.xml“
2. Viršutiniame dešiniajame kodo lango kampe spustelėkite mygtuką „Žalias“.
3. Tai nukreips jus į kitą puslapį, kuriame yra tik tekstas.
4. Dešiniuoju pelės mygtuku spustelėkite ir paspauskite „Išsaugoti kaip“.
5. Išsaugokite jį tame pačiame kataloge ar aplanke, kuriame yra „Python“kodas, kurį ketinate rašyti.
3 žingsnis: kodavimas „Python“
importuoti cv2
import numpy kaip np importuoti serijinio importo laiką
Importuojame visas reikalingas bibliotekas.
ard = serial. Serial ("COM3", 9600)
Mes sukuriame serijinį objektą, pavadintą „ard“. Taip pat kaip parametrus nurodome prievado pavadinimą ir „BaudRate“.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Mes sukuriame dar vieną objektą savo „Haar Cascade“. Įsitikinkite, kad „HaarCascade“failas lieka tame pačiame aplanke kaip ir ši „python“programa.
vid = cv2. VideoCapture (0)
Sukuriame objektą, kuris fiksuoja vaizdo įrašą iš internetinės kameros. 0 kaip parametras reiškia pirmąją interneto kamerą, prijungtą prie mano kompiuterio.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
nors tiesa:
_, frame = vid.read ()#nuskaito dabartinį kadrą į kintamą rėmelį pilka = cv2.cvtColor (kadras, cv2. COLOR_BGR2GRAY)#konvertuoja rėmelį -> pilkos spalvos vaizdas#kita eilutė aptinka veidus. #Pirmasis parametras yra vaizdas, kurį norite aptikti #minSize = () nurodo minimalų veido dydį pikseliais #Spustelėkite aukščiau esančią nuorodą ir sužinokite daugiau apie „Cascade Classification“veidus = face_cascade.detectMultiScale (pilka, minSize = (80, 80), min. Kaimynai = 3) #A kilpa, skirta aptikti veidus. (x, y, w, h) veiduose: cv2. stačiakampis (rėmas, (x, y), (x+w, y+h), (255, 0, 0), 2) #brėžia stačiakampį aplink veidas Xpos = x+(w/2) #skaičiuoja veido centro X koordinatę. Ypos = y+(h/2) #skaičiuoja veido centro Y koordinatę, jei Xpos> 280: #Šie kodo blokai patikrina, ar veidas yra ard.write ('L'.encode ()) #on kairėn, dešinėn, viršuje arba apačioje laiko atžvilgiu.miegas (0,01) #rėmo centras. elif Xpos 280: ard.write ('D'.kodas ()) laikas.sleep (0.01) elifas Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) else: ard.write ('S'.kodas ()) time.sleep (0.01) break cv2.imshow (' kadras ', kadras)#rodomas kadras atskirame lange. k = cv2.waitKey (1) & 0xFF if (k == ord ('q')): #jei 'q' yra paspaustas klaviatūroje, jis išeina iš ciklo. pertrauka
cv2.destroyAllWindows () #uždaro visus langus
ard.close () #uždaro serijinį ryšį
vid.release () #nustoja gauti vaizdo įrašą iš žiniatinklio kameros.
4 žingsnis: „Arduino“programavimas
Nedvejodami pakeiskite programą pagal savo aparatūros sąranką pagal savo poreikius.
#įtraukti
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
void setup () {
// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); vėlavimas (1000); }
char įvestis = ""; // serijinis įėjimas yra saugomas šiame kintamajame
void loop () {
// įdėkite čia savo pagrindinį kodą, kad jis būtų paleistas pakartotinai: if (Serial.available ()) {// patikrina, ar serijinio buferio įvestyje yra duomenų = Serial.read (); // nuskaito duomenis į kintamąjį, jei (įvestis == 'U') {servoY.write (y+1); // sureguliuoja servo kampą pagal įvestį y += 1; // atnaujina kampo reikšmę} else if (input == 'D') {servoY.write (y-1); y -= 1; } else {servoY.write (y); } if (įvestis == 'L') {servoX.write (x-1); x -= 1; } else if (įvestis == 'R') {servoX.write (x+1); x += 1; } else {servoX.write (x); } įvestis = ""; // išvalo kintamąjį} // procesas kartojasi !!:)}
5 žingsnis: Išvada
Tai vienas gražus ir interaktyvus būdas, kuriuo galite sukurti „Computer Vision“įtraukimą į savo „Arduino“projektus. Kompiuterinė vizija iš tikrųjų yra gana smagi. Ir aš tikrai tikiuosi, kad jums tai patiko. Jei taip, praneškite man komentaruose. Ir prašau užsiprenumeruoti mano youtube kanalą. Iš anksto dėkoju <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Rekomenduojamas:
ASS įrenginys (antisocialinis socialinis įrenginys): 7 žingsniai
ASS įrenginys (antisocialinis socialinis įrenginys): pasakykite, kad esate tas žmogus, kuriam patinka būti šalia žmonių, bet nepatinka, kad jie artėja. Jūs taip pat mėgstate žmones ir jums sunku pasakyti „ne“žmonėms. Taigi jūs nežinote, kaip liepti jiems atsitraukti. Na, įveskite - ASS įrenginys! Y
Veido atpažinimas ir identifikavimas - „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: 6 žingsniai
Veido atpažinimas ir atpažinimas | „Arduino“veido ID naudojant „OpenCV Python“ir „Arduino“.: Veido atpažinimas AKA veido ID yra viena iš svarbiausių šių dienų mobiliųjų telefonų funkcijų. Taigi, man kilo klausimas „ar galiu turėti savo„ Arduino “projekto ID“? ir atsakymas yra „taip“… Mano kelionė prasidėjo taip: 1 žingsnis: Prieiga prie mūsų
„Xpedit“- žygių ir žygių atmosferos stebėjimo įrenginys: 12 žingsnių (su nuotraukomis)
„Xpedit“- žygių ir žygių atmosferos stebėjimo įrenginys: kai planuojate nuotykių kelionę ar žygį į lauką, kuprinėje būtina turėti prietaisą, padedantį suprasti aplinką. Artėjančiai nuotykių kelionei planavau sukurti rankinį įrenginį, kuris padėtų
ARUPI - nebrangus automatinis įrašymo įrenginys/autonominis įrašymo įrenginys (ARU), skirtas garsų kraštovaizdžio ekologams: 8 žingsniai (su nuotraukomis)
ARUPI - pigių automatinių įrašų įrenginys/autonominis įrašymo įrenginys (ARU) garso peizažo ekologams: šią instrukciją parašė Anthony Turneris. Projektas buvo sukurtas padedant Kento universiteto Kompiuterijos mokyklos „Shed“(ponas Daniel Knox buvo puiki pagalba!). Jis parodys, kaip sukurti automatizuotą garso įrašymo
Skaitmenų atpažinimo įrenginys su „Python“: 3 žingsniai
Skaitmenų atpažinimo įrenginys su „Python“: populiarios aktualios temos „Kompiuterinė vizija“tema, kurią sudaro programinės įrangos atsisiuntimo programos įkėlėjai. Esama įsivaizduojama eilė, esanti habilidad es muy útil para una computadora y permite expandir