Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Môj github Nasledovať o: Mám rád aplikácie AI a strojového učenia, najmä v robotike Viac o dvillevald »
Naučte svojho robota nájsť cestu v bludisku dopravných kužeľov pomocou kamery a najmodernejšieho modelu hlbokého učenia.
Zásoby
-
NVIDIA JetBot
Stránka kusovníka NVIDIA JetBot Wiki obsahuje zoznam všetkého, čo potrebujete na zostavenie JetBotu, a tiež odkazy na nákup od obľúbených predajcov
- Počítač s grafickou kartou NVIDIA
Potrebné na trénovanie modelu
- BlueDot Trading 4”RC Racing Agility kužele, oranžová - sada 20
Krok 1: Motivácia
Zakaždým, keď idem v oblasti kontrakcie, premýšľam, aké náročné by bolo, aby sa samo riadiace auto pohybovalo cez dopravné kužele. Ukazuje sa, že s novým JetBotom NVIDIA to nie je také ťažké-iba s niekoľkými stovkami obrázkov môžete vycvičiť najmodernejší model hlbokého učenia, aby váš robot naučil nájsť cestu v bludisku hračiek s dopravnými kužeľmi iba pomocou integrovanej kamery a bez ďalších senzorov.
Krok 2: Prehľad NVIDIA JetBot a projektu
JetBot je open-source robot založený na súprave NVIDIA Jetson Nano. Podrobný návod, ako ho postaviť a nastaviť, nájdete tu.
Tento projekt je upraveným príkladom predchádzania kolíziám z NVIDIA JetBot Wiki. Pozostáva z troch hlavných krokov, z ktorých každý je popísaný v samostatnom prenosnom počítači Jupyter:
- Zhromažďujte údaje na serveri JetBot - notebook data_collection_cones.ipynb
- Vlak modelu na inom stroji GPU - notebook train_model_cones.ipynb
- Spustite živé demo na JetBot - notebook live_demo_cones.ipynb
Tieto tri notebooky Jupyter nájdete tu
Krok 3: Zostavte JetBot a nahrajte notebooky Jupyter
- Zostavte a nastavte JetBot, ako je vysvetlené tu
- Pripojte sa k svojmu robotovi tak, že prejdete na stránku https://: 8888Prihláste sa pomocou predvoleného hesla jetbot
- Vypnite všetky ostatné spustené notebooky výberom Jadro -> Vypnúť všetky jadrá …
- Prejdite na ~/Notebooky/
- Vytvoriť novú podpriečinok ~/Notebooky/traffic_cones_driving/
- Nahrajte data_collection_cones.ipynb a live_demo_cones.ipynb do ~/Notebooks/traffic_cones_driving/
DÔLEŽITÉ: Notebooky Jupyter data_collection_cones.ipynb a live_demo_cones.ipynb uvedené v týchto pokynoch by mali byť spustené na serveri JetBot, zatiaľ čo train_model_cones.ipynb - na počítači s GPU.
Preto musíme nahrať data_collection_cones.ipynb a live_demo_cones.ipynb do JetBot a umiestniť ich do ~/Notebooks/traffic_cones_driving/
Krok 4: Zhromažďovanie údajov o výcviku na zariadení JetBot
Zhromaždíme súbor údajov o klasifikácii obrázkov, ktorý bude použitý na pomoc JetBotu v prevádzke v bludisku dopravných kužeľov. JetBot sa naučí odhadovať pravdepodobnosti štyroch scenárov (tried):
- Zadarmo - keď je bezpečné ísť vpred
- Blokované - keď je pred robotom prekážka
- Vľavo - keď sa má robot točiť doľava
- Vpravo - keď sa má robot točiť doprava
Na zhromažďovanie školiacich údajov na serveri JetBot použijeme notebook Jupyter data_collection_cones.ipynb, ktorý obsahuje podrobné pokyny, ako to urobiť. Ak chcete tento notebook spustiť na zariadení JetBot, postupujte podľa nasledujúcich krokov:
- Pripojte sa k svojmu robotovi tak, že prejdete na adresu https://: jetbot-ip-address:: 8888
- Prihláste sa pomocou predvoleného hesla jetbot
- Vypnite všetky ostatné spustené notebooky výberom Jadro -> Vypnúť všetky jadrá …
- Prejdite na ~/Notebooky/traffic_cones_driving/
- Otvorte a postupujte podľa zápisníka data_collection_cones.ipynb
Krok 5: Trénujte neurónovú sieť na počítači GPU
Ďalej použijeme zhromaždené údaje na precvičenie modelu hlbokého učenia AlexNet na stroji GPU (hostiteľ) spustením train_model_cones.ipynb.
Všimnite si toho, že train_model_cones.ipynb je jediný notebook Jupyter v tomto návode, ktorý nie je spustený na JetBote
- Pripojte sa k počítaču GPU s nainštalovaným PyTorch a spusteným serverom Jupyter Lab
- Odošlite notebook train_model_cones.ipynb do tohto počítača
- Odovzdajte súbor dataset_cones.zip, ktorý ste vytvorili v prenosnom počítači data_collection_cones.ipynb, a extrahujte tento súbor údajov. (Po tomto kroku by sa vám v prehliadači súborov mal zobraziť priečinok s názvom dataset_cones.)
- Otvorte a postupujte podľa zápisníka train_model_cones.ipynb. Na konci tohto kroku vytvoríte model - súbor best_model_cones.pth, ktorý potom musíte nahrať do JetBot, aby ste mohli spustiť živé demo.
Krok 6: Spustite živé demo na JetBot
Posledným krokom je nahranie modelu best_model_cones.pth do zariadenia JetBot a jeho spustenie.
- Napájajte svojho robota z batérie USB
- Pripojte sa späť k svojmu robotovi tak, že prejdete na adresu https://: jetbot-ip-address:: 8888
- Prihláste sa pomocou predvoleného hesla jetbot
- Vypnite všetky ostatné spustené notebooky výberom Jadro -> Vypnúť všetky jadrá …
- Prejdite na ~/Notebooky/traffic_cones_driving
- Otvorte a sledujte zápisník live_demo_cones.ipynb
Začnite opatrne a poskytnite JetBotu dostatok priestoru na pohyb. Vyskúšajte rôzne konfigurácie kužeľov a zistite, ako dobre robot funguje v rôznych prostrediach, osvetlení atď. Kým notebook live_demo_cones.ipynb podrobne vysvetľuje všetky kroky, nasledujúci graf ukazuje logiku pohybov robota vzhľadom na pravdepodobnosti predpovedané modelmi.
Notebook tiež vysvetľuje, ako uložiť históriu pohybov robota s voľnou/ľavou/pravou/blokovanou pravdepodobnosťou predpovedanou modelom a ako vytvoriť dve videá FPV (First Person View) (s frekvenciou 1 fps a 15 fps) so superponovanou telemetriou a Údaje o akciách JetBot. Sú užitočné pri ladení, ladení radiča PID a vylepšovaní modelu.
Bavte sa a v prípade otázok mi dajte vedieť!:-)
Kód je k dispozícii na Github