Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Computer Vision Materi 8
Pengenalan Pola Computer Vision Materi 8 Eko Prasetyo Teknik Informatika UBHARA 2012
2
Skenario Computer Vision
Citra Input Perbaikan Kualitas Segmentasi Data latih Training data latih dengan metode pengenalan pola Ekstrasi Fitur Citra menjadi Data set Pemecahan Data set Prediksi kelas data uji dengan model dari pengenalan pola Data uji Dapat diketahui label kelas data uji
3
Kasus Citra Malaria Ada 2 jenis : Gamet dan Schizonts
Gamet: 6 citra, Schizonts: 6 citra Yang diinginkan: membuat sistem yang dapat mengenali jenis malaria berdasarkan bentuk sel malaria. Menggunakan fitur Compactness dan Circularity Lakukan pada setiap citra Lakukan segmentasi untuk mendapatkan wilayah malaria dalam format gray. Konversikan citra tersegmentasi tersebut ke citra biner untuk mendapatkan area (A). Lakukan proses morfologi (boundary extraction) untuk mendapatkan tepi (P) Hitung Compactness dan Circularity Pecah data set menjadi 2: Gamet: 5 data latih, 1 data uji Schizonts: 5 data latih, 1 data uji Proses menggunakan teknik pengenalan pola.
4
Penyiapan data set Citra RGB Perbaikan citra Citra tersegmentasi
(format gray) Area = Perimeter = Data Compactness Circularity Kelas Gamet 1 0.6833 1 Gamet 2 0.6771 Gamet 3 0.7182 Gamet 4 0.6599 Gamet 5 0.6962 Gamet 6 0.6722 Schizonts 1 1.1509 2 Schizonts 2 9.6131 1.3072 Schizonts 3 1.1279 Schizonts 4 9.7031 1.2951 Schizonts 5 1.1589 Schizonts 6 9.5394 1.3173 Data latih dari kelas Gamet Data uji dari kelas Gamet Data latih dari kelas Schizonts Data uji dari kelas Schizonts
5
Source Code Ekstrasi Fitur
File: ekstraksi_gamet.m File: ekstraksi_schizonts.m namafile{1} = 'fgamet6-45.tif'; namafile{2} = 'fgamet6-90.tif'; namafile{3} = 'fgamet6-135.tif'; namafile{4} = 'fgamet6-180.tif'; namafile{5} = 'fgamet6-225.tif'; namafile{6} = 'fgamet6-270.tif'; for i=1:6 f = imread(namafile{i}); f = im2double(f); f2 = im2bw(f); f2 = imfill(f2, 'holes'); st = [0 1 0;1 1 1;0 1 0]; ftepi = f2 - imerode(f2,st); P = sum(sum(ftepi)); A = sum(sum(f2)); Comp = P^2/A; Circ = 4*pi*A / P^2; data_gamet(i,:) = [Comp Circ 1]; end; namafile{1} = 'fs-0.tif'; namafile{2} = 'fs-45.tif'; namafile{3} = 'fs-90.tif'; namafile{4} = 'fs-135.tif'; namafile{5} = 'fs-180.tif'; namafile{6} = 'fs-225.tif'; for i=1:6 f = imread(namafile{i}); f = im2double(f); f2 = im2bw(f, 0.01); f2 = imfill(f2, 'holes'); st = [0 1 0;1 1 1;0 1 0]; ftepi = f2 - imerode(f2,st); P = sum(sum(ftepi)); A = sum(sum(f2)); Comp = P^2/A; Circ = 4*pi*A / P^2; data_schizonts(i,:)=[Comp Circ 2]; end;
6
Source Code Ekstrasi Fitur
File: persiapkan_data.m %Pisahkan data data_gamet_latih = data_gamet(1:5,1:2); kelas_gamet_latih = data_gamet(1:5,3); data_schizonts_latih = data_schizonts(1:5,1:2); kelas_schizonts_latih = data_schizonts(1:5,3); %data latih untuk pelatihan data_latih = [data_gamet_latih; data_schizonts_latih]; kelas_latih = [kelas_gamet_latih; kelas_schizonts_latih]; %data uji untuk prediksi data_uji = [data_gamet(6,1:2); data_schizonts(6,1:2)]; kelas_uji_asli = [data_gamet(6,3); data_schizonts(6,3)];
7
K-Nearest Neighbor Algoritma yang melakukan klasifikasi berdasarkan kedekatan lokasi (jarak) suatu data dengan data yang lain. Prinsip sederhana yang diadopsi oleh algoritma K- NN adalah: “Jika suatu hewan berjalan seperti bebek, bersuara kwek-kwek seperti bebek, dan penampilannya seperti bebek, maka hewan itu mungkin bebek”. Pada algoritma K-NN, data berdimensi q, dapat dihitung jarak dari data tersebut ke data yang lain, Nilai jarak ini yang digunakan sebagai nilai kedekatan/kemiripan antara data uji dengan data latih.
8
K-Nearest Neighbor 1 tetangga terdekat (1-NN)
9
Algoritma K-NN z = (x’,y’), adalah data uji dengan vektor x’ dan label kelas y’ yang belum diketahui Hitung jarak d(x’,x), jarak diantara data uji z ke setiap vektor data latih, simpan dalam D Pilih Dz D, yaitu K tetangga terdekat dari z
10
Sedikit modifikasi dalam contoh ini !
Data uji 1: Comp = Circ = Data uji 2: Comp = Circ = Gunakan K-NN untuk memprediksi kelasnya Gunakan jarak Euclidean Gunakan K=1, K=3. Bandingkan dengan kelas yang asli, apakah sama atau tidak ? Data Compactness Circularity Kelas Gamet 1 0.6833 1 Gamet 2 0.6771 Gamet 3 0.7182 Gamet 4 0.6599 Gamet 5 0.6962 Schizonts 1 1.1509 2 Schizonts 2 0.9072 Schizonts 3 1.1279 Schizonts 4 9.7031 1.2951 Schizonts 5 1.1589 Sedikit modifikasi dalam contoh ini !
11
Untuk data uji 1 Data Compactness Circularity Kelas Jarak 1-NN 3-NN
Gamet 1 0.6833 1 0.3035 NN Gamet 2 0.6771 0.1344 --- Gamet 3 0.7182 1.1986 --- Gamet 4 0.6599 0.3478 Gamet 5 0.6962 0.6431 Schizonts 1 1.1509 2 7.7897 Schizonts 2 0.9072 0.2485 Schizonts 3 1.1279 7.5665 Schizonts 4 9.7031 1.2951 9.0124 Schizonts 5 1.1589 7.8658 Untuk K=1 1 data terdekat dari kelas Gamet (gamet 1), jumlah data kelas Gamet > kelas Schizonts maka data uji (Comp = , Circ = ) diprediksi masuk kelas 1 (Gamet) Sama dengan kelas aslinya Untuk K=3 2 data terdekat dari kelas Gamet , 1 data terdekat dari kelas Schizonts jumlah data kelas Gamet > kelas Schizonts maka data uji (Comp = , Circ = ) diprediksi masuk kelas 1 (Gamet) Sama dengan kelas aslinya
12
Untuk data uji 2 Data Compactness Circularity Kelas Jarak 1-NN 3-NN
Gamet 1 0.6833 1 8.8739 --- --- Gamet 2 0.6771 9.0429 Gamet 3 0.7182 7.9793 Gamet 4 0.6599 9.5248 Gamet 5 0.6962 8.5344 Schizonts 1 1.1509 2 1.3895 NN Schizonts 2 0.9072 9.0830 Schizonts 3 1.1279 1.6129 Schizonts 4 9.7031 1.2951 0.1652 Schizonts 5 1.1589 1.3134 --- Untuk K=1 1 data terdekat dari kelas Schizonts (schizonts 4), jumlah data kelas Schizonts > kelas Gamet maka data uji (Comp = , Circ = ) diprediksi masuk kelas 2 (Schizonts ) Sama dengan kelas aslinya Untuk K=3 3 data terdekat dari kelas Schizonts jumlah data kelas Schizonts > kelas Gamet maka data uji (Comp = , Circ = ) diprediksi masuk kelas 2 (Schizonts ) Sama dengan kelas aslinya
13
K-NN di matlab Class = knnclassify(Sample, Training, Group, k, distance, rule) Parameter Keterangan Sample Matrik dimana baris merupakan data, kolom merupakan fitur. Sample merupakan data uji yang akan diklasifikasikan kedalam kelas. Matrik Sample harus mempunyai jumlah kolom (fitur) yang sama dengan matrik Training. Training Matrik yang digunakan untuk mengelompokkan baris didalam matrik Sample. Matrik Traning harus mempunyai jumlah kolom yang sama dengan Sample. Setiap baris dalam matrik Training mempunyai relasi kelas pada baris yang sama pada matrik Group. Group Vektor (matrik 1 kolom) yang setiap barisnya menyatakan kelas dari baris yang sama dalam matrik Training. k Jumlah tetangga terdekat yang digunakan untuk klasifikasi. Nilai defaultnya adalah 1. distance String yang menyatakan metrik jarak yang digunakan untuk mencari tetangga terdekat, pilihannya: ‘euclidean’, jarak Euclidean (default) ‘cityblock’, jarak Manhattan atau jumlah absolut perbedaan nilai antar fitur ‘cosine’, jarak 1 – cos(sudut antara 2 titik) ‘correlation’, jarak 1 – korelasi diantara titik (nilai sekuen) ‘hamming’, jarak prosentase bit yang berbeda (cocok untuk data biner) rule String untuk menetapkan aturan dalam memutuskan bagaimana mengklasifikasikan Sample, pilihannya: ‘nearest’, aturan mayoritas pada titik terdekat (default); ‘random’, aturan mayoritas pada titik secara acak; ‘consensus’, aturan kesepakatan
14
Contoh source prediksi
kelas_uji_hasil = knnclassify(data_uji, data_latih, kelas_latih, K); display(['Untuk K = ', num2str(K)]); display('Kelas Hasil Prediksi | Kelas Asli'); [kelas_uji_hasil kelas_uji_asli] K = 3;
15
Contoh source prediksi
>> prediksi_malaria Untuk K = 1 Kelas Hasil Prediksi | Kelas Asli ans = Untuk K = 3
16
Evaluasi K-NN Algoritma yang menggunakan seluruh data latih untuk melakukan proses klasifikasi (complete storage). Mengakibatkan untuk data dalam jumlah yang sangat besar, proses prediksi menjadi sangat lama. Tidak membedakan setiap fitur dengan suatu bobot Pada ANN (Artificial Neural Network) yang berusaha menekan fitur yang tidak punya kontribusi terhadapklasifikasi menjadi 0 pada bagian bobot, NN tidak ada bobot untuk masing-masing fitur. Menyimpan sebagian atau semua data dan hampir tidak ada proses pelatihan, maka K-NN sangat cepat dalam proses training (karena memang tidak ada) tetapi sangat lambat dalam proses prediksi. Hal yang rumit adalah menentukan nilai K yang paling sesuai K-NN pada prinsipnya memilih tetangga terdekat, Parameter jarak juga penting untuk dipertimbangkan sesuai dengan kasus datanya. Euclidean sangat cocok untuk menggunakan jarak terdekat (lurus) antara dua data, tetapi Manhattan sangat robust untuk mendeteksi outlier dalam data.
17
To Be Continued … Materi 9 – Pengenalan Pola (lanjut)
ANY QUESTION ?
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.