16
TUGAS MATA KULIAH TEKNIK KLASIFIKASI DAN PENGENALAN POLA EKSTRAKSI CIRI CITRA BERDASARKAN JARAK KOMPONEN WAJAH DAN PERANCANGAN PROGRAM PERCEPTRON PEMBELAJARAN TERBMBING OLEH : AFRI YUDAMSON 11/322869/PTK/7542 PROGRAM STUDI S2 RREGULER JURUSAN TEKNIK ELEKTRO DAN TEKNIK INFORMASI FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA 2012

Tugas TKPP Afri Yudamson

Embed Size (px)

DESCRIPTION

hby hbygy bygvtyt hbiu

Citation preview

Page 1: Tugas TKPP Afri Yudamson

TUGAS MATA KULIAH TEKNIK KLASIFIKASI DAN PENGENALAN POLA

EKSTRAKSI CIRI CITRA BERDASARKAN JARAK KOMPONEN WAJAH DAN

PERANCANGAN PROGRAM PERCEPTRON PEMBELAJARAN TERBMBING

OLEH :

AFRI YUDAMSON

11/322869/PTK/7542

PROGRAM STUDI S2 RREGULER

JURUSAN TEKNIK ELEKTRO DAN TEKNIK INFORMASI

FAKULTAS TEKNIK

UNIVERSITAS GADJAH MADA

2012

Page 2: Tugas TKPP Afri Yudamson

Latar belakang

Identifikasi wajah tiga dimensi dengan menggunakan dua buah kamera sebagai

perangkat untuk menangkap citra input dari dua sudut yang berbeda. Berikut gambaran

skema peletakkan webcam terhadap sampel wajah.

Gambar 1. Skema peletakkan webcam terhadap wajah sampel.

Dari masing- masing webcam didapatkan citra sampel berupa wajah dari sudut

pandang yang berbeda. Citra tersebut akan melalui proses filterisasi, normalisasi range

kecerahan(brightness) dan kontras, normalisasi posisi, dan segmentasi. Filterisasi

dimaksdukan untuk menghasilkan citra dengan noise yang minimum. Normalisasi range

kecerahan dan kontras bertujuan menghasilkan citra dengan tingkat kecerahan dan

kontras yang sesuai dengan standar yang diinginkan. Normalisasi posisi dilakukan

dengan rotasi citra agar menghasilkan citra dengan kemiringan sesuai standar yang

diinginkan.

Setelah didapatkan citra yang terstandarisasi, akan dilakukan ekstraksi ciri. Proses

ini dilakukan dengan menghitung nilai perbandingan nilai proyeksi jarak mata kiri-

hidung terhadap jarak mata kiri-mata kanan. Nilai yang didapat dari dua gambar yang

dihasilkan dari masing-masig webcam akan menjadi masukkan bagi Perceptron. Proses

ini dapat diperjelas dari gambar berikut.

d1’

d2’

mata hidung

wajah sampel

webcam

webcam

Page 3: Tugas TKPP Afri Yudamson

Gambar 2. Model citra sampel

Keterangan:

= vektor jarak mata kiri-mata kanan (d)

= vektor jarak mata kiri-hidung (d1)

= proyeksi vektor jarak mata kiri-hidung terhadap vektor jarak mata kiri-mata kanan

(d1’)

Dari citra yang dihasilkan oleh masing-masing webcam didapatkan nilai | d | dan

nilai | d1’ |. Kemudian dihitung nilai x1 dan x2 dengan persamaan berikut.

�1 =|���|

|�| dari citra hasil webcam pertama

�2 =|���|

|�| dari citra hasil webcam kedua

x1 dan x2 berikutnya akan menjadi masukkan untuk Perceptron. Output yang dihasilkan

dari perceptron berupa bobot-bobot akhir yang dapat mengidentifikasi masukan

sebagai wajah 3 dimensi atau bukan.

Untuk mengetahui titik-titik pusat komponen wajah(mata dan hidung) diperlukan

proses pemotongan gambar berdasarkan letak komponen wajah. Pada tugas

matakuliah ini dilakukan eksperimen pemotongan citra wajah dua dimensi sebagai

sampel untuk mengetahui letak komponen wajah(mata dan hidung) dan mengekstraksi

ciri citra berdasarkan jarak komponen-komponen wajah yang akan digunakan sebagai

input untuk perceptron.

hidung

mata mata

Wajah sampel

Page 4: Tugas TKPP Afri Yudamson

Tujuan

Tujuan dari eksperimen yang dilakukan adalah untuk mengetahui letak komponen

wajah yang selanjutnya akan dicari titik pusat koordinat masing-masing komponen wajah

dan menghitung nilai perbandingan jarak antar komponen wajah. Selain itu, eksperimen ini

bertujuan untuk merancang program berbasis perceptron pembelajaran terbimbing.

Metode penelitian

Langkah-langkah yang dilakukan antara lain:

1. Mempersiapkan file citra sampel.

2. Mempersiapkan software Matlab.

3. Membuat program untuk mengambil dan mengolah citra sampel.

4. Menguji program.

5. Membuat program perceptron pembelajaran terbimbing.

6. Menguji program untuk mendapatkan nilai bobot-bobot akhir.

Untuk langkah pertama, file citra sampel yang dipakai adalah citra jpeg berukuran 1377x945

pixel. Citra sampel dapat dilihat pada gambar berikut.

Gambar 3. Citra sampel.

Listing program yang ditulis sebagai berikut:

clc

clear

Foto=imread('D:\Do n Wo\PICTURE\PICTURE\mine\edit\pas foto

4x6.jpg');

G=rgb2gray(Foto);

Blck=im2bw(Foto);

Page 5: Tugas TKPP Afri Yudamson

Crp1=imcrop(G,[300 450 150 100]);

Crp2=imcrop(G,[500 450 150 100]);

Crp3=imcrop(G,[425 575 100 100]);

subplot(2,2,1);

imshow(Foto);

subplot(2,2,2);

imshow(Crp1);

subplot(2,2,3);

imshow(Crp2);

subplot(2,2,4);

imshow(Crp3);

Program tersebut pertama-tama mengambil citra sampel dengan alamat direktori

tertentu kemudian mengubah citra sampel dari range warna RGB ke Grayscale. Setelah itu

memotong citra sampel berdasarkan letak komponen wajah(mata dan hidung). Kemudian

menampilkan citra asli, citra mata kiri, citra mata kanan, dan citra hidung. Untuk mata kiri

dan mata kanan diatur citra berukuran 150x100 piksel sedangkan citra hidung berukuran

100x100 piksel.

Hasil pengujian program sebagai berikut:

Gambar 4. Citra hasil running program.

Page 6: Tugas TKPP Afri Yudamson

Setelah citra terpotong berdasarkan komponen wajahnya, akan dicari letak titik-titik pusat

masing-masing komponen wajah tersebut. Dapat dilihat pada gambar berikut.

Gambar 5. Letak titik pusat komponen wajah.

Ket:

= vektor antar pusat mata kanan dan kiri ��̅�

= vektor antara pusat mata kiri dengan pusat hidung �������

= vektor proyeksi����� terhadap �̅ ���̅

� �

Untuk mengetahui jarak antar komponen wajah diperlukan nilai letak komponen

wajah yaitu �̅, ��, dan �̅ berdasarkan citra yang sebelumnya telah dipotong. Karena objek

berupa citra 2 dimensi, maka masing-masing vektor pusat memiliki 2 komponen penyusun

yaitu �̅ dan ��. Jika dimisalkan jarak antara titik awal citra komponen mata kiri dengan titik

awal citra komponen mata kanan adalah �� dan jarak antara titik awal citra komponen mata

kiri dengan titik awal citra komponen hidung adalah �� maka,

�̅ = ���

���

�� = ���

���

D

E

Page 7: Tugas TKPP Afri Yudamson

�̅ = ���

���

�� = (��)

�� = ���

���

Dari vektor-vektor di atas dapat dicari nilai ��̅� dan �������� sebagai berikut.

�̅ = �� + �� − �̅

��̅� = �(�� + �� − �� )� + (�� − �� )�

����� = �� + �̅ − �̅

������� = �(�� + �� − �� )� + (�� + �� − �� )�

�������� =

�̅

|�|���� ∙ �����

�������� =

(�� + �� − �� )(�� + �� − �� ) + (�� − �� )(�� + �� − �� )

�(�� + �� − �� )� + (�� − �� )�

Langkah berikutnya adalah menghitung perbandingan antara nilai proyeksi vektor

jarak mata kiri-hidung terhadap vektor jarak mata kiri-kanan dengan nilai vektor jarak mata

kiri-kanan. Nilai ini akan dijadikan input pada Perceptron dengan dua buah citra masukan.

Untuk itu, nilai ini dilambangkan sebagai X1 (untuk citra hasil penangkapan webcam1) dan

X2 (untuk citra hasil penangkapan webcam2). Dengan demikian dapat dibuat persamaan

sebagai berikut.

X =���

�����

��̅�

X =(�� + �� − �� )(�� + �� − �� ) + (�� − �� )(�� + �� − �� )

(�� + �� − �� )� + (�� − �� )�

Pada pemrograman dengan Matlab terdapat permasalahan yang belum dapat

terpecahkan yaitu mencari letak/indeks titik pusat masing-masing komponen wajah. Dengan

demikian pencarian letak titik pusat masing-masing komponen wajah dilakukan dengan

manual sehingga didapatkan data sebagai berikut.

�̅ = �8257

Page 8: Tugas TKPP Afri Yudamson

�� = �8250

�̅ = �5552

�� = (200)

�� = �125125

Dari data di atas dapat dihitung nilai X sebagai berikut.

X =(200 + 82 − 82)(125 + 55 − 82) + (50 − 57)(125 + 52 − 57)

(200 + 82 − 82)� + (50 − 57)�

X =200.98 + (−7)120

200� + (−7)�

X =18760

40049

X = 0,4684

Langkah berikutnya adalah merancang program identifikasi pola wajah tiga dimensi berbasis

perceptron. Karena target sudah jelas, maka jenis pembelajaran yang digunakan adalah

pembelajaran terbimbing. Input in1 akan bernilai 1 apabila X1<0,4, selain itu akan bernilai 0

sedangkan Input in2 akan bernilai 1 apabila X1>0,6, selain itu akan bernilai 0. Berikut table

yang merepresentasikan hubungan input dengan target.

Table 1. Tabel hubungan input dengan target.

In1 In2 Target

1 1 1

1 0 0

0 1 0

0 0 0

Page 9: Tugas TKPP Afri Yudamson

Dari tabel 1 dirancang sebuah program yang dapat memberikan nilai bobot-bobot

akhir untuk perceptron agar dapat menghasilkan output yang sesuai dengan target. Diagram

alir pembelajaran program dapat dilihat pada gambar berikut.

Gambar 6. Diagram alir pembelajaran perceptron.

Page 10: Tugas TKPP Afri Yudamson

Berikut listing program perceptron dengan menggunakan software Matlab.

clear

clc

X1=input('masukkan input X1 = ');

X2=input('masukkan input X2 = ');

T=input('masukkan target T = ');

bias=1;

alpha=input('masukkan konstanta pembelajaran = ');

w1=0; %penentuan nilai awal bobot untuk X1

w2=0; %penentuan nilai awal bobot untuk X2

t=1; %penentuan nilai awal waktu

w0=0; %penentuan nilai awal bobot untuk bias

error=[1 1 1 1]; %penentuan nilai awal error

epoch=1; %penentuan nilai awal epoch

fprintf('X1 X2 w0 w1 w2 T Y error

dw0 dw1 dw2\n');

while error(1)~=0 || error(2)~=0 || error(3)~=0 || error(4)~=0

sigma=X1(t)*w1+X2(t)*w2+bias*w0; %menghitung jumlah input

dikalikan bobot + bias

if sigma > 0 %menghitung nilai keluaran

Y=1;

else

Y=0;

end

error(t)=T(t)-Y;

dw0=error(t)*alpha*bias;

dw1=error(t)*alpha*X1(t);

Page 11: Tugas TKPP Afri Yudamson

dw2=error(t)*alpha*X2(t);

w0=w0+dw0; %update bobot untuk bias

w1=w1+dw1; %update bobot untuk X1

w2=w2+dw2; %update bobot untuk X2

fprintf('%2d %2d %2.1f %2.1f %2.1f %2d

%2d %2.1f %2.1f %2.1f %2.1f\n', X1(t), X2(t), w0,

w1, w2, T(t), Y, error(t), dw0, dw1, dw2);

t=t+1; %penambahan nilai waktu

if t==5 %penambahan nilai epoch

t=1;

epoch=epoch+1;

end

end

Epoch=epoch

w0_akhir=w0

w1_akhir=w1

w2_akhir=w2

Hasil running program dengan data sesuai table 1 dan nilai konstanta pembelajaran sebesar

0,3 adalah sebagai berikut.

masukkan input X1 = [1 1 0 0]

masukkan input X2 = [1 0 1 0]

masukkan target T = [1 0 0 0]

masukkan konstanta pembelajaran = 0.3

X1 X2 w0 w1 w2 T Y error dw0 dw1 dw2

1 1 0.3 0.3 0.3 1 0 1.0 0.3 0.3 0.3

1 0 0.0 0.0 0.3 0 1 -1.0 -0.3 -0.3 0.0

0 1 -0.3 0.0 0.0 0 1 -1.0 -0.3 0.0 -0.3

Page 12: Tugas TKPP Afri Yudamson

0 0 -0.3 0.0 0.0 0 0 0.0 0.0 0.0 0.0

1 1 0.0 0.3 0.3 1 0 1.0 0.3 0.3 0.3

1 0 -0.3 0.0 0.3 0 1 -1.0 -0.3 -0.3 0.0

0 1 -0.3 0.0 0.3 0 0 0.0 0.0 0.0 0.0

0 0 -0.3 0.0 0.3 0 0 0.0 0.0 0.0 0.0

1 1 0.0 0.3 0.6 1 0 1.0 0.3 0.3 0.3

1 0 -0.3 0.0 0.6 0 1 -1.0 -0.3 -0.3 0.0

0 1 -0.6 0.0 0.3 0 1 -1.0 -0.3 0.0 -0.3

0 0 -0.6 0.0 0.3 0 0 0.0 0.0 0.0 0.0

1 1 -0.3 0.3 0.6 1 0 1.0 0.3 0.3 0.3

1 0 -0.3 0.3 0.6 0 0 0.0 0.0 0.0 0.0

0 1 -0.6 0.3 0.3 0 1 -1.0 -0.3 0.0 -0.3

0 0 -0.6 0.3 0.3 0 0 0.0 0.0 0.0 0.0

1 1 -0.3 0.6 0.6 1 0 1.0 0.3 0.3 0.3

1 0 -0.6 0.3 0.6 0 1 -1.0 -0.3 -0.3 0.0

0 1 -0.6 0.3 0.6 0 0 0.0 0.0 0.0 0.0

0 0 -0.6 0.3 0.6 0 0 0.0 0.0 0.0 0.0

1 1 -0.6 0.3 0.6 1 1 0.0 0.0 0.0 0.0

1 0 -0.6 0.3 0.6 0 0 0.0 0.0 0.0 0.0

Epoch =

6

w0_akhir =

-0.6000

w1_akhir =

0.3000

w2_akhir =

0.6000

Page 13: Tugas TKPP Afri Yudamson

Dari hasil running didapatkan nilai bobot yang sesuai untuk table 1 adalah

�0 = −0,6; �1 = 0,3; �2 = 0,6. Nilai bobot ini akan menjadi dasar untuk mengenali

masukan sebagai citra wajah tiga dimensi atau citra wajah dua dimensi. Berikut diagram alir

program untuk identifikasi pola wajah tiga dimensi.

Gambar 7. Diagram alir perceptron pengambilan keputusan.

Page 14: Tugas TKPP Afri Yudamson

Berikut listing program perceptron untuk mengenali citra masukan.

clear

clc

X1=input('masukkan nilai input X1 = ');

X2=input('masukkan nilai input X2 = ');

w0=-0.6;

w1=0.3;

w2=0.6;

if X1 < 0.4

In1=1;

else

In1=0;

end

if X2 > 0.6

In2=1;

else

In2=0;

end

In1

In2

sigma=In1*w1+In2*w2+w0

if sigma > 0

Y=1

fprintf('\n citra masukkan adalah CITRA WAJAH 3

DIMENSI\n');

else

Y=0

Page 15: Tugas TKPP Afri Yudamson

fprintf('\n citra masukkan adalah CITRA WAJAH 2

DIMENSI\n');

end

Hasil running dengan masukkan X1 = 0,3 dan X2 = 0,65 adalah sebagai berikut.

masukkan nilai input X1 = 0.3

masukkan nilai input X2 = 0.65

In1 =

1

In2 =

1

sigma =

0.3000

Y =

1

citra masukkan adalah CITRA WAJAH 3 DIMENSI

Hasil running dengan masukkan X1 = 0,3 dan X2 = 0, 5 adalah sebagai berikut.

masukkan nilai input X1 = 0.3

masukkan nilai input X2 = 0.5

In1 =

1

In2 =

0

sigma =

-0.3000

Y =

Page 16: Tugas TKPP Afri Yudamson

0

citra masukkan adalah CITRA WAJAH 2 DIMENSI

Kesimpulan

Kesimpulan yang dapat diambil dari eksperimen yang telah dilakukan adalah citra

sampel dapat dipotong sesuai dengan letak komponen wajah yaitu mata dan hidung. Nilai

input untuk Perceptron telah dapat dihitung dan dapat diujikan untuk mengenali citra

masukan sebagai citra wajah tiga dimensi atau bukan. Namun terdapat permasalahan yang

belum dapat terpecahkan yaitu merancang program yang dapat memberikan nilai koordinat

masing-masing pusat komponen citra wajah.