Агуулгын хүснэгт:

Нүүр хянах төхөөрөмж! Python & Arduino: 5 алхам
Нүүр хянах төхөөрөмж! Python & Arduino: 5 алхам

Видео: Нүүр хянах төхөөрөмж! Python & Arduino: 5 алхам

Видео: Нүүр хянах төхөөрөмж! Python & Arduino: 5 алхам
Видео: Топ 10 языков 2021. Java 16/17. Процессоры 3 нм. Триумф Netflix [MJC news #5] НОВОСТИ АЙТИ ФЕВРАЛЬ. 2024, Долдугаар сарын
Anonim
Image
Image
Нүүр хянах төхөөрөмж! Python & Arduino
Нүүр хянах төхөөрөмж! Python & Arduino
Нүүр хянах төхөөрөмж! Python & Arduino
Нүүр хянах төхөөрөмж! Python & Arduino

By Techovator0819 Миний Youtube суваг Зохиогчийн бусад зүйлийг дагах:

IoT: Цаг агаарын хайрцаг (захиалгат дохиолол, таймертай)
IoT: Цаг агаарын хайрцаг (захиалгат дохиолол, таймертай)
IoT: Цаг агаарын хайрцаг (захиалгат дохиолол, таймертай)
IoT: Цаг агаарын хайрцаг (захиалгат дохиолол, таймертай)
Олон үйлдэлт автономит робот: 'Хөрөнгө'
Олон үйлдэлт автономит робот: 'Хөрөнгө'
Олон үйлдэлт автономит робот: 'Хөрөнгө'
Олон үйлдэлт автономит робот: 'Хөрөнгө'

Тухай: Би зүгээр л шинэ зүйл хийх дуртай. Микроконтроллер, механик инженерчлэл, хиймэл оюун ухаан, компьютерийн шинжлэх ухаан гэх мэт сонирхолтой зүйлсийн нэгэн адил. Эндээс та … Techovator0819 -ийн тухай дэлгэрэнгүй »

Энэхүү зааварчилгааг уншиж буй бүх хүмүүст энэ өдрийн мэндийг хүргэе. Энэ бол OpenCV нэртэй питон номын санд ажилладаг нүүр хянах төхөөрөмж юм. CV нь "Компьютерийн хараа" гэсэн утгатай. Дараа нь би компьютер болон Arduino UNO -ийн хооронд цуваа интерфэйсийг тохируулсан. Энэ нь зөвхөн Python дээр ажилладаггүй гэсэн үг юм.

Энэ төхөөрөмж нь таны царайг фрэйм дээр таньдаг бөгөөд дараа нь камерыг хүрээ дотор байхаар байрлуулахын тулд Arduino руу тодорхой тушаалуудыг илгээдэг. Хөөрхөн сонсогдож байна уу? Дараа нь үүнд шууд орцгооё.

Хангамж

1. Arduino UNO

2. 2 x Servo Motors (Аливаа servo мотор зүгээр байх болно, гэхдээ би Tower Pro SG90 ашигласан)

3. Python суулгах

4. OpenCV суулгах

5. Вэб камер

Алхам 1: Python болон OpenCV суулгах

Python -ийг суулгах нь маш энгийн юм!

www.python.org/downloads/

Та дээрх холбоосоор орж өөрт хамгийн тохиромжтой (64 бит эсвэл 32 бит) python хувилбарыг (Mac, windows эсвэл Linux) татаж авах боломжтой. Суулгах үйл явцын үлдсэн хэсэг нь маш энгийн бөгөөд та интерфэйсээр удирдан чиглүүлэх болно.

Суулгалт дууссаны дараа командын мөрийг нээгээд дараахь зүйлийг бичнэ үү.

opencv-python-ийг суулгах

Энэ нь openCV номын санг суулгах ёстой. Асуудал гарсан тохиолдолд та ЭНЭ хуудсыг үзэх боломжтой.

Байгаль орчин, бүх урьдчилсан нөхцөлийг тохируулсны дараа үүнийг хэрхэн яаж бий болгохыг үзье!

Алхам 2: Хаар шиг онцлог шинж чанарууд юу вэ?

Хаартай төстэй шинж чанарууд нь дижитал зургийн онцлог шинж юм. Энэ нэр нь Хаар долгионоос гаралтай. Эдгээр нь дижитал зургийн онцлог шинж чанарыг тодорхойлоход ашигладаг дөрвөлжин хэлбэртэй долгионы гэр бүл юм. Haar cascades нь үндсэндээ ангилагч бөгөөд бидэнд haar-тэй төстэй шинж чанаруудыг ашиглан объектуудыг (бидний нүүр царай) илрүүлэхэд тусалдаг.

Бидний хувьд энгийн байхын тулд бид нүүр царайгаа тодорхойлохын тулд урьдчилан бэлтгэгдсэн Haar Cascades-ийг ашиглах болно. Та github хуудасны ЭНЭ линкийг дагаж Haar Cascade-ийн xml файлыг татаж авах боломжтой.

1. 'haarcascade_frontalface_alt.xml' дээр дарна уу.

2. Кодын цонхны баруун дээд хэсэгт байрлах 'Raw' товчийг дарна уу.

3. Энэ нь таныг зөвхөн тексттэй өөр хуудас руу чиглүүлэх болно.

4. Баруун товчлуур дээр дараад 'Save as..' дээр дарна уу.

5. Үүнийг бичих гэж буй питон кодтой ижил директор эсвэл хавтсанд хадгална уу.

Алхам 3: Python дээр кодлох

cv2 импортлох

np импортын цуваа импорт хийх хугацаа

Бидэнд хэрэгтэй бүх номын санг оруулж ирдэг.

ard = serial. Serial ("COM3", 9600)

Бид 'ard' нэртэй цуваа объект үүсгэдэг. Бид мөн портын нэр болон BaudRate -ийг параметр болгон зааж өгдөг.

face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')

Бид Haar Cascade -д зориулж өөр объект бий болгодог. HaarCascade файл нь энэ питон програмтай ижил хавтас дотор байгаа эсэхийг шалгаарай.

vid = cv2. VideoCapture (0)

Бид вэбкамераас видео бичлэг хийх объект бий болгодог. 0 гэсэн параметр нь миний компьютерт холбогдсон анхны вэб камер гэсэн үг юм.

docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html

үнэн байхад:

_, frame = vid.read ()#нь одоогийн фрэймийг хувьсагч хүрээ рүү уншдаг саарал = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)#хүрээг хөрвүүлдэг -> саарал өнгийн дүрс#Дараах мөр нь нүүрийг илрүүлдэг. #Эхний параметр бол #minSize = () дээр илрүүлэхийг хүсч буй зураг бөгөөд нүүрний хамгийн бага хэмжээг пикселээр илэрхийлдэг #Каскадын ангиллын нүүрний талаар илүү ихийг мэдэхийн тулд дээрх линк дээр дарна уу = face_cascade.detectMultiScale (саарал, мин хэмжээтэй = (80, 80), minNeighbors = 3) #A нүүрийг илрүүлэх давталт. (x, y, w, h) нүүрний хувьд: cv2. тэгш өнцөгт (хүрээ, (x, y), (x+w, y+h), (255, 0, 0), 2)#тойрог тэгш өнцөгт нүүр Xpos = x+(w/2)#нүүрний төвийн X координатыг тооцоолно. Ypos = y+(h/2) #Xpos> 280 бол нүүрний төв хэсгийн Y координатыг тооцоолно: #Дараах код нь нүүрний ард байгаа эсэхийг шалгана.write ('L'.encode ()) #on цаг хугацааны хувьд зүүн, баруун, дээд эсвэл доод.хэвтэх (0.01) #фрэймийн төв. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) other: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' frame ', frame)#хүрээг тусдаа цонхонд харуулна. k = cv2.waitKey (1) & 0xFF if (k == ord ('q')):: #if 'q' товчлуур дээр дарагдсан бол while давталтаас гарна. завсарлага

cv2.destroyAllWindows () #бүх цонхыг хаадаг

ard.close () #цуваа холболтыг хаадаг

vid.release () #вэб камераас видео хүлээн авахаа зогсооно.

Алхам 4: Arduino програмчлах

Хөтөлбөрийг тоног төхөөрөмжийн тохиргооны дагуу таны хэрэгцээнд нийцүүлэн өөрчилж болно.

#оруулах

Servo servoX;

Servo servoY;

int x = 90;

int y = 90;

хүчингүй тохиргоо () {

// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); саатал (1000); }

char оролт = ""; // цуваа оролт энэ хувьсагчид хадгалагдана

void loop () {

// үндсэн кодоо дахин дахин ажиллуулахын тулд энд оруулна уу: if (Serial.available ()) {// нь цуваа буфер оролтонд ямар нэгэн өгөгдөл байгаа эсэхийг шалгадаг = Serial.read (); // өгөгдлийг хувьсагч болгон уншдаг бол (input == 'U') {servoY.write (y+1); // y += 1 оролтын дагуу servo өнцгийг тохируулна; // өнцгийн утгыг шинэчилнэ} else if if (input == 'D') {servoY.write (y-1); y -= 1; } өөр {servoY.write (y); } if (input == 'L') {servoX.write (x-1); x -= 1; } else if (input == 'R') {servoX.write (x+1); x += 1; } өөр {servoX.write (x); } оролт = ""; // хувьсагчийг цэвэрлэнэ} // процесс давтагдсаар байна !!:)}

Алхам 5: Дүгнэлт

Энэ бол Arduino төслүүд дээрээ Computer Vision -ийг оруулах боломжтой дизайн бөгөөд интерактив арга юм. Computer Vision нь үнэхээр хөгжилтэй байдаг. Мөн залуус танд таалагдсан гэж найдаж байна. Хэрэв тийм бол тайлбар дээр надад мэдэгдээрэй. Мөн миний youtube сувагт бүртгүүлээрэй. Урьдчилан баярлалаа <3 <3

youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos

Зөвлөмж болгож буй: