Sadržaj:

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

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

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

Autor dvillevaldMy GithubFollow O: Volim AI i aplikacije za mašinsko 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 najsavremeniji model dubokog učenja.

Supplies

  • NVIDIA JetBot

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

  • Računar sa NVIDIA GPU -om

    Potrebno za obuku modela

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

Korak 1: Motivacija

Image
Image

Svaki put kad se vozim u zoni skupljanja, razmišljam koliko bi izazov bilo za auto koji se sam vozi da se kreće kroz saobraćajne čunjeve. 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 druge senzore.

Korak 2: NVIDIA JetBot i pregled projekta

NVIDIA JetBot i pregled projekta
NVIDIA JetBot i pregled projekta

JetBot je robot otvorenog koda zasnovan na NVIDIA Jetson Nano kompletu. Ovdje možete pronaći detaljna uputstva 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 posebnoj Jupyter bilježnici:

  • Prikupite podatke na JetBotu - prijenosno računalo data_collection_cones.ipynb
  • Model voza na drugoj GPU mašini - notebook train_model_cones.ipynb
  • Pokrenite demo demonstraciju uživo na JetBotu - prijenosno računalo live_demo_cones.ipynb

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

Korak 3: Napravite JetBot i postavite Jupyter bilježnice

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

VAŽNO: Prijenosne računare Jupyter data_collection_cones.ipynb i live_demo_cones.ipynb navedene u ovim uputama treba pokrenuti na JetBotu, dok train_model_cones.ipynb - na računaru sa 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 - kada 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 bilježnicu data_collection_cones.ipynb koja sadrži detaljna uputstva kako to učiniti. Da biste pokrenuli ovu bilježnicu na JetBotu, slijedite sljedeće korake:

  1. Povežite se sa 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 Kernel…
  4. Idite na ~/Bilježnice/traffic_cones_driving/
  5. Otvorite i slijedite bilježnicu data_collection_cones.ipynb

Korak 5: Obučite neuronsku mrežu na GPU mašini

Zatim ćemo koristiti prikupljene podatke za ponovno uvježbavanje modela dubokog učenja AlexNet na GPU mašini (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 sa GPU mašinom sa instaliranim PyTorch -om i pokrenutim Jupyter Lab serverom
  2. Otpremite beležnicu train_model_cones.ipynb i na ovu mašinu
  3. Otpremite 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 fasciklu pod nazivom set_cones koja se pojavljuje u pregledniku datoteka.)
  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 da biste pokrenuli demo demo.

Korak 6: Pokrenite demo demonstraciju uživo na JetBotu

Pokrenite Live Demo na JetBot -u
Pokrenite Live Demo na JetBot -u

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

  1. Napajte 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 ~/Notebooks/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 predviđene modelima.

Bilježnica također objašnjava kako pohraniti historiju kretanja robota sa slobodnim/lijevim/desnim/blokiranim vjerovatnoćama 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 -a. Oni su korisni za otklanjanje grešaka, podešavanje PID kontrolera i poboljšanje modela.

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

Kod je dostupan na Githubu

Preporučuje se: