Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Motivaatio
- Vaihe 2: NVIDIA JetBotin ja projektin yleiskatsaus
- Vaihe 3: Luo JetBot ja lähetä Jupyter -muistikirjat
- Vaihe 4: Harjoitustietojen kerääminen JetBotissa
- Vaihe 5: Harjoittele neuroverkkoa GPU -koneella
- Vaihe 6: Suorita Live -esittely JetBotissa
Video: Siirron oppiminen NVIDIA JetBotin avulla - hauskaa liikennekartioiden kanssa: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tekijä dvillevaldMy GithubFollow About: Pidän tekoälystä ja koneoppimissovelluksista, erityisesti robotiikasta Lisätietoja dvillevaldista »
Opeta robotillesi löytää polku liikennekartioiden sokkelosta kameran ja huipputason syväoppimismallin avulla.
Tarvikkeet
-
NVIDIA JetBot
NVIDIA JetBot Wikin materiaaliluettelo -sivu sisältää kaiken, mitä tarvitset JetBotin rakentamiseen, sekä ostolinkkejä suosituilta toimittajilta
-
Tietokone, jossa on NVIDIA GPU
Tarvitaan mallin kouluttamiseen
- BlueDot Trading 4”RC Racing Agility -kartiot, oranssi - 20 kpl
Vaihe 1: Motivaatio
Aina ajaessani supistumisalueella ajattelen, kuinka haastavaa olisi itseohjautuvalle autolle navigoida liikennekartioiden läpi. Osoittautuu, että se ei ole niin vaikeaa uusien NVIDIAn JetBot-laitteiden kanssa-vain parilla sadalla kuvalla voit kouluttaa huipputason syväoppimismallin, joka opettaa robotillesi löytää polun lelujen käpyjen sokkelossa käyttämällä vain sisäistä kameraa eikä muita antureita.
Vaihe 2: NVIDIA JetBotin ja projektin yleiskatsaus
JetBot on avoimen lähdekoodin robotti, joka perustuu NVIDIA Jetson Nano -sarjaan. Täältä löydät yksityiskohtaiset ohjeet sen rakentamisesta ja asentamisesta.
Tämä projekti on muokattu esimerkki törmäysten välttämisestä NVIDIA JetBot Wikistä. Se koostuu kolmesta päävaiheesta, joista jokainen on kuvattu erillisessä Jupyter -muistikirjassa:
- Kerää tietoja JetBotista - muistikirjan data_collection_cones.ipynb
- Juna -malli toisessa GPU -koneessa - notebook train_model_cones.ipynb
- Suorita live -esittely JetBotissa - muistikirja live_demo_cones.ipynb
Löydät nämä kolme Jupyter -muistikirjaa täältä
Vaihe 3: Luo JetBot ja lähetä Jupyter -muistikirjat
- Rakenna ja asenna JetBot tässä kuvatulla tavalla
- Yhdistä robottiisi siirtymällä osoitteeseen https://: 8888Kirjaudu sisään oletussalasanalla jetbot
- Sammuta kaikki muut käynnissä olevat muistikirjat valitsemalla Ydin -> Sammuta kaikki ytimet…
- Siirry kohtaan ~/Muistikirjat/
- Luo uusi alikansio ~/Muistikirjat/traffic_cones_driving/
- Lataa data_collection_cones.ipynb ja live_demo_cones.ipynb kohteeseen ~/Notebooks/traffic_cones_driving/
TÄRKEÄÄ: Tässä ohjeessa mainitut Jupyter -muistikirjat data_collection_cones.ipynb ja live_demo_cones.ipynb on suoritettava JetBotilla ja train_model_cones.ipynb - tietokoneessa, jossa on GPU.
Siksi meidän on ladattava data_collection_cones.ipynb ja live_demo_cones.ipynb JetBotiin ja sijoitettava ne ~/Notebooks/traffic_cones_driving/
Vaihe 4: Harjoitustietojen kerääminen JetBotissa
Keräämme kuvien luokitteluaineistoa, jota käytetään auttamaan JetBotia toimimaan liikennekartioiden sokkelossa. JetBot oppii arvioimaan todennäköisyyksiä neljästä skenaariosta (luokka):
- Ilmainen - kun on turvallista siirtyä eteenpäin
- Estetty - kun robotin edessä on este
- Vasen - kun robotti pyörii vasemmalle
- Oikea - kun robotin pitäisi pyöriä oikealle
Harjoitustietojen keräämiseen JetBotissa käytämme Jupyter -muistikirjaa data_collection_cones.ipynb, joka sisältää yksityiskohtaiset ohjeet sen tekemiseen. Voit käyttää tätä muistikirjaa JetBotissa seuraavasti:
- Yhdistä robottiisi siirtymällä osoitteeseen https://: jetbot-ip-address:: 8888
- Kirjaudu sisään oletussalasanalla jetbot
- Sammuta kaikki muut käynnissä olevat muistikirjat valitsemalla Ydin -> Sammuta kaikki ytimet…
- Siirry kohtaan ~/Muistikirjat/traffic_cones_driving/
- Avaa ja seuraa data_collection_cones.ipynb -muistikirjaa
Vaihe 5: Harjoittele neuroverkkoa GPU -koneella
Seuraavaksi käytämme kerättyjä tietoja AlexNet-syväoppimismallin uudelleenohjaamiseen GPU-koneella (isäntä) suorittamalla train_model_cones.ipynb.
Huomaa, että train_model_cones.ipynb on tämän opetusohjelman ainoa Jupyter -muistikirja, jota EI käytetä JetBotissa
- Muodosta yhteys GPU -koneeseen, johon on asennettu PyTorch ja Jupyter Lab -palvelin on käynnissä
- Lataa train_model_cones.ipynb -muistikirja ja tälle koneelle
- Lataa dataset_cones.zip -tiedosto, jonka loit muistikirjaan data_collection_cones.ipynb, ja poimi tämä tietojoukko. (Tämän vaiheen jälkeen sinun pitäisi nähdä kansio nimeltä dataset_cones tiedostoselaimessa.)
- Avaa ja seuraa train_model_cones.ipynb -muistikirjaa. Tämän vaiheen lopussa luot mallin - tiedoston best_model_cones.pth, joka on sitten ladattava JetBotiin live -esittelyn suorittamiseksi.
Vaihe 6: Suorita Live -esittely JetBotissa
Viimeinen vaihe on ladata malli best_model_cones.pth JetBotiin ja suorittaa se.
- Käynnistä robotti USB -akusta
- Yhdistä robottiisi siirtymällä osoitteeseen https://: jetbot-ip-address:: 8888
- Kirjaudu sisään oletussalasanalla jetbot
- Sammuta kaikki muut käynnissä olevat muistikirjat valitsemalla Ydin -> Sammuta kaikki ytimet…
- Siirry kohtaan ~/Muistikirjat/traffic_cones_driving
- Avaa ja seuraa live_demo_cones.ipynb -muistikirjaa
Aloita varovasti ja anna JetBotille tarpeeksi tilaa liikkua. Kokeile eri kartiokokoonpanoja ja katso, kuinka hyvin robotti toimii erilaisissa ympäristöissä, valaistuksessa jne. Vaikka kannettava live_demo_cones.ipynb selittää kaikki vaiheet yksityiskohtaisesti, seuraavassa kaaviossa esitetään robotin liikkeiden logiikka, kun otetaan huomioon mallien ennustamat todennäköisyydet.
Muistikirja selittää myös, kuinka robotin liikkeiden historia tallennetaan mallin ennustamilla vapailla/vasemmalla/oikealla/estetyillä todennäköisyyksillä ja miten tehdään kaksi FPV (First Person View) -videota (nopeuksilla 1 fps ja 15 fps) päällekkäisellä telemetrialla ja JetBot -toimintojen tiedot. Ne ovat hyödyllisiä virheenkorjauksessa, PID -säätimen virityksessä ja mallin parantamisessa.
Pidä hauskaa ja kerro minulle, jos sinulla on kysyttävää!:-)
Koodi löytyy Githubista
Suositeltava:
Muiden kuin englanninkielisten näppäimistöasettelujen oppiminen Pythonin avulla: 8 vaihetta
Pythonin käyttö muiden kuin englanninkielisten näppäimistöasettelujen oppimiseen: Hei, olen Julien! Olen tietojenkäsittelytieteen opiskelija ja näytän tänään, kuinka voit käyttää Pythonia opettaaksesi itsellesi muun kuin englannin kielen näppäimistöasettelun. Nykyään paljon kielten oppimista tapahtuu verkossa, ja yksi asia, johon ihmiset voivat vastata
Zombie havaitsee älykkään turvaköllön (syvä oppiminen): 10 vaihetta (kuvilla)
Zombien havaitseminen älykkäästä pöllöstä (syvä oppiminen): Hei kaikki, tervetuloa T3chFlicksiin! Tässä Halloween -opetusohjelmassa näytämme sinulle, kuinka saimme aikaan pelottavan käänteen arkiseen kotitalousklassikkoon: turvakameraan. Miten?! Olemme tehneet yönäköön, joka käyttää kuvankäsittelyä ihmisten seuraamiseen
Objektisuuntautunut ohjelmointi: Objektien luominen Oppiminen/opetusmenetelmä/tekniikka Shape Puncherin avulla: 5 vaihetta
Objektisuuntautunut ohjelmointi: Objektien luominen Oppimis-/opetusmenetelmä/-tekniikka Shape Puncherin avulla: Oppimis-/opetusmenetelmä oppilaille, jotka ovat vasta oppineet olio-ohjelmointia. Tämä on tapa antaa heidän visualisoida ja nähdä prosessi objektien luomisesta luokista. EkTools 2 tuuman suuri rei'itin; kiinteät muodot ovat parhaita.2. Paperi tai c
Muotoja: Oppiminen kaikille Makey Makeyn kanssa: 5 vaihetta (kuvilla)
Muotoja: Oppiminen kaikille Makey Makeyn kanssa: Opettajat opettavat KAIKKI oppilaita. Joskus oppimisen on näytettävä erilaiselta oppilaasta riippuen. Alla on esimerkki helposta oppitunnista, jonka voit luoda varmistaaksesi, että kaikki oppilaasi työskentelevät olennaisten taitojen parissa. Tämä projekti toimisi hyvin
Objektisuuntautunut ohjelmointi: Objektien luominen Oppiminen/opetusmenetelmä/tekniikka saksilla: 5 vaihetta
Objektisuuntautunut ohjelmointi: Objektien luominen Oppimis-/opetusmenetelmä/-tekniikka saksilla: Oppimis-/opetusmenetelmä oppilaille, jotka ovat vasta oppineet olio-ohjelmointia. Tämä on tapa antaa heille mahdollisuus visualisoida ja nähdä prosessi objektien luomisesta luokista. 2. Paperi tai kartonki. 3. Merkki