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

Տեղափոխեք ուսումը NVIDIA JetBot- ի հետ - Funամանց երթևեկի կոնների միջոցով. 6 քայլ
Տեղափոխեք ուսումը NVIDIA JetBot- ի հետ - Funամանց երթևեկի կոնների միջոցով. 6 քայլ

Video: Տեղափոխեք ուսումը NVIDIA JetBot- ի հետ - Funամանց երթևեկի կոնների միջոցով. 6 քայլ

Video: Տեղափոխեք ուսումը NVIDIA JetBot- ի հետ - Funամանց երթևեկի կոնների միջոցով. 6 քայլ
Video: Սովորելու եմ նաև զոհված ընկերներիս փոխարեն․ Սեյրան Սողոյան 2024, Նոյեմբեր
Anonim

Հետևում եմ. Ինձ դուր են գալիս AI և մեքենայական ուսուցման ծրագրեր, հատկապես ռոբոտաշինության ոլորտում Ավելին dvillevald- ի մասին »

Սովորեցրեք ձեր ռոբոտին ՝ տեսախցիկի և խորը ուսուցման գերժամանակակից մոդելի միջոցով ճանապարհ գտնել լաբիրինթոսում:

Պարագաներ

  • NVIDIA JetBot

    NVIDIA JetBot Wiki- ի Bill of Materials էջը թվարկում է այն ամենը, ինչ ձեզ հարկավոր է JetBot կառուցելու համար ՝ հանրաճանաչ վաճառողներից հղումներ գնելու հետ միասին:

  • Համակարգիչ NVIDIA GPU- ով

    Մոդելը պատրաստելու համար անհրաժեշտ է

  • BlueDot Trading 4”RC Racing Agility Cones, Orange - 20 հավաքածու

Քայլ 1: Մոտիվացիա

Image
Image

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

Քայլ 2: NVIDIA JetBot & Project Overview

NVIDIA JetBot & Project Overview
NVIDIA JetBot & Project Overview

JetBot- ը բաց կոդով ռոբոտ է, որը հիմնված է NVIDIA Jetson Nano հանդերձանքի վրա: Այստեղ կառուցելու և տեղադրելու մանրամասն հրահանգներ կարող եք գտնել այստեղ:

Այս նախագիծը NVIDIA JetBot Wiki- ից բախումից խուսափելու փոփոխված օրինակ է: Այն բաղկացած է երեք հիմնական քայլերից, որոնցից յուրաքանչյուրը նկարագրված է Յուպիտերի առանձին տետրում.

  • Հավաքեք տվյալներ JetBot- ում - notebook data_collection_cones.ipynb
  • Գնացքի մոդել այլ GPU մեքենայի վրա `notebook train_model_cones.ipynb
  • Գործարկեք ուղիղ ցուցադրում JetBot- ում - notebook live_demo_cones.ipynb

Այս երեք Jupyter տետրերը կարող եք գտնել այստեղ

Քայլ 3. Կառուցեք JetBot և վերբեռնեք Jupyter նոթատետրեր

  1. Կառուցեք և տեղադրեք JetBot- ը, ինչպես բացատրված է այստեղ
  2. Միացեք ձեր ռոբոտին ՝ նավարկելով դեպի https://: 8888 Մուտք գործեք կանխադրված գաղտնաբառ jetbot- ով
  3. Անջատեք մնացած բոլոր նոթատետրերը ՝ ընտրելով Kernel -> Shutdown All Kernels…
  4. Գնալ դեպի ~/նոթատետրեր/
  5. Ստեղծեք նոր ենթապանակ ~/Notebooks/traffic_cones_driving/
  6. Վերբեռնեք data_collection_cones.ipynb և live_demo_cones.ipynb հասցեով ~/Notebooks/traffic_cones_driving/

ԿԱՐԵՎՈՐ. Այս հրահանգներում նշված Jupyter տետրերը ՝ data_collection_cones.ipynb և live_demo_cones.ipynb- ը, պետք է գործարկվեն JetBot- ով, մինչ train_model_cones.ipynb - GPU ունեցող համակարգչում:

Հետևաբար, մենք պետք է data_collection_cones.ipynb և live_demo_cones.ipynb վերբեռնենք JetBot և տեղադրենք դրանք ~/Notebooks/traffic_cones_driving/

Քայլ 4. JetBot- ի ուսուցման տվյալների հավաքում

Մենք կհավաքենք պատկերի դասակարգման տվյալների հավաքածու, որը կօգտագործվի JetBot- ին օգնելու համար աշխատել երթևեկի կոնների լաբիրինթոսում: JetBot- ը կսովորի, թե ինչպես կարելի է գնահատել չորս սցենարների (դասերի) հավանականությունները.

  • Անվճար - երբ անվտանգ է առաջ շարժվել
  • Արգելափակված - երբ ռոբոտի առջև խոչընդոտ կա
  • Ձախ - երբ ռոբոտը պետք է պտտվի ձախ
  • Աջ - երբ ռոբոտը պետք է պտտվի դեպի աջ

JetBot- ում ուսուցման տվյալները հավաքելու համար մենք կօգտագործենք Jupyter տետր data_collection_cones.ipynb, որը պարունակում է մանրամասն հրահանգներ, թե ինչպես դա անել: Այս նոթատետրը JetBot- ում գործարկելու համար հետևեք հետևյալ քայլերին.

  1. Միացեք ձեր ռոբոտին ՝ անցնելով https://: jetbot-ip-address:: 8888
  2. Մուտք գործեք կանխադրված գաղտնաբառ jetbot- ով
  3. Անջատեք մնացած բոլոր նոթատետրերը `ընտրելով Kernel -> Shutdown All Kernels…
  4. Գնալ դեպի ~/նոթատետրեր/traffic_cones_driving/
  5. Բացեք և հետևեք data_collection_cones.ipynb նոթատետրին

