Բովանդակություն:

Դեմքի ճանաչում և նույնականացում - Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. 6 քայլ
Դեմքի ճանաչում և նույնականացում - Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. 6 քայլ

Video: Դեմքի ճանաչում և նույնականացում - Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. 6 քայլ

Video: Դեմքի ճանաչում և նույնականացում - Arduino Face ID ՝ օգտագործելով OpenCV Python և Arduino. 6 քայլ
Video: Look&Face |«Խուլիգան էի,զենքերով էի ման գալիս».Լիկան`անցյալի ոճի,Խորենի և սերիալներում խաղալու մասին 2024, Նոյեմբեր
Anonim
Image
Image

Դեմքի ճանաչում AKA face ID- ն մեր օրերում բջջային հեռախոսների ամենակարևոր հատկություններից մեկն է:

Այսպիսով, ես ունեի մի հարց «կարո՞ղ եմ դեմք ունենալ իմ Arduino նախագծի համար», և պատասխանը այո է

Իմ ճանապարհորդությունը սկսվեց հետևյալ կերպ.

Քայլ 1: Տեսախցիկի մուտք

Քայլ 2: Դեմքի նույնականացում:

քայլ 3: Տվյալների հավաքագրում

Քայլ 4: Վերապատրաստում

Քայլ 5: Դեմքի ճանաչում

քայլ 6: Arduino- ի ծրագրավորում

Ստորև կբացատրեմ բոլոր քայլերը: Հուսով եմ, որ սա կօգնի ձեզ:

Քայլ 1: Մուտք դեպի տեսախցիկ

Մուտք դեպի վեբ -տեսախցիկ
Մուտք դեպի վեբ -տեսախցիկ

Դեմքի ճանաչման առաջին քայլը տեսախցիկին կամ համակարգչային տեսողությանը հասանելիություն ունենալն էր: Քանի որ Հնդկաստանը գտնվում է արգելափակման մեջ, ամենաէժան լուծումը, որը ես գտա, այն էր, որ օգտագործեի իմ համակարգիչների վեբ -տեսախցիկը, որին հասանելի էի python ծրագրով ՝ openCV մոդուլի միջոցով:

Գուցե մտածում եք, թե ինչ է OpenCV- ն, այնպես չէ՞:

OpenCV (Open Source Computer Vision Library) բաց կոդով համակարգչային տեսողության և մեքենայական ուսուցման ծրագրային գրադարան է: OpenCV- ն ստեղծվել է համակարգչային տեսողության ծրագրերի համար ընդհանուր ենթակառուցվածք ապահովելու և առևտրային արտադրանքներում մեքենաների ընկալման արագացման համար:

Եթե Opencv- ը տեղադրված է ձեր համակարգչում, ապա լավ կլինի: Եթե ոչ, ապա հետևեք այս քայլին:

բացեք հրամանի տողը և մուտքագրեք «pip install opencv»:

Նախազգուշացում. Դուք կարող եք սխալ ստանալ, քանի որ «'pip» - ը չի ճանաչվում որպես ներքին կամ արտաքին հրաման »: որի համար Դուք պետք է ձեր pip տեղադրման ուղին ավելացնեք ձեր PATH համակարգի փոփոխականին: Անցեք այս գրառմամբ, դա կարող է օգնել ձեզ:

stackoverflow.com/questions/23708898/pip-i…

OpenCV- ի տեղադրումից հետո մենք լավ ենք գնում … Ստուգելու համար, թե արդյոք այն պատշաճ տեղադրված է, բացեք ձեր Python թարգմանիչը և ներմուծեք գրադարանը: Տեսեք վերը նշված պատկերը, որը պետք է լինի ձեր ելքը:

Ներբեռնեք «AccessTo_webcam.py» պիթոնի ֆայլը և գործարկեք այն: Ես այնտեղ տվել եմ բոլոր անհրաժեշտ մեկնաբանությունները:

Ահա, հիմա դուք մուտք ունեք վեբ -տեսախցիկ: Լավ արեց: անցնենք 2 -րդ քայլին:

Քայլ 2: Դեմքի նույնականացում:

Դեմքի նույնականացում
Դեմքի նույնականացում

նույն OpenCV մոդուլի օգնությամբ մենք պետք է որոշենք ՝ տեսահոսքի վրա դեմք կա, թե ոչ:

OpenCV- ն տրամադրում է վերապատրաստման մեթոդ կամ նախապես պատրաստված մոդելներ, որոնք կոչվում են Կասկադի դասակարգիչ: Նախապես պատրաստված մոդելները գտնվում են 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 -ով, որը կլինի նրա պիտակի ID- ն և անունը `X: Մենք բեռնում ենք պատկերը ՝ գտնելու համար նրա դեմքը, այսինքն ՝ հետաքրքրության շրջանը և տվյալները կցում ենք ցուցակին:

նմանատիպ քայլեր կկատարվեն անձի Y- ի համար: Եվ վերջապես, մենք կստեղծենք «.yml» ֆայլ:

Ներբեռնեք «face_trainer.py» ֆայլը և տեղադրեք այն ծրագրի հիմնական թղթապանակում: Բոլոր անհրաժեշտ բացատրությունները ներկայացված են հենց այդ ֆայլում:

Երբ գործարկեք այս ծրագիրը, այն կանցնի բոլոր պատկերներով և կստեղծի երկու ֆայլ ՝ «labels.pickle» և «trainner.yml» անուններով: Այժմ դուք պատրաստել եք ձեր սեփական մոդելը: Այսպիսով, եկեք անցնենք 5 -րդ քայլին:

Քայլ 5: Դեմքի ճանաչում

Դեմքի ճանաչում
Դեմքի ճանաչում

Եթե դուք ճիշտ անցել եք բոլոր քայլերը, ապա գուցե ստեղծել եք ձեր սեփական պատրաստված տվյալները: Այժմ մենք այդ տվյալները կօգտագործենք դեմքի ճանաչման համար:

Հիմնականում մենք կբեռնենք մեր պատրաստված մոդելները python ֆայլի մեջ, մուտք կգտնենք մեր տեսախցիկ և կբացահայտենք դեմքերը տեսահոլովակում և համեմատություն կամ կանխատեսում կկատարենք տեսահոլովակում նշված ներկայիս դեմքի և վերապատրաստված մոդելի միջև: եթե տվյալները համընկնում են, ապա մենք ասում ենք, որ անձը ճանաչված է, դա նույնքան պարզ է…

Ներբեռնեք «face_recognise.py» և գործարկեք այն: Բոլոր անհրաժեշտ տեղեկությունները ներկայացված են դրանում: Հիմա երևի ձեր դեմքը ճանաչված էր: եթե ճշգրտությունը լավ չէ, ապա փորձեք թարմացնել տվյալները: եթե բոլորդ լավ եք գնում, ապա անցեք 6 -րդ քայլին/

Քայլ 6: Arduino- ի ծրագրավորում

Վերջին և վերջին քայլը Arduino- ի ծրագրավորումն է, և պիթոնի և Arduino- ի միջև հաղորդակցության ռեժիմի ապահովումը: Հաղորդակցության համար ես օգտագործել եմ «Սերիական հաղորդակցություն»: Անցեք տեսանյութը, որը ես կապել եմ վերևում ՝ գտնելու համար, թե ինչպես է աշխատում սերիական հաղորդակցությունը և ստեղծելու այն: Տեսանյութի նկարագրության մեջ դուք կգտնեք բոլոր անհրաժեշտ ֆայլերը:

Եթե դիտել եք տեսանյութը, թույլ տվեք բացատրել ձեզ, թե ինչ եմ արել: Երբ իմ դեմքը ճանաչվում է, պիտակի ID- ն է 2. Երբ պիտակի ID- ն 2 է, ես կուղարկեմ '1' որպես սերիական տվյալներ իմ Arduino- ին: Որը կմիացնի իմ LED հետապնդող սխեման: Եթե պիտակի ID- ն այլ չէ, քան 2 -ը, ապա ես սերիական տվյալներ կուղարկեմ '0', ինչը կանջատի իմ LED հետապնդող սխեման:

Ներբեռնեք «ard_chaser.ino» ֆայլը: Դա պարզ LED հետապնդող ծրագիր է, որն օգտագործում է սերիական հաղորդակցություն:

Ներբեռնեք «face_recogniser1.py» - ն, որը կհաստատի Arduino- ի և python ծրագրի սերիական հաղորդակցությունը:

Այդպես էլ գնացեք: Հուսով եմ, որ դուք նոր բան եք սովորել: Բաժանորդագրվեք իմ youtube ալիքին ՝ Python- ի և Arduino- ի հետ կապված ավելի շատ նյութերի համար: Կիսեք սա, եթե ձեզ դուր եկավ: Շարունակեք աջակցել:

Շնորհակալություն.

Խորհուրդ ենք տալիս: