LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

KNN untuk Image

Malam untuk para master, mau bertanya tentang penerapan KNN pada Image, tapi sebelumnya saya jelaskan dulu program yang akan saya buat:

1. Ketika program ini dijalankan, kamera akan mengambil gambar dan mengubahnya dalam bentuk Grayscale I16. setelah itu diambil nilai mean dari image yang sudah ada, kemudian dengan menggunakan KNN didapatlah klasifikasi masing-masing bentuk input.

2. Setelah mendapatkan bentuk input (misal A & B) dibuatlah pengambilan keputusan dengan menggunakan case structure yang nantinya bakal mengirim 'string' ke arduino uno yang sudah dikoding agar melakukan perintah untuk menyalakan led jika A dan led mati jika B (misal A = serial write '1', B serial write '0')

masalah yang timbul:

1. Di tengah koding, saya mendapati wiring yang tidak tereksekusi (padahal output muncul)

2. Pengambilan nilai array dari image selalu sama (dalam .vi saya buat 3 indikator; 1 untuk input, 2 untuk template; kemudian saya ambil 10 nilai pertama baris pertama dari 2D array yang didapat)

3. Saya ingin eksekusi serial dari program ini dapat berjalan secara bersamaan (paralel, serial write-nya A & B bareng jadi output case-nya tidak A dulu baru B soalnya ketika program yang saya buat dieksekusi jadi A dulu baru B)

yang mau saya tanyakan:

1. Perlukah agar membuat image input dan template menjadi satu ukuran saya gunakan wavelet lagi?

2. Untuk KNN yang saya buat sebenarnya saya dapat dari klasifikasi biomedic punya teman, tapi karena konsepnya sama, saya pakai untuk ini. mungkinkah di KNN yang saya buat ada kesalahan?

3. Haruskah saya ubah image Grayscale yang sudah ada menjadi image binary ketika akan diproses ke dalam KNN?

Minta saran:

ada satu metode lagi yang mungkin saya sendiri sebetulnya kurang paham untuk klasifikasi ini, yaitu metode MSE (saya dapat dari SIVA) kira-kira bisa tidak untuk digunakan dalam klasifikasi? (misal untuk nilai MSE a<b dibuat output=A)

Berikut lampiran dari .vi yang saya buat:

Cellbin_Processed_1_2 sebagai input (save input pada file ini)

Cellbin_Processed_1_2_2 sebagai template 1

Cellbin_Processed_1_2 juga sebagai template 2 (dimaksudkan agar output percobaan ini ada salah satu yang benar)

Terima kasih,

Message 1 of 2
(3,635 Views)

[UPDATE]

Sudah BISAAA [monggo yang mau referensi Tugas Akhir]

Salahnya pada perhitungan. untuk bagian perhitungan, harusnya tipe image-nya U-8. kemudian, boleh pakai wavelet (cuma biar dapet nilai Entrophy yang jadi input proses KNN). untuk bagian KNN-nya tidak ada masalah alias sudah benar. Image binary (BW Image) saya dapat dengan cara mengalikan Image U-8 Grayscale dengan Image Input (dapet dari internet juga kalo gak salah forum sebelah). sebelum menggunakan wavelet, buat image tersebut normal dulu (gunakan normalisasi dulu; tapi dari buatan sendiri biar lebih paham).


Setelah dapet nilai Entrophy dan dibuat Array, cari nilai Kernel-nya kemudian bandingkan nilai kernel template dan juga input nilai yang paling mendekati 0 adalah benar.

HW dan Mekanik yang saya pakai tidak terfilter dari Noise Cahaya. sehingga memungkinkan untuk terjadi kesalahan pada saat melakukan pengklasifikasian image. Image yang mau dideteksi sebisa mungkin menggunakan banyak warna hitam (karena hanya frekuensi tinggi saja yang dilewatkan oleh wavelet, sehingga untuk image dengan komponen hitam lebih sedikit bisa jadi tidak terdeteksi secara optimal/template yang didapat memiliki nilai berdekatan->didapat dari pengalaman mencoba). atas dasar tersebut, saya sarankan agar membuat template/data latih di ruang uji dan pada saat pencahayaan optimal.

Untuk serial communication, saya selesaikan dengan menempatkan perintah Serial write dalam case structure sehingga pada saat salah satunya true, perintah yang dieksekusi adalah yang hanya berada di dalam case structure yang bersifat true. kemudian, buat juga statement yang berlawanan dengan yang seharusnya. untuk kalian yang coba menggunakan Local Variable (buat stop, soale stop-ku ada 5 ), kayaknya gak bisa, soale Local Variable tidak bisa bekerja pada latch (muncul unwired section ketika saya coba lakukan wiring untuk state yang false). solusinya mungkin pakai Shift Register.

Untuk yang minat menjadikan apa yang telah saya buat ini sebagai Tugas Akhir atau Proyek Akhir silakan sedot saja. untuk referensi dasar teori saya kasih nanti (laporan TUBES ini).

Berikut ini .lvproj dan .vi yang saya pakai:

http://tinyurl.com/ke2ucxx

Untuk cara pakai, silakan reply...

Message 2 of 2
(2,835 Views)