Քայլ 5. Սովորեցրեք նյարդային ցանցը GPU մեքենայի վրա

Հաջորդը, մենք կօգտագործենք հավաքված տվյալները `վերապատրաստելու AlexNet խորը ուսուցման մոդելը GPU մեքենայի վրա (հոսթ)` գործարկելով train_model_cones.ipynb:

Նկատի ունեցեք, որ train_model_cones.ipynb- ն այս ձեռնարկի միակ Jupyter տետրն է, որը գործարկված է JetBot- ում ՉԻ:

  1. Միացեք GPU մեքենային PyTorch- ի տեղադրմամբ և Jupyter Lab սերվերի գործարկմամբ
  2. Վերբեռնեք train_model_cones.ipynb նոթատետր և այս մեքենային
  3. Վերբեռնեք dataset_cones.zip ֆայլը, որը ստեղծել եք data_collection_cones.ipynb նոթատետրում և հանեք այս տվյալների հավաքածուն: (Այս քայլից հետո դուք պետք է տեսնեք, որ տվյալների բրաուզերում հայտնվում է dataset_cones անունով թղթապանակը):
  4. Բացեք և հետևեք train_model_cones.ipynb տետրին: Այս քայլի վերջում դուք կստեղծեք մոդել ՝ best_model_cones.pth ֆայլը, որն այնուհետև պետք է վերբեռնվի JetBot- ում ՝ կենդանի ցուցադրումը գործարկելու համար:

Քայլ 6. Գործարկեք Live Demo- ն JetBot- ում

Գործարկեք Live Demo- ն JetBot- ում
Գործարկեք Live Demo- ն JetBot- ում

Այս վերջին քայլը JetBot- ում մոդելի best_model_cones.pth մոդելը վերբեռնելն ու գործարկելն է:

  1. Միացրեք ձեր ռոբոտին USB մարտկոցի տուփից
  2. Միացեք ձեր ռոբոտին ՝ անցնելով https://: jetbot-ip-address:: 8888
  3. Մուտք գործեք կանխադրված գաղտնաբառ jetbot- ով
  4. Անջատեք մնացած բոլոր նոթատետրերը `ընտրելով Kernel -> Shutdown All Kernels…
  5. Գնացեք դեպի ~/Notebooks/traffic_cones_driving
  6. Բացեք և հետևեք live_demo_cones.ipynb նոթատետրին

Սկսեք զգույշ լինել և JetBot- ին բավականաչափ տարածք տվեք տեղաշարժվելու համար: Փորձեք տարբեր կոնաձև կոնֆիգուրացիա և տեսեք, թե որքան լավ է ռոբոտը կատարում տարբեր միջավայրերում, լուսավորությունում և այլն:

Նոթատետրը նաև բացատրում է, թե ինչպես կարելի է պահել մոդելի կանխատեսած ազատ/ձախ/աջ/արգելափակված հավանականությամբ ռոբոտների շարժումների պատմությունը և ինչպես պատրաստել երկու FPV (Առաջին անձի դիտում) տեսանյութեր (1 կ/վրկ և 15 կ/վրկ արագությամբ) `զուգորդված հեռաչափությամբ և JetBot- ի գործողությունների տվյալները: Դրանք օգտակար են վրիպազերծման, PID վերահսկիչի կարգաբերման և մոդելի կատարելագործման համար:

Haveվարճացիր և ինձ տեղեկացրեք, եթե հարցեր ունեք::-)

Կոդը հասանելի է Github- ում

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