Saat ini saya sedang mengerjakan sistem pengenalan gerakan (untuk Aplikasi Android). Saya pikir saya telah menyelesaikan tahap pemrosesan Gambar, di mana saya dapat mengekstraksi kontur tangan (saya memakai sarung tangan untuk menghindari pengurangan latar belakang untuk saat ini).
Saya juga mendapatkan ellipse / rectangle, centroid sebagai fitur bentuk 'penting' dari tangan.
Masalah saya adalah bahwa tidak banyak literatur menunjukkan apa tahap selanjutnya sebelum klasifikasi gambar melalui model markov tersembunyi. Saya menemukan tahap 'Ekstraksi Fitur' ini sangat ambigu.
Saat ini saya mendapatkan daftar sudut kontur (yang diperkirakan untuk memperoleh sejumlah sudut)
Masalahnya adalah saya tidak tahu apa yang harus saya lakukan selanjutnya. Ketika saya mencari literatur sebagai 'Klasifikasi bentuk menggunakan HMMs', saya masih kesulitan melakukan apa yang harus saya lakukan selanjutnya.
Sebagai alat untuk HMM saya berencana menggunakan JaHMM. Tetapi saya tidak tahu bagaimana cara bereksperimen dengan alat pada tahap ini karena saya tidak tahu apa yang akan menjadi masukan untuk tahap klasifikasi ini!
Saya telah menjumpai daftar fungsi yang saya temukan dalam beberapa literatur, seperti Fast Fourier Descriptors, Curvature Descriptors, B Spline; namun saya tidak tahu bagaimana menerapkan fungsi-fungsi ini ke data saya saat ini (yaitu daftar sudut, misalnya: -63, 154, 3, 23, 54, ....)
PEMBARUAN 1:
Terima kasih atas informasi Anda. @Peter K.
Mengenai pose: Saya akan pergi untuk satu set kata dalam Bahasa Isyarat Amerika yang digerakkan jari, misalnya 'anjing' -> 'd' 'o' 'g' (3 negara); tapi saat ini aku belum memutuskan untuk apa.
Saat ini saya sedang membaca beberapa makalah lagi untuk melihat jenis informasi apa yang harus saya ekstrak, seperti:
- centroid tangan
- sudut gerak
- jarak dari titik tertentu ke titik yang berbeda dari kontur tangan (dll.)
Sekarang saya telah menemukan kertas yang sepertinya menunjukkan apa yang ingin saya lakukan, saya tidak yakin:
http://espace.library.uq.edu.au/eserv.php?pid=UQ:10700&dsID=n0273.pdf
Saat ini saya sedang membaca bagian 5 - Vektor Kuantisasi (saya mendengar istilah ini sebelumnya tetapi tidak benar-benar tahu apa yang terlibat, dan pada Gambar 5 tampaknya ada algoritma yang kompleks yang, jika saya mengerti benar, mengubah set nilai yang saya capai dari tangan (hanya disebutkan) menjadi 1 digit yang dapat saya gunakan sebagai urutan Pengamatan untuk melatih HMM untuk tanda tertentu 1. Apakah Anda pikir saya bergerak di jalur yang benar? (Saya sedang bekerja di Android, (NDK) , Saya menemukan JaHMM sebagai alat HMM, dan menggunakan OpenCV untuk pemrosesan gambar.
@ Peter K. Terima kasih atas jawaban Anda. Mengenai pembuatan data saya berencana untuk mengikuti langkah-langkah dari makalah ini, setelah saya menghasilkan dataset pribadi saya: (bagian 4 dan 5) http://www.i.ci.ritsumei.ac.jp/ ~shimada/papers/vi02 -tanibata.pdf
UPDATE 2: perlu diingat bahwa gerakan dibentuk dari {postur a, postur b, postur c}
Saya sekarang berpikir bahwa saya harus menggunakan beberapa bentuk algoritma klasifikasi. Artinya, saya saat ini memiliki satu set vektor fitur:
Postur A: [sudut elips di sekitarnya, tinggi: rasio lebar]
- 0.802985 33.909615
- 0.722824 31.209663
- 0.734535 30.206722
- 0.68397 31.838253
- 0.713706 34.29641
- 0.688798 30.603661
- 0.721395 34.880161
Postur B: [terstruktur sama dengan postur A]
- 0.474164 16.077467
- 0,483104 14,526289
- 0.478904 14.800572
- 0.483134 14.523611
- 0.480608 14.41159
- 0.481552 15.563665
- 0.497951 15.563585
dll ..
dan saya ingin itu ketika saya memberi makan vektor fitur saya mendapatkan simbol sederhana, misalnya 'A', 'B', dll.
Apakah ini mungkin? Saya juga memigrasikan pertanyaan di sini: /programming/15602963/vector-quantization-algorithms-used-to-provide-observation-afterences-for-hidden
sumber
Jawaban:
Saya telah menggunakan HMM untuk pengenalan gerakan tubuh (bukan pengenalan pose). Apa yang saya lakukan adalah: melacak tangan dan mengenali gerakan tangan di udara, Anda dapat membayangkannya sebagai jejak.
Anda dapat menggunakan HMM sebagai pengenal urutan, jadi pertama-tama Anda perlu mengubah gambar Anda menjadi urutan angka tersendiri.
Untuk setiap gerakan yang ingin Anda kenali, Anda perlu melatih HMM untuk itu.
Jadi Anda memiliki kamus dengan beberapa kata yang dikenal. Masing-masing adalah HMM terlatih. Jika Anda memiliki kata baru (obdervation yang tidak diketahui), Anda dapat menghitung probabilitas untuk setiap kata dalam kamus untuk kemungkinan kata yang tidak dikenal.
Beberapa kode semu:
Sekarang, lihat berapa nilai maksimum dalam probabilitas dan Anda mendapatkan kata yang paling mungkin dari kamus!
Lihat disini:
http://www.ece.ucsb.edu/Faculty/Rabiner/ece259/Reprints/tutorial%20on%20hmm%20and%20applications.pdf
http://www.codeproject.com/Articles/69647/Hidden-Markov-Models-in-C
http://www.creativedistraction.com/demos/gesture-recognition-kinect-with-hidden-markov-models-hmms/
sumber
Mari kita mulai dengan pengenalan pose. Makalah ini melacak batas tangan, dan menghitung jumlah deteksi ujung jari dari batas itu. Satu hal yang perlu diperhatikan dalam makalah itu adalah tidak ada informasi "keadaan" yang diperlukan. Untuk estimasi pose / posisi, HMM mungkin tidak cocok.
Informasi isyarat cocok dengan lebih baik ke gamut HMM untuk pemecahan masalah. Namun, saya perlu melihat sedikit lebih banyak jenis data yang akan Anda gunakan untuk gerakan. Bisakah Anda menjelaskan sedikit lebih banyak tentang algoritma yang menghasilkan data yang Anda miliki?
Masalahnya adalah bahwa memilih struktur yang tepat dari model Markov tersembunyi memiliki sedikit pengaruh pada akurasi yang dapat dicapai ... Peringatan: Tautan PDF!
sumber