Mundarija:

Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam
Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam

Video: Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam

Video: Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam
Video: Yuzni tanish (Face recognition) python 2024, Noyabr
Anonim
Image
Image

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

Veb -kameraga kirish
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

Yuz identifikatori
Yuz identifikatori

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

Ma'lumot yig'ish
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

Yuzni aniqlash
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: