Съдържание:
- Консумативи
- Стъпка 1: Инсталиране на Python и OpenCV
- Стъпка 2: Какви са Хааровите характеристики?
- Стъпка 3: Кодиране в Python
- Стъпка 4: Програмиране на Arduino
- Стъпка 5: Заключение
Видео: Устройство за проследяване на лица! Python & Arduino: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
От Techovator0819Моят канал в YouTube Следвайте още от автора:
За: Просто обичам да правя нови неща. Като неща, свързани с микроконтролери, машиностроене, изкуствен интелект, компютърни науки и всичко друго, което ме интересува. И тук ще намерите всички… Повече за Techovator0819 »
Здравейте на всички, които четат тази инструкция. Това е устройство за проследяване на лица, което работи върху библиотека на python, наречена OpenCV. CV означава „Computer Vision“. След това настроих сериен интерфейс между моя компютър и моя Arduino UNO. Това означава, че това не работи само на Python.
Това устройство разпознава лицето ви в рамката, след което изпраща определени команди до Arduino да позиционира камерата по такъв начин, че да остане в рамката! Звучи яко? Нека тогава се впуснем в него.
Консумативи
1. Arduino UNO
2. 2 x серво мотора (Всички серво мотори ще са добре, но използвах Tower Pro SG90)
3. Инсталиране на Python
4. Инсталиране на OpenCV
5. Уеб камера
Стъпка 1: Инсталиране на Python и OpenCV
Инсталирането на Python е доста лесно!
www.python.org/downloads/
Можете да следвате горната връзка, за да изтеглите версията на python (Mac, Windows или Linux), която ви подхожда най -добре (64 бита или 32 бита). Останалата част от процеса на инсталиране е проста и ще бъдете ръководени от интерфейса.
След като приключите с инсталацията, отворете командния ред и въведете следното:
pip инсталирайте opencv-python
Това трябва да инсталира библиотеката на openCV. В случай на отстраняване на проблеми, можете да проверите ТАЗИ страница.
След като сме настроили околната среда и всички предпоставки, нека видим как всъщност можем да изградим това!
Стъпка 2: Какви са Хааровите характеристики?
Хааровите характеристики са характеристики на цифрово изображение. Името идва от вълновите вълни на Хаар. Това са семейство квадратни вълни, които се използват за идентифициране на характеристики в цифрово изображение. Каскадите на Haar са основно класификатор, който ни помага да откриваме обекти (в нашия случай лица), използвайки функциите, подобни на haar.
В нашия случай за простота ще използваме предварително обучени Haar Cascades за идентифициране на лица. Можете да следвате ТАЗИ връзка на страница на github и да изтеглите xml файла за Haar Cascade.
1. Кликнете върху „haarcascade_frontalface_alt.xml“
2. Щракнете върху бутона „Raw“в горната дясна част на прозореца с кода.
3. Ще ви насочи към друга страница само с текст.
4. Щракнете с десния бутон и натиснете „Запазване като..“
5. Запазете го в същата директория или папка като тази на кода на python, за който пишете.
Стъпка 3: Кодиране в Python
импортиране на cv2
import numpy като np импортиране на серийно време за импортиране
Импортираме всички необходими библиотеки.
ard = serial. Serial ("COM3", 9600)
Създаваме сериен обект, наречен 'ard'. Ние също така посочваме името на порта и BaudRate като параметри.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Ние създаваме друг обект за нашата Haar Cascade. Уверете се, че файлът 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 = () определя минималния размер на лицето по отношение на пиксели #Кликнете върху горната връзка, за да научите повече за Cascade Classification lica = face_cascade.detectMultiScale (сиво, minSize = (80, 80), minNeighbors = 3) #A for цикъл за откриване на лица. за (x, y, w, h) в лица: cv2.rectangle (рамка, (x, y), (x+w, y+h), (255, 0, 0), 2)#нарисува правоъгълник около лицето Xpos = x+(w/2)#изчислява X координатата на центъра на лицето. Ypos = y+(h/2) #изчислява Y координатата на центъра на лицето, ако Xpos> 280: #Следните кодови блокове проверяват дали лицето е ard.write ('L'.encode ()) #on ляво, дясно, отгоре или отдолу по отношение на time.sleep (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 (' frame ', frame)#показва кадъра в отделен прозорец. k = cv2.waitKey (1) & 0xFF if (k == ord ('q')): #ако 'q' е натиснато на клавиатурата, излиза от цикъла while. прекъсване
cv2.destroyAllWindows () #затваря всички прозорци
ard.close () #затваря серийната комуникация
vid.release () #спира приемането на видео от уеб камерата.
Стъпка 4: Програмиране на Arduino
Не се колебайте да промените програмата според хардуерната си настройка, отговаряща на вашите нужди.
#включва
Servo servoX;
Серво сервоY;
int x = 90;
int y = 90;
void setup () {
// поставете вашия код за настройка тук, за да стартирате веднъж: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); забавяне (1000); }
char input = ""; // серийният вход се съхранява в тази променлива
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 (вход == 'L') {servoX.write (x-1); x -= 1; } else if (input == 'R') {servoX.write (x+1); x += 1; } else {servoX.write (x); } вход = ""; // изчиства променливата} // процесът се повтаря !!:)}
Стъпка 5: Заключение
Това е един хубав и интерактивен начин, чрез който можете да проектирате да включите Computer Vision във вашите проекти на Arduino. Computer Vision всъщност е доста забавно. Искрено се надявам, че на вас ви е харесало. Ако да, уведомете ме в коментарите. И моля, абонирайте се за канала ми в youtube. Благодаря предварително <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Препоръчано:
Проследяване и проследяване за малки магазини: 9 стъпки (със снимки)
Проследяване и следене за малки магазини: Това е система, създадена за малки магазини, която трябва да се монтира на електронни велосипеди или електронни тротинетки за доставки на къси разстояния, например пекарна, която иска да доставя сладкиши. Какво означава Track and Trace? Проследяване и проследяване е система, използвана от ca
Устройство за защита на жените с GPS проследяване и сигнали, използващи Arduino: 6 стъпки
Устройство за защита на жените с GPS проследяване и сигнали, използващи Arduino: С цялата налична технология за нас в последно време, не е трудно да се изгради защитно устройство за жени, което не само ще генерира аварийна аларма, но и ще изпрати съобщение до вашите приятели, семейство , или загрижено лице. Тук ще изградим група
Направи си сам интелигентен робот за проследяване на комплекти за кола Проследяване на фоточувствителна кола: 7 стъпки
DIY Smart Robot Tracking Car Kits Проследяване на автомобил Фоточувствителен: Дизайн от SINONING ROBOT Можете да закупите от проследяващ робот car Теорът LM393 сравнете двата фоторезистора, когато има един страничен фоторезистор LED на БЯЛО, страната на двигателя ще спре веднага, другата страна на двигателя завърти се, така че
Проследяване на лица и усмивка Роботи за Хелоуин: 8 стъпки (със снимки)
Проследяване на лица и усмивка Роботи за Хелоуин: Хелоуин идва! Решихме да изградим нещо готино. Запознайте се с роботи Ghosty и Skully. Те могат да следват лицето ви и знаят кога се усмихвате, за да се смеете с вас! Този проект е друг пример за използване на приложението iRobbie, което преобразува iPhone в int
Устройство за слънчево проследяване: 25 стъпки
Устройство за слънчево проследяване: Следвайки тези стъпки, ще можете да създадете и внедрите слънчев панел, който регулира позиционирането си, за да следва слънцето. Това позволява максимално количество енергия, уловена през деня. Устройството е в състояние да усети силата на