Daftar Isi:

Demo OpenMV Sipeed MaiX Bit - Visi Komputer: 3 Langkah
Demo OpenMV Sipeed MaiX Bit - Visi Komputer: 3 Langkah

Video: Demo OpenMV Sipeed MaiX Bit - Visi Komputer: 3 Langkah

Video: Demo OpenMV Sipeed MaiX Bit - Visi Komputer: 3 Langkah
Video: Учебное пособие по экрану OpenMV — ILI9341 2024, November
Anonim
Image
Image

Ini adalah artikel kedua dalam seri tentang Sipeed AI pada platform mikrokontroler Edge. Kali ini saya akan menulis tentang MaiX Bit (tautan ke Seeed Studio Shop), papan pengembangan siap pakai yang lebih kecil dan papan tempat memotong roti. Spesifikasinya sangat mirip dengan MaiX Dock, board yang saya gunakan untuk tutorial terakhir, karena mereka menggunakan chip yang sama, Kendryte K210.

Kami akan menggunakan firmware micropython untuk mencoba beberapa demo OpenMV. Berikut deskripsi dari beranda OpenMV:

Proyek OpenMV adalah tentang membuat modul visi mesin berbiaya rendah, dapat diperluas, bertenaga Python dan bertujuan untuk menjadi “Arduino of Machine Vision“.…Python membuat bekerja dengan algoritma visi mesin menjadi lebih mudah. Misalnya, metode find_blobs() dalam kode menemukan gumpalan warna dan mengembalikan daftar objek bernilai 8 yang mewakili setiap gumpalan warna yang ditemukan. Dalam Python, mengulangi daftar objek yang dikembalikan oleh find_blobs() dan menggambar persegi panjang di sekitar setiap gumpalan warna mudah dilakukan hanya dalam dua baris kode.

Jadi, meskipun MaiX Bit memiliki fitur akselerator jaringan saraf khusus, terkadang lebih mudah menggunakan algoritma kode keras OpenMV untuk melakukan pekerjaan atau menggunakannya bersama satu sama lain.

Beberapa kasus penggunaan yang muncul di benak saya adalah:

1) Deteksi garis untuk bot pengikut garis

2) Mendeteksi lampu lalu lintas dengan deteksi lingkaran dan warna

3) Menggunakan deteksi wajah untuk menemukan wajah untuk pengenalan wajah (dengan DNN)

Repositori Github untuk artikel ini

Langkah 1: Flash Micropython Firmware

Hubungkan ke MaiX Bit
Hubungkan ke MaiX Bit

Pertama-tama kita perlu mem-flash firmware micropython ke board kita. Biner yang telah dikompilasi disertakan dalam repositori github untuk artikel ini, bersama dengan kflash.py (utilitas flash). Jika Anda ingin mengkompilasi firmware dari kode sumber, cukup unduh kode sumber dari https://github.com/sipeed/MaixPy, instal rantai alat dan kompilasi kode sumber ke dalam file maixpy.bin. Instruksi pembuatan terperinci dapat ditemukan di sini.

Flash file biner dengan

sudo python3 kflash.py kpu.bin

Setelah flashing berhasil ikuti langkah selanjutnya.

Langkah 2: Hubungkan ke MaiX Bit

Sekarang Bit MaiX kami harus dapat diakses melalui koneksi serial USB dengan baudrate 115200. Anda dapat menggunakan perangkat lunak favorit Anda untuk komunikasi serial atau hanya perintah cat dan echo, apa pun yang sesuai dengan kebutuhan Anda. Saya menggunakan layar untuk komunikasi serial dan merasa sangat nyaman.

Perintah untuk membuat sesi komunikasi serial dengan layar adalah

layar sudo /dev/ttyUSB0 115200

di mana /dev/ttyUSB0 adalah alamat perangkat Anda.

Anda mungkin perlu menekan tombol reset pada mikrokontroler Anda untuk melihat pesan ucapan dan prompt juru bahasa python.

Langkah 3: Jalankan Demo

Sekarang Anda dapat mengakses mode salin dengan menekan Ctrl+E dan salin-tempel kode demo. Untuk menjalankannya tekan Ctrl+D dalam mode salin.

Jika Anda tidak ingin merekam video, Anda perlu mengomentari baris perekaman video. Jika tidak, kode akan mengeluarkan pengecualian jika tidak ada kartu SD yang dimasukkan

Berikut adalah deskripsi singkat dari setiap demo:

Temukan lingkaran - menggunakan fungsi find_circles dari OpenMV. Membutuhkan lebih banyak penyesuaian untuk aplikasi spesifik Anda, terutama ambang (mengontrol lingkaran apa yang terdeteksi dari transformasi hough. Hanya lingkaran dengan magnitudo lebih besar atau sama dengan ambang yang dikembalikan) dan nilai r_min, r_max.

Temukan persegi panjang - gunakan fungsi find_rects dari OpenMV. Anda dapat bermain-main dengan nilai ambang, tetapi nilai yang saya miliki dalam demo berfungsi cukup baik untuk menemukan persegi panjang.

Temukan wajah, temukan mata - menggunakan fungsi find_features dengan Haar Cascades untuk mendeteksi mata dan wajah bagian depan dalam gambar. Anda dapat bermain-main dengan nilai ambang dan skala untuk pertukaran akurasi kecepatan yang tepat.

Temukan garis tak terbatas - gunakan fungsi find_lines untuk menemukan semua garis tak terbatas pada gambar menggunakan transformasi hough.

Deteksi warna - menggunakan fungsi get_statistics untuk mendapatkan objek persentil dan kemudian mengonversi nilai rata-rata tupel LAB ke tupel nilai RGB. Saya menulis contoh ini sendiri dan bekerja dengan cukup baik, tetapi perlu diingat bahwa hasil deteksi warna akan dipengaruhi oleh kondisi cahaya sekitar.

Anda dapat menemukan lebih banyak demo menarik di repositori github OpenMV! Mereka sebagian besar kompatibel dengan micropython MaiX Bit, satu-satunya hal yang perlu Anda ingat adalah menambahkan sensor.run(1) setelah mengatur pixformat dan framesize.

Selamat bereksperimen dengan kode OpenMV. Jika Anda memiliki pertanyaan atau ingin membagikan beberapa hasil menarik Anda, jangan ragu untuk menghubungi saya di Youtube atau LinkedIn. Sekarang, permisi, saya akan membuat beberapa robot!

Direkomendasikan: