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

Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով. 6 քայլ (նկարներով)
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով. 6 քայլ (նկարներով)

Video: Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով. 6 քայլ (նկարներով)

Video: Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով. 6 քայլ (նկարներով)
Video: Հայաստանը կարող է դառնալ տիեզերական համակարգչային տեսողության կենտրոն 2024, Նոյեմբեր
Anonim
Image
Image
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով
Համակարգչային տեսողության վերահսկվող սայլակ մանեկենով

Նախագիծ ՝ AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC: Անուղղելի ՝ AJ Sapala, Fanyun Peng, Ray LC:

Մենք ստեղծեցինք անվասայլակ ՝ անիվներով, որոնք կառավարվում են Arduino տախտակի միջոցով, որն էլ իր հերթին վերահսկվում է ազնվամորու pi- ի միջոցով, որը բաց CV- ն է մշակում: Երբ openCV- ում դեմքեր ենք հայտնաբերում, շարժիչները շարժում ենք դեպի այն ՝ սայլակը շրջելով այնպես, որ այն դեմքով դեպի մարդը, իսկ մանեկենը (նրա բերանով) շատ սարսափելի լուսանկար կանի և կկիսվի աշխարհի հետ: Սա չարիք է:

Քայլ 1. Սայլակի ձևավորում, նախատիպ և սխեմաներ:

Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ
Սայլակի ձևավորում, նախատիպ և սխեմաներ

Նախնական հայեցակարգը հիմնված էր այն գաղափարի վրա, որ շարժական կտորը կկարողանա լրտեսել չկասկածող դասարանցիներին և նրանց տգեղ լուսանկարել: Մենք ցանկանում էինք, որ կարողանանք մարդկանց վախեցնել ՝ շարժվելով դեպի նրանց, չնայած չէինք ենթադրում, որ շարժիչային մեխանիկական խնդիրներն այդքան դժվար կլինեն: Մենք հաշվի առանք այն հնարավորությունները, որոնք կտորը կդարձնեն հնարավորինս գրավիչ (չար ձևով) և որոշեցինք մանեկեն տեղադրել սայլակի վրա, որը կարող է շարժվել դեպի համակարգչային տեսողություն ունեցող մարդկանց մոտ: Արդյունքի նախատիպը պատրաստել է AJ- ն փայտից և թղթից, մինչդեռ Ռեյը և Ռեբեկկան OpenCV- ին ստիպել են աշխատել ազնվամորու pi- ով ՝ համոզվելով, որ դեմքերը կարելի է հուսալիորեն հայտնաբերել:

Քայլ 2: Նյութեր և կարգավորում

Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում
Նյութեր և կարգավորում

1x սայլակ (https://www.amazon.com/Medline-Lightweight-Transpo…

2x սկուտերային շարժիչներ

2x Cytron շարժիչի տախտակներ

1x arduino UNO R3 (https://www.amazon.com/Arduino-Uno-R3-Microcontrol…

1x ազնվամորի պի 3 (https://www.amazon.com/Raspberry-Pi-RASPBERRYPI3-M…

1x ազնվամորի pi տեսախցիկ v2 (https://www.amazon.com/Raspberry-Pi-Camera-Module-…

1x 12v լիցքավորվող մարտկոց

նրբատախտակ

L- փակագծեր

ռետինե հատակներ

Քայլ 3. Սայլակին կցորդիչի և մանեկենի գլխիկի շարժիչի պատրաստում

Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում
Շարժիչի սայլակին կցորդի և մանեկենի գլխիկի պատրաստում

AJ- ն սարքեց սարք, որը սկուտերների շարժիչները (2) ամրացնում է անիվի աթոռի ներքևին և ամրացնում սկիպիդարների փակագիծը պատվերով պատրաստված ռետինե ժամանակացույցի գոտու վրա: Յուրաքանչյուր շարժիչ տեղադրվում է առանձին և ամրագրված է համապատասխան անիվի վրա: Երկու անիվ, երկու շարժիչ: Այնուհետև շարժիչները սնվում և սնվում են երկու Cytron շարժիչային տախտակների միջոցով Arduino (1) մինչև Raspberry Pi (1), բոլոր տարրերը սնվում են 12 վոլտ լիցքավորվող մարտկոցով (1): Շարժիչային ապարատները ստեղծվել են նրբատախտակի, L- փակագծերի, քառակուսի փակագծերի և փայտի ամրացումների միջոցով: Փաստացի շարժիչի շուրջ փայտե ամրակ ստեղծելով ՝ շարժիչը սայլակի ներքևում տեղում տեղադրելը շատ ավելի հեշտ էր և կարող էր տեղափոխվել ժամանակացույցի գոտին ձգելու համար: Շարժիչային ապարատները տեղադրվել են սայլակի մետաղյա շրջանակի միջոցով հորատման և փայտը L- փակագծերով ամրացնելու միջոցով:

Timամացույցի գոտիները պատրաստված էին ռետինե հատակից: Ռետինե հատակին արդեն իսկ պատրաստված էր մի քայլ, որը չափերով նման էր շարժիչների պտտվող բրա: Յուրաքանչյուր կտոր կտրված էր այն լայնությամբ, որն աշխատում է շարժիչների պտտվող բրա հետ: Կտրված կաուչուկի յուրաքանչյուր կտոր միաձուլվում էր իրար հետ ՝ ստեղծելով «գոտի» ՝ մի ծայրը և հակառակ ծայրը հղկելով և միացնելով փոքր քանակությամբ Barge սոսինձ: Barge- ը շատ վտանգավոր է, և այն օգտագործելիս պետք է դիմակ կրել, օգտագործել նաև օդափոխություն: Ես ստեղծեցի ժամացույցի գոտու չափսերի մի քանի տեսակներ ՝ գերձիգ, ամուր, չափավոր: Այնուհետեւ գոտին պետք է միացվեր անիվին: Անիվն ինքնին ունի փոքր քանակությամբ մակերես ՝ հիմքի վրա ՝ գոտուն ուղեկցելու համար: Այս փոքր տարածքը մեծացվեց ստվարաթղթե գլանով, որի գոտու վրա տաք ժամանակ սոսնձված էր ժամանակացույցի ռետին: Այս կերպ ժամանակացույցի գոտին կարող է բռնել անիվը ՝ օգնելով այն համաժամանակորեն պտտվել պտտվող սկուտերի շարժիչի հետ:

AJ- ն նաև ստեղծեց կեղծ գլուխ, որը միավորում է Raspberry Pi- ի տեսախցիկի մոդուլը: Ռեյը օգտագործեց կեղծ գլուխը և տեղադրեց Pi տեսախցիկը և տախտակը կեղծիքի բերանի շրջանում: Սլոթերը ստեղծվել են USB և HDMI միջերեսների համար, իսկ տեսախցիկը կայունացնելու համար օգտագործվում է փայտե ձող: Տեսախցիկը տեղադրված է հատուկ տպված 3D կտորի վրա, որն ունի կցորդ 1/4-20 պտուտակների համար: Ֆայլը կցված է (ընդունված է Ray- ի ՝ thingaverse- ից տեղավորվելու համար): AJ- ն գլուխը ստեղծեց ստվարաթղթի, սոսնձի ժապավենի և մարկերներով շիկահեր պարիկի միջոցով: Բոլոր տարրերը դեռ նախատիպի փուլում են: Կեղծ գլուխը կեղծված էր կին մանեկենի մարմնին և տեղադրված սայլակի նստատեղին: Գլուխը ամրացված էր մանեկենին ՝ օգտագործելով ստվարաթղթե ձող:

Քայլ 4: Գրեք և ճշգրտեք օրենսգիրքը

Օրենսգրքի գրառում և ճշգրտում
Օրենսգրքի գրառում և ճշգրտում
Օրենսգրքի գրառում և ճշգրտում
Օրենսգրքի գրառում և ճշգրտում

Ռեբեկկան և Ռեյը առաջին անգամ փորձեցին տեղադրել openCV- ն անմիջապես raspi- ի հետ python- ով (https://pythonprogramming.net/raspberry-pi-camera-…, սակայն այն կարծես կենդանի չի աշխատում: Ի վերջո, Python- ի միջոցով openCV տեղադրելու բազմաթիվ փորձերից հետո և ձախողումը, մենք որոշեցինք անցնել pi- ով, քանի որ ProcessC- ում openCV գրադարանը բավականին լավ է աշխատում: Տե՛ս https://github.com/processing/processing/wiki/Rasp… Նկատի ունեցեք նաև, որ այն աշխատում է GPIO նավահանգիստների հետ, որից հետո կարող ենք օգտվել վերահսկել arduino- ն ՝ օգտագործելով սերիական հաղորդակցություն:

Ռեյը գրել է համակարգչային տեսողության կոդը, որը հենվում է դեմքերի հայտնաբերման համար կցված xml ֆայլին: Հիմնականում այն տեսնում է, եթե դեմքի ուղղանկյան կենտրոնը գտնվում է կենտրոնից աջ կամ ձախ, և շարժիչները շարժեք հակառակ ուղղություններով, որպեսզի աթոռը շրջվի դեպի դեմքը: Եթե դեմքը բավականաչափ մոտ է, շարժիչները շարժվում են լուսանկարելու համար: Եթե դեմքեր չեն հայտնաբերվում, մենք նույնպես դադարում ենք ավելորդ վնասվածքներ չառաջացնելու համար (կարող եք փոխել այդ գործառույթը, եթե կարծում եք, որ դա բավականաչափ չար չէ):

Ռեբեկկան Arduino- ի կոդը գրեց շարժիչային տախտակի հետ ինտերֆեյսի միջոցով `օգտագործելով Pi- ի վրա Processing- ի սերիական հաղորդակցությունը: Կարևոր ստեղները բացում են USB սերիական ACM0 պորտը Arduino- ին և միացնում ազնվամորի pi- ին Arduino- ին `USB մալուխի միջոցով: Միացրեք Arduino- ն DC շարժիչի վարորդին `շարժիչի արագությունն ու ուղղությունը վերահսկելու համար` ազնվամորի pi- ից ուղղություն և արագության հրամաններ ուղարկելով Arduino: Ըստ էության, Ray- ի մշակման կոդը շարժիչին ասում է արագությունը, մինչդեռ Arduino- ն արդար գուշակություն է անում հրամանի տևողության վրա:

Քայլ 5. Միացրեք սայլակը, մանեկենը և ծածկագիրը և թեստը:

Image
Image
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը
Միավորել սայլակը, մանեկենը և ծածկագիրը և թեստը

Բոլոր մասերը միասին դնելով ՝ մենք պարզեցինք, որ հիմնական խնդիրը շարժիչի միացումն էր սայլակի անիվներին, քանի որ ժամանակացույցի գոտիները հաճախ սայթաքում էին: Երկու շարժիչներն էլ տեղադրված են եղել

անվասայլակ գլխիվայր `ավելի հեշտ տեղադրման համար: Երկու շարժիչներն էլ լավ էին աշխատում միացված լինելով 12 վոլտ մարտկոցի աղբյուրին: Երբ սայլակն ինքն էր ուղղահայաց շրջվում, շարժիչները դժվարանում էին աթոռը հետ ու առաջ շարժել ՝ հենց աթոռի ծանրության պատճառով: Մենք փորձեցինք այնպիսի բաներ, ինչպիսիք են ՝ ժամանակացույցի գոտու լայնությունը փոխելը, գոտին կողքերին ամրացնելը և շարժիչ ուժի ավելացումը, բայց ոչ մեկը հուսալի չաշխատեց: Այնուամենայնիվ, մենք կարողացանք հստակ ցույց տալ, երբ դեմքերը գտնվում են աթոռի յուրաքանչյուր կողմում, շարժիչները կշարժվեն համապատասխան հակառակ ուղղությամբ `ազնվամորու pi- ի հետ դեմքի հայտնաբերման շնորհիվ, այնպես որ Processing և Arduino կոդերն աշխատում են ըստ նախատեսվածի, և շարժիչները կարող են համապատասխան վերահսկվել: Հաջորդ քայլերը աթոռի անիվները քշելու և մանեկենը կայուն դարձնելու ավելի ամուր միջոց դարձնելն է:

Քայլ 6. Վայելեք ձեր նոր չար մանեկեն-սայլակը

Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը
Վայելեք ձեր նոր չար մանեկեն-սայլակը

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

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