Perbaikan kualitas citra dilakukan untuk menghasilkan citra guna memperkuat informasi khusus pada citra hasil pengolahan sesuai dengan tujuan pengolahannya. Misalnya citra yang mempunyai variasi intensitas yang kurang seragam, lemah dalam
meningkatkan kualitas citra dengan menggunakan teknik pengolahan antara lain dengan modifikasi histogram, penggunaan filter, analisis frekuensi dan lain-lain[1]. Proses-proses yang termasuk ke dalam perbaikan kualitas citra[11]:
1. Pengubahan kecerahan gambar (image brightness) 2. Peregangan kontras (contrast stretching)
3. Pengubahan histogram citra
4. Pelembutan citra (image smoothing) 5. Penajaman (sharpening) tepi (edge) 6. Pewarnaan semu (pseudocolouring) 7. Pengubahan geometrik
2.2.1 Sharpen Filtering
Citra sharpen digunakan untuk menegaskan garis tepi pada citra, sehingga kelihatan lebih tajam pada citra yang kabur (blur). Operasi penajaman dilakukan dengan melewatkan citra pada penapis tinggi (high-pass filter). Penapis lolos-tinggi akan meloloskan (memperkuat) komponen yang berfrekuensi lolos-tinggi (misalnya tepi atau pinggiran objek) dan akan menurunkan komponen berfrekuensi rendah. Akibatnya, pinggiran objek telihat lebih tajam dibandingkan sekitarnya. Karena penajaman citra lebih berpengaruh pada tepi (edge) objek, maka penajaman citra sering disebut juga penajaman tepi (edge sharpening) atau peningkatan kualitas tepi (edge enhancement) [11]. Efek sharpen diperoleh dengan mengalikan matriks bertetangga yang menjadi sampel dengan sebuah matriks filter tertentu[1].
Contoh matriks filter yang akan digunakan adalah sebagai berikut:
Selain untuk mempertajam gambar, penapis lolos-tinggi juga digunakan untuk mendeteksi keberadaan tepi (edge detection). Dalam hal ini, piksel-piksel tepi ditampilkan lebih terang (highlight) sedangkan piksel-piksel bukan tepi dibuat gelap (hitam)[11].
Gbr 2. 2(a) Citra Semula (b) Citra Gray Semula (c) Citra Setelah Penajaman
2.2.2 Deteksi tepi (edge detection)
Suatu citra dapat dapat diketahui apa yang menjadi obyeknya ketika perbedaan antara latar belakang citra dengan objek terlihat jelas. Objek yang berada dalam bidang citra dan tidak bersinggungan dengan batas bidang citra, berarti objek tersebut dikelilingi oleh daerah yang bukan objek yaitu latar belakang.
Pertemuan antara objek dengan latar belakang disebut dengan tepi objek. Tepi dapat mewakili informasi yang penting dari obyek. Tepi ditandai dengan adanya perubahan intensitas yang bersifat lokal di dalam citra dan dapat dilacak berdasarkan perubahan intensitas ini. Deteksi tepi banyak digunakan untuk pengembangan algoritma untuk analisis fitur-fitur citra, segmentasi citra dan analisis pergerakan[1].
Edge detection memiliki beberapa algoritma, diantaranya: metode Sobel,
Prewitt, Roberts, Laplacian of Gaussian, zero-cross dan Canny. 2.2.3 Deteksi tepi Canny
Metode Canny adalah salah satu algoritma deteksi tepi modern. Deteksi tepi Canny ditemukan oleh Marr dan Hildreth yang meneliti pemodelan persepsi visual manusia.
Ada beberapa kriteria pendeteksi tepian paling optimum yang dapat dipenuhi oleh algoritma Canny:
a. Mendeteksi dengan baik (kriteria deteksi)
memberikan fleksibilitas yang sangat tinggi dalam hal menentukan tingkat deteksi ketebalan tepi sesuai yang diinginkan.
b. Melokalisasi dengan baik (kriteria lokalisasi)
Dengan Canny dimungkinkan dihasilkan jarak yang minimum antara tepi yang dideteksi dengan tepi yang asli.
c. Respon yang jelas (kriteria respon)
Hanya ada satu respon untuk tiap tepi. Sehingga mudah dideteksi dan tidak menimbulkan kerancuan pada pengolahan citra selanjutnya[5].
Dalam proses pendeteksian tepi terhadap citra yang dilakukan dengan menggunakan metode Canny dapat menggunakan function di Matlab, sehingga cukup menggunakan function edge dalam pengkodean[6]. Citra grayscale sesudah proses deteksi tepi dapat dilihat pada Gambar 3.
Gambar 2.3 (a) Citra Semula (b) Citra Gray sharpening (c) Citra setelah dektesi tepi canny
2.3 Pengenalan pola (pattern recognition)
Pengenalan pola merupakan suatu proses yang dilakukan untuk mengelompokkan atau mengklasifikasikan data numerik dan simbol. Banyak teknik statistik dan sintaksis yang telah dikembangkan untuk keperluan klasifikasi pola dan teknik-teknik ini dapat memainkan peran yang penting dalam sistem visual untuk pengenalan obyek yang biasanya memerlukan banyak teknik. Bentuk-bentuk obyek tertentu dalam dunia nyata yang sangat kompleks dapat dibandingkan dengan pola-pola dasar di dalam citra sehingga penggolongan obyek yang bersangkutan dapat dilakukan lebih mudah[1].
Gambar 2.4 Skema Pengenalan Pola[11]
2.4 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan (artificial neural network) atau disingkat dengan JST merupakan suatu sistem komputasi dimana arsitektur dan operasi diilhami dari pengetahuan tentang sel syaraf biologis di dalam otak, yang merupakan salah satu presentasi buatan dari otak manusia yang selalu mencoba menstimulasi proses pembelajaran pada otak manusia tersebut. JST dapat digambarkan sebagai model matematis dan komputasi untuk simulasi dari koleksi model syaraf biologi [10].
belajar dan menghasilkan aturan atau operasi dari beberapa contoh atau input yang dimasukkan dan membuat prediksi tentang kemungkinan output yang akan muncul atau menyimpan karakteristik dari input yang disimpan kepadanya[7,8]. 2.4.1 Karakteristik Jaringan Saraf Tiruan
Karakteristik jaringan syaraf tiruan ditentukan oleh tiga hal[10]:
1. Pola hubungan antar neuron-neuron (disebut dengan arsitektur jaringan). 2. Metode penentuan bobot-bobot penghubung disebut metode pelatihan/
training/ learning / proses belajar jaringan).
2. Fungsi aktivasi.
Pada jaringan syaraf, hubungan antar neuron-neuron dikenal dengan nama bobot [10].
Gambar 2.6 Struktur Neuron Jaringan syaraf[3]
�� menerima masukan dari input signals�1, �2, …, �� dengan bobot hubungan masing-masing adalah ��1, ��2, …, ���. Semua impuls neuron yang ada dijumlahkan.
Net = �1��1 + �2��2 + … + ����� (1.1)
Besarnya impuls yang diterima oleh �� mengikuti fungsi aktivasi ( ) dari y =
f(net). Nilai fungsi aktivasi (keluaran model jaringan) juga dapat dipakai sebagai
dasar untuk mengubah bobot[17]. 2.4.1.1 Algoritma Pembelajaran
Proses yang lazim dari pembelajaran meliputi tiga tugas, yaitu[3]: 1. Perhitungan output.
2. Membandingkan output dengan target yang diiginkan. 3. Menyesuaikan bobot dan mengulangi prosesnya.
Input signals
∑
ϕ( )
• x1 wk1 wk2 wkm x2 xm Summing junction vk Activation function Output yk Synaptic weights . . . . . .{
( )
• ϕProses pembelajaran tersebut dapat dilihat pada gambar berikut :
Gambar 2.7 Proses Pembelajaran Suatu JST
Proses pembelajaran dalam JST dapat diklasifikasikan menjadi dua bagian, yaitu [3]:
1. Supervised Learning (Pembelajaran terawasi) yang menggunakan sejumlah
pasangan data masukan dan keluaran yang diharapkan. Contoh metode ini adalah metode back propagation, jaringan Hopfield dan percepton.
2.4.2 Bidirectional Associative Memory
Bidirectional Associative Memory (BAM) adalah salah satu model neural network dengan hetero associative memory dengan menggunakan dua layer,
yaitu layer input dan layer output [2]. Model ini memiliki lapisan yang terhubung penuh dari satu lapisan dengan lapisan lainnya. Pada hubungan ini dimungkinkan adanya hubungan timbal balik antara layer input dan layer output. Namun demikian, bobot yang menghubungkan antara satu neuron (A) di satu lapisan dengan neuron (B) dilapisan lainnya akan sama dengan bobot yang menghubungkan neuron (B) ke neuron (A). Bisa dikatakan bahwa, matriks bobot yang menghubungkan neuron-neuron pada lapisan output ke lapisan input sama dengan transpose matriks bobot neuron-neuron yang menghubungkan lapisan
input ke lapisan output[10].
Gambar 2.8 Arsitektur Jaringan Bidirectional Associative Memory[10]
Gambar 2.8 menunjukkan arsitektur jaringan BAM yang dibutuhkan.BAM terdiri dari dua lapis elemen pemroses. Keluaran tiap lapis yang diinterkoneksi dengan elemen-elemen pada lapisan lain [12].
2.4.2.1 BAM Diskret
Pada BAM diskret ada 2 kemungkinan tipe data, yaitu biner dan bipolar. Matriks bobot awal dibuat sedemikian rupa sehingga dapat menyimpan pasangan vektor input dan vektor output s(p)-t(p), dengan p = 1, 2, 3, ..., P. a. Untuk vektor input biner, matriks bobot ditentukan sebagai :
���= ∑� (2 ��(p) – 1)( 2�� (p) – 1) (1.2)
Sedangkan fungsi aktivasi yang digunakan adalah:
Yj Untuk lapisan output :
�� = �
1 ;�����_��� > 0
�� ;�����_��� = 0
0 ; �����_��� < 0
�
Xi Untuk lapisan input:
�� = �
1 ;�����_��� > 0
�� ;�����_��� = 0
0 ; �����_��� < 0
�
b. Sedangkan untuk vektor input bipolar, matriks bobot ditentukan sebagai:
���= ∑� ( ��(p) �� (p)) (1.3)
Yj Untuk lapisan output:
�� = �
1 ;�����_��� > �
�� ;�����_��� =�
−1; �����_��� <��
Xi Untuk lapisan input:
�� = �
1 ;�����_��� > �
�� ;�����_��� =�
−1 ; �����_��� <��
Dengan catatan bahwa input hasil olahan pada jaringan (x_ini atau y_in j) sama dengan nilai thresholdnya, maka fungsi aktivasi akan menghasilkan nilai sama dengan nilai sebelumnya.
Keterangan:
s(p) = vektor masukan
t(p) = vektor keluaran
��� = bobot hubungan ke-i dan ke-j
�� = sinyal masukan ke-i
�� = sinyal keluaran ke-j
�_��� = masukan hasil olahan ke-i
�_��� = keluaran hasil olahan ke-j
�� = nilai ambang
�(. ) = fungsi aktivasi
BAM kontinyu akan mentransformasikan input secara lebih halus dan kontinyu ke kawasan output dengan nilai yang terletak pada range [0,1]. Fungsi aktivasi yang digunakan adalah fungsi sigmoid.
Algoritma jaringan syaraf tiruan BAM adalah sebagai berikut:
Langkah 0 : Insialisasi bobot (untuk menyimpan sekumpulan P vektor). Inisialisasi semua aktivasi sama dengan 0.
Langkah 1 : Untuk tiap-tiap input, kerjakan langkah 2-6.
Langkah 2a : Berikan input pola x kelapisan X (kita set aktivasi lapisan X sebagai pola input).
Langkah 2b : Berikan input pola y ke lapisan Y (salah satu dari vektor input tersebut biasanya diset sebagai vektor nol).
Langkah 3 : Kerjakan langkah 3-6 jika aktivasi-aktivasi tersebut belum konvergen. Langkah 4 : Perbaiki setiap unit aktivasi di lapisan Y :
Hitung :
�_��� = ∑� ��� ∗��
Hitung :
�� = f(y_��� )
Berikan informasi tersebut ke lapisan X. Langkah 5 : Perbaiki setiap unit aktivasi di lapisan X :
Hitung :
�� = f ( x_��� )
Berikan informasi tersebut ke lapisan Y.
Langkah 6: Tes kekonvergenan. Jika vektor x dan y telah mencapai keadaan stabil, maka interasi berhenti, jika tidak demikian lanjutkan iterasi [2,10].
2.4.2.3 BAM Connections matrice
�� sebagai vektor masukan dan �� sebagai vector keluaran berasosiasi dengan pasangan (��,��) yang dapat digambarkan secara logika dengan implikasi: jika �� dan ��. Begitu pula sebaliknya: jika��dan �� asosiasi pasangan tersebut akan diketahui oleh BAM dengan membentuk suatu bobot W. Proses untuk membentuk matriks W disebut encoding.
Encoding : terdapat m pasangan pola{(�1,�1) , (�2,�2),…, (��,��)}.
�� = (��1 ,��2 ,…,���) adalah vektor biner dengan panjang n ;�� ∈{0,1}� dan
��= (��1 ,��12 ,…,���) adalah vektor biner dengan panjang p ; �� ∈ {0,1}�.
Formula untuk menghitung W adalah:
W = ∑ ���� ����� , i=1, 2, …,m (1.4)
Dan dualitas BAM (bobot yang menghubungkan antara satu neuron B dengan A)�� adalah:
�� = ∑ ���� (�����)� = ∑ ���� �����
(1.5)
Jika dalam bentuk bipolar maka bentuk binari ��dan �� harus ditransform menjadi bentuk bipolar �� dan �� dengan mengganti 0 dengan -1 dan 1 tetap 1, atau dengan rumus berikut:
�� = 2 �� − 1 (1.6)
Atau
�� = 2 �� – 1 (1.7)
Sekarang m pasangan pola dalam bentuk bipolar {(�1 , �1), (�2 , �2), …,( ��
, ��)}.
�� = (��1,��2, ….,���), �� = (��1,��2, ….,���), �� ∈{-1,1}� , �� ∈{-1,1}�
Maka perumusan W adalah:
W = ∑ ���� ����� , i = 1, 2, …, m (1.8)
Dan dualitas BAM ��adalah :
�� = ∑ ���� (�����)� = ∑ ���� �����
(1.9) Contoh :
Terdapat suatu himpunan S yang terdiri dari 4 pasang pola, S – {(�1,�1), (�2,�2), (�3,�3), (�4,�4)}.
Representasi vektor pasangan dalam bentuk biner :
�1 =[ 1 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 ] �1= [ 1 0 0 0 0 1 1]
�2= [ 1 0 0 1 1 1 0 1 1 0 1 1 1 0 0 1] �2 = [ 1 0 0 1 1 1 0]
�3= [ 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 1] �3 = [ 1 0 1 1 0 1 0]
�4= [ 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1] �4 = [ 0 1 1 0 1 0 1]
�4 = [-1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 -1 -1 1 ] �4 = [-1 1 1 -1 1 -1 1 ]
Dari persamaan 1.8 matriks W yang terbentuk dalam BAM adalah :
W = �1��1 + �2��2 + �3��3 + �4��4 Didapatkan :
Decoding adalah operasi pemanggilan terhadap pasangan pola yang disimpan. W =
Persamaan decoding untuk pola dalam bipolar adalah :
�� = � (����)
(1.10)
�� = � (���) (1.11)
Dimana � adalah fungsi threshold untuk ��� dan ���:
��� = �1,���� ����� > 0
−1,���� ����� ≤0� (1.12) Dan
��� = � 1,−1, �������� ��� �� > 0
� �� ≤ 0� (1.13)
Jika diberikan �� maka akan dengan menggunakan persamaaan (1.13), �� yang dihasilkan adalah :
�1 = � (�1�) = [ 1 -1 -1 -1 -1 1 1 ]
�2 = � (�2�) = [ -1 -1 -1 1 1 -1 -1 ]
�3 = � (�3�) = [ 1 -1 1 1 -1 1 -1 ]
�4 = � (�4�) = [ -1 1 1 -1 1 -1 1 ]
Perlu diperhatikan bahwa �2 belum sama[ 2 ]. Keterangan : �� = vektor masukan �� = vektor keluaran W = matriks bobot n = jumlah baris p = jumlah kolom
2.4.2.4 Stabilitas BAM
Kosko (1988) mendefinisikan stabilitas BAM dengan mengidentifikasikan fungsi Lyapunov atau fungsi energy E untuk setiap state (��,��). Menurut Zurada (1992), prosedur yang dikatakan Kosko berdasarkan atas pendekatan dari analisis kestabilan sistim dinamik yang dikembangkan oleh A.M.Lyapunov. Yang unik dari pendekatan Lyapunov ini adalah hanya persamaan differensialnya yang perlu diketahui bukan nilai hasilnya.
Fungsi Lyapunov E memetakan variabel-variabel sistem ke suatu bilangan real dan menurun sejalan dengan waktu. Pada BAM, E memetakan product matriks – matriks ke dalam bilangan real yang dirumuskan sebagai berikut :
E(A,B) = - A �� (1.14)
Model BAM menggunakan interlayer feedback, dengan melewatkan data melalui W didapatkan satu arah dan melalui transposnya �� didapatkan diarah yang lainnya. Jika pasangan pattern(A,B) dilewatkan dalam BAM, maka akan dilakukan beberapa iterasi yang dapat digambarkan sebagai berikut:
A → W → B B → W → A' A' → W → B' B ' → W → A'' . . . . . . . . �� → W → �� �� → W → ��
Setelah beberapa kali iterasi, (A,B) akan terkonvergensi secara tetap menjadi (��,��) dengan nilai energi minimum. Hal inilah menjadi keunggulan BAM, yaitu bersifat stabil sehingga dapat mengenali proses yang tidak sempurna[16, 17].