Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Python болон OpenCV суулгах
- Алхам 2: Хаар шиг онцлог шинж чанарууд юу вэ?
- Алхам 3: Python дээр кодлох
- Алхам 4: Arduino програмчлах
- Алхам 5: Дүгнэлт
Видео: Нүүр хянах төхөөрөмж! Python & Arduino: 5 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
By Techovator0819 Миний Youtube суваг Зохиогчийн бусад зүйлийг дагах:
Тухай: Би зүгээр л шинэ зүйл хийх дуртай. Микроконтроллер, механик инженерчлэл, хиймэл оюун ухаан, компьютерийн шинжлэх ухаан гэх мэт сонирхолтой зүйлсийн нэгэн адил. Эндээс та … 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
Зөвлөмж болгож буй:
Бөөмийн электрон ашиглан энерги хянах төхөөрөмж бүтээх: 5 алхам (зурагтай)
Бөөмийн электрон ашиглан энерги хянах төхөөрөмж бүтээх: Ихэнх аж ахуйн нэгжүүдэд бид эрчим хүчийг бизнесийн зардал гэж үздэг. Билл нь манай имэйл эсвэл имэйлд харагддаг бөгөөд бид үүнийг цуцлах өдрөөс өмнө төлдөг. IoT болон ухаалаг төхөөрөмжүүд бий болсноор Energy нь бизнесийн салбарт шинэ байр суурийг эзэлж эхэлж байна
ASS төхөөрөмж (Нийгмийн эсрэг нийгмийн төхөөрөмж): 7 алхам
ASS төхөөрөмж (Нийгмийн эсрэг нийгмийн төхөөрөмж): Та хүмүүсийн эргэн тойронд байх дуртай боловч хэт ойртох дургүй хүн гэж хэлээрэй. Та бас ард түмнийг баярлуулдаг бөгөөд хүмүүст үгүй гэж хэлэхэд хэцүү байдаг. Тиймээс тэдэнд ухрахаа яаж хэлэхээ мэдэхгүй байна. За, ASS төхөөрөмжийг оруулна уу! Y
Arduino ашиглан GPS хянах, дохиолол бүхий эмэгтэйчүүдийн аюулгүй байдлын төхөөрөмж: 6 алхам
Эмэгтэйчүүдийн аюулгүй байдлын төхөөрөмж нь GPS -ийн хяналт, дохиолол бүхий Arduino -ийг ашигладаг: Сүүлийн үед бидэнд байгаа бүх технологийг ашигласнаар эмэгтэйчүүдэд зориулсан аюулгүйн төхөөрөмж бүтээх нь тийм ч хэцүү биш бөгөөд яаралтай тусламжийн дохиолол өгөх төдийгүй найз нөхөд, гэр бүлийнхэндээ мессеж илгээх болно. , эсвэл холбогдох хүн. Энд бид хамтлаг байгуулах болно
Time Cube - Arduino цаг хянах төхөөрөмж: 6 алхам
Time Cube - Arduino Time Tracking Gadget: Би танд ухаалаг куб хэрэгслийг эргүүлж цаг хугацааны үйл явдлыг хянах энгийн боловч үнэхээр хэрэгтэй arduino төслийг санал болгохыг хүсч байна. Үүнийг " Ажиллах " > " Сурах " > " Гэрийн ажил " > " Амрах " тал нь тоолох болно
Нүүр хянах буу: 4 алхам
Нүүр хянах буу: Энэхүү төсөл нь энд үзүүлсэн лазерын утсан бууны төслийн өргөтгөл юм-https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ALLSTEPS Ганц ялгаа нь бууг лазераар биш харин