Tartalomjegyzék:

Transzfer tanulás az NVIDIA JetBot segítségével - Szórakozás a forgalmi kúpokkal: 6 lépés
Transzfer tanulás az NVIDIA JetBot segítségével - Szórakozás a forgalmi kúpokkal: 6 lépés

Videó: Transzfer tanulás az NVIDIA JetBot segítségével - Szórakozás a forgalmi kúpokkal: 6 lépés

Videó: Transzfer tanulás az NVIDIA JetBot segítségével - Szórakozás a forgalmi kúpokkal: 6 lépés
Videó: Coding in 2023 2024, November
Anonim

Szerző: dvillevaldMy GithubFollow About: Szeretem az AI -t és a gépi tanulási alkalmazásokat, különösen a robotikában További információ a dvillevaldról »

Tanítsa meg robotját, hogy keressen utat a forgalmi kúpok útvesztőjében a kamera és a legmodernebb mély tanulási modell segítségével.

Kellékek

  • NVIDIA JetBot

    Az NVIDIA JetBot Wiki Anyagjegyzék oldala felsorol mindent, amire szüksége van a JetBot létrehozásához, valamint a népszerű gyártók linkjeit

  • Számítógép NVIDIA GPU -val

    Szükséges a modell betanításához

  • BlueDot Trading 4”RC Racing Agility kúpok, narancs - 20 db

1. lépés: Motiváció

Image
Image

Minden alkalommal, amikor az összehúzódási területen vezetek, arra gondolok, hogy milyen kihívást jelenthet egy önvezető autó számára a közlekedési kúpokon való navigálás. Kiderült, hogy ez nem is olyan nehéz az új NVIDIA JetBot-jával-mindössze pár száz képpel, a legmodernebb mély tanulási modellt képezheti ki, hogy megtanítsa robotjának, hogyan kell megtalálni az utat a játékkúpok útvesztőjében csak a fedélzeti kamerát használja, más érzékelőket nem.

2. lépés: Az NVIDIA JetBot és a projekt áttekintése

Az NVIDIA JetBot és a projekt áttekintése
Az NVIDIA JetBot és a projekt áttekintése

A JetBot egy nyílt forráskódú robot, amely az NVIDIA Jetson Nano készleten alapul. Itt talál részletes utasításokat a felépítésről és beállításról.

Ez a projekt az NVIDIA JetBot Wiki módosított ütközés elkerülési példája. Három fő lépésből áll, amelyek mindegyikét külön Jupyter notebook írja le:

  • Adatok gyűjtése a JetBot -on - notebook data_collection_cones.ipynb
  • Vonatmodell más GPU -gépen - notebook train_model_cones.ipynb
  • Futtassa az élő demót a JetBot -on - notebook live_demo_cones.ipynb

Ezt a három Jupyter notebookot itt találja

3. lépés: Készítse el a JetBot szoftvert, és töltse fel a Jupyter notebookokat

  1. Készítse el és állítsa be a JetBot -ot az itt leírtak szerint
  2. Csatlakozzon robotjához a https://: 8888 oldalon való belépéssel. Jelentkezzen be az alapértelmezett jelszóval a jetbot
  3. Kapcsolja ki az összes többi futó notebookot a Kernel -> Shutdown All Kernels menüpont kiválasztásával …
  4. Navigáljon a ~/Jegyzetfüzetek/
  5. Új almappa létrehozása ~/Notebook/traffic_cones_driving/
  6. A data_collection_cones.ipynb és a live_demo_cones.ipynb fájl feltöltése a ~/Notebooks/traffic_cones_driving/

FONTOS: Az ebben az utasításban hivatkozott Jupyter notebook data_collection_cones.ipynb és live_demo_cones.ipynb notebookokat a JetBot rendszeren kell futtatni, míg a train_model_cones.ipynb - GPU -val rendelkező számítógépen.

Ezért fel kell töltenünk a data_collection_cones.ipynb és live_demo_cones.ipynb fájlokat a JetBot rendszerbe, és el kell helyeznünk őket a ~/Notebooks/traffic_cones_driving/

4. lépés: Képzési adatok gyűjtése a JetBot -on

Összegyűjtünk egy képosztályozási adathalmazt, amelyet felhasználunk a JetBot működtetéséhez a forgalomkúpok útvesztőjében. A JetBot megtanulja megbecsülni négy forgatókönyv (osztály) valószínűségét:

  • Ingyenes - ha biztonságosan haladhat előre
  • Blokkolt - ha akadály van a robot előtt
  • Bal - amikor a robotnak balra kell forognia
  • Jobb - amikor a robotnak jobbra kell forognia

Az edzési adatok JetBot -on történő összegyűjtéséhez a Jupyter notebook data_collection_cones.ipynb programot használjuk, amely részletes utasításokat tartalmaz arra vonatkozóan. A jegyzetfüzet JetBot -on történő futtatásához kövesse az alábbi lépéseket:

  1. Csatlakozzon robotjához a https://: jetbot-ip-address:: 8888 címen
  2. Jelentkezzen be az alapértelmezett jetbot jelszóval
  3. Kapcsolja ki az összes többi futó notebookot a Kernel -> Shutdown All Kernels menüpont kiválasztásával …
  4. Navigáljon a ~/Notebooks/traffic_cones_driving/
  5. Nyissa meg és kövesse a data_collection_cones.ipynb jegyzetfüzetet

5. lépés: Neural Network oktatása GPU -gépen

Ezután az összegyűjtött adatokat felhasználjuk az AlexNet mélytanulási modell GPU-gépen (gazdagépen) történő továbbképzésére a train_model_cones.ipynb futtatásával.

Ne feledje, hogy a train_model_cones.ipynb az egyetlen Jupyter -jegyzetfüzet ebben az oktatóanyagban, amelyet NEM a JetBot futtat

  1. Csatlakozzon egy GPU -géphez, amelyen a PyTorch telepítve van, és a Jupyter Lab szerver fut
  2. Töltse fel a train_model_cones.ipynb jegyzetfüzetet erre a gépre
  3. Töltse fel a data_collection_cones.ipynb jegyzetfüzetben létrehozott dataset_cones.zip fájlt, és bontsa ki ezt az adathalmazt. (Ezt a lépést követően látnia kell a fájlkészletben a dataset_cones nevű mappát.)
  4. Nyissa meg és kövesse a train_model_cones.ipynb jegyzetfüzetet. E lépés végén létrehoz egy modellt - a best_model_cones.pth fájlt, amelyet azután fel kell tölteni a JetBot -ba az élő demó futtatásához.

6. lépés: Futtassa az élő demót a JetBot -on

Futtassa az élő demót a JetBot -on
Futtassa az élő demót a JetBot -on

Ez az utolsó lépés a best_model_cones.pth modell feltöltése a JetBotba, és futtatása.

  1. Táplálja robotját az USB akkumulátorról
  2. Csatlakozzon újra robotjához a https://: jetbot-ip-address:: 8888 címen
  3. Jelentkezzen be az alapértelmezett jetbot jelszóval
  4. Kapcsolja ki az összes többi futó notebookot a Kernel -> Shutdown All Kernels menüpont kiválasztásával …
  5. Keresse meg a ~/Notebooks/traffic_cones_driving oldalt
  6. Nyissa meg és kövesse a live_demo_cones.ipynb jegyzetfüzetet

Kezdjen óvatosan, és adjon elegendő teret a JetBotnak a mozgáshoz. Próbálja ki a különböző kúpkonfigurációkat, és nézze meg, hogy a robot milyen jól teljesít különböző környezetekben, megvilágításban stb. Míg a noteszgép live_demo_cones.ipynb részletesen elmagyarázza az összes lépést, a következő táblázat a robotok mozgásának logikáját mutatja, figyelembe véve a modellek által előre jelzett valószínűségeket.

A notebook azt is elmagyarázza, hogyan tárolható a robotmozgások története a modell által előre jelzett szabad/bal/jobb/blokkolt valószínűségekkel, és hogyan készíthető két FPV (First Person View) videó (1 fps és 15 fps sebességgel) egymásra helyezett telemetriával és JetBot műveleti adatok. Ezek hasznosak a hibakereséshez, a PID vezérlő hangolásához és a modell javításához.

Jó szórakozást, és ha kérdésed van, szólj!:-)

A kód elérhető a Githubon

Ajánlott: