Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Od dvillevaldMůj GithubFollow O: Mám rád aplikace AI a strojového učení, zejména v robotice Více o dvillevald »
Naučte svého robota najít cestu v bludišti dopravních kuželů pomocí kamery a nejmodernějšího modelu hlubokého učení.
Zásoby
-
NVIDIA JetBot
Stránka rozpisu materiálů NVIDIA JetBot Wiki uvádí vše, co potřebujete k vytvoření JetBot, spolu s nákupem odkazů od oblíbených prodejců
- Počítač s grafickou kartou NVIDIA
Potřebné k vycvičení modelu
- BlueDot Trading 4”RC Racing Agility kužely, oranžová - sada 20
Krok 1: Motivace
Pokaždé, když jedu v oblasti kontrakce, říkám si, jak náročné by bylo, aby se samořídící auto pohybovalo přes dopravní kužely. Ukazuje se, že to s novým JetBotem NVIDIA není tak obtížné-s pouhými několika stovkami obrázků můžete vycvičit nejmodernější model hlubokého učení, který vašeho robota naučí, jak najít cestu v bludišti hraček dopravních kuželů pouze pomocí integrované kamery a bez dalších senzorů.
Krok 2: Přehled NVIDIA JetBot a projektu
JetBot je robot s otevřeným zdrojovým kódem založený na sadě NVIDIA Jetson Nano. Podrobný návod, jak jej sestavit a nastavit, najdete zde.
Tento projekt je upraveným příkladem vyhýbání se kolizím z NVIDIA JetBot Wiki. Skládá se ze tří hlavních kroků, z nichž každý je popsán v samostatném notebooku Jupyter:
- Shromažďujte data na JetBot - notebook data_collection_cones.ipynb
- Trénujte model na jiném stroji GPU - notebook train_model_cones.ipynb
- Spustit živé demo na JetBot - notebook live_demo_cones.ipynb
Tyto tři notebooky Jupyter najdete zde
Krok 3: Vytvořte JetBot a nahrajte notebooky Jupyter
- Sestavte a nastavte JetBot, jak je vysvětleno zde
- Připojte se ke svému robotu tak, že přejdete na adresu https://: 8888Přihlaste se pomocí výchozího hesla jetbot
- Vypněte všechny ostatní spuštěné notebooky výběrem Jádro -> Vypnout všechna jádra…
- Přejít na ~/Notebooky/
- Vytvořit novou podsložku ~/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 pokynech by měly být spuštěny na JetBot, zatímco train_model_cones.ipynb - na počítači s GPU.
Proto musíme do JetBot nahrát data_collection_cones.ipynb a live_demo_cones.ipynb a umístit je do ~/Notebooks/traffic_cones_driving/
Krok 4: Shromažďování tréninkových dat na JetBot
Shromáždíme datový soubor klasifikace obrázků, který bude použit k tomu, aby pomohl JetBotu fungovat v bludišti dopravních kuželů. JetBot se naučí odhadovat pravděpodobnosti čtyř scénářů (tříd):
- Zdarma - když je bezpečné jít vpřed
- Blokováno - když je před robotem překážka
- Vlevo - kdy by se měl robot točit doleva
- Vpravo - kdy by se robot měl točit doprava
Ke shromažďování tréninkových dat na JetBot použijeme notebook Jupyter data_collection_cones.ipynb, který obsahuje podrobné pokyny, jak to udělat. Chcete -li tento notebook spustit na JetBot, postupujte podle následujících kroků:
- Připojte se ke svému robotu tak, že přejdete na adresu https://: jetbot-ip-address:: 8888
- Přihlaste se pomocí výchozího hesla jetbot
- Vypněte všechny ostatní spuštěné notebooky výběrem Jádro -> Vypnout všechna jádra…
- Přejít na ~/Notebooky/traffic_cones_driving/
- Otevřete a sledujte notebook data_collection_cones.ipynb
Krok 5: Trénujte neuronovou síť na počítači GPU
Dále použijeme shromážděná data k opětovnému trénování modelu hlubokého učení AlexNet na GPU stroji (hostiteli) spuštěním train_model_cones.ipynb.
Všimněte si, že train_model_cones.ipynb je jediným notebookem Jupyter v tomto kurzu, který není spuštěn na JetBot
- Připojte se k počítači GPU s nainstalovaným PyTorch a spuštěným serverem Jupyter Lab
- Nahrajte notebook train_model_cones.ipynb a do tohoto počítače
- Nahrajte soubor dataset_cones.zip, který jste vytvořili v poznámkovém bloku data_collection_cones.ipynb, a extrahujte tuto datovou sadu. (Po tomto kroku byste měli v prohlížeči souborů zobrazit složku s názvem dataset_cones.)
- Otevřete a sledujte notebook train_model_cones.ipynb. Na konci tohoto kroku vytvoříte model - soubor best_model_cones.pth, který pak musíte nahrát do JetBot, abyste spustili živé demo.
Krok 6: Spusťte živé demo na JetBot
Posledním krokem je nahrání modelu best_model_cones.pth do JetBot a jeho spuštění.
- Napájejte svého robota z baterie USB
- Připojte se zpět ke svému robotu tak, že přejdete na adresu https://: jetbot-ip-address:: 8888
- Přihlaste se pomocí výchozího hesla jetbot
- Vypněte všechny ostatní spuštěné notebooky výběrem Jádro -> Vypnout všechna jádra…
- Přejděte na ~/Notebooky/traffic_cones_driving
- Otevřete a sledujte notebook live_demo_cones.ipynb
Začněte opatrně a poskytněte JetBotu dostatek prostoru k pohybu. Vyzkoušejte různé konfigurace kuželů a podívejte se, jak dobře si robot vede v různých prostředích, osvětlení atd. Zatímco notebook live_demo_cones.ipynb podrobně vysvětluje všechny kroky, následující tabulka ukazuje logiku pohybů robota s ohledem na pravděpodobnosti předpovídané modely.
Notebook také vysvětluje, jak ukládat historii pohybů robota s pravděpodobností volnou/levou/pravou/blokovanou předpovídanou modelem a jak vytvořit dvě videa FPV (First Person View) (rychlostí 1 fps a 15 fps) se superponovanou telemetrií a Data akcí JetBot. Ty jsou užitečné pro ladění, ladění řadiče PID a vylepšení modelu.
Bavte se a dejte mi vědět, pokud máte otázky!:-)
Kód je k dispozici na Githubu