Anda di halaman 1dari 6

[sharing is caring]

October 16, 2011

TEMPLATE MATCHING UNTUK DETEKSI OBYEK CITRA DENGAN MENGGUNAKAN ALGORITMA KORELASI

Artikel ini berisi program dari paper saya yang telah juga diupload pada account ini dengan judul TEMPLATE MATCHING UNTUK DETEKSI OBYEK CITRA DENGAN MENGGUNAKAN ALGORITMA KORELASI. Jadi dalam artikel ini saya hanya menambahkan sedikit saja mengenai pembuatan programnya. Dalam program ini, citra yang diolah baik citra uji maupun template, terlebih dahulu diubah menjadi citra abu-abu (grayscale). Tujuannya agar program ini tidak terpengaruh oleh warna. Dengan kata lain, cukup handal untuk menangani objek dengan warna gradasi yang berbeda dengan template padahal objek yang dimaksud adalah sama. Mengapa hal ini menjadi penting??? Anda bisa melihat sendiri bahwa obyek yang akan kita deteksi adalah buah-buahan. Secara alami buah dengan jenis sama memiliki warna yang berbeda juga bahkan jika buah tersebut sudah matang pun warna nya bisa berbeda-beda dalam gradasi. Tentu saja program ini memiliki kekurangan. Permasalahan dalam orientasi dan ukuran objek menjadi permasalahan yang tidak bisa diselesaikan oleh program ini. Karena program ini hanya bisa mendeteksi obyek yang hampir sama dengan template baik dalam orientasi ataupun ukuran. Percobaan ini sudah saya lakukan dan memang program tidak bisa memberikan hasil yang memuaskan. Namun untuk ukuran yang sedikit berbeda atau orientasi yang sedikit berbeda, program masih bisa mengenali dengan baik. Karena memang dalam program ini tidak saya libatkan ekstraksi ciri dan rekonstruksi citra yang berorientasi template seperti perbaikan sudut dan ukuran. Hal yang menarik adalah teknik ini tidak rentan terhadap derau. Beberapa uji coba yang saya lakukan adalah dengan menambahkan derau additive seperti salt, pepper dan gaussian. Tampak bahwa semua nya masih bisa dideteksi tanpa harus memberikan filter tambahan. Jadi kesimpulannya, program sederhana ini bisa diimplemantasikan pada industri buah-buahan untuk mengelompokkan beberapa jenis buah secara otomatis, misalnya buah-buahan tersebut diletakkan pada conveyor belt. Cukup menarik sebenarnya, dan untuk menambahkan keakuratan dari hasil program bisa juga kita tambahkan salah satu aturan pendeteksi misalnya saja deteksi berdasarkan warna. Salah satu yang menjadi kekurangan juga adalah jumlah komputasinya yang cukup besar, apalagi bila kita tambahkan derau. Anda bisa saja menambahkan edge detection seperti pada program untuk deteksi OCR yang sudah saya upload pada account ini. Dengan memiliki sedikit data yang akan diolah tentu saja akan meringankan komputasi. Tapi jika sumber daya perangkat keras yang dimiliki sangat mencukupi, rasanya tidak perlu ada modifikasi major. Anda boleh saya tantang untuk melakukan perubahan pada program ini untuk mendapatkan hasil yang lebih akurat. Setidaknya saya sudah mencoba memberikan tips dan teknik nya melalui program ini. Berikut ini adalah programnya:

[{EE&IT UGM, Indonesia}janshendry@gmail.com]

Page 1

[sharing is caring]

October 16, 2011

clear all; close all; clc;

%% 1. Inisialisasi citra yang akan diolah filename = FRAME_4.JPG'; tmplt = 'template.jpg'; F = imread(filename); [row,col,val]=size(F); if val>1 frm=rgb2gray(F); end frm = double(frm); T = imread(tmplt); [row,col,val]=size(T); if val>1 tmplt=rgb2gray(T); end tmplt = double(tmplt); %% %% 2. Penerapan algoritma KORELASI untuk template matching frmMean = conv2(frm,ones(size(tmplt))./numel(tmplt),'same'); tmpltMean = mean2(tmplt); kor1 = conv2(frm,fliplr(flipud(tmplt-tmpltMean)),'same')./numel(tmplt); kor2 = frmMean.*sum(tmplt(:)-tmpltMean); stdFrm = sqrt(conv2(frm.^2,ones(size(tmplt))./numel(tmplt),'same')-frmMean.^2); stdTmplt = std2(tmplt); skor = (kor1-kor2)./(stdFrm.*stdTmplt); %% %% 3. Menemukan daerah yang cocok [maxVal,maxIdx] = max(skor(:)); [minVal,minIdx] = min(skor(:)); [maxR, maxC] = ind2sub(size(skor),maxIdx); %% %% 4. Uji hipotesis tentang nilai ambang klasifikasi if ~exist('ambang','var') ambang = 0.40; %batas untuk koefisien korelasi juara/pemenang

[{EE&IT UGM, Indonesia}janshendry@gmail.com]

Page 2

[sharing is caring]

October 16, 2011

end if maxVal>=ambang boks(1,:) = [max(1,maxR-round(row/2)), max(1,maxC-round(col/2)), row, col]; else boks(1,:) = []; end %% %% 5. Menampilkan citra template, frame dan hasil deteksi figure, subplot(121),imshow(F),title('Frame Citra'); subplot(122),imshow(T),title('Template Citra'); figure,imagesc(abs(skor)), colorbar, title('Ruang Pengukuran Korelasi') bY = [boks(1),boks(1)+boks(3),boks(1)+boks(3),boks(1),boks(1)]; bX = [boks(2),boks(2),boks(2)+boks(4),boks(2)+boks(4),boks(2)]; figure,imshow(F),line(bX,bY),title('Hasil Deteksi Buah Strawberry'); disp('selesai'); %% done

Template:

Template berukuran = 275 x 195 RGB 8 bit for each. Pengujian:

[{EE&IT UGM, Indonesia}janshendry@gmail.com]

Page 3

[sharing is caring]

October 16, 2011

Gambar 1 tanpa derau

Hasil deteksi program

[{EE&IT UGM, Indonesia}janshendry@gmail.com]

Page 4

[sharing is caring]

October 16, 2011

Gambar 2 tanpa derau tapi posisi objek berbeda

Hasil deteksi program

[{EE&IT UGM, Indonesia}janshendry@gmail.com]

Page 5

[sharing is caring]

October 16, 2011

Gambar 3 dengan derau gaussian

Hasil deteksi program

~~~ TERIMA KASIH ~~~

[{EE&IT UGM, Indonesia}janshendry@gmail.com]

Page 6

Anda mungkin juga menyukai