Pengakuan digit pada mikrokontroler

Halo Giktayms!

UPD: Ada demonstrasi video .

Sesuai namanya, artikel ini akan fokus pada pengenalan angka pada mikrokontroler. Saya ingin membuat reservasi segera bahwa kode sumber tidak akan diberikan dalam artikel ini, teknologi atau algoritma pengenalan akan dipertimbangkan, saya hanya bisa mengatakan bahwa ide-ide pendekatan sistem digunakan. Beberapa dari mereka disajikan dalam artikel kami (di sini , di sini dan di sini ). Ini karena fakta bahwa pendekatan kami mengacu pada orisinalitas, tetapi membutuhkan klarifikasi beberapa masalah. Seseorang mungkin berkata: "artikel lain tentang pemrograman mikrokontroler." Sama sekali tidak, pencarian proyek semacam itu tidak memberikan hasil yang jelas, kecuali untuk video ini. Dari diskusi di forum, satu hal yang jelas: gagasan untuk memperoleh perangkat seperti itu (kamera + mikrokontroler = hasil pengenalan di output, dan bukan hanya gambar yang diambil) datang ke banyak, tetapi tetap tanpa implementasi. Ya, dan pengakuan, oleh semua akun, membutuhkan banyak sumber daya komputasi dan mikrokontroler tidak cocok untuk ini, khususnya, ada perkataan tentang Arduino bahwa ini tidak mungkin sama sekali. Jika itu menjadi menarik, saya minta kucing.




Bahwa tidak akan ada pertanyaan yang jelas, kami akan menjawabnya:

  • Tidak, ini bukan layanan pengenalan gambar.
  • Tidak, ini bukan OpenCV
  • Tidak, ini bukan jaringan saraf.
  • Analisis morfologis objek yang membentuk gambar digunakan.
  • Ya, pengakuan dibuat tepat oleh mikrokontroler!


Ide


Singkatnya, semuanya dimulai dengan keinginan untuk mencoba tangan Anda dan menguji ide-ide Anda dalam pengenalan gambar. Selama diskusi, kami sampai pada kesimpulan bahwa kita dapat melakukan dengan kekuatan komputasi kecil untuk menyelesaikan masalah ini. Untuk alasan yang jelas, perincian diskusi ini tidak akan dijelaskan.

Instalasi


Jadi, tugas sudah diatur, implementasi diperlukan. Tanpa menyimpang dari prinsip-prinsip yang telah ditetapkan ,
kami mengambil apa yang ada di tangan. Dan ada beberapa Arduino Uno, mouse optik tua dan drive CD. Omong-omong, sebuah artikel mendorong kami untuk menggunakan sensor mouse optik sebagai kamera untuk akuisisi gambarbaca dulu sekali, yah, sebenarnya selebihnya tentang materi "mouse". Satu-satunya hal yang kami harus lepaskan sensor dan seluruh harness untuk kemudahan penggunaan, serta untuk memasang lensa padanya, yang kami "sobek" dengan hati-hati dari drive CD. Ini diperlukan untuk meningkatkan jarak dari subjek ke kamera, jika tidak, jumlah ukuran kami tidak cocok dan hanya sebagian kecil yang terlihat. Ngomong-ngomong, di depan lensa dari drive CD, kami mencoba memasang optik dari kamera web, tetapi entah bagaimana tidak tumbuh bersama.



Lebih banyak





Kemudian muncul pertanyaan tentang bagaimana menempatkan kamera ini di atas subjek. Di sini, mikroskop tua yang rusak yang tidak digunakan banyak membantu kami. Dengan hormat, mereka menghapus mekanisme untuk mengendalikan tabel subjek. Mekanisme ini memungkinkan kami untuk menggerakkan kamera hanya dengan dua sumbu, kemudian muncul ide untuk menggunakan panduan kepala laser dari drive CD. Semua ini diperbaiki pada kasing dari drive CD lama menderita. Hasilnya, kami mendapat mekanisme pemosisian kamera yang keren.



Lebih banyak







Total: kami memiliki kamera yang disebut, kami memiliki mekanisme penentuan posisi, masih harus meletakkan selembar kertas dengan kamera digital dan mendapatkan gambar dari kamera. Dan kemudian "masalah" dimulai. Karena karakteristik sensor optik "mouse" sangat buruk untuk menggunakannya sebagai kamera, mereka mulai berimprovisasi dengan lampu latar.



Lebih banyak







Menjadi jelas bahwa hanya menyoroti tidak berhasil, intensitas itu penting, arah cahaya eksternal juga membuat penyesuaian. Saya harus memasukkan "arduinka" lain dalam pekerjaan saya untuk mengontrol intensitas cahaya latar ( tentu saja, itu dapat dikontrol secara berbeda, tetapi nantinya tidak hanya lampu latar, tetapi juga mengganti angka pada indikator ). Hasilnya, ternyata menembak dalam cahaya jauh lebih baik. Dan jika, misalnya, Anda menggunakan indikator tujuh segmen bercahaya sebagai target, maka sensor melihatnya dengan sempurna. Jadi, sekarang kita memiliki indikator dan strip dengan angka putih dibanjiri dengan latar belakang hitam sebagai objek pemotretan.



di sebelah kiri, gambar dalam skala abu-abu diperoleh dari indikator (kita mendapatkan gambar seperti itu dari sensor), di sebelah kanan, binarized.



Lebih banyak





Tampilan umum majelis lengkap






instalasi awal









Blok pengakuan




Peran penting dalam instalasi kami dimainkan oleh unit pengenal yang disebut (dalam gambar di atas). Seperti yang Anda lihat, itu terdiri dari Arduino Uno dan ESP8266 pemancar wifi yang terkenal . Saya jelaskan, kita membutuhkan pemancar wifi untuk melihat hasil pengenalan pada tablet. Aplikasi pada tablet mengirimkan permintaan, "arduinka", menerima permintaan, "mengambil" gambar dari sensor mouse, lalu mengabari-nya. Setelah binarisasi, pengakuan terjadi, dan setelah selesai, respons terbentuk. Dalam jawabannya, kami mengirimkan hasil pengenalan dan 41 byte untuk membuat gambar yang ter-binarisasi di layar tablet, untuk kejelasan.

Jika Anda melihat ke belakang, maka pada "arduinka" ditugaskan fungsi yang baik: bekerja dengan kamera, dan pengenalan, dan bekerja dengan esp8266. Apa yang tidak bisa tidak mempengaruhi pekerjaan - saya harus berurusan dengan kurangnya memori. Saya tidak pernah berpikir bahwa saya harus menaklukkan setiap byte memori.

Proses Pengakuan




Alih-alih sebuah kesimpulan


Itu saja. Masih banyak pekerjaan di depan. Dan tugas pertama: pengenalan angka (serangkaian angka) yang direkam oleh kamera "manusia" (dan bukan "sensor mouse") dan transfer teknologi yang dikembangkan ke ESP8266 dan pengurangan intensitas perjuangan untuk setiap byte memori.

Kami senang menjawab pertanyaan.

Source: https://habr.com/ru/post/id397193/


All Articles