Satura rādītājs:

Pārneses mācīšanās ar NVIDIA JetBot - Izklaide ar satiksmes konusiem: 6 soļi
Pārneses mācīšanās ar NVIDIA JetBot - Izklaide ar satiksmes konusiem: 6 soļi

Video: Pārneses mācīšanās ar NVIDIA JetBot - Izklaide ar satiksmes konusiem: 6 soļi

Video: Pārneses mācīšanās ar NVIDIA JetBot - Izklaide ar satiksmes konusiem: 6 soļi
Video: 실시간 손 동작 인식 + 조인트 회귀(2018년) 2024, Novembris
Anonim

Autors: dvillevaldMy GithubFollow Par: Man patīk AI un mašīnmācīšanās lietojumprogrammas, īpaši robotikā Vairāk par dvillevald »

Māciet savam robotam atrast ceļu satiksmes konusu labirintā, izmantojot kameru un vismodernāko dziļās mācīšanās modeli.

Piegādes

  • NVIDIA JetBot

    NVIDIA JetBot Wiki lapā Materiālu saraksts ir uzskaitīts viss nepieciešamais, lai izveidotu JetBot, kā arī saišu iegāde no populāriem pārdevējiem

  • Dators ar NVIDIA GPU

    Nepieciešams, lai apmācītu modeli

  • BlueDot Trading 4”RC Racing Agility Cones, oranžs - 20 komplekts

1. solis: motivācija

Image
Image

Katru reizi, braucot kontrakcijas zonā, es domāju, cik grūti būtu pašbraucošai automašīnai pārvietoties pa satiksmes konusiem. Izrādās, ka tas nav tik grūti ar jauno NVIDIA JetBot-tikai ar pāris simtiem attēlu jūs varat apmācīt vismodernāko dziļās mācīšanās modeli, lai iemācītu savam robotam atrast ceļu rotaļu satiksmes konusu labirintā izmantojot tikai borta kameru un nekādus citus sensorus.

2. darbība: NVIDIA JetBot un projektu pārskats

NVIDIA JetBot un projektu pārskats
NVIDIA JetBot un projektu pārskats

JetBot ir atvērtā koda robots, kura pamatā ir NVIDIA Jetson Nano komplekts. Šeit varat atrast detalizētus norādījumus par tā izveidi un iestatīšanu.

Šis projekts ir modificēts sadursmju novēršanas piemērs no NVIDIA JetBot Wiki. Tas sastāv no trim galvenajiem soļiem, no kuriem katrs ir aprakstīts atsevišķā Jupyter piezīmju grāmatiņā:

  • Apkopojiet datus vietnē JetBot - piezīmju grāmatiņas data_collection_cones.ipynb
  • Vilciena modelis citā GPU mašīnā - piezīmjdators train_model_cones.ipynb
  • Palaidiet tiešraides demonstrāciju vietnē JetBot - notebook live_demo_cones.ipynb

Šīs trīs Jupyter piezīmjdatorus varat atrast šeit

3. darbība: izveidojiet JetBot un augšupielādējiet Jupyter piezīmjdatorus

  1. Izveidojiet un iestatiet JetBot, kā paskaidrots šeit
  2. Pievienojieties robotam, dodoties uz vietni https://: 8888Pierakstieties ar noklusējuma paroli jetbot
  3. Izslēdziet visas citas darbināmās piezīmjdatorus, atlasot Kodols -> Izslēgt visus kodolus …
  4. Dodieties uz ~/Piezīmju grāmatiņas/
  5. Izveidot jaunu apakšmapi ~/Piezīmju grāmatiņas/traffic_cones_driving/
  6. Augšupielādējiet data_collection_cones.ipynb un live_demo_cones.ipynb uz ~/Notebooks/traffic_cones_driving/

SVARĪGI! Šajā instrukcijā minētās Jupyter piezīmju grāmatiņas data_collection_cones.ipynb un live_demo_cones.ipynb jādarbina JetBot, bet train_model_cones.ipynb - datorā ar GPU.

Tāpēc mums ir jāaugšupielādē data_collection_cones.ipynb un live_demo_cones.ipynb JetBot un jāievieto mapē ~/Notebooks/traffic_cones_driving/

4. solis: apmācības datu vākšana vietnē JetBot

Mēs apkoposim attēlu klasifikācijas datu kopu, kas tiks izmantota, lai palīdzētu JetBot darboties satiksmes konusu labirintā. JetBot iemācīsies novērtēt četru scenāriju (klašu) varbūtības:

  • Bezmaksas - kad ir droši virzīties uz priekšu
  • Bloķēts - kad robota priekšā ir šķērslis
  • Pa kreisi - kad robotam jāgriežas pa kreisi
  • Pa labi - kad robotam vajadzētu griezties pa labi

Lai apkopotu apmācības datus vietnē JetBot, mēs izmantosim Jupyter piezīmjdatoru data_collection_cones.ipynb, kurā ir detalizēti norādījumi par to, kā to izdarīt. Lai palaistu šo piezīmju grāmatiņu vietnē JetBot, rīkojieties šādi:

  1. Izveidojiet savienojumu ar savu robotu, dodoties uz https://: jetbot-ip-address:: 8888
  2. Pierakstieties, izmantojot noklusējuma paroli jetbot
  3. Izslēdziet visas citas darbināmās piezīmjdatorus, atlasot Kodols -> Izslēgt visus kodolus …
  4. Dodieties uz ~/Piezīmju grāmatiņas/traffic_cones_driving/
  5. Atveriet piezīmju grāmatiņu data_collection_cones.ipynb un sekojiet tai

5. solis: apmāciet neironu tīklu GPU mašīnā

Tālāk mēs izmantosim savāktos datus, lai GPU mašīnā (resursdatorā) atkārtoti apmācītu dziļās mācīšanās modeli AlexNet, palaižot train_model_cones.ipynb.

Ņemiet vērā, ka train_model_cones.ipynb ir vienīgā Jupyter piezīmju grāmatiņa šajā apmācībā, kas netiek palaista JetBot

  1. Izveidojiet savienojumu ar GPU iekārtu, kurā ir instalēts PyTorch un darbojas Jupyter Lab serveris
  2. Augšupielādējiet train_model_cones.ipynb piezīmju grāmatiņu un šo mašīnu
  3. Augšupielādējiet dataset_cones.zip failu, ko izveidojāt piezīmju grāmatiņā data_collection_cones.ipynb, un izvelciet šo datu kopu. (Pēc šīs darbības failu pārlūkprogrammā vajadzētu redzēt mapi ar nosaukumu dataset_cones.)
  4. Atveriet piezīmju grāmatiņu train_model_cones.ipynb un sekojiet tai. Šī soļa beigās jūs izveidosit modeli - failu best_model_cones.pth, kas pēc tam jāaugšupielādē JetBot, lai palaistu demonstrācijas tiešraidi.

6. darbība: palaidiet tiešraides demonstrāciju vietnē JetBot

Palaidiet tiešo demonstrāciju vietnē JetBot
Palaidiet tiešo demonstrāciju vietnē JetBot

Pēdējais solis ir augšupielādēt modeli best_model_cones.pth JetBot un palaist to.

  1. Barojiet savu robotu no USB akumulatora
  2. Pievienojieties savam robotam, dodoties uz https://: jetbot-ip-address:: 8888
  3. Pierakstieties, izmantojot noklusējuma paroli jetbot
  4. Izslēdziet visas citas darbināmās piezīmjdatorus, atlasot Kodols -> Izslēgt visus kodolus …
  5. Pārejiet uz ~/Piezīmju grāmatiņas/traffic_cones_driving
  6. Atveriet un sekojiet piezīmju grāmatiņai live_demo_cones.ipynb

Sāciet piesardzīgi un dodiet JetBot pietiekami daudz vietas, lai pārvietotos. Izmēģiniet dažādas konusa konfigurācijas un noskaidrojiet, cik labi robots darbojas dažādās vidēs, apgaismojumā utt. Kamēr piezīmjdators live_demo_cones.ipynb detalizēti izskaidro visas darbības, nākamajā diagrammā ir parādīta robotu kustību loģika, ņemot vērā modeļu paredzētās varbūtības.

Piezīmjdatorā ir arī paskaidrots, kā saglabāt modeļa paredzēto brīvo/kreiso/labo/bloķēto varbūtību robotu kustību vēsturē un kā izveidot divus FPV (pirmās personas skata) videoklipus (ar ātrumu 1 kadrs un 15 kadri sekundē) ar pārklātu telemetriju un JetBot darbību dati. Tie ir noderīgi atkļūdošanai, PID regulatora regulēšanai un modeļa uzlabošanai.

Izklaidējieties un dariet man zināmu, ja jums ir jautājumi!:-)

Kods ir pieejams vietnē Github

Ieteicams: