Daftar Isi:

Transfer Pembelajaran Dengan NVIDIA JetBot - Bersenang-senang Dengan Traffic Cone: 6 Langkah
Transfer Pembelajaran Dengan NVIDIA JetBot - Bersenang-senang Dengan Traffic Cone: 6 Langkah

Video: Transfer Pembelajaran Dengan NVIDIA JetBot - Bersenang-senang Dengan Traffic Cone: 6 Langkah

Video: Transfer Pembelajaran Dengan NVIDIA JetBot - Bersenang-senang Dengan Traffic Cone: 6 Langkah
Video: Visual Object Recognition | Camera in Webots Simulator | [Tutorial 15] 2024, Desember
Anonim

Oleh dvillevaldMy GithubFollow Tentang: Saya suka AI dan aplikasi pembelajaran mesin, terutama dalam robotika More About dvillevald »

Ajari robot Anda untuk menemukan jalur dalam labirin kerucut lalu lintas menggunakan kamera dan model pembelajaran mendalam yang canggih.

Perlengkapan

  • NVIDIA JetBot

    Halaman Bill of Materials NVIDIA JetBot Wiki mencantumkan semua yang Anda butuhkan untuk membangun JetBot, bersama dengan tautan pembelian dari vendor populer

  • Komputer dengan GPU NVIDIA

    Dibutuhkan untuk melatih model

  • BlueDot Trading 4” RC Racing Agility Cones, Oranye – Set 20

Langkah 1: Motivasi

Image
Image

Setiap kali saya mengemudi di area kontraksi, saya berpikir betapa menantangnya mobil self-driving untuk menavigasi melalui kerucut lalu lintas. Ternyata tidak begitu sulit dengan JetBot NVIDIA baru - hanya dengan beberapa ratus gambar, Anda dapat melatih model pembelajaran mendalam yang canggih untuk mengajari robot Anda cara menemukan jalan di labirin kerucut lalu lintas mainan menggunakan kamera onboard saja dan tidak ada sensor lain.

Langkah 2: NVIDIA JetBot & Tinjauan Proyek

NVIDIA JetBot & Ikhtisar Proyek
NVIDIA JetBot & Ikhtisar Proyek

JetBot adalah robot open-source berdasarkan kit NVIDIA Jetson Nano. Anda dapat menemukan petunjuk terperinci tentang cara membuat dan mengaturnya di sini.

Proyek ini adalah contoh penghindaran Tabrakan yang dimodifikasi dari NVIDIA JetBot Wiki. Ini terdiri dari tiga langkah utama, masing-masing dijelaskan dalam notebook Jupyter terpisah:

  • Kumpulkan data di JetBot - notebook data_collection_cones.ipynb
  • Melatih model pada mesin GPU lain - notebook train_model_cones.ipynb
  • Jalankan demo langsung di JetBot - notebook live_demo_cones.ipynb

Anda dapat menemukan ketiga notebook Jupyter ini di sini

Langkah 3: Bangun JetBot dan Unggah Notebook Jupyter

  1. Bangun dan atur JetBot seperti yang dijelaskan di sini
  2. Hubungkan ke robot Anda dengan menavigasi ke https://:8888Masuk dengan kata sandi default jetbot
  3. Matikan semua notebook yang sedang berjalan dengan memilih Kernel -> Shutdown All Kernels…
  4. Navigasikan ke ~/Notebooks/
  5. Buat subfolder baru ~/Notebooks/traffic_cones_driving/
  6. Unggah data_collection_cones.ipynb dan live_demo_cones.ipynb ke ~/Notebooks/traffic_cones_driving/

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

Oleh karena itu kita harus mengupload data_collection_cones.ipynb dan live_demo_cones.ipynb ke JetBot dan menempatkannya di ~/Notebooks/traffic_cones_driving/

Langkah 4: Mengumpulkan Data Pelatihan di JetBot

Kami akan mengumpulkan kumpulan data klasifikasi gambar yang akan digunakan untuk membantu JetBot beroperasi di labirin kerucut lalu lintas. JetBot akan mempelajari cara memperkirakan probabilitas dari empat skenario (kelas):

  • Gratis - saat aman untuk bergerak maju
  • Diblokir - ketika ada rintangan di depan robot
  • Kiri - saat robot harus berputar ke kiri
  • Kanan - saat robot harus berputar ke kanan

Untuk mengumpulkan data pelatihan di JetBot kami akan menggunakan notebook Jupyter data_collection_cones.ipynb yang berisi petunjuk detail tentang cara melakukannya. Untuk menjalankan notebook ini di JetBot, ikuti langkah-langkah berikut:

  1. Hubungkan ke robot Anda dengan menavigasi ke
  2. Masuk dengan jetbot kata sandi default
  3. Matikan semua notebook yang sedang berjalan dengan memilih Kernel -> Shutdown All Kernels…
  4. Arahkan ke ~/Notebooks/traffic_cones_driving/
  5. Buka dan ikuti buku catatan data_collection_cones.ipynb

Langkah 5: Latih Jaringan Neural di Mesin GPU

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

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

  1. Hubungkan ke mesin GPU dengan PyTorch terpasang dan server Jupyter Lab berjalan
  2. Unggah notebook train_model_cones.ipynb dan ke mesin ini
  3. Unggah file dataset_cones.zip yang Anda buat di buku catatan data_collection_cones.ipynb dan ekstrak kumpulan data ini. (Setelah langkah ini, Anda akan melihat folder bernama dataset_cones muncul di browser file.)
  4. Buka dan ikuti buku catatan train_model_cones.ipynb. Di akhir langkah ini, Anda akan membuat model - file best_model_cones.pth yang kemudian harus diunggah 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 mengunggah model best_model_cones.pth ke JetBot dan menjalankannya.

  1. Nyalakan robot Anda dari paket baterai USB
  2. Hubungkan kembali ke robot Anda dengan menavigasi ke
  3. Masuk dengan jetbot kata sandi default
  4. Matikan semua notebook yang sedang berjalan dengan memilih Kernel -> Shutdown All Kernels…
  5. Arahkan ke ~/Notebooks/traffic_cones_driving
  6. Buka dan ikuti buku catatan live_demo_cones.ipynb

Mulailah berhati-hati dan beri JetBot cukup ruang untuk bergerak. Coba konfigurasi kerucut yang berbeda dan lihat seberapa baik kinerja robot di lingkungan yang berbeda, pencahayaan, dll. Sementara notebook live_demo_cones.ipynb menjelaskan semua langkah secara rinci, bagan berikut menunjukkan logika gerakan robot berdasarkan probabilitas yang diprediksi oleh model.

Notebook ini juga menjelaskan cara menyimpan riwayat gerakan robot dengan probabilitas bebas/kiri/kanan/terblokir yang diprediksi oleh model dan cara membuat dua video FPV (First Person View) (pada kecepatan 1 fps dan 15 fps) dengan telemetri yang ditumpangkan dan Data tindakan JetBot. Itu berguna untuk debugging, penyetelan pengontrol PID, dan peningkatan model.

Bersenang-senanglah dan beri tahu saya jika Anda memiliki pertanyaan!:-)

Kode tersedia di Github

Direkomendasikan: