Final Project Pengolahan Citra Digital Dosen: Drs. Agus Hardjoko, M.Sc., Ph.D.
Evaluasi Kinerja Momen Invarian Untuk Pengenalan Obyek
Mahasiswa: Moh. Sofyan S. Thayf 25340/I-4/2107/06
Magister Ilmu Komputer FMIPA Universitas Gadjah mada Juni 2008
Evaluasi Kinerja Momen Invarian Untuk Pengenalan Obyek
Pendahuluan Proses pengenalan sebuah obyek di dalam sebuah citra setelah proses segmentasi , sering terbentur pada permasalahan posisi obyek, rotasi sumbu obyek, dan perubahan skala dar i obyek. Posisi obyek yang bergeser, berputar, dan ukurannya yang lebih kecil atau lebih besar dari pada informasi yang sudah dimiliki sebagai knowledge, dapat menyebabkan kesalahan dalam pengenalan/identifikasi obyek tersebut. Momen dapat menggambarkan su atu objek dalam hal area, posisi, orientasi dan parameter terdefinisi lainnya. Dengan mendapatkan sejumlah informasi momen, baik momen tingkat ke -nol (m00) dan kesatu (m10 dan m01) atau momen sentral, dan momen pada tingkat ≥ 2 atau momen invarian dari sebuah obyek, maka obyek tersebut dapat diidentifikasi sekalipun telah mengalami pergeseran (translasi), perputaran (rotasi), maupun perubahan skala. Dalam tulisan ini, dicoba untuk melakukan pengujian terhadap kinerja momen in varian dalam mengidentifikasi sejumlah obyek yang mengalami rotasi dan pencerminan (mirroring)
Tinjauan Pustaka Momen Sentral Momen sentral adalah momen yang bersesuaian dengan titik pusat sebuah obyek. Dalam Gonzales (1992:673) dikatakan bahwa momen sentral untuk citra digital dapat dihitung dengan persamaan
pq x x y y f x, y p
x
q
y
f(x,y) adalah intensitas warna dari pixel (x,y). Pada citra biner atau hitam-putih (BW), misalnya dari hasil segmentasi dengan thresholding, f(x,y) bernilai 0 atau 1.
Momen Invarian Dari momen tingkat kedua dan ketiga (p+q ≥ 2) yang dinormalisasi dengan
pq
pq
00
, dimana
pq 1 2
2
dapat diturunkan tujuh rumus untuk menghitung momen yang invarian terhadap translasi, rotasi, dan perubahan skala (Gonzales, 1992, 674-675) sebagai berikut: 1 20 02
2 20 02 4112 2
3 30 312 3 21 03 2
4 30 12 21 03 2
2
2
3
5 30 312 30 12 3 30 12 3 21 03
3 21 03 21 03
2
2
12 21 03 2
30
2
6 20 02 30 12 21 03 411 30 12 21 03 2
3
2
7 3 21 03 30 12 30 12 3 21 03
312 30 21 03
2
2
12 21 03 2
30
2
3
Hasil Percobaan Bentuk Obyek Bentuk-bentuk obyek sample direkayasa dengan menggunakan program aplikasi grafis Corel!DRAW, dan menghasilkan 12 bentuk obyek sebagai citra berwarna (RGB), yang masing-masing disimpan dalam file terpisah dengan format JPG.
1
2
3
4
5
6
7
8
9
10
11
12
Bentuk-bentuk obyek sebagai sample Dalam proses evaluasi setiap file citra di baca dan di konversi menjadi citra grayscale, sebelum di jadikan gambar biner (BW) untuk segmentasi dengan thresholding, dan dilakukan deteksi tepi. Selanjutnya evaluasi kinerja dilakukan dengan menghitung dan membandingkan momen invarian dari bentuk obyek dasar, dan bentuk obyek hasil rotasi 90 o, pencerminan (mirroring) horisontal dan pencerminan vertikal. Proses konversi ke grayscale, thresholding, deteksi tepi (edge detection), rotasi, dan pencerminan, menggunakan fungsi-fungsi yang sudah tersedia pada program Matlab 7 . Evaluasi dilakukan terhadap dua kondisi obyek, pertama obyek dengan berdasarkan informasi tepiannya saja, dan yang kedua obyek dengan informasi seluru h area pixel dari obyek.
4
Hasil Evaluasi Dengan Tepian Original
Rotasi 90 o
Cerminan Vertikal
Cerminan Horisontal
1
7,666442
7,666442
7,597116
7,597116
2
-14,6202
-14,6202
-0,28214
-0,28214
3
25,12615
25,12615
25,22183
25,22183
4
26,44646
26,44646
26,44576
26,44576
5
74,63873
74,63873
76,97069
76,97069
6
21,31751
21,31751
23,1042
23,1042
7
4,544981
4,544981
4,427817
4,427817
8
24,458
24,458
26,17517
26,17517
9
7,807621
7,807621
7,813998
7,813998
10
4,456427
4,456427
4,37855
4,37855
11
3,492443
3,492443
3,492263
3,492263
12
4,206708
4,206708
4,206857
4,206857
Obyek ke
Nilai-nilai adalah hasil penjumlahan dari ketujuh momen invarian utuk setiap obyek dalam setiap mode
Hasil Evaluasi Dengan Area Pixel Original
Rotasi 90o
Cerminan Vertikal
Cerminan Horisontal
1
0,16112
0,16112
0,16112
0,16112
2
0,365919
0,365919
0,365919
0,365919
3
0,289784
0,289784
0,289784
0,289784
4
0,190835
0,190835
0,190835
0,190835
5
0,206938
0,206938
0,206938
0,206938
6
0,708001
0,708001
0,707999
0,707999
7
0,297969
0,297969
0,297969
0,297969
8
0,163796
0,163796
0,163796
0,163796
9
0,878581
0,878581
0,878582
0,878582
10
0,227928
0,227928
0,227928
0,227928
11
0,628171
0,628171
0,628171
0,628171
12
0,290475
0,290475
0,290475
0,290475
Obyek ke
Nilai-nilai adalah hasil penjumlahan dari ketujuh momen invarian utuk setiap obyek dalam setiap mode
5
Kesimpulan Dari hasil percobaan, terlihat bahwa, meskipun relatif sangat kecil, ada perbedaan pada jumlah nilai momen invarian dari perhitungan berdasarkan informasi tepi y ang dicerminkan, baik terhadap sumbu vertikal maupun terhadap sumbu horisontal. Perbedaan jumlah nilai disebabkan oleh adanya perbedaan tanda (+/-) pada hasil perhitungan momen invarian menggunakan rumus momen invarian yang ke-tujuh (lihat lampiran 2, data hasil lengkap), sehingga selisih jumlah nilai momen antara informasi tepi original dengan hasil pencerminan nya adalah dua kali nilai momen invarian ke -tujuh Karena keterbatasan pemahaman kami tentang formulasi momen invarian, sehingga penyebab perbedaan tanda dari hasil perhitungan tersebut tidak dapat ditemukan/diketahui.
Referensi Gonzales, R. C., Woods, R. E., 1992, “ Digital Image Processing”, Second Edition, Prentice Hall, New Jersey
6
Lampiran 1 Listing Program momensentral.m function mij = momensentral(gbr,i,j) % % menghitung momen sentral Mij % [r,c] = find(gbr==1); rbar = mean(r); cbar = mean(c); n = length(r); momlist = zeros(n,1); for m = 1 : n momlist(m) = (r(m) - rbar)^i * (c(m) - cbar)^j; end mij = sum(momlist);
momeninvarian.m function minv = momeninvarian(Gbr) % % menghitung ketujuh momen invarian % area = bwarea(Gbr); perim = bwarea(bwperim(Gbr,4)); compactness = perim*perim/(4*pi*area); u11 u12 u21 u20 u02 u30 u03
= = = = = = =
momensentral(Gbr,1,1) momensentral(Gbr,1,2) momensentral(Gbr,2,1) momensentral(Gbr,2,0) momensentral(Gbr,0,2) momensentral(Gbr,3,0) momensentral(Gbr,0,3)
/ / / / / / /
(area^2); (area^2 .5); (area^2.5); (area^2); (area^2); (area^2.5); (area^2.5);
h1 = u20 + u02; h2 = (u20-u02)^2 + 4*u11^2; h3 = (u30 - 3*u12)^2 + (u03 - 3*u21)^2; h4 = (u30 + u12)^2 + (u03 + u21)^2; h5 = (u30 - 3*u12) * (u30 + u12) * ( (u30 + u12)^2 - 3*(u03 + u21)^2 ) + (3*u21 - u03) * (u03 + u21) * ( 3*(u30 + u12)^2 - (u03 + u21)^2 ); h6 = (u20 - u02) * ( (u30 + u12)^2 - (u03 + u21)^2 ) + 4*u11 * (u30 + u12) * (u03 + u21); h7 = (3*u21 - u03) * (u30 + u12) * ( (u30 + u12)^2 - 3*(u03 + u21)^2 ) - (3*u12 - u30) * (u03 + u21) * ( 3*(u30 + u12)^2 - (u03 + u21)^2 ); minv = [h1 h2 h3 h4 h5 h6 h7];
% matriks hasil
7
kenalbentuk.m function kenalbentuk(dataPath) % % - membaca semua file sample bentuk dalam dataPath % - melakukan segmentasi, edge detect ing, rotasi, dan mirroring % - menghitung momen invarian % files=dir( fullfile(dataPath,'*.jpg') ); nFile = length(files); i=1; for f = 1:nFile namafile = fullfile(dataPath,files(f).name) id = f*100; RGB = imread( namafile ); %figure, imshow(RGB); gr = rgb2gray(RGB); %%---------------------------%% BY PIXEL %%---------------------------%jadikan biner (BW) th = graythresh(gr); BW = im2bw(gr, th); %figure, imshow(BW); %test moment mop = momeninvarian( BW ); mp = sum(mop); DM(i,:) = [id mop mp]; %%------------------%rotasi 90 derajat pxrot = rot90(BW); %figure, imshow(pxrot); %test moment mopr = momeninvarian( pxrot ); mpr = sum(mopr); DM(i+1,:) = [id+1 mopr mpr]; %%------------------%mirror vertical pxmirv = fliplr(BW); %figure, imshow(pxmirv); %test moment mopmv = momeninvarian( pxmirv ); mpmv = sum(mopmv); DM(i+2,:) = [id+2 mopmv mpmv]; %%------------------%mirror horizontal pxmirh = flipud(BW); %figure, imshow(pxmirh); %test moment mopmh = momeninvarian( pxmirh ); mpmh = sum(mopmh); DM(i+3,:) = [id+3 mopmh mpmh]; %%---------------------------%% BY EDGE %%---------------------------%edge detection EDG = edge(BW,'sobel'); %figure, imshow(EDG); %test moment moe = momeninvarian( EDG ); me = sum(moe); DM(i+4,:) = [id+10 moe me];
8
%%------------------%rotasi 90 derajat edrot = rot90(EDG); %figure, imshow(edrot); %test moment moer = momeninvarian( edrot ); mer = sum(moer); DM(i+5,:) = [id+11 moer mer]; %%------------------%mirror vertical edmirv = fliplr(EDG); %figure, imshow(edmirv); %test moment moemv = momeninvarian( edmirv ); memv = sum(moemv); DM(i+6,:) = [id+12 moemv memv] ; %%------------------%mirror horizontal edmirh = flipud(EDG); %figure, imshow(edmirh); %test moment moemh = momeninvarian( edmirh ); memh = sum(moemh); DM(i+7,:) = [id+13 moemh memh]; %pause; i=i+8; end xlswrite('testmomen',DM);
% simpan matrix hasil
9
Lampiran 2 Data Hasil Lengkap No. Obyek
mode*
1
00
1
01
1
h1
h5
h6
h7
h
h2
h3
h4
0,16112
3,75E-07
1,24E-07
1,52E-09
-6,7E-18
6,06E-13
-2E-17
0,16112
0,16112
3,75E-07
1,24E-07
1,52E-09
-6,7E-18
6,06E-13
-2E-17
0,16112
02
0,16112
3,75E-07
1,24E-07
1,52E-09
-6,7E-18
6,06E-13
1,98E-17
0,16112
1
03
0,16112
3,75E-07
1,24E-07
1,52E-09
-6,7E-18
6,06E-13
1,98E-17
0,16112
1
10
6,74708
5,41E-05
0,004206
0,932653
-0,04702
-0,00519
0,034663
7,666442
1
11
6,74708
5,41E-05
0,004206
0,932653
-0,04702
-0,00519
0,034663
7,666442
1
12
6,74708
5,41E-05
0,004206
0,932653
-0,04702
-0,00519
-0,03466
7,597116
1
13
6,74708
5,41E-05
0,004206
0,932653
-0,04702
-0,00519
-0,03466
7,597116
2
00
0,315683
0,031567
0,017118
0,001899
-1,1E-05
-0,00034
3,84E-08
0,365919
2
01
0,315683
0,031567
0,017118
0,001899
-1,1E-05
-0,00034
3,84E-08
0,365919
2
02
0,315683
0,031567
0,017118
0,001899
-1,1E-05
-0,00034
-3,8E-08
0,365919
2
03
0,315683
0,031567
0,017118
0,001899
-1,1E-05
-0,00034
-3,8E-08
0,365919
2
10
5,906096
8,541237
88,4469
4,875837
-101,001
-14,2207
-7,16905
-14,6202
2
11
5,906096
8,541237
88,4469
4,875837
-101,001
-14,2207
-7,16905
-14,6202
2
12
5,906096
8,541237
88,4469
4,875837
-101,001
-14,2207
7,169053
-0,28214
2
13
5,906096
8,541237
88,4469
4,875837
-101,001
-14,2207
7,169053
-0,28214
3
00
0,257194
0,030934
0,001555
0,000124
-5,4E-08
-2,2E-05
-4,3E-10
0,289784
3
01
0,257194
0,030934
0,001555
0,000124
-5,4E-08
-2,2E-05
-4,3E-10
0,289784
3
02
0,257194
0,030934
0,001555
0,000124
-5,4E-08
-2,2E-05
4,26E-10
0,289784
3
03
0,257194
0,030934
0,001555
0,000124
-5,4E-08
-2,2E-05
4,26E-10
0,289784
3
10
5,555257
9,10448
12,21503
0,402137
-0,88998
-1,21293
-0,04784
25,12615
3
11
5,555257
9,10448
12,21503
0,402137
-0,88998
-1,21293
-0,04784
25,12615
3
12
5,555257
9,10448
12,21503
0,402137
-0,88998
-1,21293
0,04784
25,22183
3
13
5,555257
9,10448
12,21503
0,402137
-0,88998
-1,21293
0,04784
25,22183
4
00
0,187125
0,002829
0,000791
9,51E-05
-2,6E-08
-5,1E-06
-7,3E-10
0,190835
4
01
0,187125
0,002829
0,000791
9,51E-05
-2,6E-08
-5,1E-06
-7,3E-10
0,190835
4
02
0,187125
0,002829
0,000791
9,51E-05
-2,6E-08
-5,1E-06
7,35E-10
0,190835
4
03
0,187125
0,002829
0,000791
9,51E-05
-2,6E-08
-5,1E-06
7,35E-10
0,190835
4
10
6,456015
1,672352
18,41085
0,066512
-0,0736
-0,08601
0,000348
26,44646
4
11
6,456015
1,672352
18,41085
0,066512
-0,0736
-0,08601
0,000348
26,44646
4
12
6,456015
1,672352
18,41085
0,066512
-0,0736
-0,08601
-0,00035
26,44576
4
13
6,456015
1,672352
18,41085
0,066512
-0,0736
-0,08601
-0,00035
26,44576
5
00
0,199937
0,002597
0,004307
0,000102
-6,8E-08
-5,2E-06
-8,8E-10
0,206938
5
01
0,199937
0,002597
0,004307
0,000102
-6,8E-08
-5,2E-06
-8,8E-10
0,206938
5
02
0,199937
0,002597
0,004307
0,000102
-6,8E-08
-5,2E-06
8,85E-10
0,206938
5
03
0,199937
0,002597
0,004307
0,000102
-6,8E-08
-5,2E-06
8,85E-10
0,206938
5
10
5,674996
2,006802
72,74856
0,655575
-4,37465
-0,90657
-1,16598
74,63873
5
11
5,674996
2,006802
72,74856
0,655575
-4,37465
-0,90657
-1,16598
74,63873
5
12
5,674996
2,006802
72,74856
0,655575
-4,37465
-0,90657
1,165982
76,97069
5
13
5,674996
2,006802
72,74856
0,655575
-4,37465
-0,90657
1,165982
76,97069
6
00
0,502363
0,197896
0,007214
0,000926
-2,3E-06
-0,0004
8,01E-07
0,708001
6
01
0,502363
0,197896
0,007214
0,000926
-2,3E-06
-0,0004
8,01E-07
0,708001
6
02
0,502363
0,197896
0,007214
0,000926
-2,3E-06
-0,0004
-8E-07
0,707999
10
No. Obyek
mode*
h1
h2
h3
h4
6
03
0,502363
0,197896
0,007214
0,000926
-2,3E-06
-0,0004
-8E-07
0,707999
6
10
4,954895
15,70857
7,677154
1,085054
-3,00155
-4,21325
-0,89335
21,31751
6
11
4,954895
15,70857
7,677154
1,085054
-3,00155
-4,21325
-0,89335
21,31751
6
12
4,954895
15,70857
7,677154
1,085054
-3,00155
-4,21325
0,893346
23,1042
6
13
4,954895
15,70857
7,677154
1,085054
-3,00155
-4,21325
0,893346
23,1042
7
00
0,295604
0,002224
7,3E-05
6,42E-05
-4,4E-09
3,02E-06
-2,6E-11
0,297969
7
01
0,295604
0,002224
7,3E-05
6,42E-05
-4,4E-09
3,02E-06
-2,6E-11
0,297969
7
02
0,295604
0,002224
7,3E-05
6,42E-05
-4,4E-09
3,02E-06
2,61E-11
0,297969
7
03
0,295604
0,002224
7,3E-05
6,42E-05
-4,4E-09
3,02E-06
2,61E-11
0,297969
7
10
3,360558
0,30266
0,478587
0,216923
0,038123
0,089548
0,058582
4,544981
7
11
3,360558
0,30266
0,478587
0,216923
0,038123
0,089548
0,058582
4,544981
7
12
3,360558
0,30266
0,478587
0,216923
0,038123
0,089548
-0,05858
4,427817
7
13
3,360558
0,30266
0,478587
0,216923
0,038123
0,089548
-0,05858
4,427817
8
00
0,163419
2,25E-06
0,000373
2,06E-06
-5,7E-11
-3,1E-09
-8,1E-13
0,163796
8
01
0,163419
2,25E-06
0,000373
2,06E-06
-5,7E-11
-3,1E-09
-8,1E-13
0,163796
8
02
0,163419
2,25E-06
0,000373
2,06E-06
-5,7E-11
-3,1E-09
8,05E-13
0,163796
8
03
0,163419
2,25E-06
0,000373
2,06E-06
-5,7E-11
-3,1E-09
8,05E-13
0,163796
8
10
6,389908
0,009049
15,41769
0,815356
2,760441
-0,07586
-0,85858
24,458
8
11
6,389908
0,009049
15,41769
0,815356
2,760441
-0,07586
-0,85858
24,458
8
12
6,389908
0,009049
15,41769
0,815356
2,760441
-0,07586
0,858585
26,17517
8
13
6,389908
0,009049
15,41769
0,815356
2,760441
-0,07586
0,858585
26,17517
9
00
0,669333
0,20348
0,00534
0,000438
-3E-07
-9,3E-06
-6E-07
0,878581
9
01
0,669333
0,20348
0,00534
0,000438
-3E-07
-9,3E-06
-6E-07
0,878581
9
02
0,669333
0,20348
0,00534
0,000438
-3E-07
-9,3E-06
5,98E-07
0,878582
9
03
0,669333
0,20348
0,00534
0,000438
-3E-07
-9,3E-06
5,98E-07
0,878582
9
10
3,160809
4,139301
0,485561
0,029634
-0,00157
-0,00292
-0,00319
7,807621
9
11
3,160809
4,139301
0,485561
0,029634
-0,00157
-0,00292
-0,00319
7,807621
9
12
3,160809
4,139301
0,485561
0,029634
-0,00157
-0,00292
0,003188
7,813998
h5
h6
h7
h
9
13
3,160809
4,139301
0,485561
0,029634
-0,00157
-0,00292
0,003188
7,813998
10
00
0,225426
0,001375
0,000652
0,000458
2,49E-07
1,7E-05
-2,3E-08
0,227928
10
01
0,225426
0,001375
0,000652
0,000458
2,49E-07
1,7E-05
-2,3E-08
0,227928
10
02
0,225426
0,001375
0,000652
0,000458
2,49E-07
1,7E-05
2,27E-08
0,227928
10
03
0,225426
0,001375
0,000652
0,000458
2,49E-07
1,7E-05
2,27E-08
0,227928
10
10
3,658185
0,066225
0,262339
0,473414
-0,16223
0,119555
0,038939
4,456427
10
11
3,658185
0,066225
0,262339
0,473414
-0,16223
0,119555
0,038939
4,456427
10
12
3,658185
0,066225
0,262339
0,473414
-0,16223
0,119555
-0,03894
4,37855
10
13
3,658185
0,066225
0,262339
0,473414
-0,16223
0,119555
-0,03894
4,37855
11
00
0,58477
0,043265
0,000109
2,89E-05
-7,5E-10
-1,9E-06
-1,4E-09
0,628171
11
01
0,58477
0,043265
0,000109
2,89E-05
-7,5E-10
-1,9E-06
-1,4E-09
0,628171
11
02
0,58477
0,043265
0,000109
2,89E-05
-7,5E-10
-1,9E-06
1,45E-09
0,628171
11
03
0,58477
0,043265
0,000109
2,89E-05
-7,5E-10
-1,9E-06
1,45E-09
0,628171
11
10
2,630861
0,739899
0,120273
0,004985
8,26E-05
-0,00375
8,99E-05
3,492443
11
11
2,630861
0,739899
0,120273
0,004985
8,26E-05
-0,00375
8,99E-05
3,492443
11
12
2,630861
0,739899
0,120273
0,004985
8,26E-05
-0,00375
-9E-05
3,492263
11
13
2,630861
0,739899
0,120273
0,004985
8,26E-05
-0,00375
-9E-05
3,492263
12
00
0,286748
0,00247
0,000842
0,000437
-2,7E-07
-2,2E-05
4,55E-09
0,290475
12
01
0,286748
0,00247
0,000842
0,000437
-2,7E-07
-2,2E-05
4,55E-09
0,290475
12
02
0,286748
0,00247
0,000842
0,000437
-2,7E-07
-2,2E-05
-4,5E-09
0,290475
12
03
0,286748
0,00247
0,000842
0,000437
-2,7E-07
-2,2E-05
-4,5E-09
0,290475
11
No. Obyek
mode*
h1
12
10
3,608384
12
11
3,608384
12
12
12
13
h2
h5
h6
h7
h
h3
h4
0,15958
0,436556
0,002528
-3,8E-05
-0,00023
-7,5E-05
4,206708
0,15958
0,436556
0,002528
-3,8E-05
-0,00023
-7,5E-05
4,206708
3,608384
0,15958
0,436556
0,002528
-3,8E-05
-0,00023
7,48E-05
4,206857
3,608384
0,15958
0,436556
0,002528
-3,8E-05
-0,00023
7,48E-05
4,206857
Keterangan: * mode: 0x = obyek dengan pixel penuh 1x = obyek dengan informasi tepian (edge) saja x0 = obyek dengan posisi normal x1 = obyek dengan posisi dirotasi 90 o x2 = obyek dengan posisi dicerminkan pada sumbu vertikal x3 = obyek dengan posisi dicerminkan pada sumbu horisontal h1 – h7 : nilai-nilai momen invarian
12