Innehållsförteckning:
- Tillbehör
- Steg 1: Motivation
- Steg 2: NVIDIA JetBot och projektöversikt
- Steg 3: Bygg JetBot och ladda upp Jupyter -anteckningsböcker
- Steg 4: Samla in träningsdata på JetBot
- Steg 5: Träna neuralt nätverk på GPU -maskinen
- Steg 6: Kör Live Demo på JetBot
Video: Överföringsinlärning med NVIDIA JetBot - kul med trafikkoner: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Av dvillevaldMy GithubFölj om: Jag gillar applikationer för AI och maskininlärning, särskilt inom robotik Mer om dvillevald »
Lär din robot att hitta en väg i en labyrint av trafikkoner med hjälp av kameran och den senaste djupinlärningsmodellen.
Tillbehör
-
NVIDIA JetBot
NVIDIA JetBot Wiki's Bill of Materials -sida listar allt du behöver för att bygga JetBot, tillsammans med att köpa länkar från populära leverantörer
-
Dator med NVIDIA GPU
Behövs för att träna modellen
- BlueDot Trading 4”RC Racing Agility Cones, Orange - Set med 20 st
Steg 1: Motivation
Varje gång jag kör i kontraktionsområdet tänker jag på hur utmanande det skulle vara för en självkörande bil att navigera genom trafikkottarna. Det visar sig att det inte är så svårt med nya NVIDIA: s JetBot-med bara ett par hundra bilder kan du träna en toppmodern djupinlärningsmodell för att lära din robot hur man hittar en väg i en labyrint av leksakstrafikkottar endast med den inbyggda kameran och inga andra sensorer.
Steg 2: NVIDIA JetBot och projektöversikt
JetBot är en robot med öppen källkod baserad på NVIDIA Jetson Nano-kit. Du hittar detaljerade instruktioner om hur du bygger och konfigurerar det här.
Detta projekt är ett modifierat kollisionsundvikande exempel från NVIDIA JetBot Wiki. Den består av tre stora steg, var och en beskrivs i en separat Jupyter -anteckningsbok:
- Samla in data på JetBot - notebook data_collection_cones.ipynb
- Tågmodell på annan GPU -maskin - anteckningsbok train_model_cones.ipynb
- Kör live demo på JetBot - anteckningsbok live_demo_cones.ipynb
Du hittar dessa tre Jupyter -anteckningsböcker här
Steg 3: Bygg JetBot och ladda upp Jupyter -anteckningsböcker
- Bygg och konfigurera JetBot enligt beskrivningen här
- Anslut till din robot genom att navigera till https://: 8888 Logga in med standardlösenordet jetbot
- Stäng av alla andra bärbara bärbara datorer genom att välja Kernel -> Shutdown All Kernels …
- Navigera till ~/Anteckningsböcker/
- Skapa ny undermapp ~/Anteckningsböcker/traffic_cones_driving/
- Ladda upp data_collection_cones.ipynb och live_demo_cones.ipynb till ~/Notebooks/traffic_cones_driving/
VIKTIGT: Jupyters anteckningsböcker data_collection_cones.ipynb och live_demo_cones.ipynb som refereras till i denna instruktion bör köras på JetBot medan train_model_cones.ipynb - på en dator med GPU.
Därför måste vi ladda upp data_collection_cones.ipynb och live_demo_cones.ipynb till JetBot och placera dem i ~/Notebooks/traffic_cones_driving/
Steg 4: Samla in träningsdata på JetBot
Vi kommer att samla en bildklassificeringsdatauppsättning som kommer att användas för att hjälpa JetBot att fungera i en labyrint av trafikkottarna. JetBot lär sig att uppskatta sannolikheter för fyra scenarier (klasser):
- Gratis - när det är säkert att gå framåt
- Blockerad - när det finns ett hinder framför roboten
- Vänster - när roboten ska snurra till vänster
- Höger - när roboten ska snurra till höger
För att samla in träningsdata på JetBot kommer vi att använda Jupyter notebook data_collection_cones.ipynb som innehåller detaljerade instruktioner om hur man gör det. För att köra den här anteckningsboken på JetBot, följ följande steg:
- Anslut till din robot genom att navigera till https://: jetbot-ip-address:: 8888
- Logga in med standardlösenordet jetbot
- Stäng av alla andra bärbara bärbara datorer genom att välja Kernel -> Shutdown All Kernels …
- Navigera till ~/Notebooks/traffic_cones_driving/
- Öppna och följ data_collection_cones.ipynb -anteckningsboken
Steg 5: Träna neuralt nätverk på GPU -maskinen
Därefter kommer vi att använda den insamlade data för att träna om djupinlärningsmodellen AlexNet på GPU-maskin (värd) genom att köra train_model_cones.ipynb.
Observera att train_model_cones.ipynb är den enda Jupyter -anteckningsboken i denna handledning som INTE körs på JetBot
- Anslut till en GPU -maskin med PyTorch installerat och en Jupyter Lab -server körs
- Ladda upp train_model_cones.ipynb anteckningsbok och till den här maskinen
- Ladda upp filen dataset_cones.zip som du skapade i data_collection_cones.ipynb -anteckningsboken och extrahera den här datasetet. (Efter detta steg bör du se en mapp med namnet dataset_cones visas i filbläddraren.)
- Öppna och följ anteckningsboken train_model_cones.ipynb. I slutet av detta steg skapar du en modell - filen best_model_cones.pth som sedan måste laddas upp till JetBot för att köra live -demon.
Steg 6: Kör Live Demo på JetBot
Detta sista steg är att ladda upp modellen best_model_cones.pth till JetBot och köra den.
- Driv din robot från USB -batteriet
- Anslut tillbaka till din robot genom att navigera till https://: jetbot-ip-address:: 8888
- Logga in med standardlösenordet jetbot
- Stäng av alla andra bärbara bärbara datorer genom att välja Kernel -> Shutdown All Kernels …
- Navigera till ~/Notebooks/traffic_cones_driving
- Öppna och följ anteckningsboken live_demo_cones.ipynb
Börja försiktigt och ge JetBot tillräckligt med utrymme för att röra sig. Prova olika konkonfigurationer och se hur bra roboten presterar i olika miljöer, belysning etc. Medan notebook -datorn live_demo_cones.ipynb förklarar alla steg i detalj, visar följande diagram logiken för robotrörelser med tanke på de sannolikheter som modellerna förutsäger.
Anteckningsboken förklarar också hur man lagrar historiken för robotrörelser med fria/vänster/höger/blockerade sannolikheter som modellen förutsäger och hur man gör två FPV (First Person View) -videor (med 1 fps och 15 fps) med överlagrad telemetri och JetBot -åtgärdsdata. De är användbara för felsökning, PID -kontrollinställning och modellförbättring.
Ha det så kul och hör av dig om du har frågor!:-)
Koden är tillgänglig på Github
Rekommenderad:
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Nvidia Jetson Nano Handledning - Första titt med AI & ML: 7 steg
Nvidia Jetson Nano Handledning | Första titt med AI & ML: Hej, vad händer grabbar! Akarsh här från CETech. Idag ska vi titta på en ny SBC från Nvidia som är Jetson Nano, Jetson Nano är fokuserad på artificiell intelligenstekniker som bildigenkänning etc. Vi kommer först att starta upp
Komma igång med NVIDIA Jetson Nano Developer Kit: 6 steg
Komma igång med NVIDIA Jetson Nano Developer Kit: Kort översikt över Nvidia Jetson NanoJetson Nano Developer Kit är en liten, kraftfull enkortsdator som låter dig köra flera neurala nätverk parallellt för applikationer som bildklassificering, objektdetektering, segmentering och tal pr
Fixa en trasig Nvidia GPU -fläkt: 5 steg
Fixa en trasig Nvidia GPU-fläkt: Hej. Jag har ett Nvidia GTS-450-grafikkort och har använt det sedan många år, men det senaste året har fläkten gått sönder och då var jag tvungen att ansluta en nödfläkt. Jag sökte mycket på nätet om en ersättare men jag hittade inte den exakta och den ursprungliga fläkten
Danger Den / Nvidia Tri SLI Vattenkyld spel -dator: 7 steg
Danger Den / Nvidia Tri SLI Vattenkyld gaming -dator: För ett och ett halvt år sedan byggde jag en rejäl spelrigg, nu dess gamla hårdvara. Jag tänkte uppdatera den, huvudsakligen byta ut min 2 GeForce 8800 GTX mot en glänsande ny GeForce GTX 280. Men jag gick " galna vetenskapsman? &Quot; och bygga och helt ny rigg, starta