BAB 2 LANDASAN TEORI
2.1 Pengenalan Pola Pengenalan
pola
(pattern
recognition)
adalah
suatu
ilmu
untuk
mengklasifikasikan atau menggambarkan sesuatu berdasarkan pengukuran kuantitatif fitur atau sifat utama dari suatu obyek (Putra,2010). Seperti halnya kemampuan manusia yang dapat mengenali dan membedakan objek yang dilihatnya, demikian pula suatu komputer diharapkan mampu meniru kemampuan visual manusia dalam mengenali suatu citra. Komputer menerima input berupa citra objek yang akan diidentifikasi, memproses citra tersebut dan memberikan output berupa deskripsi objek di dalam citra (Siregar, 2013).
Gambar 2.1 Skema Pengenalan Pola (Marbun,2014) 2.2 Deteksi Tepi Tepi adalah sebuah himpunan dari piksel-piksel yang terhubung yang berada pada batas (boundary) diantara dua region. Defenisi tepi membutuhkan kemampuan untuk mengukur transisi gray-level dengan cara yang tepat (Fajar,2013). Tepian dari
Universitas Sumatera Utara
6
suatu citra mengandung informasi penting dari citra bersangkutan. Tepian citra dapat merepresentasikan objek-objek yang terkandung dalam citra, bentuk, dan ukurannya serta terkadang juga informasi tentang tekstur (Johandra,2014). Oleh karena itu, tepi berguna untuk proses segmentasi dan identifikasi objek di dalam citra. Ketebalan dari tepi ditentukan oleh panjang dari ramp, yang merupakan transisi dari gray level awal sampai gray level akhir. Panjang ramp ditentukan oleh slope, yang ditentukan juga oleh tingkat kekaburan. Berarti bahwa tepi yang kabur cenderung tebal dan tepi yang tajam cenderung tipis.(Hermawati, 2013) Deteksi tepi adalah proses untuk menemukan perubahan intensitas yang berbeda nyata dalam sebuah bidang citra. Deteksi tepi merupakan langkah pertama untuk melingkupi informasi di dalam citra (Putra,2010). Setelah dilakukan deteksi tepi akan dihasilkan citra biner. Citra biner merupakan citra yang hanya memiliki dua nilai yaitu hitam dan putih atau dalam bentuk nilai yaitu 0 dan 1 (Marbun, 2014). Deteksi tepi pada suatu citra memiliki tujuan sebagai berikut (Johandra, 2014): 1. Menandai bagian yang menjadi detail citra. 2. Memperbaiki detail citra yang kabur karena error atau adanya efek dari proses akuisisi citra. Beberapa jenis deteksi tepi adalah deteksi tepi Robert, Prewitt, Log dan Canny. 2.2.1 Deteksi tepi Canny Deteksi tepi Canny dapat mendeteksi tepian yang sebenarnya dengan tingkat kesalahan minimum (Marbun, 2014). Dengan kata lain, operator Canny didesain untuk menghasilkan citra tepian yang optimal. Operator ini diformulasikan dengan 3 tujuan utama (Hermawati, 2013): a. Optimal detection, dengan tidak adanya respon yang salah b. Good localization, dengan jarak minimal antara posisi tepi sebenarnya dengan posisi yang terdeteksi c. Single response, dengan mengelimasi multiple response menjadi satu garis tepi saja.
Universitas Sumatera Utara
7
Berikut adalah langkah-langkah dalam melakukan deteksi tepi Canny (Putra,2010): 1. Menghilangkan derau yang ada pada citra dengan mengimpelementasikan tapis Gaussian. Proses ini akan menghasilkan citra yang tampak sedikit buram. 2. Melakukan deteksi tepi dengan salah satu operator deteksi tepi seperti Roberts, Prewitt, atau Sobel dengan melakukan pencarian secara horisontal (Gx ) dan secara vertikal (Gy). 3. Menentukan arah tepian yang ditemukan dengan menggunakan rumus sebagai berikut:
Selanjutnya membagi ke dalam 4 warna sehingga garis dengan arah berbeda dan memiliki warna yang berbeda. Pembagiannya adalah 0-22,5 dan 157,5-180 derajat berwarna kuning, 22,5-67,5 berwarna hijau dan derajat 67,5157,5 berwarna merah. 4. Memperkecil garis tepi yang muncul dengan menerapkan nonmaximum suppresion. 5. Menerapkan dua buah tresholding Dalam proses pendeteksian tepi terhadap citra yang dilakukan dengan metode Canny
dapat menggunakan function di Matlab, sehingga cukup menggunakan
function edge dalam pengkodean (Marbun, 2014). Gambar 2.3 merupakan contoh deteksi tepi menggunakan operator Canny:
Gambar 2.2 Citra Asli
Universitas Sumatera Utara
8
Gambar 2.3 Citra Hasil Deteksi Tepi Canny 2.3 Perbaikan Citra (Image Enhancement) Perbaikan citra bertujuan meningkatkan kualitas tampilan citra untuk pandangan manusia atau untuk mengkonversi suatu citra agar memiliki format yang lebih baik sehingga citra tersebut menjadi lebih mudah diolah dengan mesin. Perbaikan suatu citra dapat dilakukan dengan operasi titik (point operation), operasi spasial (spatial operation), dan operasi aritmatik (arithmatic operation) (Putra, 2010). 2.3.1 Operasi spasial (filtering) Pada proses filtering, nilai pixel baru dari suatu citra umumnya dihitung berdasarkan pixel tetangga. Berdasarkan cara penghitungan nilai pixel baru tersebut, proses filtering dapat dikelompokkan menjadi 2, yaitu tapis linier dan tapis non linier. 2.3.2 High-pass filtering High-pass filtering merupakan salah satu jenis dari linier filtering. High-pass filtering merupakan kebalikan dari low-pass filtering yaitu mempertajam komponen frekuensi tinggi dan menghilangkan (mengurangi) komponen frekuensi rendah, sehingga filter ini sangat cocok untuk penajaman tepi citra. Nilai koefisien filter pada koordinat pusat bernilai positif dan koefisien kelilingnya bernilai negatif. Bila proses pentapisan dilakukan diatas area yang nilai intensitasnya konstan atau mengalami perubahan yang lamban maka nilai pixel keluaran adalah nol atau sangat kecil.
Universitas Sumatera Utara
9
Adapun prosedur untuk menapis citra dalam kawasan frekuensi adalah sebagai berikut: 1. Input citra digital berupa citra *.jpg dengan ukuran lebar = ukuran tinggi. 2. Lakukan proses transformasi fourier dari citra input dengan menggunakan FFT 2D untuk mendapatkan F(u,v) yang merupakan nilai kompleks dari transformasi fourier. 3. Hitung filter mask H(u,v) dengan ukuran lebar dan tinggi sama dengan ukuran citra input. 4. Kalikan F(u,v) dengan H(u,v) untuk mendapatkan G(u,v) yang merupakan hasil perkalian antara transformasi dengan filter mask. 5. Lakukan proses invers transformasi fourier dari G(u,v) menggunakan invers DFT (Descrete Fourier Transformation ) 2D sehingga diperolehlah citra hasil g(x,y). ( Eko, 2011) Dimana untuk transformasi Fourier diskrit dua dimensi dari sebuah fungsi diskrit f(x,y) dinyatakan sebagai berikut:
Dan inversnya: Untuk u = 1,2,....M−1; x = 1,2,....M−1; v = 1,2,....N−1 y = 1,2,....N−1. Fungsi filter untuk High Pass filter adalah:
Dimana, H(u,v) : fungsi filter
Do : konstanta positif (cutoff frekuensi)/titik pusat transformasi D(u,v): jarak antara titik (u,v) dalam domain frekuensi dan pusat persegi panjang frekuensi.
Salah satu contoh matriks filternya dapat dilihat seperti gambar dibawah ini (Putra, 2010).
Universitas Sumatera Utara
10
Gambar 2.4 Contoh Matriks High Pass Filtering Contoh hasil dari highpass filtering dapat dilihat seperti Gambar 2.5:
(a)
(b)
(c)
Gambar 2.5 (a) Citra asli (b) Citra Grayscale (c) Citra hasil highpass filtering
2.4 Jaringan Syaraf Tiruan Jaringan syaraf tiruan adalah sistem pembelajaran berbentuk jaringan yang terinspirasi berdasarkan jaringan syaraf manusia. Jaringan syaraf tiruan merupakan sistem adaptasi yang dapat merubah strukturnya untuk memecahkan masalah berdasarkan
informasi
yang
masuk
dan
keluar
melalui
jaringan
tersebut
(Darmawan,2010). Jaringan syaraf tiruan tercipta sebagai suatu generalisasi model matematis dari pemahaman manusia ( human cognition ) yang didasarkan pada (Wuryandari & Afrianto, 2012): 1. Pemrosesan informasi terjadi pada elemen sederhana yang disebut neuron 2. Sinyal mengalir diantara sel syaraf/neuron melalui suatu sambungan penghubung 3. Setiap sambungan penghubung memiliki bobot yang bersesuaian. Bobot ini akan digunakan untuk menggandakan/mengalikan sinyal yang dikirim melaluinya.
Universitas Sumatera Utara
11
4. Setiap sel syaraf akan menerapkan fungsi aktivasi terhadap sinyal hasil penjumlahan berbobot yang masuk kepadanya untuk menentukan sinyal keluarannya.
Gambar 2.6 Contoh Model Neuron Jaringan Syaraf Tiruan (Siang, 2009)
Jaringan syaraf tiruan mempunyai struktur tersebar paralel yang sangat besar dan mempunyai kemampuan belajar sehingga bisa melakukan generalisasi yaitu bisa menghasilkan output yang benar untuk input yang belum pernah dilatihkan. Defenisi belajar dalam jaringan syaraf tiruan adalah suatu proses dimana parameter-parameter bebas jaringan syaraf tiruan diadaptasikan melalui suatu proses perangsangan berkelanjutan oleh lingkungan dimana jaringan berada (Suyanto, 2011). Pembelajaran pada jaringan syaraf tiruan pada dasarnya dideskripsikan lewat perubahan bobot w antara neuron, tujuan akhir pembelajaran terhadap variabel masukan x adalah nilai keluaran output Y sedekat mungkin dengan nilai keluaran yang ditargetkan (beda nilai antara keluaran terhadap masukan disebut error value) (Muis,2009). Jaringan syaraf tiruan dapat digunakan untuk (Siang, 2009): 1. Pengenalan pola (Pattern Recognition) Jaringan syaraf tiruan dapat dipakai untuk mengenali pola ( huruf, angka, suara atau tanda tangan) yang sudah sedikit berubah. Hal ini mirip dengan otak manusia yang masih mampu mengenali orang yang sudah beberapa waktu tidak dijumpainya (mungkin wajah/bentuk tubuhnya yang sudah sedikit berubah). 2.
Signal Processing Jaringan syaraf tiruan (model Adaline) dapat dipakai untuk menekan noise dalam saluran telpon.
Universitas Sumatera Utara
12
3. Peramalan Jaringan syaraf tiruan juga dapat dipakai untuk meramalkan apa yang akan terjadi di masa yang akan datang berdasarkan pola kejadian yang ada di masa yang lampau. Peramalan ini dapat dilakukan mengingat kemampuan jaringan syaraf tiruan dapat membuat generalisasi dari apa yang sudah ada sebelumnya. Jaringan syaraf tiruan juga dapat menyelesaikan masalah dalam bidang kontrol dan kedokteran. 3. Menyelesaikan persoalan optimasi terbatas (Darmawan ,2010) Meskipun banyak aplikasi menjanjikan yang dapat dilakukan oleh jaringan syaraf tiruan, namun jaringan syaraf tiruan juga memiliki beberapa keterbatasan umum. Salah satunya adalah ketidakakuratan hasil yang diperoleh(Siang,2009). Karakteristik dari jaringan syaraf tiruan adalah (Darmawan,2010): 1.
Arsitektur jaringan : pola keterhubungan antar neuron
2.
Algoritma jaringan (pelatihan,pembelajaran) metode menentukan nilai bobot hubungan
3.
Fungsi aktivasi : menentukan nilai keluaran berdasarkan nilai total masukannya.
2.4.1
Arsitektur jaringan Pada jaringan syaraf tiruan, neuron-neuron akan dikumpulkan dalam lapisan-
lapisan (layer) yang disebut dengan lapisan neuron (neuron layers). Neuron-neuron pada satu lapisan akan dihubungkan dengan lapisan-lapisan sebelum dan sesudahnya. Informasi yang diberikan pada jaringan syaraf akan dirambatkan lapisan ke lapisan, mulai dari lapisan masukan sampai ke lapisan keluaran melalui lapisan tersembunyi (hidden layer). Pola dimana neuron-neuron pada jaringan syaraf tiruan disusun berhubungan erat dengan algoritma belajar yang digunakan untuk melatih jaringan. Secara umum, arsitektur jaringan syaraf tiruan dibagi 4, yaitu ( Suyanto,2011):
Universitas Sumatera Utara
13
1.
Single-Layer feedforward networks Bentuk jaringan berlapis yang paling sederhana yaitu lapis tunggal, hanya
terdapat input layer dengan node sumber yang terproyeksi ke dalam output layer dari neuron, tetapi tidak sebaliknya.
Gambar 2.7 Single Layer Network 2.
Multi-layer feedforward network
Arsitektur jaringan ini memiliki satu atau lebih lapis tersembunyi (hidden layer). Jaringan dengan banyak lapisan ini dapat menyelesaikan permasalahan yang kompleks, namun cenderung membutuhkan waktu yang lebih lama. Contoh jaringan yang menerapkan arsitektur ini adalah backpropagation.
Gambar 2.8 Multi Layer Network
Universitas Sumatera Utara
14
3.
Recurrent network
Recurrent network adalah jaringan yang mempunyai minimal satu feeedback loop. Feedback loop mempengaruhi kemampuan belajar dan kinerja jaringan.
Gambar 2.9 Recurrent Network dengan hidden neuron 4.
Lattice structure
Sebuah lattice terdiri dari satu dimensi, dua dimensi, atau lebih array neuron dengan himpunan node sumber yang bersesuaian yang memberikan sinyal input ke array;dimensi lattice mengacu pada jumlah dimensi ruang dimana graph berada.
Gambar 2.10 Lattice 1 dimensi dengan 3 neuron
Universitas Sumatera Utara
15
Berdasarkan paradigma pembelajarannya, jaringan syaraf tiruan terbagi 2 yakni supervised dan unsupervised learning ( Suyanto,2011):
1.
Supervised learning Supervised atau active learning adalah jenis jaringan syaraf tiruan dimana
dalam proses belajar membutuhkan sampel input-output. Sampel input-output ini akan membangun pengetahuan dengan memberikan respon yang diinginkan jaringan syaraf tiruan. Respon yang diinginkan tersebut mereperesentasikan aksi optimum yang diinginkan oleh jaringan syaraf tiruan. Parameter-parameter jaringan berubah-ubah berdasarkan vektor latih dan sinyal kesalahan. 2.
Unsupervised learning Unsupervised learning atau self-organized learning tidak membutuhkan
sampel input-output untuk memantau proses belajar. Salah satu contoh jenis jaringan syaraf yang tergolong unsupervised learning adalah self-organizing map. Jenis jaringan ini didasarkan pada competitive learning; neuron output dari jaringan ini bersaing satu sama lain untuk diaktifkan , dengan hasil hanya satu neuron output yang memenangkan persaingan. Salah satu model self organizing maps ini adalah self organizing map Kohonen (SOM Kohonen).
2.4.2
Self organizing map Kohonen Ada dua kemungkinan dalam menggunakan Self Organizing Maps. Pertama,
adalah menggunakannya hanya untuk model unsupervised learning, dimana vektor input tidak diketahui. Kedua adalah menggunakannya untuk unsupervised learning dan diikuti dengan supervised learning. Algoritma LVQ (Learning Vector Quantization) dikembangkan untuk tujuan kedua ini. (Kasabov,1998) Teknik self-organizing map (SOM) Kohonen pertama kali diperkenalkan oleh Touvo Kohonen, merupakan sistem jaringan neural berbasis kompetisi yang mampu melakukan pembelajaran tanpa terbimbing karena memiliki kemampuan mengatur dirinya sendiri (self-organizing) (Sinaga, 2015).
Universitas Sumatera Utara
16
Jaringan Kohonen merupakan salah satu jaringan yang dipakai untuk membagi pola masukan kedalam beberapa kelompok (cluster), dimana semua pola yang berada dalam satu kelompok merupakan pola yang mirip satu dengan lainnya. Arsitektur jaringan Kohonen mirip dengan model lain. Hanya saja jaringan Kohonen tidak menggunakan perhitungan net (hasil kali vektor masukan dengan bobot) maupun fungsi aktivasi (Siang, 2009).
Gambar 2.11 Arsitektur Jaringan Kohonen Prinsip kerja dari algoritma SOM adalah pengurangan node-node tetangganya (neighbor), sehingga pada akhirnya hanya ada satu node output yang terpilih (winner node) (Astuti,2009). Algoritma
pengelompokan
pola
jaringan
Kohonen
adalah
sebagai
berikut
(Siang,2009): 0. Inisialisasi
Bobot wji (acak)
Laju pemahaman (learning rate) awal dan faktor penurunannya
Bentuk dan jari-jari (=R) topologi sekitarnya
1. Selama kondisi penghentian bernilai salah, lakukan langkah 2-7 2. Untuk setiap vektor masukan x, lakukan langkah 3-5 3. Hitung D(j)=
................................................................. (1)
untuk semua j
Universitas Sumatera Utara
17
4. Tentukan indeks J sedemikian hingga d(J) minimum 5. Untuk setiap unit j disekitar J modifikasi bobot: .........................................................(2) 6. Modifikasi learning rate 7. Uji kondisi penghentian
Keterangan: D(j)= jarak Euclidean = nilai bobot = laju pembelajaran/learning rate
Dalam inisialisasi bobot acak awal, selain membuat vektor bobot secara acak ada cara lain yang dapat digunakan yakni dengan memilih vektor bobot dari vektor input yang ditentukan secara acak. (Haykin, 1999). Kondisi penghentian iterasi adalah selisih antara iterasi sebelumnya. Apabila semua
saat itu dengan
pada
hanya berubah sedikit saja, berarti iterasi sudah
mencapai konvergensi sehingga dapat dihentikan (Siang,2009). Proses pembelajaran SOM Kohonen bersifat kompetitif atau bersaing. Untuk setiap pelatihan terdapat satu neuron keluaran dalam kondisi firing (neuron keluaran yang paling besar). Bobot yang terkoneksi pada neuron keluaran tersebut akan disesuaikan sehingga nilainya lebih kuat pada latihan berikutnya. Dalam perubahan bobot yang terjadi, hal yang paling menentukan adalah atau learning rate. Learning rate adalah faktor pengali pada perubahan bobot yang berubah terhadap perubahan error. Perubahan
ini sesuai dengan banyaknya input
yang masuk dan akan selalu berkurang bila tidak ada perubahan error (Astuti,2009). Contoh penggunaan algoritma Kohonen dalam mengelompokkan 4 buah vektor ke dalam maksimum 2 kelompok: Diketahui 4 buah vektor x(1)=(1,1,0,0), x(2)=(0,0,0,1), x(3)=(1,0,0,0) dan x(4)=(0,0,1,1). Laju pemahaman awal
dan
. Jari-jari
Universitas Sumatera Utara
18
vektor sekitar yang dimodifikasi=0 (berarti hanya vektor pemenang yang dimodifikasi bobotnya pada setiap langkah). Langkah awal untuk meyelesaikan kasus diatas adalah dengan menentukan bobot awal. Kolom matriks bobot menyatakan jumlah komponen dalam sebuah vektor (dalam kasus ini=4) dan baris menyatakan jumlah maksimum kelompok yang akan dibentuk ( dalam kasus ini=2). Misalkan bobot awal secara acak:
Pelatihan untuk tiap vektor: Untuk vektor x(1)=(1,1,0,0): D(1) = (0.2-1)2 + (0.6-1)2 + (0.5-0)2 + (0.9-0)2 = 1.86 D(2) = (0.8-1)2 + (0.4-1)2 + ( 0.7-0)2 + (0.3-0)2 = 0.98 Karena D(j) minimum untuk j=2, maka vektor bobot baris 2 yang diubah sesuai aturan w21 = 0.8 + 0.6 (1-0.8) = 0.92 w22 = 0.4 + 0.6 (1-0.4) = 0.76 w23 = 0.7 + 0.6 ( 0-0.7) = 0.28 w24 = 0.3 + 0.6(0- 0.3) = 0.12 Vektor bobot baru:
Untuk vektor x(2) = (0,0,0,1): D(1)= (0.2-0)2 + ( 0.6-0)2 + (0.5-0)2 + (0.9-1)2 = 0.66 D(2)= (0.92-0)2 + ( 0.76-0)2 + (0.28-0)2 + (0.12-1)2 = 2.28 D(j) minimum untuk j=1, maka vektor bobot di baris 1 yang dimodifikasi. Maka bobot baru:
Universitas Sumatera Utara
19
w11= 0.2 +0.6 (0 - 0.2) = 0.08 w12= 0.6 + 0.6 (0-0.6) = 0.24 w13= 0.5 +0.6 (0 - 0.5) = 0.2 w14= 0.9 +0.6 (1 - 0.9) = 0.96 Vektor bobot baru:
Untuk vektor x(3) = (1,0,0,0) : D(1)= (0.08-1)2 + ( 0.24-0)2 + (0.2-0)2 + (0.96-0)2 = 1.87 D(2)= (0.92-1)2 + ( 0.76-0)2 + (0.28-0)2 + (0.12-0)2 = 0.68 D(j) minimum untuk j=2, maka vektor bobot baris 2 yang dimodifikasi: w21= 0.92 +0.6 (1 - 0.92) = 0.968 w22= 0.76 +0.6 (0 - 0.76) = 0.304 w23= 0.28 +0.6 (0 - 0.28) = 0.112 w21= 0.12 +0.6 (0 - 0.12) = 0.048 Vektor bobot baru:
Untuk vektor x(4) = ( 0,0,1,1) : D(1)= (0.08-0)2 + ( 0.24-0)2 + (0.2-1)2 + (0.96-1)2 = 0.7056 D(1)= (0.968-0)2 + ( 0.304-0)2 + (0.112-1)2 + (0.048-1)2 = 2.724 D(j) minimum untuk j=1, maka vektor bobot baris 1 yang dimodifikasi: w11= 0.08 + 0.6 (0-0.08) =0.032 w12= 0.24 + 0.6 (0-0.24) =0.096
Universitas Sumatera Utara
20
w13= 0.2 + 0.6 (1-0.2) =0.68 w14= 0.96 + 0.6 (1-0.96) =0.984 Vektor bobot baru :
Sebelum dilanjutkan ke iterasi kedua dalam mengubah bobot, terlebih dahulu dilakukan modifikasi laju pemahaman dimana,
Pada iterasi kedua, penghitungan nilai bobot yang baru sama seperti penghitungan bobot baru pada iterasi pertama, menggunakan bobot hasil iterasi pertama. Bobot awal :
Iterasi-1:
Iterasi-2:
... Iterasi-100 :
Hasil iterasi tersebut konvergen ke vektor bobot
Universitas Sumatera Utara
21
Pengelompokan vektor dilakukan dengan menghitung jarak vektor dengan bobot optimal. Vektor x(1)= (1,1,0,0) memiliki D(1)= (0-1)2 + ( 0-1)2 + (0.5-0)2 + (1-0)2 = 3.25 D(2)= (1-1)2 + ( 0.5-1)2 + (0-0)2 + (0-0)2 = 0.25 Berarti x(1) masuk kedalam kelompok ke-2 Dengan cara yang sama untuk x(2) = (0,0,0,1) D(1)= 0.25 dan D(2) = 2.25, x(2) masuk ke dalam kelompok 1 Untuk x(3) = (1,0,0,0) D(1)= 2.25 dan D(2) = 0.25 x(3) masuk ke dalam kelompok ke-2 Untuk x(4) = (0,0,1,1) D(1)= 0.25 dan D(2) = 3.25 x(4) masuk ke dalam kelompok ke-1
Universitas Sumatera Utara