Daftar Isi:

Kamera AI untuk Raspberry Pi/Arduino: 7 Langkah
Kamera AI untuk Raspberry Pi/Arduino: 7 Langkah

Video: Kamera AI untuk Raspberry Pi/Arduino: 7 Langkah

Video: Kamera AI untuk Raspberry Pi/Arduino: 7 Langkah
Video: Amazing arduino project 2024, November
Anonim
Image
Image

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

Sipeed MAix: AI di Tepi
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

Persiapkan Lingkungan Anda
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

Kompilasi Kode
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

Mengunggah File.bin
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

Menghubungkan ke Arduino
Menghubungkan ke Arduino
Menghubungkan ke Arduino
Menghubungkan ke Arduino
Menghubungkan ke Arduino
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

Menghubungkan ke Raspberry Pi
Menghubungkan ke Raspberry Pi
Menghubungkan ke Raspberry Pi
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: