Daftar Isi:
- Langkah 1: Sipeed MAix: AI di Tepi
- Langkah 2: Persiapkan Lingkungan Anda
- Langkah 3: Kompilasi Kode
- Langkah 4: Mengunggah File.bin
- Langkah 5: Menghubungkan ke Arduino
- Langkah 6: Menghubungkan ke Raspberry Pi
- Langkah 7: Kesimpulan
Video: Kamera AI untuk Raspberry Pi/Arduino: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Jika Anda telah mengikuti berita baru-baru ini, ada ledakan start-up yang mengembangkan chip untuk mempercepat inferensi dan pelatihan algoritma ML (pembelajaran mesin). Namun sebagian besar chip tersebut masih dalam pengembangan dan bukan sesuatu yang bisa didapatkan oleh pembuat rata-rata Anda. Satu-satunya pengecualian yang signifikan sejauh ini adalah Intel Movidius Neural Compute Stick, yang tersedia untuk dibeli dan dilengkapi dengan SDK yang bagus. Itu memang memiliki beberapa kelemahan yang signifikan - yaitu harga (sekitar 100 USD) dan fakta bahwa ia datang dalam format USB stick. Sangat bagus jika Anda ingin menggunakannya dengan laptop atau Raspberry PI, tetapi bagaimana jika Anda ingin melakukan beberapa proyek pengenalan gambar dengan Arduino? Atau Raspberry Pi Nol?
Langkah 1: Sipeed MAix: AI di Tepi
Belum lama ini saya mendapatkan papan pengembangan Sipeed M1w K210, yang memiliki CPU dual-core RISC-V 64bit dan membanggakan KPU (Prosesor Jaringan Neural) on-board, yang dirancang khusus untuk mempercepat CNN untuk pemrosesan gambar. Anda dapat membaca lebih detail di sini.
Harga papan ini terus terang mengejutkan saya, hanya 19 USD untuk papan pengembangan AI-on-the-edge lengkap dengan dukungan Wi-fi! Namun ada peringatan (tentu saja ada): firmware micropython untuk papan masih dalam pengembangan, dan secara keseluruhan itu tidak terlalu ramah pengguna seperti sekarang. Satu-satunya cara untuk mengakses semua fungsinya sekarang adalah dengan menulis kode C tertanam Anda sendiri atau memodifikasi beberapa demo yang ada.
Tutorial ini menjelaskan cara menggunakan model deteksi kelas Mobilenet 20 untuk mendeteksi objek dan mengirim kode objek yang terdeteksi melalui UART, dari mana kode tersebut dapat diterima oleh Arduino/Raspberry Pi.
Sekarang, tutorial ini mengasumsikan Anda sudah familiar dengan Linux dan dasar-dasar kompilasi kode C. Jika mendengar frasa ini membuat Anda sedikit pusing:) maka lewati saja ke Langkah 4, di mana Anda mengunggah biner bawaan saya ke Sipeed M1 dan lewati kompilasi.
Langkah 2: Persiapkan Lingkungan Anda
Saya menggunakan Ubuntu 16.04 untuk kompilasi dan unggah kode C. Hal ini dimungkinkan untuk melakukan itu di Windows, tetapi saya sendiri tidak mencobanya.
Unduh RISC-V GNU Compiler Toolchain, instal semua dependensi yang diperlukan.
git clone --recursive
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
Salin rantai alat yang diunduh ke direktori /opt. Setelah itu jalankan perintah berikut
./configure --prefix=/opt/kendryte-toolchain --with-cmodel=medany
membuat
Tambahkan /opt/kendryte-toolchain/bin ke PATH Anda sekarang.
Anda sekarang siap mengkompilasi kode!
Langkah 3: Kompilasi Kode
Unduh kode dari repositori github saya.
Unduh SDK mandiri Kendryte K210
Salin folder /kpu dari repositori github saya ke folder /src di SDK.
Jalankan perintah berikut di folder SDK (bukan folder /src!)
pembuatan mkdir && pembuatan cd
cmake.. -DPROJ=project_name -DTOOLCHAIN=/opt/kendryte-toolchain/bin && make
di mana project_name adalah nama proyek Anda (terserah Anda) dan -DTOOLCHAIN= harus menunjuk ke lokasi risc-v toolchain Anda (Anda mengunduhnya di langkah pertama, ingat?)
Besar! Sekarang mudah-mudahan Anda akan melihat kompilasi selesai tanpa kesalahan dan Anda memiliki file.bin yang dapat Anda unggah.
Langkah 4: Mengunggah File.bin
Sekarang hubungkan Sipeed M1 Anda ke komputer dan dari folder /build jalankan perintah berikut:
sudo python3 isp_auto.py -d /dev/ttyUSB0 -b 200000 kpu.bin
Di mana kpu.bin adalah nama file.bin Anda
Pengunggahan biasanya memakan waktu 2-3 menit, setelah selesai Anda akan melihat papan menjalankan deteksi 20 kelas. Langkah terakhir bagi kita adalah menghubungkannya ke Arduino mega atau Raspberry Pi.
!!! Jika Anda baru saja datang dari Langkah 2 !
Jalankan perintah berikut dari folder tempat Anda mengkloning repositori github saya
sudo python3 isp_auto.py -d /dev/ttyUSB0 -b 200000 kpu_bin.bin
Pengunggahan biasanya memakan waktu 2-3 menit, setelah selesai Anda akan melihat papan menjalankan deteksi 20 kelas. Langkah terakhir bagi kita adalah menghubungkannya ke Arduino mega atau Raspberry Pi.
Langkah 5: Menghubungkan ke Arduino
Saya menggunakan Arduino Mega dengan Seeed Studio Mega Shield, inilah mengapa saya menyolder konektor Grove ke papan Sipeed M1. Namun Anda cukup menggunakan kabel jumper dan menghubungkan Sipeed M1 langsung ke Arduino Mega, mengikuti diagram pengkabelan ini.
Setelah itu upload sketch camera.ino dan buka Serial monitor. Saat Anda mengarahkan kamera ke objek yang berbeda (daftar 20 kelas ada di sketsa) itu akan menampilkan nama kelas di monitor serial!
Selamat! Anda sekarang memiliki modul deteksi gambar yang berfungsi untuk Arduino Anda!
Langkah 6: Menghubungkan ke Raspberry Pi
Saya menggunakan topi Grove Pi+ untuk Raspberry Pi 2B, tetapi sekali lagi, seperti halnya Arduino, Anda dapat langsung menghubungkan Sipeed M1 ke antarmuka UART Raspberry Pi mengikuti diagram pengkabelan ini.
Setelah itu luncurkan camera_speak.py dan arahkan kamera ke objek yang berbeda, terminal akan menampilkan teks berikut "I think it is " dan juga jika Anda memiliki speaker yang terhubung, ia akan mengucapkan frasa ini dengan lantang. Cukup keren, bukan?
Langkah 7: Kesimpulan
Ini adalah masa yang sangat menyenangkan yang kita jalani, dengan AI dan pembelajaran mesin menembus semua bidang kehidupan kita. Saya menantikan perkembangan di bidang ini. Saya tetap berhubungan dengan tim Sipeed, dan saya tahu mereka secara aktif mengembangkan pembungkus micropython untuk semua fungsi yang diperlukan, termasuk akselerasi CNN.
Ketika sudah siap, saya kemungkinan besar akan menerbitkan lebih banyak instruksi tentang cara menggunakan model CNN Anda sendiri dengan micropython. Pikirkan semua aplikasi menarik yang dapat Anda miliki untuk papan yang dapat menjalankan jaringan saraf pemrosesan gambar Anda sendiri dengan harga ini dan dengan jejak ini!
Direkomendasikan:
Raspberry Pi Dew Heater untuk Kamera All-sky: 7 Langkah
Raspberry Pi Dew Heater untuk Kamera All-sky: [Lihat Langkah 7 untuk perubahan pada relai yang digunakan]Ini adalah peningkatan ke kamera all-sky yang saya buat mengikuti panduan luar biasa Thomas Jaquin (Wireless All Sky Camera) Masalah umum yang terjadi pada kamera langit (dan teleskop juga) adalah bahwa embun akan
Yakinkan Diri Anda untuk Hanya Menggunakan Inverter 12V-ke-AC-line untuk Senar Lampu LED Alih-alih Menghubungkannya untuk 12V.: 3 Langkah
Yakinkan Diri Anda untuk Hanya Menggunakan Inverter 12V-ke-AC-line untuk Senar Lampu LED Alih-alih Menghubungkan Ulang Mereka untuk 12V.: Rencana saya sederhana. Saya ingin memotong seutas tali lampu LED bertenaga dinding menjadi beberapa bagian lalu menyambungkannya kembali menjadi 12 volt. Alternatifnya adalah menggunakan power inverter, tetapi kita semua tahu bahwa itu sangat tidak efisien, bukan? Benar? Atau apakah mereka?
Stabilizer Kamera untuk ENV2 atau Ponsel Kamera Lainnya: 6 Langkah
Penstabil Kamera untuk ENV2 atau Ponsel Kamera Lainnya: Pernah ingin membuat video tetapi hanya memiliki ponsel kamera? Pernahkah Anda membuat video dengan ponsel kamera tetapi Anda tidak dapat menahannya? Nah dari ini adalah instruksi untuk Anda
Tambahkan Soket Sinkronisasi Pc ke Kabel Ttl Nikon Sc-28 (gunakan Pengaturan Otomatis untuk menyalakan Flash Kamera dan Memicu Flash Kamera Mati!!): 4 Langkah
Tambahkan Soket Sinkronisasi Pc ke Kabel Ttl Nikon Sc-28 (gunakan Pengaturan Otomatis untuk Flash Kamera dan Pemicu Flash Kamera Mati!!): dalam instruksi ini saya akan menunjukkan kepada Anda cara melepas salah satu konektor TTL 3pin berpemilik sial pada sisi kabel TTL kamera Nikon SC-28 lepas dan ganti dengan konektor sinkronisasi PC standar. ini akan memungkinkan Anda untuk menggunakan flash khusus, s
Meretas Kamera Digital Gantungan Kunci untuk Kontrol Arduino: 6 Langkah
Meretas Kamera Digital Gantungan Kunci untuk Kontrol Arduino: Pilihan fotografi untuk Arduino sangat sedikit dan jarang. Webcam tidak praktis untuk aplikasi seperti fotografi layang-layang atau fotografi publik, kecuali jika Anda ingin membeli kabel USB 200 kaki. Dan teknik terkini untuk foto Arduino yang berdiri sendiri