Isi kandungan:

Pindahkan Pembelajaran Dengan NVIDIA JetBot - Keseronokan Dengan Lalu Lintas: 6 Langkah
Pindahkan Pembelajaran Dengan NVIDIA JetBot - Keseronokan Dengan Lalu Lintas: 6 Langkah

Video: Pindahkan Pembelajaran Dengan NVIDIA JetBot - Keseronokan Dengan Lalu Lintas: 6 Langkah

Video: Pindahkan Pembelajaran Dengan NVIDIA JetBot - Keseronokan Dengan Lalu Lintas: 6 Langkah
Video: NVIDIA JetBot: Jetson Nano Vision-Controlled AI Robot 2024, November
Anonim

Oleh dvillevaldMy GithubFollow About: Saya suka aplikasi AI dan pembelajaran mesin, terutamanya dalam robotik Lebih banyak Mengenai dvillevald »

Ajar robot anda untuk mencari jalan di labirin kerucut lalu lintas menggunakan kamera dan model pembelajaran mendalam yang canggih.

Bekalan

  • NVIDIA JetBot

    Halaman Bil Bahan NVIDIA JetBot Wiki menyenaraikan semua yang anda perlukan untuk membina JetBot, bersama dengan pautan pembelian dari vendor popular

  • Komputer dengan NVIDIA GPU

    Diperlukan untuk melatih model

  • BlueDot Trading 4 "RC Racing Agility Cones, Orange - Set 20

Langkah 1: Motivasi

Image
Image

Setiap kali saya memandu di kawasan pengecutan, saya memikirkan betapa sukarnya kereta memandu sendiri menavigasi kerucut lalu lintas. Ternyata tidak begitu sukar dengan JetBot NVIDIA baru - dengan hanya beberapa ratus gambar, anda boleh melatih model pembelajaran mendalam yang canggih untuk mengajar robot anda bagaimana mencari jalan di labirin kerucut lalu lintas mainan hanya menggunakan kamera onboard dan tidak ada sensor lain.

Langkah 2: Tinjauan NVIDIA JetBot & Projek

NVIDIA JetBot & Tinjauan Projek
NVIDIA JetBot & Tinjauan Projek

JetBot adalah robot sumber terbuka berdasarkan kit NVIDIA Jetson Nano. Anda boleh mendapatkan arahan terperinci mengenai cara membuatnya dan menyiapkannya di sini.

Projek ini adalah contoh penghindaran perlanggaran yang diubah suai dari NVIDIA JetBot Wiki. Ini terdiri daripada tiga langkah utama, masing-masing dijelaskan dalam buku nota Jupyter yang berasingan:

  • Kumpulkan data di JetBot - notebook notebook_collection_cones.ipynb
  • Model kereta api pada mesin GPU lain - notebook train_model_cones.ipynb
  • Jalankan demo langsung di JetBot - notebook live_demo_cones.ipynb

Anda boleh mendapatkan ketiga-tiga buku nota Jupyter ini di sini

Langkah 3: Bina JetBot dan Muat Naik Buku Jupyter

  1. Bina dan siapkan JetBot seperti yang dijelaskan di sini
  2. Sambungkan ke robot anda dengan menavigasi ke https://: 8888Log masuk dengan jetbot kata laluan lalai
  3. Matikan semua buku nota lain yang berjalan dengan memilih Kernel -> Shutdown All Kernels…
  4. Navigasi ke ~ / Buku nota /
  5. Buat subfolder baru ~ / Notebook / traffic_cones_driving /
  6. Muat naik data_collection_cones.ipynb dan live_demo_cones.ipynb ke ~ / Notebook / traffic_cones_driving /

PENTING: Notebook Jupyter data_collection_cones.ipynb dan live_demo_cones.ipynb yang dirujuk dalam arahan ini harus dijalankan di JetBot semasa train_model_cones.ipynb - pada komputer dengan GPU.

Oleh itu kita harus memuat naik data_collection_cones.ipynb dan live_demo_cones.ipynb ke JetBot dan meletakkannya di ~ / Notebook / traffic_cones_driving /

Langkah 4: Mengumpulkan Data Latihan di JetBot

Kami akan mengumpulkan set data klasifikasi gambar yang akan digunakan untuk membantu JetBot beroperasi di labirin kerucut lalu lintas. JetBot akan belajar bagaimana menganggarkan kebarangkalian empat senario (kelas):

  • Percuma - apabila selamat bergerak ke hadapan
  • Disekat - apabila ada halangan di hadapan robot
  • Kiri - ketika robot harus berpusing ke kiri
  • Kanan - ketika robot harus berputar ke kanan

Untuk mengumpulkan data latihan di JetBot, kami akan menggunakan data notebook Jupyter_collection_cones.ipynb yang mengandungi petunjuk terperinci tentang cara melakukannya. Untuk menjalankan buku nota ini di JetBot, ikuti langkah seterusnya:

  1. Sambungkan ke robot anda dengan menavigasi ke https://: jetbot-ip-address:: 8888
  2. Log masuk dengan jetbot kata laluan lalai
  3. Matikan semua buku nota lain yang berjalan dengan memilih Kernel -> Shutdown All Kernels…
  4. Navigasi ke ~ / Notebook / traffic_cones_driving /
  5. Buka dan ikuti buku nota data_collection_cones.ipynb

Langkah 5: Latih Jaringan Neural pada Mesin GPU

Seterusnya, kami akan menggunakan data yang dikumpulkan untuk melatih semula model pembelajaran mendalam AlexNet pada mesin GPU (host) dengan menjalankan train_model_cones.ipynb.

Perhatikan bahawa train_model_cones.ipynb adalah satu-satunya notebook Jupyter dalam tutorial ini yang dijalankan TIDAK di JetBot

  1. Sambungkan ke mesin GPU dengan PyTorch terpasang dan pelayan Jupyter Lab berjalan
  2. Muat naik notebook train_model_cones.ipynb dan ke mesin ini
  3. Muat naik fail dataset_cones.zip yang anda buat di buku nota data_collection_cones.ipynb dan ekstrak set data ini. (Selepas langkah ini, anda akan melihat folder bernama dataset_cones muncul di penyemak imbas fail.)
  4. Buka dan ikuti buku nota train_model_cones.ipynb. Pada akhir langkah ini, anda akan membuat model - file best_model_cones.pth yang kemudian harus dimuat naik ke JetBot untuk menjalankan demo langsung.

Langkah 6: Jalankan Demo Langsung di JetBot

Jalankan Demo Langsung di JetBot
Jalankan Demo Langsung di JetBot

Langkah terakhir ini adalah memuat naik model best_model_cones.pth ke JetBot dan menjalankannya.

  1. Kuasakan robot anda dari pek bateri USB
  2. Sambung kembali ke robot anda dengan menavigasi ke https://: jetbot-ip-address:: 8888
  3. Log masuk dengan jetbot kata laluan lalai
  4. Matikan semua buku nota lain yang berjalan dengan memilih Kernel -> Shutdown All Kernels…
  5. Navigasi ke ~ / Notebook / traffic_cones_driving
  6. Buka dan ikuti buku nota live_demo_cones.ipynb

Mula berhati-hati dan beri JetBot ruang yang cukup untuk bergerak. Cuba konfigurasi kerucut yang berbeza dan lihat seberapa baik prestasi robot dalam persekitaran yang berbeza, pencahayaan, dan lain-lain. Walaupun notebook live_demo_cones.ipynb menerangkan semua langkah secara terperinci, carta berikut menunjukkan logik pergerakan robot memandangkan kebarangkalian yang diramalkan oleh model.

Buku nota ini juga menerangkan cara menyimpan sejarah pergerakan robot dengan kebarangkalian bebas / kiri / kanan / tersekat yang diramalkan oleh model dan bagaimana membuat dua video FPV (First Person View) (pada kadar 1 fps dan 15 fps) dengan telemetri yang terlalu tinggi dan Data tindakan JetBot. Itu berguna untuk penyahpepijatan, penalaan pengawal PID dan peningkatan model.

Selamat bergembira dan beritahu saya jika anda mempunyai soalan!:-)

Kod boleh didapati di Github

Disyorkan: