Sommario:
- Forniture
- Passaggio 1: motivazione
- Passaggio 2: NVIDIA JetBot e panoramica del progetto
- Passaggio 3: crea JetBot e carica i notebook Jupyter
- Passaggio 4: raccolta dei dati di allenamento su JetBot
- Passaggio 5: addestrare la rete neurale sulla macchina GPU
- Passaggio 6: esegui la demo live su JetBot
Video: Trasferisci l'apprendimento con NVIDIA JetBot - Divertiti con i coni del traffico: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Di dvillevaldMy GithubFollow Informazioni su: Mi piacciono le applicazioni di intelligenza artificiale e di apprendimento automatico, in particolare nella robotica Ulteriori informazioni su dvillevald »
Insegna al tuo robot a trovare un percorso in un labirinto di coni stradali utilizzando la fotocamera e un modello di apprendimento profondo all'avanguardia.
Forniture
-
NVIDIA JetBot
La pagina Bill of Materials di NVIDIA JetBot Wiki elenca tutto il necessario per creare JetBot, insieme ai collegamenti per l'acquisto da fornitori famosi
- Computer con GPU NVIDIA
Necessario per addestrare il modello
- BlueDot Trading 4” RC Racing Agility Coni, Arancio – Set di 20
Passaggio 1: motivazione
Ogni volta che guido nell'area di contrazione penso a quanto sarebbe difficile per un'auto a guida autonoma navigare tra i coni del traffico. Si scopre che non è così difficile con il nuovo JetBot di NVIDIA: con solo un paio di centinaia di immagini, puoi addestrare un modello di deep learning all'avanguardia per insegnare al tuo robot come trovare un percorso in un labirinto di coni di traffico giocattolo utilizzando solo la fotocamera di bordo e nessun altro sensore.
Passaggio 2: NVIDIA JetBot e panoramica del progetto
JetBot è un robot open source basato sul kit NVIDIA Jetson Nano. Puoi trovare istruzioni dettagliate su come costruirlo e configurarlo qui.
Questo progetto è un esempio di prevenzione delle collisioni modificato da NVIDIA JetBot Wiki. Consiste di tre passaggi principali, ciascuno descritto in un taccuino Jupyter separato:
- Raccogli dati su JetBot - notebook data_collection_cones.ipynb
- Addestra modello su un'altra macchina GPU - notebook train_model_cones.ipynb
- Esegui demo live su JetBot - notebook live_demo_cones.ipynb
Puoi trovare questi tre quaderni Jupyter qui
Passaggio 3: crea JetBot e carica i notebook Jupyter
- Costruisci e configura JetBot come spiegato qui
- Connettiti al tuo robot navigando su https://:8888Accedi con la password predefinita jetbot
- Spegni tutti gli altri notebook in esecuzione selezionando Kernel -> Shutdown All Kernels…
- Vai a ~/Notebook/
- Crea una nuova sottocartella ~/Notebook/traffic_cones_driving/
- Carica data_collection_cones.ipynb e live_demo_cones.ipynb su ~/Notebooks/traffic_cones_driving/
IMPORTANTE: i notebook Jupyter data_collection_cones.ipynb e live_demo_cones.ipynb a cui si fa riferimento in queste istruzioni devono essere eseguiti su JetBot mentre train_model_cones.ipynb - su un computer con GPU.
Quindi dobbiamo caricare data_collection_cones.ipynb e live_demo_cones.ipynb sul JetBot e metterli in ~/Notebooks/traffic_cones_driving/
Passaggio 4: raccolta dei dati di allenamento su JetBot
Raccoglieremo un set di dati di classificazione delle immagini che verrà utilizzato per aiutare JetBot a operare in un labirinto di coni di traffico. JetBot imparerà a stimare le probabilità di quattro scenari (classi):
- Gratuito - quando è sicuro andare avanti
- Bloccato - quando c'è un ostacolo davanti al robot
- Sinistra - quando il robot dovrebbe girare a sinistra
- Destra - quando il robot dovrebbe girare a destra
Per raccogliere i dati di addestramento su JetBot utilizzeremo Jupyter notebook data_collection_cones.ipynb che contiene istruzioni dettagliate su come farlo. Per eseguire questo notebook su JetBot, segui i passaggi seguenti:
- Connettiti al tuo robot navigando su
- Accedi con la password predefinita jetbot
- Spegni tutti gli altri notebook in esecuzione selezionando Kernel -> Shutdown All Kernels…
- Vai a ~/Notebook/traffic_cones_driving/
- Apri e segui il taccuino data_collection_cones.ipynb
Passaggio 5: addestrare la rete neurale sulla macchina GPU
Successivamente, utilizzeremo i dati raccolti per addestrare nuovamente il modello di deep learning AlexNet sulla macchina GPU (host) eseguendo train_model_cones.ipynb.
Nota che train_model_cones.ipynb è l'unico notebook Jupyter in questo tutorial che NON viene eseguito su JetBot
- Connettiti a una macchina GPU con PyTorch installato e un server Jupyter Lab in esecuzione
- Carica il taccuino train_model_cones.ipynb e su questa macchina
- Carica il file dataset_cones.zip che hai creato nel notebook data_collection_cones.ipynb ed estrai questo set di dati. (Dopo questo passaggio dovresti vedere una cartella denominata dataset_cones apparire nel browser di file.)
- Apri e segui il taccuino train_model_cones.ipynb. Alla fine di questo passaggio, creerai un modello, il file best_model_cones.pth che deve essere caricato sul JetBot per eseguire la demo live.
Passaggio 6: esegui la demo live su JetBot
Questo passaggio finale consiste nel caricare il modello best_model_cones.pth sul JetBot ed eseguirlo.
- Alimenta il tuo robot dalla batteria USB
- Connettiti nuovamente al tuo robot navigando su
- Accedi con la password predefinita jetbot
- Spegni tutti gli altri notebook in esecuzione selezionando Kernel -> Shutdown All Kernels…
- Vai a ~/Notebook/traffic_cones_driving
- Apri e segui il taccuino live_demo_cones.ipynb
Inizia con cautela e dai a JetBot abbastanza spazio per muoversi. Prova diverse configurazioni del cono e guarda come si comporta il robot in diversi ambienti, illuminazione, ecc. Mentre il notebook live_demo_cones.ipynb spiega tutti i passaggi in dettaglio, il grafico seguente mostra la logica dei movimenti del robot date le probabilità previste dai modelli.
Il taccuino spiega anche come memorizzare la cronologia dei movimenti del robot con probabilità libere/sinistre/destre/bloccate previste dal modello e come realizzare due video FPV (First Person View) (a velocità di 1 fps e 15 fps) con telemetria sovrapposta e Dati sulle azioni JetBot. Questi sono utili per il debug, l'ottimizzazione del controller PID e il miglioramento del modello.
Divertiti e fammi sapere se hai domande!:-)
Il codice è disponibile su Github
Consigliato:
Sicurezza cyber-fisica del parcheggio intelligente e del controllo del traffico: 6 passaggi
Sicurezza informatica e fisica del parcheggio intelligente e del controllo del traffico: Internet sta crescendo con miliardi di dispositivi tra cui automobili, sensori, computer, server, frigoriferi, dispositivi mobili e molto altro a un ritmo senza precedenti. Ciò introduce molteplici rischi e vulnerabilità nell'infrastruttura, nel funzionamento e
Trasferisci l'elettricità in modalità wireless: 6 passaggi
Trasferimento Elettricità Wirelessily: in questo tutorial, ti mostrerò come trasferire l'elettricità con un circuito molto semplice
Dispositivo di controllo automatico del traffico: 20 passaggi
Dispositivo di controllo automatico del traffico: Avvertenza: prima di iniziare il processo di costruzione, assicurarsi di indossare i DPI adeguati e di seguire le norme di sicurezza dell'OSHA. Indossare dispositivi di sicurezza come occhiali di sicurezza, tappi per le orecchie e guanti antiurto. Parti richieste: 1quot; x 1" tubo quadro - 5
Controllo del rapporto sul traffico (NL) con zerbino: 6 passaggi
Controllo dei rapporti sul traffico (NL) con zerbino: in questo tutorial descriverò come costruire uno zerbino che controllerà i rapporti sul traffico delle autostrade olandesi. Una volta che esci dallo zerbino e c'è un ingorgo sul percorso, il tappetino diventa di colore rosso. Quando non c'è traffico
SMART MAKE HATC - Controllo del traffico aereo fatto in casa con 4x RTL-SDR (50$): 7 passaggi
SMART MAKE HATC - Homemade Air Traffic Control With 4x RTL-SDR (50$): Proof of concept of low cost HATC - Homemade Air Traffic ControlDi seguito è una semplice raccolta di informazioni sulla ricezione del traffico aereo, un collegamento di alcuni software da utilizzare e una proposta per un sistema hardware proof of concept