Obsah:
- Zásoby
- Krok 1: Motivace
- Krok 2: Přehled NVIDIA JetBot a projektu
- Krok 3: Vytvořte JetBot a nahrajte notebooky Jupyter
- Krok 4: Shromažďování tréninkových dat na JetBot
- Krok 5: Trénujte neuronovou síť na počítači GPU
- Krok 6: Spusťte živé demo na JetBot
Video: Přenos učení s NVIDIA JetBot - zábava s dopravními kužely: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
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
Doporučuje:
Použití Pythonu k učení neanglických rozložení klávesnice: 8 kroků
Použití Pythonu k učení neanglických rozvržení klávesnice: Ahoj, já jsem Julien! Jsem student informatiky a dnes vám ukážu, jak můžete pomocí Pythonu naučit rozložení klávesnice v neanglickém jazyce. V dnešní době probíhá online mnoho jazykových kurzů a jedna věc, kterou si lidé mohou uvědomit
Rpibot - O učení robotiky: 9 kroků
Rpibot - O učení robotiky: Jsem vestavěný softwarový inženýr v německé automobilové společnosti. Tento projekt jsem zahájil jako učební platformu pro vestavěné systémy. Projekt byl zrušen brzy, ale užil jsem si to natolik, že jsem pokračoval ve svém volném čase. Toto je výsledek … já
Objektově orientované programování: Vytváření předmětů Učení/Metoda výuky/Technika pomocí Shape Puncher: 5 kroků
Objektově orientované programování: Vytváření objektů/Metoda výuky/Technika pomocí Shape Puncher: Metoda učení/výuky pro studenty nové v objektově orientovaném programování. Toto je způsob, jak jim umožnit vizualizovat a vidět proces vytváření objektů ze tříd.Části:1. EkTools 2palcový velký úder; pevné tvary jsou nejlepší.2. Kus papíru nebo c
Učení na semaforu: 5 kroků
Učení na semaforu: V tomto tutoriálu se naučíte, jak vytvořit výukovou hru na semaforu Arduino. Hrou si děti mohou ověřit, zda mají správné znalosti o semaforech. Hra je rozdělena na dvě části, pokud hráč splní
Tvary: Učení pro všechny s Makey Makey: 5 kroků (s obrázky)
Tvary: Učení pro všechny s Makey Makey: Učitelé učí VŠECHNY studenty. Někdy naše učení musí vypadat odlišně v závislosti na studentovi. Níže je uveden příklad snadné lekce, kterou můžete vytvořit, abyste se ujistili, že všichni vaši studenti pracují na základních dovednostech. Tento projekt by fungoval dobře