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

Վերամշակման տեսակավորման ռոբոտ. 15 քայլ (նկարներով)
Վերամշակման տեսակավորման ռոբոտ. 15 քայլ (նկարներով)

Video: Վերամշակման տեսակավորման ռոբոտ. 15 քայլ (նկարներով)

Video: Վերամշակման տեսակավորման ռոբոտ. 15 քայլ (նկարներով)
Video: Специальный гость TimKandyGAMES @TiTiguyM #поговорим #livestream 2024, Հուլիսի
Anonim
Image
Image
Տվյալների ստացում
Տվյալների ստացում

Գիտե՞ք, որ համայնքներում և ձեռնարկություններում վարակման միջին մակարդակը տատանվում է մինչև 25%: Դա նշանակում է, որ ձեր նետած վերամշակման յուրաքանչյուր չորս կտորից մեկը չի վերամշակվում: Դա պայմանավորված է վերամշակման կենտրոններում մարդկային սխալի պատճառով: Ավանդաբար, աշխատողները աղբը կտեսնեն տարբեր աղբամանների մեջ `կախված նյութից: Մարդիկ պարտավոր են սխալներ թույլ տալ և վերջում աղբը ճիշտ չեն տեսակավորում ՝ հանգեցնելով վարակման: Քանի որ այսօրվա հասարակության մեջ աղտոտվածությունն ու կլիմայի փոփոխությունն ավելի էական են դառնում, վերամշակումը հսկայական դեր է խաղում մեր մոլորակի պաշտպանության գործում: Օգտագործելով ռոբոտներին աղբը տեսակավորելու համար, աղտոտվածության մակարդակը կտրուկ կնվազի, էլ չենք ասում շատ ավելի էժան և ավելի կայուն: Խնդիրը լուծելու համար ես ստեղծեցի վերամշակման տեսակավորման ռոբոտ, որը մեքենայական ուսուցման միջոցով տեսակավորում է տարբեր վերամշակման նյութերի միջև:

Քայլ 1: Մասեր

Համոզվեք, որ այս ձեռնարկին հետևելու համար ունեք հետևյալ մասերը.

3D տպագիր մասեր (տես ստորև բերված քայլը)

Raspberry Pi RPI 4 4 ԳԲ

Google Coral USB արագացուցիչ

Arduino Uno R3

Raspberry Pi Camera Module V2

5V 2A DC պատի սնուցման սարք

DC 12V էլեկտրամատակարարում

SG90 9 գ Micro Servos 4 հատ:

M3 x 0.5 մմ Չժանգոտվող պողպատից ինքնալրվող նեյլոնե վեցանկյուն կողպեքի ընկույզ 100 հատ:

M3x20 կոճակի գլուխ տիտանի պտուտակներ 10 հատ:

MG996R Metal Gear Torque Analog Servo Motor 4 հատ:

Samsung 32GB Ընտրեք հիշողության քարտ

Adafruit Flex մալուխ ազնվամորի Pi տեսախցիկի համար `1 մետր

M2 Արական իգական արույր փողկապի անջատիչ պտուտակավոր ընկույզի տեսականի

60 մմ 12V օդափոխիչ

6.69 "x 5.12" x 2.95 "Նախագծի տուփ

Քայլ 2: 3D տպագիր մասեր

Դուք պետք է եռաչափ տպեք ռոբոտային թևի բոլոր մասերը: Բոլոր ֆայլերը կարող եք գտնել այստեղ:

Քայլ 3: Կոդ

Խնդրում ենք կլոնավորել իմ GitHub պահոցը ՝ այս ձեռնարկին հետևելու համար:

Քայլ 4: Տվյալների ստացում

Օբյեկտների հայտնաբերման մոդելը վերապատրաստելու համար, որը կարող է հայտնաբերել և ճանաչել տարբեր վերամշակման նյութեր, ես օգտագործեցի աղբարկղերի հավաքածուն, որը ներառում է 2527 պատկեր.

  • 501 ապակի
  • 594 թուղթ
  • 403 ստվարաթուղթ
  • 482 պլաստիկ
  • 410 մետաղ
  • 137 աղբ

Վերոնշյալ պատկերը տվյալների օրինակից մեկի օրինակն է տվյալների հավաքածուից:

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

Դուք կարող եք օգտագործել այս google drive պանակը ՝ տվյալների հավաքածուն ներբեռնելու համար: Համոզվեք, որ ներբեռնել dataset-resized.zip ֆայլը: Այն պարունակում է մի շարք պատկերներ, որոնք արդեն չափափոխվել են ավելի փոքր չափի `ավելի արագ ուսուցման հնարավորություն տալու համար: Եթե ցանկանում եք չափափոխել հումքի պատկերները ըստ ձեր ցանկության, ազատ զգալ ներբեռնեք dataset-original.zip ֆայլը:

Քայլ 5: Պատկերների պիտակավորում

Պատկերների պիտակավորում
Պատկերների պիտակավորում

Հաջորդը, մենք պետք է պիտակավորենք տարբեր վերամշակման նյութերի մի քանի պատկերներ, որպեսզի կարողանանք պատրաստել առարկաների հայտնաբերման մոդելը: Դա անելու համար ես օգտագործեցի labelImg- ը ՝ անվճար ծրագրակազմ, որը թույլ է տալիս պատկերների մեջ պիտակավորել օբյեկտներին սահմանափակող արկղերը:

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

Վերոնշյալ լուսանկարը ցույց է տալիս, թե ինչպես պիտակավորել ձեր պատկերները:

Սա շատ հոգնեցուցիչ և մտահոգիչ փորձ է: Շնորհակալ եմ ձեզ համար, ես արդեն պիտակեցի բոլոր պատկերները ձեզ համար: Այն կարող եք գտնել այստեղ:

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

Վերապատրաստման առումով ես որոշեցի օգտագործել փոխանցման ուսուցումը `օգտագործելով Tensorflow- ը: Սա թույլ է տալիս վերապատրաստել արժանապատիվ ճշգրիտ մոդել ՝ առանց մեծ քանակի տվյալների:

Կան մի քանի եղանակներ, որոնք մենք կարող ենք դա անել: Մենք կարող ենք դա անել մեր տեղական աշխատասեղանի վրա ամպի վրա: Մեր տեղական մեքենայի վրա ուսուցումը շատ երկար կտևի ՝ կախված նրանից, թե որքան հզոր է ձեր համակարգիչը և եթե ունեք հզոր GPU: Սա, հավանաբար, ամենահեշտ ձևն է իմ կարծիքով, բայց կրկին արագության բացասական կողմերով:

Տեղափոխման ուսուցման վերաբերյալ պետք է նշել մի քանի կարևոր բաներ: Դուք պետք է համոզվեք, որ նախապես պատրաստված մոդելը, որը դուք օգտագործում եք վերապատրաստման համար, համատեղելի է Coral Edge TPU- ի հետ: Այստեղ կարող եք գտնել համատեղելի մոդելներ: Ես օգտագործել եմ MobileNet SSD v2 (COCO) մոդելը: Ազատորեն փորձեք նաև ուրիշների հետ:

Տեղական մեքենայի վրա մարզվելու համար խորհուրդ կտամ հետևել Google- ի ձեռնարկին կամ EdjeElectronics- ի ձեռնարկին, եթե աշխատում եք Windows 10 -ով: Անձամբ ես փորձարկել եմ EdjeElectroncs ձեռնարկը և հաջողության հասել աշխատասեղանիս վրա: Ես չեմ կարող հաստատել, թե արդյոք Google- ի ձեռնարկը կաշխատի, բայց ես կզարմանայի, եթե այն չաշխատեր:

Ամպում մարզվելու համար կարող եք օգտագործել AWS կամ GCP: Ես գտա այս ձեռնարկը, որը կարող եք փորձել: Այն օգտագործում է Google- ի ամպային TPU- ները, որոնք կարող են շատ արագ պատրաստել ձեր օբյեկտների հայտնաբերման մոդելը: Ազատ զգացեք օգտագործել նաև AWS- ը:

Անկախ նրանից, թե մարզվում եք ձեր տեղական մեքենայի վրա, թե ամպի մեջ, դուք պետք է հայտնվեք պատրաստված tensorflow մոդելով:

Քայլ 7. Վերապատրաստված մոդելի կազմում

Վերապատրաստված մոդելի կազմում
Վերապատրաստված մոդելի կազմում

Որպեսզի ձեր պատրաստված մոդելը աշխատի Coral Edge TPU- ի հետ, դուք պետք է կազմեք այն:

Վերը նշված է աշխատանքային հոսքի դիագրամ:

Վերապատրաստումից հետո դուք պետք է այն պահեք որպես սառեցված գրաֆիկ (.pb ֆայլ): Այնուհետեւ, դուք պետք է այն փոխակերպեք Tensorflow Lite մոդելի: Նկատի ունեցեք, թե ինչպես է այն գրված «Հետպատրաստման քվանտացում»: Եթե փոխանցման ուսուցումն օգտագործելիս օգտվել եք նախապես պատրաստված համատեղելի մոդելներից, ապա ձեզ հարկավոր չէ դա անել: Համատեղելիության վերաբերյալ ամբողջական փաստաթղթերին ծանոթացեք այստեղ:

Tensorflow Lite մոդելի հետ դուք պետք է այն կազմեք Edge TPU մոդելի: Մանրամասներին, թե ինչպես դա անել, տես այստեղ:

Քայլ 8. Վերամշակման հայտնաբերման մոդել

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

Քայլ 9. Տեղադրեք մոդելը

Տեղադրեք մոդելը
Տեղադրեք մոդելը

Հաջորդ քայլը Raspberry Pi (RPI) և Edge TPU- ի ստեղծումն է ՝ վարժեցված օբյեկտների հայտնաբերման մոդելը գործարկելու համար:

Նախ, ստեղծեք RPI ՝ օգտագործելով այս ձեռնարկը:

Հաջորդը, այս ձեռնարկից հետո ստեղծեք Edge TPU- ն:

Վերջապես, միացրեք RPI տեսախցիկի մոդուլը ազնվամորու pi- ի հետ:

Դուք այժմ պատրաստ եք փորձարկել ձեր օբյեկտի հայտնաբերման մոդելը:

Եթե դուք արդեն կլոնավորել եք իմ պահեստը, կցանկանաք նավարկել դեպի RPI գրացուցակ և գործարկել test_detection.py ֆայլը.

python test_detection.py -մոդել recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/dete_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_09/09

Մի փոքր պատուհան պետք է բացվի, և եթե դուք պլաստիկ ջրի շիշ կամ այլ վերամշակման նյութ եք դնում, այն պետք է հայտնաբերի այն ինչպես վերևի պատկերը:

Սեղմեք «q» տառը ձեր ստեղնաշարի վրա `ծրագիրը ավարտելու համար:

Քայլ 10. Կառուցեք ռոբոտային թևը

Կառուցեք Robotic Arm- ը
Կառուցեք Robotic Arm- ը

Ռոբոտացված ձեռքը 3D տպված թև է, որը ես գտել եմ այստեղ: Պարզապես հետևեք այն կարգավորելու ձեռնարկին:

Վերևի պատկերը ցույց է տալիս, թե ինչպես է ստացվել իմ ռոբոտացված ձեռքը:

Համոզվեք, որ սերվո կապերը միացնում եք իմ կոդի Arduino I/O կապերին: Սերվոները թևից ներքև միացրեք այս հաջորդականությամբ ՝ 3, 11, 10, 9, 6, 5:

Փորձարկեք, որ այն աշխատի ՝ նավարկելով Arduino գրացուցակում և գործարկելով BasicMovement.ino ֆայլը: Սա պարզապես կբռնի մի առարկա, որը դուք դնում եք թևի դիմաց և այն հետ կթողնեք:

Քայլ 11: RPI- ի և Robotic Arm- ի միացում

RPI- ի և Robotic Arm- ի միացում
RPI- ի և Robotic Arm- ի միացում

Նախ պետք է խցիկի մոդուլը ամրացնել ճանկի ներքևի մասում: Վերոնշյալ պատկերը ցույց է տալիս, թե ինչպիսին պետք է լինի այն:

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

Հաջորդը, դուք պետք է roboticArm.ino ֆայլը վերբեռնեք Arduino տախտակին:

Ի վերջո, մենք պարզապես պետք է միացնենք USB մալուխ RPI- ի USB պորտի և Arduino- ի USB պորտի միջև: Սա նրանց թույլ կտա շփվել սերիայի միջոցով: Հետևեք այս ձեռնարկին, թե ինչպես դա կարգավորել:

Քայլ 12: Վերջնական հպումներ

Վերջնական հպումներ
Վերջնական հպումներ
Վերջնական հպումներ
Վերջնական հպումներ

Այս քայլը լիովին կամընտիր է, բայց ես սիրում եմ իմ բոլոր բաղադրիչները դնել գեղեցիկ փոքրիկ նախագծի տուփի մեջ:

Վերևի պատկերները ցույց են տալիս, թե ինչպես է այն նայում:

Դուք կարող եք գտնել նախագծի տուփը նյութերի ցանկում: Ես պարզապես մի քանի անցք բացեցի և օգտագործեցի փողային կանգառներ `էլեկտրոնիկան տեղադրելու համար: Ես նաև տեղադրեցի սառեցման 4 օդափոխիչ ՝ տաք վիճակում մշտական օդի հոսք պահելու համար RPI և TPU- ով:

Քայլ 13: Վազում

Դուք այժմ պատրաստ եք միացնել ինչպես ռոբոտային ձեռքը, այնպես էլ RPI- ն: RPI- ի վրա կարող եք պարզապես գործարկել recycle_detection.py ֆայլը: Սա կբացի պատուհան, և ռոբոտացված ձեռքը կսկսի աշխատել այնպես, ինչպես ցուցադրական տեսանյութում: Սեղմեք «q» տառը ձեր ստեղնաշարի վրա `ծրագիրը ավարտելու համար:

Ազատ զգացեք խաղալ կոդի հետ և զվարճացեք:

Քայլ 14: Ապագա աշխատանք

Հուսով եմ ՝ կօգտագործեմ R. O. S. ավելի ճշգրիտ շարժումներով վերահսկել ռոբոտացված ձեռքը: Սա հնարավորություն կտա ավելի ճշգրիտ վերցնել օբյեկտները:

Քայլ 15: Հարցեր:

Ազատորեն թողեք մեկնաբանություն ստորև, եթե ունեք հարցեր:

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