Мазмуну:
- 1 -кадам: Веб -камерага кирүү
- 2 -кадам: жүздү аныктоо
- 3 -кадам: маалыматтарды чогултуу
- 4 -кадам: Тренинг
- 5 -кадам: Жүздү таануу
- 6 -кадам: Arduino программалоо
Video: Жүздү таануу жана идентификация - OpenCV Python жана Arduino аркылуу Arduino Face ID: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Жүздү таануу AKA жүзү идентификатору - азыркы учурдагы уюлдук телефондордун эң маанилүү өзгөчөлүктөрүнүн бири.
Ошентип, менде "менин Arduino проектим үчүн жүз идентификаторун колдоно аламбы" деген суроо пайда болду жана жооп ооба …
Менин саякатым төмөнкүчө башталды:
1 -кадам: Веб -камерага кирүү
2 -кадам: жүздү аныктоо.
3 -кадам: маалыматтарды чогултуу
4 -кадам: Тренинг
5 -кадам: жүздү таануу
6 -кадам: Arduino программалоо
Мен бардык кадамдарды төмөндө түшүндүрөм. Бул сизге жардам берет деп ишенем.
1 -кадам: Веб -камерага кирүү
Бетти таануунун 1 -кадамы камерага же компьютердин көрүү мүмкүнчүлүгүнө ээ болуу болгон. Индия кулпуланып жаткандыктан, мен тапкан эң арзан чечим - бул OpenCV модулу аркылуу python программасы менен кире алган компьютерлеримдин веб -камерасын колдонуу.
Сиз OpenCV деген эмне деп ойлоп жаткандырсыз, туурабы?
OpenCV (Open Source Computer Vision Library)-бул ачык компьютердик көрүнүш жана машинаны үйрөнүү программалык китепканасы. OpenCV компьютердин көрүү колдонмолору үчүн жалпы инфраструктураны камсыз кылуу жана коммерциялык продуктыларда машинаны кабыл алууну тездетүү үчүн курулган.
Эгерде Opencv сиздин компьютериңизге орнотулган болсо, анда барсаңыз жакшы болот. Болбосо, бул кадамды ээрчиңиз.
буйрук сабын ачыңыз жана "pip install opencv" териңиз.
Эскертүү: "" пип "ички же тышкы буйрук катары таанылбагандыктан" ката кетишиңиз мүмкүн. ал үчүн PATH тутумуңуздун өзгөрмөсүнө пип орнотуунун жолун кошушуңуз керек. Бул пост аркылуу өтүңүз, ал сизге жардам бериши мүмкүн.
stackoverflow.com/questions/23708898/pip-i…
OpenCV орнотулгандан кийин, биз барганыбыз оң … Анын туура орнотулгандыгын текшерүү үчүн Python котормочуңузду ачып, китепкананы импорттоңуз. Жогорудагы сүрөттү караңыз, ал сиздин чыгармаңыз болушу керек.
"AccessTo_webcam.py" питон файлын жүктөп алып, иштетиңиз. Мен ал жерде бардык керектүү комментарийлерди бердим.
Мына, эми веб -камерага кире аласыз. Мыкты жасалды. келгиле 2 -кадамга өтөлү.
2 -кадам: жүздү аныктоо
Ошол эле OpenCV модулунун жардамы менен биз видео агымында жүз бар же жок экенин аныкташыбыз керек.
OpenCV Cascade Classifier деп аталган окуу ыкмасын же алдын ала үйрөтүлгөн моделдерди камсыз кылат. Алдын ала даярдалган моделдер OpenCV орнотуусундагы маалымат папкасында жайгашкан. Мен бул файлды жөн эле жүктөп алып, долбооруңуздун папкасына жайгаштырып жатам. "AccessTo_webcam.py" файлы сакталган папка. Эгерде сиз аны жаратпасаңыз, анда жасаңыз.
"Haarcascade_frontalface_default" жүктөп алып, аны долбоордун башкы папкасына коюңуз.
"Face_identification.py" жүктөп алып, аны долбоордун башкы папкасына коюңуз. Бардык түшүндүрмөлөр анда камтылган.
Эми сиз видео агымында жүздөрдү аныктай аласыз. Ошентип, 3 -кадамга өтөлү.
3 -кадам: маалыматтарды чогултуу
Жүздөрдү таануу үчүн биз питон программабызды үйрөтүшүбүз керек. Ал үчүн бизге кээ бир маалыматтар керек.
Маалыматты чогултуу бул долбоордун эң оңой кадамы. негизги долбоор папкасында "image_data" аттуу папканы түзүңүз. "Image_data" папкасынын ичинде адамдын аты жазылган кээ бир кошумча папкаларды түзүңүз, анда биз маалыматты сактайбыз. Мисалы:
"Image_data" папкасында "HRK" жана "Yahiya" аттуу дагы эки папка түздүм. жогорудагы сүрөттө көрсөтүлгөндөй.
Эми өзүңүздүн папкаларыңызды түзүп, аларга ат коюңуз.
Папкалар түзүлгөндөн кийин, ошол адамдын сүрөттөрүн чогулта баштаңыз. Мен киши башына болжол менен 20га жакын сүрөттөрдү чогултууну сунуштайм. Сиз дагы сүрөттөрдү кошо аласыз, бирок баардык адамдар үчүн чогултулган маалыматтар бирдей сүрөттөрдү камтыйт. Бул тактыкты камсыз кылууга жардам берет.
бул эми 4 -кадамга өтөлү.
4 -кадам: Тренинг
Кыскача айтканда, биз "image_data" папкасында турган бардык папкаларды жана сүрөттөрдү карап чыгабыз жана энбелгиси ID жана тиешелүү аталышты камтыган сөздүктү түзөбүз. Ошол эле учурда биз "Кызыкчылыктын аймагы" деп атаган ар бир сүрөттөгү жүздү аныктоо үчүн сүрөттү жүктөп, ал маалыматты камтыган ".yml" файлын түзөбүз.
Сиз X жана Y адамдар үчүн чогултулган маалыматыңыз бар деп ойлосоңуз.
биз X адамды 1 деп белгилейбиз, ал анын энбелгиси болот жана аты X өзү болот. Биз анын жүзүн, башкача айтканда, кызыккан аймакты табуу үчүн сүрөттү жүктөп, маалыматтарды тизмеге кошобуз.
окшош кадамдар Y адамы үчүн жасалат. Акыры, биз ".yml" файлын түзөбүз.
"Face_trainer.py" файлын жүктөп алып, аны долбоордун башкы папкасына коюңуз. Бардык керектүү түшүндүрмөлөр ошол файлдын өзүндө берилген.
Бул программаны иштеткенде, ал бардык сүрөттөрдү карап чыгат жана "labels.pickle" жана "trainner.yml" аттуу эки файлды түзөт. Эми сиз өзүңүздүн моделиңизди үйрөттүңүз. ошондуктан 5 -кадамга өтөлү.
5 -кадам: Жүздү таануу
Эгерде сиз бардык кадамдарды туура өткөргөн болсоңуз, анда сиз өзүңүздүн үйрөтүлгөн маалыматыңызды жараткандырсыз. Эми биз бул маалыматтарды жүздү таануу үчүн колдонобуз.
Негизинен биз үйрөтүлгөн моделдерибизди питон файлына жүктөйбүз, веб -камерабызга киребиз жана видео агымдагы Беттерди аныктайбыз жана видео агымында аныкталган учурдагы жүз менен машыктырылган моделдин салыштыруусун же болжолун жасайбыз. эгер маалыматтар дал келсе, анда биз бул адам таанылган деп айтабыз, бул жөн эле …
"Face_recognise.py" жүктөп алып, аны иштетиңиз. Бардык керектүү маалыматтар анда берилген. Эми сиздин жүзүңүз таанылган болушу мүмкүн. эгер тактык жакшы болбосо, анда маалыматты жаңыртып көрүңүз. эгер баргыңыз келсе, анда 6 -кадамга өтүңүз/
6 -кадам: Arduino программалоо
Акыркы жана акыркы кадам - Arduino программалоо, жана python менен Arduino ортосундагы байланыш режимин камсыз кылуу. Байланыш үчүн мен "Сериялык байланышты" колдондум. Сериалдык байланыш кантип иштээрин жана бирин орнотуу үчүн мен жогоруда байланыштырган видеону карап көрүңүз. Сиз видео сүрөттөмөсүндө керектүү файлдардын бардыгын таба аласыз.
Эгерде сиз видеону көргөн болсоңуз, анда мен сизге эмне кылганымды түшүндүрүп берейин. Менин жүзүм таанылганда, берилген энбелгинин идентификатору 2 болот. Этикетанын идентификатору 2 болгондон кийин мен Arduinoго сериялык маалымат катары '1' жөнөтөм. Бул менин LED chaser чынжырымды күйгүзөт. Эгерде энбелгинин идентификатору 2ден башка болсо, анда мен "0" сериялык маалымат катары жөнөтөм, ал менин LED куугунтук схемамды өчүрөт.
"Ard_chaser.ino" файлын жүктөп алыңыз. Бул сериялык байланышты колдонгон жөнөкөй LED chaser программасы.
Arduino менен python программасынын ортосундагы сериялык байланышты орното турган "face_recogniser1.py" менен жөн эле жүктөп алыңыз.
Мына сен бар. Сиз жаңы нерсени үйрөндүңүз деп үмүттөнөм. Python жана Arduino менен байланышкан нерселер үчүн менин youtube каналыма жазылыңыз. Бул сизге жакса бөлүшүңүз. Колдоону улантыңыз.
Рахмат.
Сунушталууда:
Abellcadabra (Жүздү таануу эшиктерин кулпулоо системасы): 9 кадам
Abellcadabra (Жүздү таануу эшиктеринин кулпу тутуму): Карантинде жатып, үйдүн эшигинин жүзүн таануу менен убакытты өлтүрүүнүн жолун табууга аракет кылдым. Мен аны Абеллкадабра деп атадым - бул Абракадабранын айкалышы, эшиктин коңгуроосу менен сыйкырдуу фразасы, мен коңгуроону гана алам. КҮЛКҮНҮЧТҮҮ
Жашыруун бөлүм менен жүздү таануу күзгүсү: 15 кадам (сүрөттөр менен)
Беттин таануу күзгүсү жашыруун бөлүм менен: Мен дайыма окуяларда, кинолордо жана ушул сыяктуу нерселерде колдонулган дайыма жаратуучу жашыруун бөлүмдөргө кызыгып келем. Ошентип, мен жашыруун купе сынагын көргөндө, мен бул идеяны өзүм эксперимент кылууну чечтим жана жөнөкөй ачылуучу күзгү жасоону чечтим
Практикада жүздү таануу: 21 кадам
Практикада жүздү таануу: Бул мени абдан кызыктырган тема, ал мени уйкусуз калтырат: Компьютердик көрүнүш, объекттерди жана адамдарды алдын ала даярдалган модель аркылуу аныктоо
LTE Pi HAT менен жүздү таануу Smart Lock: 4 кадам
LTE Pi HAT менен жүздү таануу Smart Lock: Бет таануу барган сайын кеңири колдонула баштады, биз аны акылдуу кулпу үчүн колдоно алабыз
Жүздү таануу+таануу: 8 кадам (сүрөттөр менен)
Жүздү таануу+таануу: Бул камерадан OpenCV менен жүздү таануунун жана таануунун чуркоосунун жөнөкөй мисалы. ЭСКЕРТҮҮ: Мен бул проектти сенсорлордун сынагы үчүн жасадым жана камераны сенсор катары таануу үчүн колдондум. Ошентип, биздин максатыбыз ушул сессияда 1. Анаконду орнотуу