Sadržaj:

Prijenos učenja s NVIDIA JetBotom - zabava s prometnim češerima: 6 koraka
Prijenos učenja s NVIDIA JetBotom - zabava s prometnim češerima: 6 koraka

Video: Prijenos učenja s NVIDIA JetBotom - zabava s prometnim češerima: 6 koraka

Video: Prijenos učenja s NVIDIA JetBotom - zabava s prometnim češerima: 6 koraka
Video: REVAN - THE COMPLETE STORY 2024, Srpanj
Anonim

Autor dvillevaldMy GithubFollow O: Sviđaju mi se umjetna inteligencija i aplikacije za strojno učenje, posebno u robotici Više o dvillevaldu »

Naučite svog robota da pronađe put u labirintu prometnih čunjeva koristeći kameru i najsuvremeniji model dubokog učenja.

Pribor

  • NVIDIA JetBot

    NVIDIA JetBot Wiki stranica sa materijalima navodi sve što vam je potrebno za izgradnju JetBot -a, zajedno s kupnjom veza od popularnih dobavljača

  • Računalo s NVIDIA GPU -om

    Potrebno za uvježbavanje modela

  • BlueDot Trading 4”RC Racing Agility čunjevi, narančasta - set od 20 komada

Korak 1: Motivacija

Image
Image

Svaki put kad se vozim u zoni kontrakcije, razmišljam koliko bi izazov za auto koji se sam kreće kroz prometne stošce bilo izazovno. Ispostavilo se da nije tako teško s novim NVIDIA-inim JetBotom-sa samo nekoliko stotina slika možete istrenirati vrhunski model dubokog učenja kako biste naučili svog robota kako pronaći put u labirintu igračaka u prometnim konusima koristite samo ugrađenu kameru i nema drugih senzora.

Korak 2: NVIDIA JetBot i pregled projekta

NVIDIA JetBot i pregled projekta
NVIDIA JetBot i pregled projekta

JetBot je robot otvorenog koda temeljen na NVIDIA Jetson Nano kompletu. Ovdje možete pronaći detaljne upute o tome kako ga izgraditi i postaviti.

Ovaj projekt je izmijenjeni primjer izbjegavanja sudara iz NVIDIA JetBot Wiki. Sastoji se od tri glavna koraka, od kojih je svaki opisan u zasebnoj bilježnici Jupyter:

  • Prikupljajte podatke na JetBotu - prijenosno računalo data_collection_cones.ipynb
  • Model vlaka na drugom GPU stroju - prijenosno računalo train_model_cones.ipynb
  • Pokrenite demonstraciju uživo na JetBotu - prijenosno računalo live_demo_cones.ipynb

Ove tri Jupyter bilježnice možete pronaći ovdje

Korak 3: Izgradite JetBot i postavite Jupyter bilježnice

  1. Izgradite i postavite JetBot kako je ovdje objašnjeno
  2. Povežite se sa svojim robotom tako što ćete otići na https://: 8888Prijavite se sa zadanom lozinkom jetbot
  3. Isključite sve ostale prijenosne računare odabirom Kernel -> Shutdown All Kernels …
  4. Idite na ~/Bilježnice/
  5. Izradi novu podmapu ~/Bilježnice/traffic_cones_driving/
  6. Prenesite data_collection_cones.ipynb i live_demo_cones.ipynb u ~/Bilježnice/traffic_cones_driving/

VAŽNO: Prijenosne računare Jupyter data_collection_cones.ipynb i live_demo_cones.ipynb navedene u ovim uputama trebale bi se izvoditi na JetBotu, dok train_model_cones.ipynb - na računalu s GPU -om.

Stoga moramo učitati data_collection_cones.ipynb i live_demo_cones.ipynb u JetBot i postaviti ih u ~/Notebooks/traffic_cones_driving/

Korak 4: Prikupljanje podataka o obuci na JetBotu

Prikupit ćemo skup podataka o klasifikaciji slika koji će se koristiti za pomoć JetBotu u radu u labirintu prometnih čunjeva. JetBot će naučiti kako procijeniti vjerojatnost četiri scenarija (klase):

  • Besplatno - kad je sigurno krenuti naprijed
  • Blokirano - kada postoji prepreka ispred robota
  • Lijevo - kada bi se robot trebao okrenuti ulijevo
  • Desno - kada bi se robot trebao okrenuti udesno

Za prikupljanje podataka o obuci na JetBotu koristit ćemo Jupyter prijenosno računalo data_collection_cones.ipynb koje sadrži detaljne upute kako to učiniti. Da biste pokrenuli ovu bilježnicu na JetBotu, slijedite sljedeće korake:

  1. Povežite se sa svojim robotom tako što ćete otići na https://: jetbot-ip-address:: 8888
  2. Prijavite se sa zadanom lozinkom jetbot
  3. Isključite sve ostale prijenosne računare odabirom Kernel -> Shutdown All Kernels …
  4. Idite na ~/Bilježnice/traffic_cones_driving/
  5. Otvorite i slijedite bilježnicu data_collection_cones.ipynb

Korak 5: Vježbajte neuronsku mrežu na GPU stroju

Zatim ćemo prikupljene podatke koristiti za ponovno uvježbavanje modela dubokog učenja AlexNet na GPU stroju (host) pokretanjem train_model_cones.ipynb.

Imajte na umu da je train_model_cones.ipynb jedina Jupyterova bilježnica u ovom vodiču koja se NE izvodi na JetBotu

  1. Povežite se s GPU strojem s instaliranim PyTorch -om i poslužiteljem Jupyter Lab poslužitelja
  2. Prenesite bilježnicu train_model_cones.ipynb i na ovaj stroj
  3. Prenesite datoteku skupa podataka_cones.zip koju ste stvorili u bilježnici data_collection_cones.ipynb i izdvojite ovaj skup podataka. (Nakon ovog koraka trebali biste vidjeti da se u pregledniku datoteka pojavljuje mapa s nazivom skupovi podataka_cones.)
  4. Otvorite i slijedite bilježnicu train_model_cones.ipynb. Na kraju ovog koraka stvorit ćete model - datoteku best_model_cones.pth koju zatim morate učitati u JetBot kako biste pokrenuli demo demonstraciju uživo.

Korak 6: Pokrenite demo demonstraciju uživo na JetBotu

Pokrenite Live Demo na JetBotu
Pokrenite Live Demo na JetBotu

Ovaj posljednji korak je prenijeti model best_model_cones.pth na JetBot i pokrenuti ga.

  1. Napajajte svog robota iz USB baterije
  2. Ponovo se povežite sa svojim robotom tako što ćete otići na https://: jetbot-ip-address:: 8888
  3. Prijavite se sa zadanom lozinkom jetbot
  4. Isključite sve ostale prijenosne računare odabirom Kernel -> Shutdown All Kernels …
  5. Idite na ~/Bilježnice/traffic_cones_driving
  6. Otvorite i slijedite bilježnicu live_demo_cones.ipynb

Počnite oprezno i dajte JetBotu dovoljno prostora za kretanje. Isprobajte drugačiju konfiguraciju konusa i pogledajte koliko dobro robot radi u različitim okruženjima, osvjetljenju itd. Dok prijenosno računalo live_demo_cones.ipynb detaljno objašnjava sve korake, sljedeći grafikon prikazuje logiku kretanja robota s obzirom na vjerojatnosti koje predviđaju modeli.

Bilježnica također objašnjava kako pohraniti povijest kretanja robota sa slobodnim/lijevim/desnim/blokiranim vjerojatnostima predviđenim modelom i kako napraviti dva video zapisa FPV (pogled prve osobe) (pri brzinama od 1 fps i 15 fps) sa superponiranom telemetrijom i Podaci o radnjama JetBot. Oni su korisni za ispravljanje pogrešaka, podešavanje PID kontrolera i poboljšanje modela.

Zabavite se i javite mi ako imate pitanja!:-)

Kod je dostupan na Githubu

Preporučeni: