Obsah:

Přenos učení s NVIDIA JetBot - zábava s dopravními kužely: 6 kroků
Přenos učení s NVIDIA JetBot - zábava s dopravními kužely: 6 kroků

Video: Přenos učení s NVIDIA JetBot - zábava s dopravními kužely: 6 kroků

Video: Přenos učení s NVIDIA JetBot - zábava s dopravními kužely: 6 kroků
Video: Jetbot Variational Autoencoder Reinforcement Learning 2024, Prosinec
Anonim

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

Image
Image

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

Přehled NVIDIA JetBot a projektu
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

  1. Sestavte a nastavte JetBot, jak je vysvětleno zde
  2. Připojte se ke svému robotu tak, že přejdete na adresu https://: 8888Přihlaste se pomocí výchozího hesla jetbot
  3. Vypněte všechny ostatní spuštěné notebooky výběrem Jádro -> Vypnout všechna jádra…
  4. Přejít na ~/Notebooky/
  5. Vytvořit novou podsložku ~/Notebooky/traffic_cones_driving/
  6. 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ů:

  1. Připojte se ke svému robotu tak, že přejdete na adresu https://: jetbot-ip-address:: 8888
  2. Přihlaste se pomocí výchozího hesla jetbot
  3. Vypněte všechny ostatní spuštěné notebooky výběrem Jádro -> Vypnout všechna jádra…
  4. Přejít na ~/Notebooky/traffic_cones_driving/
  5. 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

  1. Připojte se k počítači GPU s nainstalovaným PyTorch a spuštěným serverem Jupyter Lab
  2. Nahrajte notebook train_model_cones.ipynb a do tohoto počítače
  3. 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.)
  4. 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

Spusťte živé demo na JetBot
Spusťte živé demo na JetBot

Posledním krokem je nahrání modelu best_model_cones.pth do JetBot a jeho spuštění.

  1. Napájejte svého robota z baterie USB
  2. Připojte se zpět ke svému robotu tak, že přejdete na adresu https://: jetbot-ip-address:: 8888
  3. Přihlaste se pomocí výchozího hesla jetbot
  4. Vypněte všechny ostatní spuštěné notebooky výběrem Jádro -> Vypnout všechna jádra…
  5. Přejděte na ~/Notebooky/traffic_cones_driving
  6. 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

Doporučuje: