SISTEM PENGENALAN BARCODE MENGGUNAKAN JARINGAN SYARAF TIRUAN LEARNING VECTOR QUANTIZATION
Nama Mahasiswa NRP Jurusan Dosen Pembimbing
: : : :
Gigih Prasetyo Cahyono 1206 100 067 Matematika FMIPA-ITS Prof. DR. M. Isa Irawan, MT.
Abstrak
Salah satu cara yang digunakan manusia dalam menyandikan sejumlah data secara unik adalah dengan barcode. Data yang disandikan biasanya data yang berhubungan dengan informasi suatu barang. Suatu barang yang diberi label barcode akan memudahkan dalam proses pemeriksaan. Perangkat input yang digunakan untuk membaca barcode membutuhkan posisi sudut barcode yang tepat agar dapat dibaca dan sering juga kita jumpai bahwa kode barcode tersebut mengalami goresan atau noise yang mengakibatkan alat pembaca barcode yang biasa tidak dapat mengenali barcode tersebut. Dari uji coba yang dilakukan metode klasifikasi JSTLVQ mamiliki tingkat akurasi pengenalan terhadap barcode yang sangat baik, dimana dari 100 macam barcode yang telah diujikan 96% barcode normal bisa dikenali dan 92% barcode dengan noise kurang dari 20% bisa dikenali. Kata kunci : barcode, perangkat input, noise, metode learning vector quantization. 1. PENDAHULUAN
barang, dan lain sebagainya. Semua informasi yang dibutuhkan untuk keperluan tertentu mengenai suatu barang akan dijadikan suatu kode yang mempunyai bentuk batang dengan warna hitam/gelap. Aplikasi dari barcode selain untuk penyandian suatu barang juga dapat digunakan untuk penyandian sistem keamanan, seperti doorlock system. Aplikasi barcode yang biasa dijumpai yaitu pada supermarket, dimana kode barcode yang tertera pada barang mengandung kode jenis barang dan kode produsen. Salah satu metoda yang dapat digunakan untuk identifikasi pola citra adalah Jaringan Syaraf Tiruan. Jaringan syaraf tiruan merupakan sebuah sistem pemroses informasi yang mempunyai karakteristik sama dengan jaringan syaraf biologis manusia. Secara umum jaringan syaraf tiruan dikembangkan pada model-model matematis dari cara berfikir manusia dan jaringan syaraf tiruan mampu melakukan generalisasi terhadap data-data yang dijadikan sebagai bahan belajar dengan cara menyimpan data hasil pelatihan dalam bobot koneksi antar unit, sehingga jaringan syaraf tiruan mampu mengenali objek yang dinamis ataupun objek yang statis, serta mampu mengenali pola citra yang berbedabeda. Kemampuan inilah yang dapat digunakan
Pada saat ini perkembangan teknologi sangat pesat sekali, seiring dengan kemajuan jaman dan perkembangan ilmu pengetahuan. Teknologi yang canggih memberikan kemudahan bagi pekerjaan manusia yang sifatnya memberatkan, sehingga pekerjaan yang dahulu masih didominasi oleh tenaga manusia maka sekarang bisa dialihkan dengan tenaga mesin. Salah satu hasil cipta teknologi yang memberikan kemudahan bagi pekerjaan manusia adalah komputer, dimana sekarang ini aplikasi dari komputer sudah banyak diterapkan dalam berbagai bidang kehidupan, misalnya bidang militer, kedokteran, industri, perdagangan, dan lain sebagainya, sehingga komputer menjadi alat bantu yang handal bagi manusia. Dalam bidang perdagangan, komputer memberikan peran yang cukup besar yaitu dalam kalkulasi harga barang secara cepat, database, juga dalam pembacaan pola citra barcode. „Barcode‟ adalah garis-garis hitam yang dibuat menurut kode tertentu, umumnya digunakan sebagai identifikasi terhadap suatu objek atau barang. Data yang biasa disandikan adalah nama barang, jenis barang, jumlah, harga, periode suatu
1
dalam mengidentifikasi pola citra barcode, sebab citra barcode yang tertera dalam setiap barang mempunyai pola yang berbeda-beda maka pola inilah yang dapat digunakan untuk mencirikan satu barang dengan barang yang lain. Dalam tugas akhir ini digunakan metode JST-LVQ untuk melakukan tugas pengenalannya. Untuk mendapatkan input data yang lebih baik maka digunakan tehnik pengolahan citra untuk pra-pengolahan data barcode. Tujuan dari tugas akhir ini adalah mengimplementasikan sebuah program yang dapat mengenali barcode dalam kondisi normal maupun kondisi rusak.
modern, barcode yang banyak digunakan pada sebagian besar komoditas. Barcode konvensional terdiri dari dua bagian yaitu pertama adalah kelompok garis dan yang lain terdiri dari angka-angka di bawah garis-garis tersebut. Ada dua jenis barcode yaitu pertama barcode satu dimensi, barcode ini terdiri dari garis-garis yang berwarna putih dan hitam, warna putih untuk nilai 0 dan warna hitam untuk nilai 1. Yang kedua yaitu barcode dua dimensi, barcode ini sudah tidak berupa garis-garis lagi, akan tetapi seperti gambar sehingga informasi yang tersimpan di dalamnya akan lebih besar. Dalam tugas akhir ini menggunakan contoh barcode satu dimensi dengan tipe EAN 13 (Europe Article Number) tipe ini sering kita jumpai untuk kode suatu barang di supermarket. Tipe EAN 13 dipakai untuk pengkodean barang-barang atau produk yang dikomersialkan, tipe ini sendiri terdiri dari 13 digit dan masing-masing digit memiliki arti. Untuk dua digit pertama melambangkan “kode negara”, lima digit berikutnya melambangkan “kode produsen yang memproduksi barang” dan lima digit berikutnya melambangkan “kode barang yang diberikan produsen” serta satu digit terakhir berfungsi sebagai digit pemeriksaan yang artinya digit ini dipergunakan untuk memeriksa kebenaran sistem dalam pembacaan barcode dengan barang yang memuat kode tersebut (Yuan, 1994). Aturan pembacaan barcode secara manual dapat dilihat pada gambar 2.1 berikut :
2. Tinjauan Pustaka 2.1 Studi Penelitian
Sistem pengenalan barcode adalah suatu sistem yang mampu mengenali code barcode dimana code ini digunakan untuk menyandikan suatu barang atau buku. Sistem ini banyak digunakan untuk penyandian sistem keamanan, seperti doorlock system dan aplikasi perkembangan sistem barcode ini sering dijumpai yaitu pada supermarket. Pada tahun 1994, Yuan Liao, Jen Liu dan Rong Tyan melakukan penelitian mengenai sistem pengenalan barcode dengan menggunakan jaringan syaraf tiruan backpropagation. Pada penelitian ini masih terdapat kekurangan pada saat akuisisi citra barcode dan masih kesulitan ketika mengenali barcode ketika dalam keadaan melengkung misalnya pada code barcode pada botol. Pada penelitian ini, akan dikembangkan perangkat lunak pengenalan barcode secara offline dengan menggunakan metode LVQ untuk klasifikasi. Dari perangkat lunak yang dihasilkan akan dilihat kemampuan metode LVQ dari segi akurasi terhadap pengenalan barcode dan waktu yang diperlukan untuk pelatihan pola barcode tersebut. Proses pra-pengolahan citra barcode menggunakan beberapa metode yang ada pada pengolahan citra digital. 2.2 Barcode dan Aturan Pembacaannya
„Barcode‟ adalah garis-garis hitam yang dibuat menurut kode tertentu, umumnya digunakan sebagai identifikasi terhadap suatu objek atau barang. Dalam masyarakat
Gambar 2.1 Contoh Aturan Pembacaan Barcode
2
mengambil prinsip dari fungsi laplacian dan gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF. Kelebihan dari metode ini adalah kemampuan untuk mengurangi noise sebelum melakukan perhitungan deteksi tepi. Kernel filter yang digunakan adalah sebagai berikut :
2.3 Pengolahan Citra Digital
Proses pengolahan citra digital bermacam-macam tergantung pada kebutuhan dan keluaran yang diinginkan, diantaranya deteksi tepi (edge detection), grayscaling, thresholding. a
Deteksi Tepi (Edge Detection) Deteksi Tepi (Edge Detection) adalah suatu proses yang menghasilkan tepi-tepi dari objek-objek gambar. Suatu titik (x,y) dikatakan suatu tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangga. Macam-macam metode untuk proses deteksi tepi, antara lain sebagai berikut : 1. Metode Robert Metode Robert adalah nama lain dari teknik differensial, yaitu differensial pada arah horizontal dan differensial kearah vertikal, dengan ditambahkan proses konversi biner setelah dilakukan differensial. Kernel filter yang digunakan dalam metode Robert adalah sebagai berikut :
Dalam penelitian ini menggunakan metode sobel. Proses Edge Detection citra barcode seperti tampak pada Gambar 2.10
Gambar 2.10 Proses Edge Detection Pada Citra Barcode
2. Metode Prewitt Metode Prewitt merupakan pengembangan metode robert dengan menggunakan filter High Pash Filter (HPF) yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF. Kernel filter yang digunakan adalah sebagai berikut :
b
Grayscalling Grayscaling adalah teknik yang digunakan untuk mengubah citra berwana menjadi bentuk grayscale atau tingkat keabuan (dari hitam - putih). Pengubahan dari citra berwarna ke bentuk grayscale mengikuti aturan sebagai berikut : x, y, f ( x, y) x, y, I ( x, y) R(i, j ) G(i, j ) B(i, j ) I (i, j ) 3 Keterangan : f(x,y) = nilai intensitas yang lama I(x,y) = nilai intensitas yang baru c
Thresholding Thresholding digunakan untuk mengubah intensitas piksel menjadi salah satu dari dua nilai, a1 atau a2. Hasil dari proses
3. Metode Sobel Metode Sobel merupakan pengembangan metode robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini
3
thresholding ditentukan oleh suatu parameter yang disebut nilai threshold.
Adapun algoritma dari LVQ adalah: Langkah 1. Inisialisasikan vektor referensi dan learning rate, (0) Langkah 2. Selama kondisi berhenti bernilai salah, kerjakan 1. Untuk masing-masing pelatihan vektor input x 2. Temukan j sehingga x wj
Proses thresholding menggunakan fungsi sebagai berikut : x, y, f ( x, y) x, y, g ( x, y)
a , f ( x, y ) T g ( x, y ) 1 a 2 , f ( x, y ) T Keterangan : f(x,y) = nilai intensitas yang lama g(x,y) = nilai intensitas yang baru T = nilai threshold nilai threshold didapat dengan cara menghitung nilai rata-rata derajat keabuan citra atau dengan persamaan : T
1 mxn
n
bernilai minimum 3. Perbaiki w j dengan : 1. jika T= c j maka wj (baru) wj (lama) x w j (lama)
jika T c j maka wj (baru) wj (lama) x w j (lama)
m
f (i, j )
i 1 j 1
4. Kurangi learning rate 5. Tes kondisi berhenti
Keterangan : = panjang citra m = lebar citra n f (i, j ) = nilai intensitas pada koordinat (i, j ) Jika a1 = 0 dan a2 = 1, maka proses thresholding mengubah citra grayscale menjadi citra biner.
3. Metodologi Penelitian Proses pengerjaan tugas akhir ini terbagi menjadi dua bagian besar, yaitu proses pengolahan citra digital dan pengenalan citra barcode dengan menggunakan jaringan syaraf tiruan. 3.1 Pengolahan Citra Digital
2.4 Metode JST-LVQ
Motivasi untuk sebuah algoritma yang diterapkan pada jaringan syaraf LVQ adalah untuk menemukan unit output yang terdekat dengan vektor input. Hal tersebut akan berakhir, jika x dan w berada pada kelas yang sama, maka bobot dipindahkan ke vektor input yang baru dan jika x dan w berada pada kelas yang berbeda, maka bobot akan dipindahkan dari vektor input. Ada beberapa notasi yang akan digunakan, yaitu : x vektor pelatihan ( x1 ,..., xi ,..., xn ) T kategori atau kelas yang benar untuk vektor pelatihan vektor bobot untuk unit output j wj
Alur proses pengolahan citra digital yang dikerjakan dapat digambarkan sebagai berikut :
(w1 j ,..., wij ,..., wnj ) cj
kategori
atau
kelas
yang
direpresentasikan oleh unit output j x w j jarak Euclidean antara vektor input
Gambar 3.1 Alur Proses Pengolahan
Citra Digital
(vektor bobot) dan unit output j
4
secara keseluruhan sebab ciri khusus dari barcode adalah sama untuk setiap baris.
3.1.1 Tahap Preprocessing
Citra yang diperoleh pada saat akuisisi data seringkali tidak sesuai untuk digunakan sebagai data input klasifikasi. Bentuk citra yang digunakan berupa citra biner sehingga pada data input harus dilakukan proses edge detection, grayscalling dan thresholding. Untuk mendapatkan input yang cocok untuk jaringan syaraf tiruan.
3.2 Jaringan Syaraf Tiruan
Jaringan syaraf tiruan dirancang untuk mengenali pola citra barcode yang telah di ekstraksi kebentuk numerik. Dari data tersebut selanjutnya akan diklasifikasi ke dalam kelas-kelas yang telah ditentukan sebelumnya dengan menggunakan metode jaringan syaraf tiruan LVQ.
Gambar 3.2 Diagram Alir Pencarian
Nilai Threshold Pada proses pencarian nilai threshold, data input berupa citra untuk selanjutnya dilakukan proses edge detection untuk memperjelas tepi-tepi citra barcode serta memberikan efek smoothing, sehingga citra yang dihasilkan bersih dari noise, kemudian dicari total derajat keabuaan dari citra tersebut. Nilai threshold didapat dengan cara membagi total derajat keabuaan dengan ukuran citra input.
Gambar 3.3 Digram Alir Training LVQ
Pada tahap training LVQ, input berupa data array hasil dari ekstraksi ciri. Setelah proses training memenuhi kondisi berhenti maka dihasilkan output berupa bobot akhir yang digunakan untuk proses testing.
3.1.2 Ekstraksi Ciri
Pada tahap ini citra barcode yang akan dimasukkan ke dalam jaringan akan diproses lebih lanjut, yaitu diambil nilai perpikselnya yang selanjutnya akan diubah ke bentuk numerik 0 dan 1 atau disebut juga dengan proses normalisasi. Tidak seluruh piksel citra barcode diambil nilainya, tetapi hanya niali piksel citra secara horizontal. Letak pengambilan secara horizontal ini bisa dilakukan pada bagian atas, tengah atau bawah. Pengambilan ini tidak dilakukan
5
jenis barang dan harga barang dari citra barcode yang telah diuji 4. Uji Coba dan Pembahasan 4.1 Pengujian Masing-Masing Proses dari
Sistem Dalam melakukan uji coba perangkat lunak, digunakan sebuah notebook dengan spesifikasi Processor Intel Pentium Core 2 Duo 2.00 GHz, Memory DDR2 2 GB, Hardisk 250 GB dan VGA Card 128 Mb. Sedangkan untuk perangkat lunak yang digunakan adalah sistem oprasi Windows Vista Home Basic, Adobe Photoshop CS 4 dan Java Netbeans 6.8 sebagai tool untuk membuat perangkat lunak. Proses dalam sistem pengenalan barcode ini dibagi menjadi beberapa proses besar, yaitu proses pengolahan citra, proses training dan testing dengan jaringan syaraf tiruan. Berikut ini adalah penjelasan pengujian dari proses yang terdapat dalam sistem :
Gambar 2.4 Diagram Alir Testing
LVQ 3.3 Proses Pengujian Data Citra Barcode Dalam proses pengujian barcode ini, data citra barcode yang akan diuji meliputi citra normal dan citra yang memiliki noise. Maka diperlukan beberapa langkah-langkah khusus untuk melakukan proses pengujiannya.
4.1.1 Pengujian Proses Pengolahan Citra
a. Pengujian Detection)
a. Langkah-Langkah Dalam Pengujian Citra Barcode yang Normal 1. Citra barcode diambil dari data yang telah tersedia. 2. Kemudian data citra tersebut langsung diuji di dalam sistem. 3. Sehingga akan didapatkan sebuah output yang terdiri dari nama barang, jenis barang dan harga barang dari citra barcode yang telah diuji.
Deteksi
Tepi
(Edge
Pada proses deteksi tepi ini citra barcode yang akan menjadi inputan diolah sehingga tepi citra barcode tampak lebih jelas serta memberikan efek smoothing sehingga citra bersih dari noise. Seperti tampak pada Gambar 4.1 berikut ini :
b. Langkah-Langkah Dalam Pengujian Citra Barcode yang Memiliki Noise 1. citra barcode diambil dari data citra barcode normal yang telah disediakan. 2. Citra barcode tersebut kemudian akan diberi noise dahulu sebelum diuji di dalam sistem. Proses pemberian noise ini misalnya bisa dilakukan dengan menggunakan aplikasi pada “Paint”. 3. Setelah proses pemberian noise telah dilakukan, kemudian citra barcode dengan noise tersebut bisa diuji di dalam sistem. 4. Sehingga akan didapatkan sebuah output yang terdiri dari nama barang,
Gambar 4.1 Barcode Hasil Proses Deteksi Tepi b. Pengujian Thresholding
Grayscalling
dan
Setelah citra barcode mengalami proses deteksi tepi lalu citra mengalami 6
proses grayscalling, nilai dari hasil grayscalling digunakan untuk proses thresholding untuk mengubah nilai piksel menjadi 2 macam yaitu 0 dan 1. Seperti tampak pada Gambar 4.2 berikut ini :
semakin besar maka persentase akurasi semakin kecil. Nilai learning rates terbaik dengan persentase akurasi paling tinggi adalah 0,05. b. Uji Coba Jaringan Syaraf Tiruan LVQ Proses trainning menggunakan data citra barcode berjumlah 500 data citra. Dari data tersebut diubah menjadi data array biner (0 dan 1), selanjutnya di gunakan untuk input JST. Dengan memberikan nilai learning rate 0.05 dan maksimum iterasi 100. Dari data citra barcode yang telah dilatihkan dan dilakukan pengujian untuk 100 data citra barcode normal maupun citra dengan noise < 20 % diperoleh hasil seperti terlihat pada tabel 5.2 :
Gambar 4.2 Barcode Hasil Proses Grayscalling dan Thresholding c. Pengujian Ekstraksi Ciri Nilai-nilai piksel dari proses grayscalling dan thresholding yang masih berukuran besar tidak diambil secara keseluruhan tetapi diambil hanya nilai piksel pada bagian tengah citra secara horizontal. Setiap citra diambil nilai piksel dengan ukuran 1 x 250 piksel sudah dalam bentuk array. Seperti tampak pada Gambar 4.3 berikut :
Tabel 5.2 Hasil Uji Coba JST-LVQ dalam Pengenalan Barcode.
Gambar 5.3 Piksel Hasil Ekstraksi Ciri 4.2 Pengujian Jaringan Syaraf Tiruan a. Pengaruh Learning Rates Untuk mengetahui pengaruh learning rates terhadap akurasi maka akan dilakukan percobaan dengan mengambil nilai learning rates : 0.05, 0.1, 0.5, 1. Dengan menggunakan metode JST-LVQ diperoleh hasil uji coba sebagai berikut : Tabel 5.1 Pengaruh terhadap Akurasi
Learning
Rate
Pada Tabel 5.1 dapat disimpulkan bahwa dengan mengambil nilai learning rates 7
Berdasarkan hasil percobaan di atas, dengan menggunakan rumus : persentase_akurasi= maka persentase akurasi pengenalan barcode menggunakan jaringan syaraf tiruan LVQ adalah untuk citra barcode yang normal memiliki tingkat akurasi sebesar 96%, sedangkan untuk citra barcode dengan noise kurang dari 20 % memiliki tingkat akurasi 92%. 5. Penutup
5.1 Kesimpulan Dari hasil uji coba yang telah dilakukan dapat diambil beberapa kesimpulan sebagai berikut : 1. Penggunaan Jaringan Syaraf Tiruan LVQ untuk proses klasifikasi barcode dalam kondisi normal maupun dalam kondisi rusak memberikan hasil yang sangat baik. Yaitu untuk barcode yang normal memiliki akurasi pengenalan mencapai 96% sedangkan untuk barcode yang rusak dengan tingkat kerusakan kurang dari 20% memiliki akurasi pengenalan mencapai 92%. 2. Rancangan algoritma pengolahan dan ekstraksi ciri data citra barcode berhasil diimplementasikan dalam sebuah sistem. 3. Algoritma klasifikasi jaringan syaraf tiruan LVQ berhasil diimplementasikan dalam sebuah sistem yang mampu melakukan pengenalan data barcode.
8
6.1 Saran Dari hasil yang telah dicapai dalam penelitian tugas akhir ini, terdapat beberapa hal yang perlu dipertimbangkan untuk melakukan pengembangan pada penelitian ini, diantaranya sebagai berikut : 1. Proses pengenalan barcode ini dilakukan secara offline. Untuk pengembangan selanjutnya akan lebih baik jika pengenalan dilakukan secara real time. 2. Diharapkan penelitian selanjutnya akan lebih baik menggunakan metode jaringan syaraf tiruan yang lain.
1.
2.
3.
4.
5.
6.
7.
8.
9.
9
DAFTAR PUSTAKA Ahmad, Usman.,(2005), Pengolahan Citra Digital dan Teknik Pemrogramannya.Yogyakarta : Graha Ilmu. Budi R, Imam H dan Arif H.,(2007), Mudah Belajar Java. Bandung : Informatika Bandung. Fausett, L.,(1994), Fundamental of Neural Networks, Architecture, Algorithms dan Aplication, Prentice Hall. “Java Tutorial”, http://www.java2s.com/Tutorial/Java/C atalogJava.htm Kristanto, Andri.,(2004), Jaringan Syaraf Tiruan. Yogyakarta : Gava Media. "Mengenal dan Mempelajari Barcode", http://www.activebarcode.com Siang, JJ.,(2005), Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan Matlab. Yogyakarta : Andi Offset. Sigit, R. , Basuki, A. , Ramadijanti, N. (2005). Step by Step Pengolahan Citra Digital. Yogyakarta : CV. Andi Offset. Yuan L, Jen L and Rong T., (1994), A Bar-Code Recognation System Using Backpropagation Neural Networks, pp. 81-90, 1995.