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

Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը. 8 քայլ (նկարներով)
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը. 8 քայլ (նկարներով)

Video: Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը. 8 քայլ (նկարներով)

Video: Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը. 8 քայլ (նկարներով)
Video: Behind the Scenes at Universal Orlando Resort Destination America (2015) 2024, Հուլիսի
Anonim
Image
Image
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը
Իրական աշխատող Հարրի Փոթերի գավազան ՝ օգտագործելով համակարգչային տեսլականը

«Suանկացած բավականաչափ առաջադեմ տեխնոլոգիա չի տարբերվում կախարդությունից» - Արթուր Քլարկ

Մի քանի ամիս առաջ եղբայրս այցելեց Japanապոնիա և իրական հրաշագործ փորձ ունեցավ Հարի Փոթերի կախարդական աշխարհում Universal Studios- ում, որը հնարավոր դարձավ Computer Vision- ի տեխնոլոգիայի միջոցով:

Universal Studios- ի Հարրի Փոթերի կախարդական աշխարհում զբոսաշրջիկները կարող են «իսկական կախարդանք» կատարել որոշակի վայրերում (որտեղ տեղադրված է շարժման գրավման համակարգը) `օգտագործելով հատուկ պատրաստված գավազաններ, որոնց ծայրում կա ռետոլեկտիվ ուլունքներ: Գավազանները կարելի է գնել իսկական Օլիվանդերսի խանութից, որոնք նման են Հարի Փոթերի ֆիլմերում ցուցադրվածին, բայց հիշում են. «Գավազան է ընտրում կախարդին»: P

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

Այսպիսով, այս Ուղեցույցում ես ցույց կտամ, թե ինչպես կարող եք տանը ստեղծել շարժումների գրավման էժան և արդյունավետ համակարգ `« իսկական կախարդանք »կատարելու համար ՝ ձեր գավազանի շարժումով տուփ բացելով. D օգտագործելով սովորական գիշերային տեսողության ֆոտոխցիկ, որոշ էլեկտրոնիկա և որոշ պիթոնի ծածկագիր OpenCV համակարգչային տեսլականի գրադարանի և մեքենայական ուսուցման միջոցով !!!

Քայլ 1. Հիմնական գաղափարը և պահանջվող մասերը

Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը
Հիմնական գաղափարը և պահանջվող մասերը

Այն գավազանները, որոնք գնում են Հարի Փոթերի կախարդական աշխարհից Universal Studios- ում, իրենց հուշում ունեն հետադարձ ռեֆլեկտիվ բշտիկ: Այդ հետադարձ ռեֆլեկտիվ ուլունքներն արտացոլում են ինֆրակարմիր ճառագայթների մեծ քանակություն, որը տրվում է տեսախցիկի կողմից շարժման գրավման համակարգում: Այսպիսով, այն, ինչ մենք ՝ մարդիկ, ընկալում ենք որպես օդում շարժվող գավազանի ոչ այնքան տարբերակիչ հուշում, շարժման գրավման համակարգն է ընկալում որպես պայծառ բլբուլ, որը կարելի է հեշտությամբ մեկուսացնել տեսաերիզում և հետևել ՝ ճանաչելու անձի գծած օրինակը և կատարելու անհրաժեշտ գործողությունը: Այս ամբողջ մշակումը տեղի է ունենում իրական ժամանակում և օգտագործում է համակարգչային տեսլականը և մեքենայական ուսուցումը:

Գիշերային տեսողության պարզ տեսախցիկը կարող է օգտագործվել որպես շարժման տեսախցիկ, քանի որ դրանք նաև պայթեցնում են ինֆրակարմիր լույսը, որը մարդկանց համար տեսանելի չէ, բայց հստակ երևում է այն տեսախցիկով, որը չունի ինֆրակարմիր զտիչ: Այսպիսով, տեսախցիկից վիդեո հոսքը սնվում է ազնվամորու pi- ով, որն ունի OpenCV- ով աշխատող պիթոն ծրագիր, որն օգտագործվում է գավազանի ծայրը հայտնաբերելու, մեկուսացնելու և հետևելու համար: Այնուհետև մենք օգտագործում ենք մեքենայական ուսուցման SVM (Simple Vector Machine) ալգորիթմը `ճանաչելու գծված օրինակը և, համապատասխանաբար, վերահսկելու ազնվամորի pi- ի GPIO- ները` որոշ գործողություններ կատարելու համար:

Պահանջվող նյութեր.

1) Raspberry Pi 3 մոդել B և անհրաժեշտ պարագաներ, ինչպիսիք են ստեղնաշարը և մկնիկը

2) Raspberry Pi NoIR (Ոչ ինֆրակարմիր) տեսախցիկի մոդուլ

3) Հարրի Փոթերի գավազան `հուշում` անդրադարձնող: Մի անհանգստացեք, եթե այն չունեք: Retանկացած բան, որն ունի ռետրոֆլեկտոր, կարող է օգտագործվել: Այսպիսով, դուք կարող եք օգտագործել ցանկացած գավազան հիշեցնող փայտ և ծայրին քսել ռետրոֆլեկտոր ժապավեն, ներկ կամ ուլունքներ, և այն պետք է աշխատի այնպես, ինչպես ցույց է տրված Վիլյամ Օսմանի տեսանյութում: Դիտեք տեսանյութը

4) 10 ինֆրակարմիր LED

5) 3D տպիչ և ձեր ընտրած PLA թել

6) 12V - 1A պատի ադապտեր և DC խցիկ

7) servo շարժիչ

8) Հին տուփ և խոսեց ցիկլի անիվից

9) տաք սոսինձ ատրճանակ

10) Հարրի Փոթերի հետ կապված որոշ պատկերանշանների և պատկերների տպագրություն փայլուն թղթի վրա

11) Կանաչ եւ դեղին թավշյա սավաններ.

EԱՆՈԹՈԹՅՈՆ. Ես փորձեցի գիշերային տեսողության համար օգտագործել սովորական սովորական տեսախցիկ `հեռացնելով նրա ինֆրակարմիր զտիչը, բայց արդյունքում վնասեցի/տեղաշարժեցի նրա ոսպնյակը, ինչը մեծապես ազդեց տեսանյութի որակի վրա, և ես չկարողացա օգտագործել այն: Բայց եթե ցանկանում եք այն կրակել, կարող եք անցնել այս հիանալի ուսանելի միջով: Կտտացրեք այստեղ

Քայլ 2: Տեղադրեք OpenCV մոդուլը:

Հիմա ժամանակն է այս ամբողջ նախագծի առաջին և, հավանաբար, ամենաերկար քայլի համար. OpenCV մոդուլի տեղադրում և կառուցում ձեր Raspberry Pi- ում:

OpenCV մոդուլի կախվածության տեղադրումը շատ ժամանակ չի պահանջում, բայց կառուցման գործընթացը կարող է տևել մինչև 2 -ից 3 ժամ !! Այսպիսով, ամրացրեք !!: P

Առցանց կան բազմաթիվ ձեռնարկներ, որոնց կարող եք հետևել ՝ OpenCV 4.1.0 մոդուլը տեղադրելու համար: Ահա այն հղումը, որին ես հետևել եմ. Սեղմեք այստեղ

ՈEՇԱԴՐՈԹՅՈՆ. Ես խստորեն խորհուրդ եմ տալիս տեղադրել OpenCV մոդուլը վիրտուալ միջավայրում, ինչպես ցույց է տրված ձեռնարկում, քանի որ այն կկանխի տարբեր տեսակի կոնֆլիկտներ, որոնք կարող են առաջանալ տարբեր մոդուլների կախվածության տեղադրման կամ պիթոնի տարբեր տարբերակների հետ աշխատելիս:

Քայլ 3: Տեսախցիկի տեղադրման տպում

Տեսախցիկի տեղադրման տպում
Տեսախցիկի տեղադրման տպում
Տեսախցիկի տեղադրման տպում
Տեսախցիկի տեղադրման տպում
Տեսախցիկի տեղադրման տպում
Տեսախցիկի տեղադրման տպում

NoIR ֆոտոխցիկը չունի ինֆրակարմիր զտիչ, հետևաբար այն կարող է օգտագործվել որպես գիշերային տեսախցիկ, սակայն այն դեռ չունի ինֆրակարմիր լույսի աղբյուր: Գիշերային տեսողության բոլոր տեսախցիկներն ունեն իրենց ինֆրակարմիր լույսի աղբյուրը, որը մթության մեջ պայթեցնում է IR ճառագայթները, որոնք անտեսանելի են անզեն աչքով, բայց ճառագայթները տեսանելի են տեսախցիկով ՝ առանց ինֆրակարմիր ֆիլտրի, ցանկացած առարկայից անդրադառնալուց հետո:

Այսպիսով, մենք հիմնականում կարիք ունենք ինֆրակարմիր լույսի աղբյուրի և ինչ -որ բան տեսախցիկը տեղադրելու համար: Դրա համար ես նախագծեցի մի օբյեկտի պարզ 3D մոդել, որի վրա մենք կարող էինք տեղադրել այն տեսախցիկը, որը մենք շրջապատված էինք 10 IR լուսարձակով ՝ շրջանագծի մեջ: Մոդելը ստեղծվել է SketchUp- ով և տպվել է Black PLA- ով մոտ 40 րոպեում:

Քայլ 4: Ավարտելով տեսախցիկի ամրացումը

Ավարտելով Camera Mount- ը
Ավարտելով Camera Mount- ը
Ավարտելով Camera Mount- ը
Ավարտելով Camera Mount- ը
Ավարտելով Camera Mount- ը
Ավարտելով Camera Mount- ը

Մոդելը տպելուց հետո ես սկզբում այն հղկեցի 80 հատ ավազի թղթի հետ, այնուհետև սկսեցի IR լամպերը տեղադրել իրենց անցքերում `ըստ վերը տրված սխեմայի:

