Mundarija:
- 1 -qadam: veb -kameraga kirish
- 2 -qadam: yuzni aniqlash
- 3 -qadam: Ma'lumot yig'ish
- 4 -qadam: Trening
- 5 -qadam: Yuzni aniqlash
- 6 -qadam: Arduino dasturlash
Video: Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Yuzni aniqlash AKA yuz identifikatori hozirgi vaqtda mobil telefonlarning eng muhim xususiyatlaridan biridir.
Shunday qilib, menda "Arduino loyihasi uchun yuz identifikatori bo'lishi mumkinmi" degan savol bor edi va javob ha …
Mening sayohatim quyidagicha boshlandi:
1 -qadam: veb -kameraga kirish
2 -qadam: yuzni aniqlash.
3 -qadam: ma'lumotlarni yig'ish
4 -qadam: Trening
5 -qadam: yuzni aniqlash
6 -qadam: Arduino dasturlash
Men barcha qadamlarni quyida tushuntiraman. Umid qilamanki, bu sizga yordam beradi.
1 -qadam: veb -kameraga kirish
Yuzni aniqlashning birinchi bosqichi kameraga yoki kompyuterga qarashga ega bo'lish edi. Hindiston blokirovka qilinganligi sababli, men topgan eng arzon echim - bu kompyuterim veb -kamerasidan foydalanish, men unga OpenCV moduli yordamida python dasturi bilan kirish imkoniyatiga ega bo'ldim.
Siz OpenCV nima deb o'ylayotgandirsiz, shunday emasmi?
OpenCV (Open Source Computer Vision Library)-bu ochiq manbali kompyuter ko'rish va mashinani o'rganish dasturlari kutubxonasi. OpenCV kompyuter ko'rish ilovalari uchun umumiy infratuzilmani ta'minlash va tijorat mahsulotlarida mashina idrokidan foydalanishni tezlashtirish uchun yaratilgan.
Agar Opencv kompyuteringizga o'rnatilgan bo'lsa, unda siz borishingiz mumkin. Agar yo'q bo'lsa, bu bosqichni bajaring.
buyruq satrini oching va "pip install opencv" yozing.
Ogohlantirish: "" pip "ichki yoki tashqi buyruq sifatida tan olinmaganligi sababli xato bo'lishi mumkin. Buning uchun siz PATH tizim o'zgaruvchisiga pip o'rnatish yo'lini qo'shishingiz kerak. Bu xabarni ko'rib chiqing, bu sizga yordam berishi mumkin.
stackoverflow.com/questions/23708898/pip-i…
OpenCV o'rnatilgandan so'ng, biz boramiz … Uning to'g'ri o'rnatilganligini tekshirish uchun Python tarjimoningizni oching va kutubxonani import qiling. Sizning rasmingiz bo'lishi kerak bo'lgan yuqoridagi rasmga qarang.
"AccessTo_webcam.py" python faylini yuklab oling va ishga tushiring. Men u erda barcha kerakli izohlarni berdim.
Mana, endi siz veb -kameraga kirishingiz mumkin. Juda qoyil. 2 -bosqichga o'tamiz.
2 -qadam: yuzni aniqlash
o'sha OpenCV moduli yordamida biz video oqimida yuz bor yoki yo'qligini aniqlashimiz kerak.
OpenCV kaskad tasniflagichi deb nomlangan o'quv uslubini yoki oldindan tayyorlangan modellarni taqdim etadi. Oldindan o'qitilgan modellar OpenCV o'rnatilishidagi ma'lumotlar papkasida joylashgan. Men bu faylni yuklayman va uni loyiha papkasiga joylashtiraman. "AccessTo_webcam.py" fayli saqlanadigan papka. Agar siz yaratmagan bo'lsangiz, uni bajaring.
"Haarcascade_frontalface_default" ni yuklab oling va uni loyihaning asosiy jildiga joylashtiring.
"Face_identification.py" ni yuklab oling va uni loyihaning asosiy jildiga joylashtiring. Unda barcha tushuntirishlar berilgan.
Endi siz video oqimida yuzlarni aniqlashingiz mumkin. Shunday qilib, 3 -bosqichga o'tamiz.
3 -qadam: Ma'lumot yig'ish
Yuzlarni tanib olish uchun biz python dasturimizni o'rgatishimiz kerak. Buning uchun bizga ba'zi ma'lumotlar kerak.
Ma'lumot yig'ish - bu loyihadagi eng oson qadam. asosiy loyiha papkasida "image_data" nomli papka yarating. "Image_data" papkasida odamning ismi yozilgan qo'shimcha papkalarni yarating, bu erda biz ma'lumotlarni saqlaymiz. masalan:
"Image_data" papkasida "HRK" va "Yahiya" nomli yana ikkita papka yaratdim. yuqoridagi rasmda ko'rsatilgandek.
Endi o'z papkangizni yarating va ularga nom bering.
Jildlar yaratilgandan so'ng, o'sha odamning rasmlarini yig'ishni boshlang. Men har bir kishiga 20 ga yaqin rasm yig'ishni maslahat beraman. Siz qo'shimcha rasmlarni qo'shishingiz mumkin, lekin hamma odamlar uchun to'plangan ma'lumotlar bir xil miqdordagi rasmlarni o'z ichiga oladi. Bu aniqlikni ta'minlashga yordam beradi.
endi 4 -bosqichga o'tamiz.
4 -qadam: Trening
Qisqacha aytganda, biz "image_data" papkasida mavjud bo'lgan barcha papkalar va rasmlarni ko'rib chiqamiz va yorliq identifikatori va unga tegishli ismni o'z ichiga olgan lug'atni yaratamiz. Bir vaqtning o'zida biz tasvirni yuklaymiz va biz uni "qiziqish hududi" deb nomlangan har bir tasvirning yuzini aniqlaymiz va bu ma'lumotlarni o'z ichiga olgan ".yml" faylini yaratamiz.
Sizda X va Y shaxslar uchun to'plangan ma'lumotlar bor deb faraz qilsak.
biz X kishini 1 deb belgilaymiz, bu uning identifikatori bo'ladi va ismi X bo'ladi. Biz tasvirni uning yuzini, ya'ni qiziqish hududini topish uchun yuklaymiz va ma'lumotlarni ro'yxatga qo'shamiz.
shunga o'xshash amallar Y odam uchun bajariladi. Va nihoyat, biz ".yml" faylini yaratamiz.
"Face_trainer.py" faylini yuklab oling va uni loyihaning asosiy jildiga joylashtiring. Barcha kerakli tushuntirishlar faylning o'zida keltirilgan.
Bu dasturni ishga tushirganingizda, u barcha rasmlarni ko'rib chiqadi va "labels.pickle" va "trainner.yml" nomli ikkita faylni yaratadi. Endi siz o'zingizning modelingizni o'rgatdingiz. shuning uchun 5 -bosqichga o'tamiz.
5 -qadam: Yuzni aniqlash
Agar siz barcha bosqichlarni to'g'ri bajargan bo'lsangiz, unda siz o'zingiz tayyorlagan ma'lumotlarni yaratgan bo'lishingiz mumkin. Endi biz bu ma'lumotlarni yuzni aniqlash uchun ishlatamiz.
Asosan, biz o'qitilgan modellarimizni python fayliga yuklaymiz, veb -kameramizga kiramiz va video oqimidagi yuzlarni aniqlaymiz va video oqimida aniqlangan hozirgi yuz bilan o'qitilgan modelni taqqoslaymiz yoki bashorat qilamiz. agar ma'lumotlar mos kelsa, biz aytamizki, bu odam tan olingan, bu juda oddiy …
"Face_recognise.py" ni yuklab oling va ishga tushiring. Unda barcha kerakli ma'lumotlar keltirilgan. Endi sizning yuzingiz tanilgan bo'lishi mumkin. agar aniqlik yaxshi bo'lmasa, ma'lumotlarni yangilab ko'ring. agar siz borishni xohlasangiz, 6 -bosqichga o'ting.
6 -qadam: Arduino dasturlash
Oxirgi va oxirgi qadam - Arduino -ni dasturlash va python va Arduino o'rtasidagi aloqa rejimini ta'minlash. Aloqa uchun men "Serial aloqa" dan foydalandim. Men ketma -ket aloqa qanday ishlashini va uni o'rnatish uchun yuqoridagi havola qilingan videoni ko'rib chiqing. Siz video tavsifida kerakli fayllarni topasiz.
Agar siz videoni ko'rgan bo'lsangiz, men sizga nima qilganimni tushuntirib beray. Qachonki mening yuzim tanib qolsa, ko'rsatilgan identifikator identifikatori 2 bo'ladi. Yorliq identifikatori 2 bo'lganda, men "1" raqamini ketma -ket ma'lumotlar sifatida Arduino -ga yuboraman. Bu mening LED chaser davrasini yoqadi. Agar yorliq identifikatori 2 dan boshqacha bo'lsa, men ketma -ket ma'lumot sifatida "0" ni yuboraman, bu esa LED chaser davrasini o'chirib qo'yadi.
"Ard_chaser.ino" faylini yuklab oling. Bu ketma -ket aloqadan foydalanadigan oddiy LED chaser dasturi.
Arduino va python dasturlari o'rtasida ketma -ket aloqa o'rnatadigan "face_recogniser1.py" faylini yuklab oling.
Mana, borasiz. Umid qilamanki, siz yangi narsalarni o'rgandingiz. Python va Arduino bilan bog'liq boshqa narsalarni bilish uchun youtube kanalimga obuna bo'ling. Agar sizga yoqqan bo'lsa, buni baham ko'ring. Qo'llab -quvvatlashda davom eting.
Rahmat.
Tavsiya:
Abellcadabra (Yuzni aniqlash eshiklarini qulflash tizimi): 9 qadam
Abellcadabra (Yuzni aniqlash eshiklarini qulflash tizimi): Karantin paytida men uy eshigining yuzini aniqlash orqali vaqtni o'ldirishning yo'lini topishga harakat qildim. Men uni Abellkadabra deb nomladim - bu Abrakadabra kombinatsiyasi, eshik qo'ng'irog'i bilan sehrli ibora, men faqat qo'ng'iroqni olaman. QOTIB KULDIM
Yashirin bo'linma bilan yuzni aniqlash oynasi: 15 qadam (rasmlar bilan)
Yuzni tanib olish oynasi maxfiy bo'linma bilan: Hikoyalar, filmlar va boshqalarda ishlatiladigan ijodiy maxfiy bo'linmalar meni doim qiziqtirib kelgan. Shunday qilib, "Maxfiy kupe" tanlovini ko'rganimda, men bu g'oyani o'zim sinab ko'rishga va oddiy ochiladigan oynani yasashga qaror qildim
ESP32-CAM kartasi yordamida yuzni aniqlash bilan IP-kamera: 5 qadam
ESP32-CAM kartasidan foydalangan holda yuzni aniqlash bilan IP-kamera: Bu xabar boshqalardan farq qiladi va biz hayratlanarli darajada arzon (9 dollardan kam) va ishlatish uchun qulay ESP32-CAM kartasini ko'rib chiqamiz. Biz oddiy IP -kamerani yaratamiz, uni 2 -dan foydalanib jonli video uzatish uchun ishlatish mumkin
Yuzni aniqlash eshik qulfi: 8 qadam
Yuzni tanish eshik qulfi: Taxminan bir oy davomida men yuzni aniqlash eshik qulfini taqdim etaman! Men uni iloji boricha toza qilib ko'rsatishga harakat qildim, lekin men 13 yoshli bola kabi qila olaman. Bu yuzni taniy oladigan eshik qulfi Raspberry Pi 4 tomonidan boshqariladi, maxsus ko'chma tayoqcha bilan
Yuzni kuzatish va tabassum Halloween robotlarini aniqlash: 8 qadam (rasmlar bilan)
Yuzni kuzatish va tabassum Halloween robotlarini aniqlaydi: Xellouin keladi! Biz ajoyib narsa qurishga qaror qildik. Ghosty va Skully robotlari bilan tanishing. Ular sizning yuzingizga ergashishi mumkin va siz qachon kulayotganingizni bilishadi! Bu loyiha iPhone -ni o'zgartiradigan iRobbie ilovasidan foydalanishning yana bir misolidir