Kazalo:

Prenesite učenje z NVIDIA JetBot - zabava s prometnimi stožci: 6 korakov
Prenesite učenje z NVIDIA JetBot - zabava s prometnimi stožci: 6 korakov

Video: Prenesite učenje z NVIDIA JetBot - zabava s prometnimi stožci: 6 korakov

Video: Prenesite učenje z NVIDIA JetBot - zabava s prometnimi stožci: 6 korakov
Video: The END of Photography - Use AI to Make Your Own Studio Photos, FREE Via DreamBooth Training 2024, November
Anonim

Avtor dvillevaldMy GithubFollow About: Všeč so mi AI in aplikacije za strojno učenje, zlasti v robotiki Več o dvillevaldu »

Naučite svojega robota, da poišče pot v labirintu prometnih stožcev s kamero in najsodobnejšim modelom globokega učenja.

Zaloge

  • NVIDIA JetBot

    Na strani z gradivom NVIDIA JetBot Wiki je našteto vse, kar potrebujete za izdelavo JetBot, skupaj z nakupi povezav pri priljubljenih prodajalcih

  • Računalnik z grafičnim procesorjem NVIDIA

    Potrebno za usposabljanje modela

  • BlueDot Trading 4”RC Racing Agility stožci, oranžni - komplet 20

1. korak: Motivacija

Image
Image

Vsakič, ko se vozim na območju krčenja, pomislim, kako zahteven bi bil samovozeči avto za krmarjenje po prometnih stožcih. Izkazalo se je, da z novim NVIDIA-jevim JetBotom ni tako težko-z le nekaj sto slikami lahko izurite najsodobnejši model poglobljenega učenja, da svojega robota naučite, kako najti pot v labirintu prometnih stožcev igrač samo z vgrajeno kamero in brez drugih senzorjev.

2. korak: Pregled NVIDIA JetBot in projekta

Pregled NVIDIA JetBot in projekta
Pregled NVIDIA JetBot in projekta

JetBot je odprtokodni robot, ki temelji na kompletu NVIDIA Jetson Nano. Podrobna navodila o tem, kako ga zgraditi in nastaviti, najdete tukaj.

Ta projekt je spremenjen primer preprečevanja trkov iz NVIDIA JetBot Wiki. Sestavljen je iz treh glavnih korakov, od katerih je vsak opisan v ločenem zvezku Jupyter:

  • Zberite podatke o JetBotu - prenosni računalnik data_collection_cones.ipynb
  • Model vlaka na drugem grafičnem procesorju - prenosnik train_model_cones.ipynb
  • Zaženite predstavitev v živo na JetBotu - prenosni računalnik live_demo_cones.ipynb

Te tri zvezke Jupyter najdete tukaj

3. korak: Zgradite JetBot in naložite zvezke Jupyter

  1. Zgradite in nastavite JetBot, kot je razloženo tukaj
  2. Povežite se z robotom tako, da se pomaknete na https://: 8888Prijavite se s privzetim geslom jetbot
  3. Izklopite vse druge delujoče zvezke tako, da izberete Jedro -> Izklopi vsa jedra …
  4. Pomaknite se do ~/Beležnice/
  5. Ustvari novo podmapo ~/Beležnice/traffic_cones_driving/
  6. Naloži data_collection_cones.ipynb in live_demo_cones.ipynb v ~/Notebooks/traffic_cones_driving/

POMEMBNO: Beležnice Jupyter data_collection_cones.ipynb in live_demo_cones.ipynb, omenjene v teh navodilih, naj se izvajajo v JetBotu, medtem ko train_model_cones.ipynb - v računalniku z grafičnim procesorjem.

Zato moramo v JetBot naložiti data_collection_cones.ipynb in live_demo_cones.ipynb ter jih postaviti v ~/Notebooks/traffic_cones_driving/

4. korak: Zbiranje podatkov o usposabljanju v JetBotu

Zbrali bomo nabor klasifikacijskih slik, ki bo uporabljen za pomoč JetBotu pri delovanju v labirintu prometnih stožcev. JetBot se bo naučil oceniti verjetnost štirih scenarijev (razredov):

  • Brezplačno - ko je varno iti naprej
  • Blokirano - ko je pred robotom ovira
  • Levo - ko se mora robot obrniti v levo
  • Desno - ko se mora robot obrniti v desno

Za zbiranje podatkov o usposabljanju na JetBotu bomo uporabili prenosni računalnik Jupyter data_collection_cones.ipynb, ki vsebuje podrobna navodila, kako to narediti. Če želite zagnati ta prenosnik v JetBotu, sledite naslednjim korakom:

  1. Povežite se z robotom tako, da se pomaknete na https://: jetbot-ip-address:: 8888
  2. Prijavite se s privzetim geslom jetbot
  3. Izklopite vse druge delujoče zvezke tako, da izberete Jedro -> Izklopi vsa jedra …
  4. Pomaknite se na ~/Beležnice/traffic_cones_driving/
  5. Odprite in sledite zvezku data_collection_cones.ipynb

5. korak: Vlak nevronskega omrežja na stroju GPU

Nato bomo zbrane podatke uporabili za ponovno usposabljanje modela globokega učenja AlexNet na stroju GPU (gostitelju) z izvajanjem train_model_cones.ipynb.

Upoštevajte, da je train_model_cones.ipynb edini prenosnik Jupyter v tej vadnici, ki se NE izvaja na JetBotu

  1. Povežite se z grafično kartico z nameščenim PyTorchom in strežnikom Jupyter Lab
  2. Naložite zvezek train_model_cones.ipynb in na ta stroj
  3. Naložite datoteko podatkov_cones.zip, ki ste jo ustvarili v zvezku data_collection_cones.ipynb, in izvlecite ta nabor podatkov. (Po tem koraku bi se morala v brskalniku datotek prikazati mapa z imenom niz_kod.)
  4. Odprite in sledite zvezku train_model_cones.ipynb. Na koncu tega koraka boste ustvarili model - datoteko best_model_cones.pth, ki jo je treba nato naložiti v JetBot za zagon predstavitve v živo.

6. korak: Zaženite predstavitev v živo na JetBotu

Zaženite predstavitev v živo na JetBotu
Zaženite predstavitev v živo na JetBotu

Ta zadnji korak je, da model best_model_cones.pth naložite v JetBot in ga zaženete.

  1. Napajajte svojega robota iz baterije USB
  2. Ponovno se povežite z robotom tako, da se pomaknete na https://: jetbot-ip-address:: 8888
  3. Prijavite se s privzetim geslom jetbot
  4. Izklopite vse druge delujoče zvezke tako, da izberete Jedro -> Izklopi vsa jedra …
  5. Pomaknite se na ~/Notebooks/traffic_cones_driving
  6. Odprite in sledite zvezku live_demo_cones.ipynb

Začnite previdno in dajte JetBotu dovolj prostora za gibanje. Poskusite z različno konfiguracijo stožca in preverite, kako dobro se robot obnese v različnih okoljih, razsvetljavi itd. Medtem ko prenosni računalnik live_demo_cones.ipynb podrobno razlaga vse korake, naslednji grafikon prikazuje logiko premikov robota glede na verjetnosti, ki jih predvidevajo modeli.

V prenosnem računalniku je tudi razloženo, kako shraniti zgodovino premikov robotov z verjetnostmi prostega/levega/desnega/blokiranega, ki jih predvideva model, in kako narediti dva videoposnetka FPV (pogled prve osebe) (pri hitrostih 1 fps in 15 fps) s prekrivano telemetrijo in Podatki o dejanjih JetBot. Te so uporabne za odpravljanje napak, nastavitev PID krmilnika in izboljšanje modela.

Lepo se imejte in mi sporočite, če imate vprašanja!:-)

Koda je na voljo na Githubu

Priporočena: