Robot NAO + visi komputer + 4 anak sekolah + 1,5 jam per minggu = robot tutor Bahasa Inggris

Halo semuanya! Artikel ini dikhususkan untuk hasil tahun pertama laboratorium visi komputer di Technopark Anak Novosibirsk (secara resmi Pusat Pengembangan Kreativitas Anak-anak dan Remaja). "Computer Vision Laboratory" terdengar, tentu saja, keras, tetapi kami masih berhasil melakukan sesuatu.

gambar

Evolusi gagasan


Mari kita mulai dengan apa yang sudah direncanakan. Dalam mimpi biru, saya melihat robot NAO (melihat Anda dari gambar), membaca dengan keras teks apa pun yang disajikan dalam "zona khusus" seperti pembaca barcode di supermarket, sejenis pembaca universal bersyarat keras bagi mereka yang tidak dapat melakukannya karena alasan tertentu ini sendiri. Dalam versi yang lebih biasa, saya ingin membuat robot pustakawan dari NAO yang mengenali nama-nama buku dan pengarangnya. Apakah saya memperhitungkan kompleksitas tugas dan tingkat siswa (dan kurangnya pengalaman saya) ketika saya menetapkan tugas awal? Tentu saja tidak. Akibatnya, tentu saja, kami menyadari tugas lain, walaupun dekat, tetapi ternyata lebih baik.

Klarifikasi kecil dengan jawaban untuk pertanyaan yang jelas: mengapa NAO? Ternyata atas dasar pusat ini ada tiga robot yang dengannya tidak ada yang bekerja. Mereka memiliki kamera yang bagus, plus ada built-in speech synthesizer ( produsen bahkan berbicara tentang alat khusus untuk mengingat wajah / objek dan mengenali ucapan langsung, tapi saya pribadi tidak menggunakannya), API dapat dimengerti, ia mengerti Python. Mengapa teks dikenali? Saya tidak tahu, untuk beberapa alasan teks itu bagi saya tampak paling dekat pada waktu itu (kutu buku, apa yang harus diambil dari saya) .

Saya mulai bekerja dengan anak-anak sekolah pada akhir Oktober tahun lalu. Pada awalnya, hanya ada dua dari mereka: anak laki-laki dan perempuan, kelas 10 dan 11, masing-masing. Beberapa saat kemudian, 2 siswa kelas delapan bergabung dengan kami (saya ingatkan Anda bahwa kata "integral" di kelas 8 tidak dikenal, seperti banyak hal lainnya, namun). Dan kemudian ternyata tidak semuanya begitu sederhana. Artinya, secara umum, semuanya tidak mudah.

Setelah robot tidak lagi menyebabkan keinginan untuk menusuk mereka, mereka dikuasai dalam antarmuka grafis (bagaimana menghubungkan, bagaimana mengontrol, bagaimana beralih antara kamera atas dan bawah, cara mengambil foto, bagaimana dan di mana menyimpannya), kami fokus pada pemrosesan gambar.

Tugas pertama adalah mengambil gambar buku dan mencoba mencari penulis dan judul sebagai standar, dijelaskan beberapa kalistackoverflow , metode (konversi warna, filter, pengental, dll, dll). Dengan beberapa buku, manuvernya sukses, dengan beberapa - tidak. Sebagai contoh, kami berhasil dengan buku tentang peretas, meskipun desainnya tidak konvensional.

gambar

gambar

Tetapi dengan publikasi yang tampaknya kurang marjinal, kami mengalami banyak kegagalan (kisahnya, selain itu, tidak menyelamatkan). Secara umum, menjadi jelas bahwa kita tidak bisa hidup seperti itu lagi, kita tidak punya waktu untuk ini dan kita perlu mengubah tugas.

gambar

Suatu solusi yang jelas, tetapi tidak sepenuhnya seperti itu, diusulkan oleh orang-orang dari TUSUR yang datang untuk mengunjungi suatu acara dan telah bekerja dengan NAO selama beberapa tahun. Mereka mengusulkan lembaran putih sebagai latar belakang putih. BAIK.

gambar

Hidup menjadi lebih mudah, tetapi tidak terlalu.

gambar

Namun, setelah sedikit perdukunan dengan filter, kami masih berhasil menerapkan Tesseract (lebih tepatnya, pembungkus Python Tesserwrap) dan masalah tersebut pindah: robot berbicara. Pertama melalui kamera bunga poppy saya:




Dan dengan sendirinya. Kami bahkan membuat salam Tahun Baru sampah (yang entah bagaimana saya cerminkan melalui PhotoBooth dan tidak ada penjelasan rasional untuk ini).



Namun, positif palsu tetap "menyenangkan" seperti jamur palsu. Dan kemudian salah satu anak sekolah bertanya kepada saya: "Dan apa yang mencegah kita membuat kamus dan hanya menyuarakan apa yang ada di dalamnya?"

Betulkah. Berpikir, saya merumuskan ide terakhir dari proyek kami dengan anak-anak sekolah: seorang robot-tutor bahasa Inggris. Robot kami masih hanya tahu bahasa Inggris (secara teori ini bisa diperbaiki), dan tutor robot yang berlatih dengan siswa / siswa bahasa Inggris memiliki hubungan tertentu dengan kenyataan. Yah, saya tidak akan menolak pada satu waktu. Tentang itu dan berhenti.

Kerja tim dan hasilnya


Lalu April datang. Atau Maret. Secara umum, liburan Mei menjulang di dekatnya (dengan kegiatan dibatalkan untuk kehormatan mereka), anak-anak terus membobol Olimpiade, pesan mulai muncul tentang beberapa festival robot, secara umum, "musim dingin sudah dekat", tetapi tidak ada proyek.

Pertama-tama, kami menetapkan algoritme: sensor kepala sentuh memilih tingkat permainan (sesuai dengan kompleksitas kamus), dengan bantuan mereka permainan dapat dihentikan; robot secara acak memilih kata dari kamus, mengucapkannya, mengambil gambar dari kamera atas, mengenali teks, menguraikannya, memeriksa dengan kamus, memeriksa dengan kata yang diucapkan dan menganggukkan kepalanya, positif atau negatif, tergantung pada hasilnya.

Saya harus memberi semua orang tugas dan bersukacita bahwa di kelas pertama, github dibuka untuk siswa. Dua terlibat dalam mengekspor gerakan dari antarmuka grafis (agar tidak menulis diri kita sendiri) dan mengeditnya, seseorang menulis kode pilihan acak, seseorang menulis kamus, dan saya harus berlarian dan meminta dalam kasus plugging. Setelah beberapa waktu, semua bagian secara terpisah siap, dan itu tetap menghubungkannya bersama. Tugas ini juga dilakukan oleh salah satu siswa (yang tiangnya kami tangani selama beberapa jam berturut-turut kemudian, tetapi ia masih dilakukan dengan baik).

Saya tidak akan memberi tahu bagaimana kami "terbang" di festival robotik regional karena versi umum yang kasar ini, saya lebih baik memberi tahu Anda bahwa kami mengirimkan proyek ke Sh.U.ST.T.R.I.K.dan demi ini, kami menyelesaikan proyek (4 jam kerja penuh - dan sensor kami terlalu panas, sehingga visi dan gerakan kembali muncul di video yang berbeda). Proyek ini, bagaimanapun, diambil oleh S.U.ST.T.R.I.K.a, seperti yang dikatakan seorang teman kepada saya, yang hadir pada pengumuman hasil di Tomsk. Hore.





Nah, hari ini, di pameran dalam kerangka Days of Science di Novosibirsk, akhirnya mungkin untuk men-debug versi dan merekam video semuanya bersama-sama (kualitas pendek dan buruk, karena telepon).



Namun, beberapa siswa di pameran (dan festival sedih itu) sangat menyukainya. Benar, sayangnya, banyak yang malu karena mereka tidak mendengar sesuatu dan tidak mengerti dalam bahasa Inggris.

gambar

Rencana masa depan


Pertama-tama: percepat versi ini (sejauh ini kami mengambil gambar dari kamera satu detik), membuat kartu dengan kata-kata di karton (sehingga anak-anak tidak menekuknya di tangan ketika mereka menunjukkan robot), mungkin mengulang implementasi dan meletakkan teks di beberapa kemudian bingkai yang kontras, misalnya, merah; putar gambar, dll.

Nah, jika kita melanjutkan proyek di tahun akademik berikutnya (saya ingin), saya ingin membuat kamus Rusia-Inggris, mungkin kamus objek, mungkin sesuatu yang lain. Bukan fakta bahwa dengan NAO.

Kode, tanpa versi terbaru, Anda dapat menonton dan memarahi di sini . Versi terbaru juga akan muncul di sana, tetapi sedikit kemudian - kami sedang mengerjakan bug.

Sastra dan peralatan


- Robot NAO
- pro macbook
- Tesserwrap
- OpenCV Python
- stackoverflow

All Articles