Cuprins:
- Provizii
- Pasul 1: Motivație
- Pasul 2: NVIDIA JetBot și prezentare generală a proiectului
- Pasul 3: Construiți JetBot și încărcați notebook-uri Jupyter
- Pasul 4: Colectarea datelor de instruire pe JetBot
- Pasul 5: Instruiți rețeaua neuronală pe mașina GPU
- Pasul 6: Rulați Live Demo pe JetBot
Video: Transferați învățarea cu NVIDIA JetBot - Distracție cu conuri de trafic: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
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
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
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
- Construiți și configurați JetBot așa cum este explicat aici
- Conectați-vă la robotul dvs. navigând la https://: 8888 Conectați-vă cu parola implicită jetbot
- Închideți toate celelalte notebook-uri care rulează selectând Kernel -> Shutdown All Kernels …
- Navigați la ~ / Notebooks /
- Creați un subfolder nou ~ / Notebooks / traffic_cones_driving /
- Î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:
- Conectați-vă la robotul dvs. navigând la https://: jetbot-ip-address:: 8888
- Conectați-vă cu parola implicită jetbot
- Închideți toate celelalte notebook-uri care rulează selectând Kernel -> Shutdown All Kernels …
- Navigați la ~ / Notebooks / traffic_cones_driving /
- 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
- Conectați-vă la o mașină GPU cu PyTorch instalat și rulând un server Jupyter Lab
- Încărcați notebook-ul train_model_cones.ipynb și pe această mașină
- Î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.)
- 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
Acest ultim pas este să încărcați modelul best_model_cones.pth în JetBot și să îl rulați.
- Alimentați robotul din bateria USB
- Conectați-vă din nou la robot navigând la https://: jetbot-ip-address:: 8888
- Conectați-vă cu parola implicită jetbot
- Închideți toate celelalte notebook-uri care rulează selectând Kernel -> Shutdown All Kernels …
- Navigați la ~ / Notebooks / traffic_cones_driving
- 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:
Rpibot - Despre învățarea roboticii: 9 pași
Rpibot - Despre învățarea roboticii: Sunt inginer software încorporat într-o companie germană de automobile. Am început acest proiect ca o platformă de învățare pentru sistemele încorporate. Proiectul a fost anulat devreme, dar mi-a plăcut atât de mult încât am continuat în timpul liber. Acesta este rezultatul … eu
Este posibil să transferați fotografii utilizând dispozitive IoT bazate pe LPWAN ?: 6 pași
Este posibil să transferați fotografii utilizând dispozitive IoT bazate pe LPWAN? Tehnologiile reprezentative sunt Sigfox, LoRa NB-IoT și LTE Cat.M1. Acestea sunt toate tehnologii de comunicare la distanță lungă de putere redusă. În ge
Transferați fără fir Electrcity: 6 pași
Transfer Electrcity Wireless: în acest tutorial, vă voi arăta cum să transferați electricitatea cu un circuit foarte simplu
Cum să detectați bolile plantelor folosind învățarea automată: 6 pași
Cum să detectăm bolile plantelor folosind învățarea automată: Procesul de detectare și recunoaștere a plantelor bolnave a fost întotdeauna un proces manual și plictisitor care impune oamenilor să inspecteze vizual corpul plantei, ceea ce poate duce adesea la un diagnostic incorect. De asemenea, s-a prezis că, ca lume globală
HeadBot - un robot de auto-echilibrare pentru învățarea și extinderea STEM: 7 pași (cu imagini)
HeadBot - un robot de auto-echilibrare pentru învățarea și extinderea STEM: Headbot - un robot de două picioare înălțime, auto-echilibrat - este ideea echipei South Eugene Robotics (SERT, FRC 2521), o echipă competitivă de robotică de liceu din FIRST Concurs de robotică, din Eugene, Oregon. Acest popular robot de divulgare face ca