Мазмұны:
- Жабдықтар
- 1 -қадам: Python мен OpenCV орнату
- 2-қадам: Хаарға ұқсас ерекшеліктер қандай?
- 3 -қадам: Python -да кодтау
- 4 -қадам: Arduino бағдарламалау
- 5 -қадам: Қорытынды
Бейне: Бетті бақылау құралы! Python және Arduino: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
By Techovator0819Менің Youtube каналымАвтордың басқа мәліметтерін қадағалаңыз:
Мен туралы: Мен жаңа нәрселер жасағанды жақсы көремін. Микроконтроллер, машина жасау, жасанды интеллект, информатика және мені қызықтыратын нәрселер сияқты. Ал сіз мұнда бәрін таба аласыз … Techovator0819 туралы толығырақ »
Барлығына сәлем, бұл нұсқаулықты оқыңыз. Бұл OpenCV деп аталатын питон кітапханасында жұмыс істейтін бетті бақылау құралы. Түйіндеме «Computer Vision» дегенді білдіреді. Содан кейін мен компьютер мен Arduino UNO арасындағы сериялық интерфейсті орнаттым. Демек, бұл тек Python -да жұмыс істемейді.
Бұл құрылғы сіздің бетіңізді кадрда таниды, содан кейін камераны кадрдың ішінде қалатындай етіп орналастыру үшін Arduino -ға белгілі командаларды жібереді! Керемет естіледі? Олай болса, ендеше оған енейік.
Жабдықтар
1. Arduino UNO
2. 2 x Servo Motors (кез келген серво қозғалтқыштары жақсы болады, бірақ мен 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 қолданамыз, github бетінің мына сілтемесіне өтіп, Haar Cascade үшін xml файлын жүктей аласыз.
1. 'haarcascade_frontalface_alt.xml' түймесін басыңыз
2. Код терезесінің оң жақ жоғарғы бөлігіндегі 'Raw' түймесін басыңыз.
3. Ол сізді тек мәтіні бар басқа бетке бағыттайды.
4. Тінтуірдің оң жақ түймешігімен нұқыңыз және «Басқаша сақтау …» түймесін басыңыз.
5. Оны сіз жазатын питон кодымен бірдей каталогта немесе қалтада сақтаңыз.
3 -қадам: Python -да кодтау
cv2 импорттау
np импорттық сериялық импорт уақыты
Біз барлық қажетті кітапханаларды импорттаймыз.
ard = serial. Serial («COM3», 9600)
Біз 'ard' деп аталатын сериялық объект жасаймыз. Біз сондай -ақ порт атауын және BaudRate параметрін көрсетеміз.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Біз Хаар каскадына басқа объект жасаймыз. HaarCascade файлы осы python бағдарламасымен бір қалтада тұрғанына көз жеткізіңіз.
vid = cv2. VideoCapture (0)
Біз веб -камерадан бейне түсіретін объект жасаймыз. 0 параметрі менің компьютеріме қосылған бірінші веб -камераны білдіреді.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
шындық кезінде:
_, frame = vid.read ()#ағымдағы кадрды айнымалы кадрға оқиды grey = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)#кадрды түрлендіреді -> сұр масштабты сурет#келесі жол беттерді анықтайды. #Бірінші параметр - бұл #minSize = () арқылы анықтағыңыз келетін кескін, тұлғаның минималды өлшемін пиксельдермен көрсетеді #Каскадты жіктеу жүздері туралы көбірек білу үшін жоғарыдағы сілтемені басыңыз = face_cascade.detectMultiScale (сұр, minSize) = (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 координатасын есептейді: #Келесі код блоктары беттің ard.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) else: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' кадр ', кадр)#кадрды бөлек терезеде көрсетеді. k = cv2.waitKey (1) & 0xFF егер (k == ord ('q')):: #if 'q' пернетақтада басылса, ол циклден шығады. үзіліс
cv2.destroyAllWindows () #барлық терезелерді жабады
ard.close () #сериялық байланысты жабады
vid.release () #веб -камерадан бейне қабылдауды тоқтатады.
4 -қадам: Arduino бағдарламалау
Бағдарламаны сіздің қажеттіліктеріңізге сәйкес аппараттық қондырғыларға сәйкес өзгертуге болады.
#қосу
Servo servoX;
Сервистік қызмет;
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 (); // деректерді айнымалыға оқиды if (input == 'U') {servoY.write (y+1); // y += 1 кірісіне сәйкес серво бұрышын реттейді; // бұрыштың мәнін жаңартады} 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 (input == 'R') {servoX.write (x+1); x += 1; } басқа {servoX.write (x); } енгізу = «»; // айнымалыны тазалайды} // процесс қайталана береді !!:)}
5 -қадам: Қорытынды
Бұл компьютерлік көруді Arduino жобаларына енгізуге болатын жақсы және интерактивті әдіс. Computer Vision шын мәнінде өте қызықты. Және бұл сізге ұнады деп сенемін. Егер иә болса, маған түсініктемелерде хабарлаңыз. Және менің youtube каналыма жазылыңыз. Алдын ала рахмет <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Ұсынылған:
Бақылау: Odroid N2 және Kodi бар кеңейтілген медиа орталығы (4k және HEVC қолдауы): 3 қадам
Folow-UP: Odroid N2 және Kodi (4k және HEVC қолдауымен) кеңейтілген медиа орталығы: Бұл мақала алдымен Raspberry PI-ге негізделген әмбебап медиа орталық құру туралы алдыңғы, сәтті мақаланың жалғасы. Кейінірек HEVC, H.265 және HDMI 2.2 үйлесімді шығыс болмағандықтан, ол ауыстырылды
Бетті тану және сәйкестендіру - OpenCV Python және Arduino көмегімен Arduino Face ID: 6 қадам
Бетті тану және сәйкестендіру | OpenCV Python және Arduino көмегімен Arduino Face ID: бетті тану AKA тұлғаның идентификаторы қазіргі кезде ұялы телефондардағы ең маңызды мүмкіндіктердің бірі болып табылады. Сонымен, менде " менің Arduino жобам үшін жеке идентификаторым болуы мүмкін " деген сұрақ болды. және жауап - иә … Менің саяхатым келесідей басталды: 1 -қадам: Бізге кіру
ScanUp NFC оқу құралы/жазушысы және зағиптарға, нашар көретіндерге және басқа адамдарға арналған дыбыс жазғыш: 4 қадам (суреттермен)
ScanUp NFC Reader/жазушы және зағиптарға, нашар көретіндерге және басқаларға арналған аудиожазғыш: Мен өнеркәсіптік дизайнды оқимын, бұл жоба менің семестрімнің жұмысы. Мақсаты - көру қабілеті нашар және зағип жандарға SD картасына WAV форматында дыбыс жазуға және NFC белгісімен қоңырау шалуға мүмкіндік беретін құрылғы арқылы қолдау көрсету. Сонымен
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайырымдылық робот - Arduino: 9 қадам (суреттермен)
Xbox Controller арқылы бетті бақылау және бақылау арқылы қайыршы робот - Arduino: Біз қайыршы робот жасамақпыз. Бұл робот тітіркендіруге немесе өтіп бара жатқан адамдардың назарын аударуға тырысады. Бұл олардың беттерін анықтап, оларға лазермен оқ атуға тырысады. Егер сіз роботқа тиын берсеңіз, ол ән айтып, би билейді. Роботқа қажет болады
GPS және екі жақты радиолардан шикі бақылау құралы: 7 қадам
GPS пен екі жақты радиолардың шикі бақылау құралы: Сонымен, мен бақылау құрылғысын алғым келді. Мен нарыққа қараған бойда, сол заттардың бірінің бағасы бағадан басталатынын түсіндім және аяғына дейін немесе одан да жоғарыға көтерілдім! Ақылдылықты тоқтату керек! Әрине, мен қайда екенін білудің принциптері