Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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
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
- Zgradite in nastavite JetBot, kot je razloženo tukaj
- Povežite se z robotom tako, da se pomaknete na https://: 8888Prijavite se s privzetim geslom jetbot
- Izklopite vse druge delujoče zvezke tako, da izberete Jedro -> Izklopi vsa jedra …
- Pomaknite se do ~/Beležnice/
- Ustvari novo podmapo ~/Beležnice/traffic_cones_driving/
- 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:
- Povežite se z robotom tako, da se pomaknete na https://: jetbot-ip-address:: 8888
- Prijavite se s privzetim geslom jetbot
- Izklopite vse druge delujoče zvezke tako, da izberete Jedro -> Izklopi vsa jedra …
- Pomaknite se na ~/Beležnice/traffic_cones_driving/
- 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
- Povežite se z grafično kartico z nameščenim PyTorchom in strežnikom Jupyter Lab
- Naložite zvezek train_model_cones.ipynb in na ta stroj
- 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.)
- 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
Ta zadnji korak je, da model best_model_cones.pth naložite v JetBot in ga zaženete.
- Napajajte svojega robota iz baterije USB
- Ponovno se povežite z robotom tako, da se pomaknete na https://: jetbot-ip-address:: 8888
- Prijavite se s privzetim geslom jetbot
- Izklopite vse druge delujoče zvezke tako, da izberete Jedro -> Izklopi vsa jedra …
- Pomaknite se na ~/Notebooks/traffic_cones_driving
- 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