IMPLEMENTASI PENGOLAHAN CITRA DAN ALGORITMA LVQ UNTUK PENGENALAN POLA BUKU Andi Lukman Program Studi Teknik Informatika STIMED Nusa Palapa, Jl. Urip Sumohardjo No. 20 Graha Pena Lt. 10 Makassar
[email protected]
Abstrak Pengenalan Pola buku diharapkan dapat mempermudah dalam mengidentifikasi dan menginventarisasi buku. Penelitian ini mencoba menggunakan teknik pengolahan citra dan algoritma Learning Vector Quantization (LVQ) untuk pengenalan buku. Algoritma LVQ digunakan untuk proses pelatihan dan pengujian/pengenalan, sementara pengolahan citra dibutuhkan pada setiap proses tersebut. Citra yang digunakan untuk untuk pengenalan pola adalah sampul buku. Tahap-tahap pengolahan citra sebagai berikut: Tipe File Citra JPEG dikonversi menjadi Bitmap untuk memudahkan mengakses tiap pixel citra, mengubah citra RGB menjadi B/W agar memudahkan proses binerisasi, normalisasi dengan mengubah ukuran citra menjadi 300X300 pixel sehingga ukuran pixel lebih kecil dan seragam, terakhir adalah proses binerisasi yaitu mengkonversi setiap pixel citra sampul buku menjadi data biner 0 dan 1. Data biner kemudian digunakan pada proses pelatihan dan pengujian/pengenalan LVQ. Uji coba aplikasi menggunakan 12 buku, yang terdiri dari 2 judul buku. 2 untuk w1 dan w2, 4 untuk data pelatihan dan 6 untuk pengujian/pengenalan. Inisialisasi LVQ menggunakan MaxEpoch=10, eps=0.001 dan Ξ±=0.05. Hasilnya, aplikasi dapat mengenali semua buku yang diujikan.
Kata kunci : Pengolahan Citra, LVQ, Pengenalan Pola, Buku.
1.
Pendahuluan
Pengenalan pola menggunakan komputer telah banyak digunakan dalam membantu pekerjaan manusia. Salah satu yang menjadi perhatian adalah bagaimana komputer dapat mengenali citra buku. Hal ini dapat membantu pengguna dalam mengidentifikasi dan menginventarisasi buku pada perpustakaan besar. Penelitian ini bertujuan mengimplementasikan teknik pengolahan citra dan algoritma Learning Vector Quantization (LVQ) untuk keperluan pengenalan pola buku. Beberapa penelitian sebelumnya juga menggunakan Algoritma LVQ dalam pengenalan pola, antara lain: pengenalan barcode [1], pengenalan karakter kursif [2], pengenalan tulisan [4] dan pengenalan sidik jari [5]. Namun pada penelitian-penelitian tersebut hanya mengelola citra digital dengan ukuran kecil. Sementara citra sampul buku mempunyai ukuran yang besar dan bervariasi serta memuat citra digital lain yaitu tulisan maupun gambar.
Untuk memecahkan masalah tersebut dibutuhkan proses pelatihan dan pengujian/ pengenalan pola buku menggunakan algoritma LVQ dengan pengolahan citra untuk mengubah citra digital sampul buku menjadi data biner. 2.
Landasan Teori
2.1 Pengolahan Citra Pengolahan citra merupakan proses memanipulasi dan menganalisis citra dengan bantuan komputer, dalam hal ini mengolah informasi yang terdapat pada suatu gambar untuk keperluan pengenalan objek secara otomatis. Ada berbagai teknik pengolahan citra tergantung kebutuhan dan keluaran yang diinginkan. Berikut teknik yang dapat digunakan yaitu: konversi format citra digital, mengubah format RGB menjadi Grayscale, normalisasi dan binerisasi. Citra digital lebih mudah didapatkan melalui kamera digital yang umumnya bertipe JPG. Tipe JPG/JPEG (Joint Photograph (Expert) Group) merupakan file terkompresi yang mengalami
pixilation, yaitu penambahan pixel rekayasa diantara titik-titik gambar aslinya, sehingga pada umumnya bahasa pemrograman kesulitan dalam mengolah citra tipe data. Oleh karena itu, perlu dilakukan konversi ke tipe data lain yang tidak terkompresi, salah satunya adalah tipe data BMP (Bitmap). Untuk mengubah citra berformat RGB menjadi Grayscale diperlukan dua teknik pengolahan citra yaitu Grayscaling dan Tresholding. Grayscaling adalah teknik yang digunakan untuk mengubah citra berwarna menjadi bentuk grayscale atau tingkat keabuan (dari hitam - putih) [1]. Setiap pixel pada citra terbagi atas tiga bagian yaitu R (red), G (green) dan B (blue). Sementara Tresholding mengubah intensitas pixel menjadi salah satu dari dua nilai, a1 atau a2 [1]. Hasil dari proses thresholding ditentukan oleh suatu parameter yang disebut nilai threshold. Jika a1 = 0 dan a2 = 255, maka proses thresholding mengubah citra grayscale menjadi B/W (Black and White). Proses thresholding menggunakan fungsi sebagai berikut [1]: (x,y, f (x,y)) β (x,y,g(x,y)) π1, π(π₯, π¦) < π π(π₯, π¦) = { β¦β¦β¦β¦.β¦(1) π2, π(π₯, π¦) β₯ π Keterangan : f(x,y) = nilai intensitas lama g(x,y) = nilai intensitas baru T = nilai threshold Normalisasi merupakan proses membagi citra menjadi pixel ukuran M x N [4]. Hal ini dilakukan karena setiap citra yang diolah belum tentu mempunyai ukuran yang sama. Normalisasi juga digunakan untuk memperkecil citra digital agar jumlah pixel yang akan diolah tidak terlalu banyak. Semakin banyak jumlah pixel, semakin banyak data inputan yang menyebabkan semakin lama waktu komputasi. Binerisasi merupakan teknik mengubah citra B/W menjadi data biner [6]. Dimana pixel berwarna Hitam (255) akan diubah menjadi 1 dan pixel berwarna Putih (0) menjadi 0. 2.2 Algoritma Learning Vector Quantization Learning Vector Quantization (LVQ) merupakan salah satu bentuk Algoritma Jaringan Syaraf Tiruan (Neural Network) dengan metode pembelajaran pada lapisan kompetitif yang terawasi [7]. Suatu lapisan kompetitif akan secara otomatis belajar untuk mengklasifikasikan vektor-vektor input. Kelas yang dihasilkan berdasarkan jarak vektor tersebut. Jika ada dua vektor memiliki jarak yang cukup dekat atau mendekati sama maka kedua vektor tersebut dikelompokkan ke dalam kelas yang sama. Arsitektur LVQ dapat dilihat pada Gambar 1 [5].
Gambar 1. Arsitektur LVQ Keterangan : ο· x1 sampai dengan xm = nilai input ο· || x β w1 || sampai dengan || x β wn || = jarak bobot ο· H1 sampai dengan Hn = lapisan output ο· D1 sampai dengan Dn = nilai output ο· m : jumlah elemen input ο· n = jumlah kelas Pelatihan LVQ dikatakan berhasil jika pelatihan konvergen, dan gagal jika pelatihan divergen. Suatu pelatihan dikatakan konvergen jika kesalahan pada setiap iterasi pelatihan selalu mengecil, sampai pada titik dimana nilai bobot pada setiap neuron telah mencapai nilai yang paling baik untuk data pelatihan yang diberikan. Sebaliknya, pelatihan dikatakan divergen jika kesalahan pada pelatihan tidak cenderung mengecil menuju sebuah titik tertentu. Adapun algoritma LVQ sebagai berikut [7]: 1. Tetapkan bobot (w), maksimum iterasi/epoch MaxEpoch), Error minimum (Eps) dan learning rate Ξ±. 2. Masukkan : a. Input : x(m,n); dimana m = jumlah input dan n = jumlah data b. Target : T(1,n) 3. Tetapkan kondisi awal : Ephoch=0 4. Kerjakan jika: (ephoch < MaxEpoch) atau (Ξ±>Eps) a. Ephoch=ephoch + 1 b. Kerjakan untuk i = 1 sampai n i. Tentukan J sehingga ||x-wj|| adalah minimum ii. Perbaiki wj dengan ketentuan: Jika T = J, maka: wj(baru)=wj(lama)+Ξ±(x-wj(lama)) Jika T β J, maka: wj(baru)=wj(lama)-Ξ±(x-wj(lama)) c. Kurangi nilai Ξ± 3.
Perancangan, Implementasi dan Pengujian
Solusi dari permasalahan pengenalan pola buku yaitu menggunakan teknik pengolahan citra untuk mengubah citra digital buku (dalam penelitian ini, citra yang di capture adalah sampul buku) menjadi
data biner. Tahap-tahap pengolahan citra sampul buku sebagai berikut : Mengkonversi tipe file citra JPG yang ambil dari kamera digital menjadi tipe BMP, Grayscaling, Tresholding, normalisasi dan binerisasi. Flowchat pengolahan citra dapat dilihat pada Gambar 2. Mulai
GrayscalingTresholding(citrabuku) Normalisasi(citrabuku) Binerisasi(citrabuku,databiner) Selesai Gambar 2. Flowchart Pengolahan Citra Buku Hasil akhir dari proses pengolahan citra yaitu data biner yang digunakan dalam proses pelatihan LVQ. Arsitektur pelatihan LVQ dapat dilihat pada Gambar 3. W1 ||x-w1||
3.1 Pseudecode Konversi JPG ke BMP Konversi dibutuhkan untuk memudahkan proses pengolahan citra. Prosesnya berawal dari mengambil file citra bertipe JPG, mengubah format citra menjadi 16bit dan mengkonversi tipe file JPG menjadi BMP. Berikut Pseudecode konversi JPG ke BMP:
KonversiJPGtoBMP(citrabuku)
x1
Pengujian/pengenalan buku melalui tahap pengolahan citra sampul buku kemudian menggunakan data biner tersebut dengan membandingkan W1 dan W2 hasil pelatihan.
H1
KonversiJPGtoBMP (citrabuku) 1 β Mengambil Citra Sampul Buku yang bertipe JPG 2 citratmp ο¬ TJPEGImage.Create 3 citratmp.LoadFromFile (OpenPictureDialog1.FileName) 4 gambar ο¬ TBitmap.Create 5 β mengubah format citra menjadi 16bit 6 if gambar.PixelFormat β pf16bit then gambar.PixelFormat ο¬ pf16bit 7 gambar.Height ο¬ gambartmp.Height 8 gambar.Width ο¬ gambartmp.Width 9 β Konversi JPG ke BMP 10 gambar.Canvas.Draw(0,0,gambartmp) 11 citratmp.Free; 12 citrabuku.Picture.Bitmap ο¬ gambar; 13 gambar.Free 14 return citrabuku
x2
3.2 Pseudecode Grayscaling dan Tresholding W2 X90000
||x-w2||
H2
Gambar 3. Arsitektur Pelatihan LVQ Buku x1 sampai dengan x90000 merupakan hasil binerisasi citra sampul buku 300x300. Output W1 dan W2 digunakan pada proses pengujian/ pengenalan citra sampul (pseudo code dapat lihat pada bagian 3.5). Flowchart pengujian/pengenalan dapat dilihat pada Gambar 4. Mulai PengolahanCitraBuku(databiner) PengujianPengenalanBuku(w,kelas)
Selesai Gambar 4. Flowchart Pengujian/Pengenalan Buku
Grayscaling dan tresholding digunakan untuk mengubah citra sampul buku yang berformat RGB menjadi B/W agar lebih mudah dalam proses binerisasi. Berikut pseudecodenya: GrayscalingNTresholding (citrabuku) 1 β load citrabuku ke citratmp untuk diolah 2 Citratmp.Picture.Bitmap ο¬ Citrabuku.Picture.Bitmap 3 Treshold ο¬ input nilai treshold 4 β proses grayscaling dan tresholding 5 for brs := 0 to Citratmp.Picture.Height-1 do 6 piksel ο¬ Citratmp.Picture.Bitmap.ScanLine [brs] 7 for kol ο¬ 0 to Citratmp.Picture.Width-1 do 8 rgb1[0] ο¬ piksel[3*kol] 9 rgb1[1] ο¬ piksel[3*kol+1] 10 rgb1[2] ο¬ piksel[3*kol+2] 11 grey ο¬ MaxIntValue(rgb1) 12 for bit ο¬ 0 to 2 do 13 piksel[3* kol+bit] ο¬ grey 14 if piksel[3* kol+bit] < treshold then piksel[3* kol+bit] ο¬ 0
15 16 17
if piksel[3* kol+bit] >= treshold then piksel[3* kol+bit] ο¬ 255 Citrabuku.Picture.Bitmap ο¬ Citratmp.Picture.Bitmap return citratmp
3.3 Pseudecode Normalisasi Citra Buku Normalisasi disini bertujuan untuk menyeragamkan dan memperkecil jumlah pixel pada citra sampul buku. Seperti diketahui, jumlah pixel pada citra buku sangat besar, jika langsung diberikan proses binerisasi, maka data biner dalam satu matriks akan sangat banyak. Pada penelitian ini lebar dan tinggi citra sampul buku diperkecil menjadi 300 X 300 pixel. Berikut pseudecode normalisasi: Normalisasi(citrabuku) 1 β setting ukuran citratmp 2 Lebar ο¬ 300 3 Tinggi ο¬ 300 4 citratmp.Height ο¬ Tinggi 5 citratmp.Width ο¬ Lebar 6 β load citrabuku ke citratmp 7 citratmp.Picture.Bitmap ο¬ Citrabuku.Picture.Bitmap 8 β proses normalisasi citra 9 SrcBmp ο¬ TBitmap.Create 10 TrgBmp ο¬ TBitmap.Create 11 SrcBmp.Assign(citratmp.Picture.Graphic) 12 W ο¬ SrcBmp.Width 13 H ο¬ SrcBmp.Height 14 NewW ο¬ Lebar 15 NewH ο¬ Tinggi 16 TrgBmp.Width ο¬ NewW 17 TrgBmp.Height ο¬ NewH 18 citratmp.Picture.Graphic.Assign(TrgBmp) 19 SrcBmp.Free 20 TrgBmp.Free 21 citratmp.Refresh 22 Citrabuku.Picture.Bitmap ο¬ citratmp.Picture.Bitmap 23 Return citrabuku 3.4 Pseudecode Binerisasi Binerisasi merupakan proses terakhir dari pengolahan citra sampul buku, disinilah citra digital diubah menjadi data biner. Berikut pseudecodenya : Binerisasi (citrabuku,databiner) 1 β inisialisasi index matriks data biner 2 x ο¬ -1 3 β proses mengubah citra digital menjadi data biner 4 for b ο¬ 0 to citrabuku.picture.Height-1 do 5 for a ο¬ 0 to citrabuku.Picture.width-1 do
6 7 8 9 10 11 12 13
warna cintrabuku.Canvas.Pixels[a,b] rata ο¬ GetRValue(warna) x ο¬ x+1 if rata = 255 then databiner[x] ο¬ 0 else databiner[x] ο¬ 1; Return databiner
ο¬
3.5 Pseudecode Pelatihan LVQ Implementasi Arsitektur Pelatihan LVQ pengenalan buku (Gambar 3) dapat dilihat pada pseudecode berikut: PelatihanLVQ(databiner, w) 1 β Inisialisasi 2 maxepoch ο¬ input maksimum iterasi 3 eps ο¬ input error minimum 4 Ξ± ο¬ learning rate 5 n ο¬ jumlah kelas 6 m ο¬ jumlah elemen vector 7 β Input inisialisasi vector data bobot (w) dan targetnya (tk) 8 for j ο¬ 1 to n do 9 w[j] ο¬ databiner 10 tk[j] ο¬ input target kelas 11 β Input vector data latih (databiner) beserta targetnya (tl) 12 v ο¬ jumlah data vector latih 13 for j ο¬ 1 to v do 14 l[j] ο¬ databiner 15 tl[j] ο¬ input target kelas vector latih 16 β Proses Pelatihan 17 Epoch ο¬ 0 18 Repeat 19 Epoch ο¬ epoch + 1 20 For i ο¬ 1 to v do 21 Target ο¬ tl[i] 22 β Proses perhitungan jarak hasil perbandingan data latih dan data bobot 23 for j ο¬ 1 to n do 24 jarak[j] ο¬ 0 25 for k ο¬ 1 to m do 26 jarak[j] ο¬ jarak[j] + sqr(l[i,k]w[j,k]) 27 jarak[j] ο¬ sqrt(jarak[j]) 28 β Proses Pencarian jarak minimal 29 jarakminο¬ nilai maksimum 30 for a ο¬ 1 to n do 31 if jarak[a] < jarakmin then 32 jarakmin ο¬ jarak[a] 33 je ο¬ a 34 β Proses penentuan data bobot baru 35 if jarak[target] = jarakmin then 36 for a ο¬ 1 to m do 37 w[je,a] ο¬w[je,a] +Ξ±(l[i,a]-w[je,a])
38 39 40 41 42 43 44
else for a ο¬ 1 to n do w[je,a] ο¬w[je,a]-Ξ±(l[i,a]-w[je,a]) β Proses mengubah learning rate Ξ± ο¬ Ξ± β 0.1 * Ξ± until ( epoch >= maxepoch) or (Ξ± <= eps) Return w
Proses pertama adalah memberikan nilai Maksimum iterasi =10, Error Minimum (eps)=0.001 dan Learning Rate (Ξ±), tampilannya dapat dilihat pada Gambar 6.
3.6 Pseudecode Pengujian/Pengenalan Buku Hasil pelatihan LVQ buku (w) digunakan untuk menguji/mengenali citra sampul buku. Implementasi Flowchart pengujian/pengenalan buku (Gambar 4) dapat dilihat pada pseudecode berikut: PengujianPengenalanBuku(databiner,w,kelas) 1 β Proses Pengujian menggunakan data bobot dengan memasukkan data uji (uj) 2 for k ο¬ 1 to m do 3 uj[k] ο¬ databiner 4 β Proses perhitungan jarak hasil perbandingan data uji dan data bobot 5 for j ο¬ 1 to n do 6 jarak[j] ο¬ 0 7 for k ο¬ 1 to m do 8 jarak[j] ο¬ jarak[j] + sqr(uj[k]-w[j,k]) 9 jarak[j] ο¬ sqrt(jarak[j]) 10 β Proses penentuan jarak minimal 11 jarakminο¬ nilai maksimum 12 for i ο¬ 1 to n do 13 if jarak[i] < jarakmin then 14 jarakmin ο¬ jarak[i] 15 kelas ο¬ i 16 return kelas
Gambar 6 Inisialisasi General Selanjutnya memasukkan data bobot awal (w1 dan w2) beserta targetnya, w1 untuk jenis buku 1 (target = 1) dan w2 untuk jenis buku 2 (target = 2). Tampilan input nilai w1 dan w2 dapat dilihat pada gambar 7.
Gambar 7. Inisialisasi w1 dan w2 beserta targetnya Bobot awal (w1 dan w2) harus melewati proses pengolahan citra yaitu: konversi JPG ke BMP (lihat Gambar 8(a)), Grayscaling and Tresholding (lihat Gambar 8(b)), Normalisasi (lihat Gambar 8(c)) dan binerisasi (lihat Gambar 8(d)).
3.7 Uji Coba Aplikasi Pengenalan Buku Implementasi Pengenalan buku dibangun menggunakan Borland Delphi 7 dengan tampilan seperti pada Gambar 5. Uji coba dilakukan menggunakan 12 buku yang terdiri dari 2 judul/jenis buku. Pembagiannya sebagai berikut: 2 untuk nilai w1 dan w2 beserta targetnya, 4 untuk data pelatihan beserta targetnya dan 6 untuk pengujian/pengenalan.
Gambar 5. Tampilan Aplikasi Pengenalan Buku
Gambar 8(a). Load dan Konversi Citra JPG ke BMP
Gambar 8(b). Ubah warna Citra RGB ke B/W
Dari hasil uji coba, aplikasi berhasil mengenali setiap buku yang diberikan, yaitu 3 buku jenis 1 dan 3 buku jenis 2. 4.
Gambar 8(c). Normalisasi menjadi 300x300 px
Gambar 8(d). Potongan Hasil Proses Binerisasi Proses selanjutnya yaitu memasukkan 4 data latih beserta targetnya. Gambar 9 merupakan contoh input data latih citra 1. Proses ini juga membutuhkan pengolahan citra.
Input Pengenalan Pola Buku berupa citra sampul buku yang melalui proses pelatihan dan pengujian menggunakan Algoritma LVQ. Setiap proses tersebut melalui tahap pengolahan citra yaitu konversi JPG ke BMP, mengubah citra warna RGB menjadi B/W, normalisasi ukuran citra menjadi 300X300 pixel dan binerisasi citra digital menjadi data biner. Uji coba aplikasi menggunakan 12 buku, yang terdiri dari 2 judul buku. 2 untuk bobot awal (w1 dan w2), 4 untuk data pelatihan dan 6 buku untuk pengujian/pengenalan. Data Inisialisasi LVQ menggunakan MaxEpoch=10, eps=0.001 dan Ξ±=0.05. Dengan data tersebut, aplikasi berhasil mengenali semua buku yang diujikan. Daftar Pustaka: [1]
[2] Gambar 9. Input Data latih beserta targetnya. Kemudian melakukan proses pelatihan. proses pelatihan menghasilkan nilai data w1 dan w2 baru (lihat Gambar 10) yang akan digunakan pada proses pengujian/pengenalan. Proses ini juga membutuhkan pengolahan citra.
[3]
[4]
Gambar 10. Potongan w1 dan w2 hasil pelatihan
[5]
Setelah melewati proses pelatihan, aplikasi digunakan untuk menguji/mengenali buku dengan menginput citra sampul buku yang akan dikenali (lihat Gambar 11(a)).
[6]
Gambar 11(a). Input buku yang akan diuji/dikenali
[7]
Aplikasi akan menampilkan output berupa keterangan bahwa buku tersebut termasuk dalam klasifikasi jenis buku 1 atau 2 (lihat Gambar 11(b)). Proses pengujian dapat dilakukan berulang-ulang dengan buku yang berbeda dan akan memberikan output hasil pengenalan.
Gambar 11(b). Output aplikasi pengenalan buku
Kesimpulan
Cahyono, G. Prasetyo, 2010, Simulasi Pengenalan Barcode Menggunakan Jaringan Syaraf Tiruan Learning Vector Quantization, Surabaya, ITS Undergraduate 12589. Camastra, Francesco dan Viciarelli, Alessandro, 2001, Cursive Character Recognition By Learning Vector Quantization, Amsterdam, Pattern Recognition Letter 22. Cormen, Thomas H., dkk, 2001, Introduction to Algorithms Second Edition, London, MIT Press. Kurniawan, Fachrul dan Nurhayati, Hani, 2011, Simulasi Pengenalan Tulisan Menggunakan LVQ (Learning Vector Quantization), Malang, MATICS Vol. 4 No. 4. Ranadhi, Djalu, dkk, 2006, Implementasi Learning Vector Quantization (LVQ) Untuk Pengenalan Pola Sidik Jari Pada Sistem Informasi Narapidana LP Wirogunan, Yogyakarta, Media Informatika Vol. 4. No.1. Santi, Candra Noor, 2011, Mengubah Citra Berwarna Menjadi GrayScale dan Citra biner, Semarang, Jurnal Teknologi Informasi DINAMIK Volume 16, No.1. Sutojo,T., dkk, 2011, Kecerdasan Buatan, Yogyakarta, ANDI.