Ես ամրացրեցի լուսարձակները իրենց տեղում ինչ -որ տաք սոսինձով, այնուհետև միացրեցի երկու անընդմեջ լուսարձակների դրական և բացասական կապերը միասին, այնուհետև դրանք միացրեցի ՝ ստեղծելով լուսարձակների մի շարք կապ:

Մեկ լուսարձակի դրական կապը և ներքևի կողքին գտնվող կապարի բացասական կապը մնացել են առանց զոդման `12 վոլտ պատի ադապտերից դրական և բացասական ծայրերը միացնելու համար:

Քայլ 5. Վերապատրաստված մեքենայական ուսուցման մոդել

Անձի կողմից կազմված նամակը ճանաչելու նպատակով ես վարժեցրի մեքենայական ուսուցման մոդել `հիմնված Support Vector Machine (SVM) ալգորիթմի վրա` օգտագործելով այստեղ գտած ձեռագիր անգլերեն այբուբենների Տվյալների հավաքածուն: SVM- ները մեքենայական ուսուցման շատ արդյունավետ ալգորիթմներ են, որոնք կարող են տալ բարձր ճշգրտություն ՝ այս դեպքում մոտ 99.2% !! Կարդացեք ավելին SVM- ների մասին

Տվյալների հավաքածուն.csv ֆայլի տեսքով է, որը պարունակում է 785 սյունակ և ավելի քան 300 000 տող, որտեղ յուրաքանչյուր տող ներկայացնում է 28 x 28 պատկեր, և այդ տողում յուրաքանչյուր սյունակ պարունակում է այդ պատկերի պիքսելային արժեքը լրացուցիչ սյունակով: սկիզբը, որը պարունակում է պիտակը ՝ 0 -ից 25 համար, յուրաքանչյուրը համապատասխանում է անգլերեն տառին: Պարզ պիթոնի կոդի միջոցով ես կտրեցի տվյալները ՝ ստանալու բոլոր պատկերները միայն իմ ուզած 2 տառերի համար (A և C) և մոդել պատրաստեցի նրանց համար:

Ես կցել եմ պատրաստված մոդելը (alphabet_classifier.pkl), ինչպես նաև ուսուցման կոդը ազատ զգալ անցնել դրա միջոցով կամ ցանկացած փոփոխություն կատարել մոդելը տարբեր տառերով վարելու կամ տարբեր ալգորիթմներ փորձելու համար: Runningրագիրը գործարկելուց հետո այն ինքնաբերաբար պահում է պատրաստված մոդելը նույն գրացուցակում, որտեղ պահվում է ձեր կոդը:

Քայլ 6: Ամեն ինչ պատահող օրենսգիրք

Այն կոդը, որը ստիպում է ամեն ինչ պատահել !!
Այն կոդը, որը ստիպում է ամեն ինչ պատահել !!

Վերապատրաստված մոդելը ստեղծելուց հետո վերջին քայլը մեր Raspberry Pi- ի համար պիթոնի ծրագիր գրելն է, որը թույլ է տալիս մեզ անել հետևյալը.

  • Իրական ժամանակում մուտք գործեք տեսախցիկից տեսանյութեր
  • Տեսանյութում հայտնաբերեք և հետևեք սպիտակ բշտիկներին (այս դեպքում գավազանի ծայրը, որը լուսավորվում է գիշերային տեսողության ժամանակ)
  • Տեսահոլովակում սկսեք շարժվող բլբայի ուղու հետագծումը որոշ ձգան իրադարձությունից հետո (բացատրվում է ստորև)
  • Դադարեցնել հետագծումը մեկ այլ ձգան իրադարձությունից հետո (բացատրվում է ստորև)
  • Վերադարձեք վերջին շրջանակը օգտագործողի կողմից գծված օրինակով
  • Կատարեք շրջանակի վրա նախնական մշակում, ինչպիսիք են շեմը, աղմուկի հեռացումը, չափափոխումը և այլն:
  • Օգտագործեք մշակված վերջին շրջանակը կանխատեսման համար:
  • Կատարեք ինչ -որ կախարդություն ՝ ըստ կանխատեսման վերահսկելով Raspberry Pi- ի GPIO- ները

Այս նախագծի համար ես ստեղծեցի Հարրի Փոթերի թեմայով տուփ, որը կարող եմ բացել և փակել սերվո շարժիչով, որը վերահսկվում է Raspberry Pi- ի GPIO- ով: Քանի որ «Ա» տառը նշանակում է «Ալոհամորա» (Հարրի Փոթերի ֆիլմերից ամենահայտնի ուղղագրությունը, որը կախարդին թույլ է տալիս բացել ցանկացած կողպեք !!), եթե մարդը գավազանի հետ գծում է A տառը, ապա pi- ն հրամայում է սերվոյին բացեք տուփը: Եթե անձը նկարում է «C» տառը, որը նշանակում է մոտ (քանի որ ես չէի կարող մտածել որևէ համապատասխան ուղղագրություն, որն օգտագործվում է փակման կամ կողպման համար. P), ապա pi- ն հրամայում է սերվոյին փակել տուփը:

Պատկերի/տեսամշակման հետ կապված բոլոր աշխատանքները, ինչպիսիք են բլբի հայտնաբերումը, բլբի ուղու հետագծումը, վերջին շրջանակի նախնական մշակումը և այլն, կատարվում են OpenCV մոդուլի միջոցով:

Վերոնշյալ հրահրող իրադարձությունների համար իրական ժամանակի տեսանյութի վրա ստեղծվում է երկու շրջան ՝ կանաչ և կարմիր շրջան: Երբ բլբոնը մտնում է տարածաշրջան կանաչ շրջանակի ներսում, ծրագիրը սկսում է հետևել բլբի անցած ճանապարհին այդ պահից հետո, ինչը թույլ է տալիս անձին սկսել տառ ստեղծել: Երբ բլբոսը հասնում է կարմիր շրջանակին, տեսանյութը դադարում է, և վերջին շրջանակն անցնում է մի գործառույթի, որն իրականացնում է շրջանակի վրա նախնական մշակում ՝ այն կանխատեսման համար պատրաստ լինելու համար:

Այս քայլին կցել եմ ծածկագրերի ֆայլերը: Ազատորեն անցեք դրա միջով և կատարեք ցանկացած փոփոխություն, ինչպես ցանկանում եք:

NOTԱՆՈԹՈԹՅՈՆ. Ես պետք է ստեղծեի երկու առանձին python ֆայլ, որոնք աշխատում էին տարբեր python տարբերակներով, մեկը `ներմուծում OpenCV մոդուլ (Python 2.7) և մյուսը, որը ներմուծում էր sklearn մոդուլ (Python 3.5) կանխատեսման համար` պատրաստված մոդելը բեռնելուց հետո, քանի որ իմ OpenCV- ն տեղադրված էր Python 2.7 տարբերակը, մինչդեռ sklearn- ը տեղադրված էր python 3.5 -ի համար: Այսպիսով, ես օգտագործեցի ենթամշակման մոդուլը ՝ HarryPotterWandsklearn.py ֆայլը (կանխատեսման համար) HarryPotterWandcv.py- ից (բոլոր բաց աշխատանքի և իրական ժամանակի տեսաձայնագրման համար) գործարկելու և դրա ելքը ստանալու համար: Այս կերպ ես միայն պետք է գործարկեմ HarryPotterWandcv.py ֆայլը:

Քայլ 7: Տուփի բացման մեխանիզմ

Տուփի բացման մեխանիզմ
Տուփի բացման մեխանիզմ
Տուփի բացման մեխանիզմ
Տուփի բացման մեխանիզմ
Տուփի բացման մեխանիզմ
Տուփի բացման մեխանիզմ

Ես ունեի մի կարմիր կարմիր գույնի տուփ, որի շուրջը ես օգտագործել էի այս նախագծի համար:

Տուփի բացման մեխանիզմի համար.

  1. Ես տաք սոսնձեցի տուփի հետևի ծայրին մոտ գտնվող մատուցողը ստվարաթղթի վրա, տուփի եզրին մոտ:
  2. Հետո ես ցիկլի անիվից բարձրախոս վերցրի և այն տաք սոսնձեցի սերվոյի թևին:
  3. Խոսափողի մյուս ծայրը ամրացված էր տուփի կափարիչին ՝ օգտագործելով մետաղալար:
  4. Servo- ի պոզիտիվը միացված էր +5V Pin 2 -ին Raspberry Pi- ում:
  5. Servo- ի բացասական կողմը միացված էր GND Pin 39 -ին:
  6. Servo- ի ազդանշանը միացված էր Pin 12 -ին

Քայլ 8. Արկղը պատրաստելը Հարրի Փոթերի թեմայով

Պատրաստում ենք արկղը Հարրի Փոթերի թեմաներով
Պատրաստում ենք արկղը Հարրի Փոթերի թեմաներով
Պատրաստում ենք արկղը Հարրի Փոթերի թեմաներով
Պատրաստում ենք արկղը Հարրի Փոթերի թեմաներով
Պատրաստում ենք արկղը Հարրի Փոթերի թեմաներով
Պատրաստում ենք արկղը Հարրի Փոթերի թեմաներով

Տուփը Հարրի Փոթերի թեմայով պատրաստելու համար ես տպագրեցի տարբեր իրերի գունավոր պատկերներ, ինչպիսիք են Հարրի Փոթերի լոգոն, The Hogwarts Crest, չորս տներից յուրաքանչյուրի գագաթը և այլն: A4 փայլուն չափի թերթիկի վրա և դրանք տեղադրեցի տուփի վրա տարբեր տեղերը.

Ես նաև դեղին գույնի թավշյա սավան օգտագործեցի շերտեր կտրելու համար և դրանք կպցրեցի կափարիչին, որպեսզի տուփը ունենա նույն գույնը, ինչ Գրիֆինդորյան տանն էր: Կափարիչի ներքին մասը և սերվոյի ստվարաթուղթը ծածկեցի կանաչ թավշյա թիթեղով: Կափարիչի ներքին կողմում ես կպցրեցի ավելի շատ խորհրդանիշներ և խորհրդանիշ, որտեղ պատկերված էին այն կենդանիները, որոնք ներկայացնում են Հոգվարթսի դպրոցի յուրաքանչյուր տուն:

Հետո վերջապես ես Հարրի Փոթերի հետ կապված բոլոր իրերը լցրեցի տուփի մեջ, որը ներառում էր Գրիֆինդոր խլացուցիչ, օրագիր Հոգվարթսի համազգեստով և Այս նախագծում օգտագործված Երեց գավազանով: D

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