Isi kandungan:

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

Sekiranya anda mengikuti berita baru-baru ini, terdapat ledakan permulaan yang mengembangkan cip untuk mempercepat inferensi dan latihan algoritma ML (pembelajaran mesin). Walau bagaimanapun, kebanyakan cip tersebut masih dalam pembangunan dan sebenarnya bukan sesuatu yang dapat dicapai oleh pembuat purata anda. Satu-satunya pengecualian yang ketara setakat ini ialah Intel Movidius Neural Compute Stick, yang boleh dibeli dan dilengkapi dengan SDK yang bagus. Ia mempunyai beberapa kelemahan yang ketara - iaitu harganya (sekitar 100 USD) dan kenyataannya terdapat dalam format USB stick. Sangat bagus jika anda ingin menggunakannya dengan komputer riba atau Raspberry PI, tetapi bagaimana jika anda ingin membuat beberapa projek pengecaman gambar dengan Arduino? Atau Raspberry Pi Zero?

Langkah 1: Sipeed MAix: AI di Tepi

Sipeed MAix: AI di Tepi
Sipeed MAix: AI di Tepi

Tidak lama dahulu saya menggunakan papan pengembangan Sipeed M1w K210, yang mempunyai CPU RISC-V 64bit dwi-teras dan mempunyai KPU on-board (Pemproses Rangkaian Neural), yang direka khusus untuk mempercepat CNN untuk pemprosesan imej. Anda boleh membaca lebih banyak maklumat di sini.

Harga papan ini terus terang mengejutkan saya, hanya 19 USD untuk papan pengembangan AI-on-the-edge yang lengkap dengan sokongan Wi-fi! Terdapat peringatan (tentu saja ada): firmware micropython untuk papan masih dalam pengembangan, dan secara keseluruhan tidak terlalu mesra pengguna seperti sekarang. Satu-satunya cara untuk mengakses semua fungsinya sekarang adalah dengan menulis kod C tertanam anda sendiri atau mengubah beberapa demo yang ada.

Tutorial ini menerangkan bagaimana menggunakan model pengesanan kelas Mobilenet 20 untuk mengesan objek dan menghantar kod objek yang dikesan melalui UART, dari mana ia dapat diterima oleh Arduino / Raspberry Pi.

Sekarang, tutorial ini menganggap anda sudah biasa dengan Linux dan asas-asas penyusunan kod C. Sekiranya mendengar ungkapan ini membuat anda sedikit pening:) maka teruskan ke Langkah 4, di mana anda memuat naik binari pra-binaan saya ke Sipeed M1 dan melangkau penyusunan.

Langkah 2: Siapkan Persekitaran Anda

Siapkan Persekitaran Anda
Siapkan Persekitaran Anda

Saya menggunakan Ubuntu 16.04 untuk penyusunan dan muat naik kod C. Ada kemungkinan untuk melakukannya di Windows, tetapi saya sendiri tidak mencubanya.

Muat turun RISC-V GNU Compiler Toolchain, pasang semua kebergantungan 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 dimuat turun ke / pilih direktori. Selepas itu jalankan arahan berikut

./configure --prefix = / opt / kendryte-toolchain --with-cmodel = medany

membuat

Tambahkan / opt / kendryte-toolchain / bin ke PATH anda sekarang.

Anda kini siap menyusun kod!

Langkah 3: Susun Kod

Menyusun Kod
Menyusun Kod

Muat turun kod dari repositori github saya.

Muat turun SDK Kendryte K210 mandiri

Salin / kpu folder dari github repositori saya ke / src folder di SDK.

Jalankan perintah berikut dalam folder SDK (bukan / folder src!)

mkdir build && cd build

cmake.. -DPROJ = project_name -DTOOLCHAIN = / opt / kendryte-toolchain / tong && buat

di mana project_name adalah nama projek anda (terpulang kepada anda) dan -DTOOLCHAIN = harus menunjukkan lokasi rantai alat risc-v anda (anda memuat turunnya pada langkah pertama, ingat?)

Hebat! Sekarang mudah-mudahan anda melihat kompilasi selesai tanpa kesalahan dan anda mempunyai fail.bin yang boleh anda muat naik.

Langkah 4: Memuat naik Fail.bin

Memuat naik Fail.bin
Memuat naik Fail.bin

Sekarang sambungkan Sipeed M1 anda ke komputer dan dari folder / build jalankan arahan berikut

sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu.bin

Di mana kpu.bin adalah nama fail.bin anda

Muat naik biasanya mengambil masa 2-3 minit, setelah selesai, anda akan melihat dewan menjalankan 20 kelas pengesanan. Langkah terakhir bagi kita adalah menghubungkannya ke Arduino mega atau Raspberry Pi.

!!! Sekiranya anda baru datang dari Langkah 2 !

Jalankan arahan berikut dari folder di mana anda mengklon repositori github saya

sudo python3 isp_auto.py -d / dev / ttyUSB0 -b 200000 kpu_bin.bin

Muat naik biasanya mengambil masa 2-3 minit, setelah selesai, anda akan melihat dewan menjalankan 20 kelas pengesanan. Langkah terakhir bagi kita adalah menghubungkannya ke Arduino mega atau Raspberry Pi.

Langkah 5: Menyambung ke Arduino

Bersambung ke Arduino
Bersambung ke Arduino
Bersambung ke Arduino
Bersambung ke Arduino
Bersambung ke Arduino
Bersambung ke Arduino

Saya menggunakan Arduino Mega dengan Seeed Studio Mega Shield, inilah sebabnya saya memasangkan penyambung Grove ke papan Sipeed M1. Walau bagaimanapun, anda hanya boleh menggunakan kabel jumper dan sambungkan Sipeed M1 terus ke Arduino Mega, berikut rajah pendawaian ini.

Selepas itu muat naik lakaran camera.ino dan buka monitor Serial. Apabila anda mengarahkan kamera ke objek yang berlainan (senarai 20 kelas ada dalam lakaran) ia harus mengeluarkan nama kelas di monitor bersiri!

Tahniah! Anda kini mempunyai modul pengesanan imej yang berfungsi untuk Arduino anda!

Langkah 6: Menyambung ke Raspberry Pi

Menyambung ke Raspberry Pi
Menyambung ke Raspberry Pi
Menyambung ke Raspberry Pi
Menyambung ke Raspberry Pi

Saya menggunakan topi Grove Pi + untuk Raspberry Pi 2B, tetapi sekali lagi, seperti dengan Arduino, anda boleh terus menghubungkan Sipeed M1 ke antara muka UART Raspberry Pi mengikut rajah pendawaian ini.

Selepas melancarkan camera_speak.py dan arahkan kamera ke objek yang berlainan, terminal akan mengeluarkan teks berikut "Saya rasa" dan juga jika anda mempunyai pembesar suara yang disambungkan, frasa ini akan menyebutkan dengan kuat. Cukup sejuk, bukan?

Langkah 7: Kesimpulannya

Ini adalah masa yang sangat menggembirakan kita, dengan AI dan pembelajaran mesin menembusi semua bidang kehidupan kita. Saya menantikan pembangunan di kawasan ini. Saya terus berhubung dengan pasukan Sipeed, dan saya tahu mereka sedang aktif mengembangkan pembungkus mikropon untuk semua fungsi yang diperlukan, termasuk percepatan CNN.

Apabila sudah siap, kemungkinan besar saya akan menerbitkan lebih banyak arahan mengenai cara menggunakan model CNN anda sendiri dengan micropython. Fikirkan semua aplikasi menarik yang dapat anda miliki untuk papan yang boleh menjalankan rangkaian neural pemprosesan imej anda sendiri dengan harga ini dan dengan jejak ini!

Disyorkan: