Cuprins:

Transferați învățarea cu NVIDIA JetBot - Distracție cu conuri de trafic: 6 pași
Transferați învățarea cu NVIDIA JetBot - Distracție cu conuri de trafic: 6 pași

Video: Transferați învățarea cu NVIDIA JetBot - Distracție cu conuri de trafic: 6 pași

Video: Transferați învățarea cu NVIDIA JetBot - Distracție cu conuri de trafic: 6 pași
Video: [Live] Stiri si atat. 🖥️ 2024, Iulie
Anonim

De dvillevaldMy GithubFollow About: Îmi plac aplicațiile de AI și de învățare automată, în special în robotică Mai multe despre dvillevald »

Învățați robotul să găsească o cale într-un labirint de conuri de trafic folosind camera și modelul de învățare profundă de ultimă generație.

Provizii

  • NVIDIA JetBot

    Pagina Declarație de materiale a NVIDIA JetBot Wiki enumeră tot ce aveți nevoie pentru a construi JetBot, împreună cu achiziționarea de link-uri de la furnizori populari

  • Computer cu GPU NVIDIA

    Necesar pentru a antrena modelul

  • BlueDot Trading 4 "RC Racing Agility Cones, Orange - Set de 20

Pasul 1: Motivație

Image
Image

De fiecare dată când conduc în zona de contracție mă gândesc cât de dificil ar fi ca o mașină cu conducere automată să navigheze prin conurile de trafic. Se pare că nu este atât de dificil cu noul JetBot al NVIDIA - cu doar câteva sute de imagini, puteți instrui un model de învățare profundă de ultimă generație pentru a vă învăța robotul cum să găsească o cale într-un labirint de conuri de trafic de jucărie. folosind numai camera de la bord și fără alți senzori.

Pasul 2: NVIDIA JetBot și prezentare generală a proiectului

NVIDIA JetBot și prezentare generală a proiectului
NVIDIA JetBot și prezentare generală a proiectului

JetBot este un robot open-source bazat pe kitul NVIDIA Jetson Nano. Aici puteți găsi instrucțiuni detaliate despre cum să o construiți și să o configurați.

Acest proiect este un exemplu modificat de evitare a coliziunilor din NVIDIA JetBot Wiki. Acesta constă din trei pași majori, fiecare descris într-un notebook Jupyter separat:

  • Colectați date pe JetBot - notebook data_collection_cones.ipynb
  • Model de tren pe altă mașină GPU - notebook train_model_cones.ipynb
  • Rulați demo live pe JetBot - notebook live_demo_cones.ipynb

Puteți găsi aceste trei caiete Jupyter aici

Pasul 3: Construiți JetBot și încărcați notebook-uri Jupyter

  1. Construiți și configurați JetBot așa cum este explicat aici
  2. Conectați-vă la robotul dvs. navigând la https://: 8888 Conectați-vă cu parola implicită jetbot
  3. Închideți toate celelalte notebook-uri care rulează selectând Kernel -> Shutdown All Kernels …
  4. Navigați la ~ / Notebooks /
  5. Creați un subfolder nou ~ / Notebooks / traffic_cones_driving /
  6. Încărcați data_collection_cones.ipynb și live_demo_cones.ipynb în ~ / Notebooks / traffic_cones_driving /

IMPORTANT: Notebook-urile Jupyter data_collection_cones.ipynb și live_demo_cones.ipynb la care se face referire în aceste instrucțiuni ar trebui să fie rulate pe JetBot în timp ce train_model_cones.ipynb - pe un computer cu GPU.

Prin urmare, trebuie să încărcăm data_collection_cones.ipynb și live_demo_cones.ipynb pe JetBot și să le plasăm în ~ / Notebooks / traffic_cones_driving /

Pasul 4: Colectarea datelor de instruire pe JetBot

Vom colecta un set de date de clasificare a imaginilor care va fi folosit pentru a ajuta JetBot să funcționeze într-un labirint de conuri de trafic. JetBot va învăța cum să estimeze probabilitățile a patru scenarii (clase):

  • Gratuit - atunci când este sigur să avansezi
  • Blocat - atunci când există un obstacol în fața robotului
  • Stânga - când robotul trebuie să se rotească spre stânga
  • Dreapta - când robotul trebuie să se rotească spre dreapta

Pentru a colecta datele de formare pe JetBot vom folosi notebook-ul Jupyter data_collection_cones.ipynb care conține instrucțiuni detaliate despre cum să o faceți. Pentru a rula acest notebook pe JetBot, urmați pașii următori:

  1. Conectați-vă la robotul dvs. navigând la https://: jetbot-ip-address:: 8888
  2. Conectați-vă cu parola implicită jetbot
  3. Închideți toate celelalte notebook-uri care rulează selectând Kernel -> Shutdown All Kernels …
  4. Navigați la ~ / Notebooks / traffic_cones_driving /
  5. Deschideți și urmați blocnotesul data_collection_cones.ipynb

Pasul 5: Instruiți rețeaua neuronală pe mașina GPU

Apoi, vom folosi datele colectate pentru a re-instrui modelul de învățare profundă AlexNet pe mașina GPU (gazdă) rulând train_model_cones.ipynb.

Rețineți că train_model_cones.ipynb este singurul notebook Jupyter din acest tutorial care rulează NU pe JetBot

  1. Conectați-vă la o mașină GPU cu PyTorch instalat și rulând un server Jupyter Lab
  2. Încărcați notebook-ul train_model_cones.ipynb și pe această mașină
  3. Încărcați fișierul dataset_cones.zip pe care l-ați creat în blocul de date data_collection_cones.ipynb și extrageți acest set de date. (După acest pas ar trebui să vedeți un folder numit dataset_cones care apare în browserul de fișiere.)
  4. Deschideți și urmați blocnotesul train_model_cones.ipynb. La sfârșitul acestui pas, veți crea un model - fișierul best_model_cones.pth care apoi trebuie încărcat pe JetBot pentru a rula demo-ul live.

Pasul 6: Rulați Live Demo pe JetBot

Rulați Live Demo pe JetBot
Rulați Live Demo pe JetBot

Acest ultim pas este să încărcați modelul best_model_cones.pth în JetBot și să îl rulați.

  1. Alimentați robotul din bateria USB
  2. Conectați-vă din nou la robot navigând la https://: jetbot-ip-address:: 8888
  3. Conectați-vă cu parola implicită jetbot
  4. Închideți toate celelalte notebook-uri care rulează selectând Kernel -> Shutdown All Kernels …
  5. Navigați la ~ / Notebooks / traffic_cones_driving
  6. Deschideți și urmați blocnotesul live_demo_cones.ipynb

Începeți cu precauție și acordați JetBot suficient spațiu pentru a vă deplasa. Încercați configurația diferită a conului și vedeți cât de bine se comportă robotul în diferite medii, iluminat etc. În timp ce notebook-ul live_demo_cones.ipynb explică în detaliu toți pașii, graficul următor prezintă logica mișcărilor robotului date fiind probabilitățile prezise de modele.

Notebook-ul explică, de asemenea, modul de stocare a istoriei mișcărilor robotului cu probabilități libere / stânga / dreapta / blocate prezise de model și cum să faci două videoclipuri FPV (First Person View) (la viteze de 1 fps și 15 fps) cu telemetrie suprapusă și Date despre acțiunile JetBot. Acestea sunt utile pentru depanare, reglarea controlerului PID și îmbunătățirea modelului.

Distrează-te și anunță-mă dacă ai întrebări!:-)

Codul este disponibil pe Github

Recomandat: