Daftar Isi:
- Perlengkapan
- Langkah 1: Motivasi
- Langkah 2: NVIDIA JetBot & Tinjauan Proyek
- Langkah 3: Bangun JetBot dan Unggah Notebook Jupyter
- Langkah 4: Mengumpulkan Data Pelatihan di JetBot
- Langkah 5: Latih Jaringan Neural di Mesin GPU
- Langkah 6: Jalankan Demo Langsung di JetBot
Video: Transfer Pembelajaran Dengan NVIDIA JetBot - Bersenang-senang Dengan Traffic Cone: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
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
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
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
- Bangun dan atur JetBot seperti yang dijelaskan di sini
- Hubungkan ke robot Anda dengan menavigasi ke https://:8888Masuk dengan kata sandi default jetbot
- Matikan semua notebook yang sedang berjalan dengan memilih Kernel -> Shutdown All Kernels…
- Navigasikan ke ~/Notebooks/
- Buat subfolder baru ~/Notebooks/traffic_cones_driving/
- 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:
- Hubungkan ke robot Anda dengan menavigasi ke
- Masuk dengan jetbot kata sandi default
- Matikan semua notebook yang sedang berjalan dengan memilih Kernel -> Shutdown All Kernels…
- Arahkan ke ~/Notebooks/traffic_cones_driving/
- 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
- Hubungkan ke mesin GPU dengan PyTorch terpasang dan server Jupyter Lab berjalan
- Unggah notebook train_model_cones.ipynb dan ke mesin ini
- 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.)
- 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
Langkah terakhir ini adalah mengunggah model best_model_cones.pth ke JetBot dan menjalankannya.
- Nyalakan robot Anda dari paket baterai USB
- Hubungkan kembali ke robot Anda dengan menavigasi ke
- Masuk dengan jetbot kata sandi default
- Matikan semua notebook yang sedang berjalan dengan memilih Kernel -> Shutdown All Kernels…
- Arahkan ke ~/Notebooks/traffic_cones_driving
- 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:
Pemrograman Berorientasi Objek: Membuat Objek Pembelajaran/Metode/Teknik Pengajaran Menggunakan Shape Puncher: 5 Langkah
Pemrograman Berorientasi Objek: Membuat Objek Metode/Teknik Pembelajaran/Pengajaran Menggunakan Shape Puncher: Metode pembelajaran/pengajaran untuk siswa yang baru mengenal pemrograman berorientasi objek. Ini adalah cara untuk memungkinkan mereka memvisualisasikan dan melihat proses pembuatan objek dari kelas. Bagian:1. EkTools pukulan besar 2 inci; bentuk padat adalah yang terbaik.2. Secarik kertas atau c
Game Pembelajaran Lampu Lalu Lintas: 5 Langkah
Game Pembelajaran Lampu Lalu Lintas: Dalam tutorial ini, Anda akan belajar cara membuat game pembelajaran lampu lalu lintas Arduino. Melalui bermain game, anak-anak dapat memeriksa apakah mereka memiliki pengetahuan yang benar tentang lampu lalu lintas. Permainan dipisahkan menjadi dua bagian, jika pemain mengikuti
HeadBot – Robot Penyeimbang Mandiri untuk Pembelajaran dan Penjangkauan STEM: 7 Langkah (dengan Gambar)
HeadBot – Robot Penyeimbang Mandiri untuk Pembelajaran dan Penjangkauan STEM: Headbot – robot penyeimbang diri setinggi dua kaki – adalah gagasan dari Tim Robotika Eugene Selatan (SERT, FRC 2521), tim robotika sekolah menengah yang kompetitif di PERTAMA Kompetisi Robotika, dari Eugene, Oregon. Robot penjangkauan populer ini membuat
Sirkuit Gila: Sistem Pembelajaran Elektronik Sumber Terbuka: 8 Langkah (dengan Gambar)
Sirkuit Gila: Sistem Pembelajaran Elektronik Sumber Terbuka: Pasar pendidikan dan rumah dibanjiri dengan sistem 'pembelajaran' elektronik modular yang dirancang untuk mengajarkan konsep kunci STEM dan STEAM kepada anak-anak dan orang dewasa. Produk seperti LittleBits atau Snapcircuits tampaknya mendominasi setiap panduan hadiah liburan atau blog induk
Transfer Energi Dengan Dua Tesla Coils: 7 Langkah (dengan Gambar)
Transfer Energi Dengan Dua Kumparan Tesla: Dengan kumparan Tesla ini, Anda dapat menyalakan led yang terhubung ke satu kabel Energi ditransfer ke kanan dari antena kiri. Generator sinyal dicolokkan pada kumparan kanan hitam (antena kanan). Pada 2 antena, energi ditransfer secara induksi