Sistem Pengenalan Barcode Menggunakan Jaringan Syaraf Tiruan Learning Vector Quantization
-
Upload
firdhaayuselvyani -
Category
Documents
-
view
58 -
download
13
description
Transcript of Sistem Pengenalan Barcode Menggunakan Jaringan Syaraf Tiruan Learning Vector Quantization
1
SISTEM PENGENALAN BARCODE MENGGUNAKAN JARINGAN SYARAF TIRUAN
LEARNING VECTOR QUANTIZATION
Nama Mahasiswa : Gigih Prasetyo Cahyono
NRP : 1206 100 067
Jurusan : Matematika FMIPA-ITS
Dosen Pembimbing : 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 JST-
LVQ 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
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
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 berbeda-
beda. Kemampuan inilah yang dapat digunakan
2
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.
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
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 :
Gambar 2.1 Contoh Aturan Pembacaan
Barcode
3
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 :
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
:
3. Metode Sobel
Metode Sobel merupakan
pengembangan metode robert dengan
menggunakan filter HPF yang diberi
satu angka nol penyangga. Metode ini
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 :
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
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 :
),(,,),(,, yxIyxyxfyx
3
),(),(),(),(
jiBjiGjiRjiI
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
4
thresholding ditentukan oleh suatu parameter
yang disebut nilai threshold.
Proses thresholding menggunakan fungsi
sebagai berikut :
),(,,),(,, yxgyxyxfyx
Tyxfa
Tyxfayxg
),(,
),(,),(
2
1
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 :
1 1
1( , )
n m
i j
T f i jmxn
Keterangan :
m = panjang citra
n = lebar citra
( , )f i j = nilai intensitas pada koordinat ( , )i j
Jika a1 = 0 dan a2 = 1, maka proses
thresholding mengubah citra grayscale
menjadi citra biner.
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 1( ,..., ,..., )i nx x x
T kategori atau kelas yang benar untuk
vektor pelatihan
jw vektor bobot untuk unit output j
1( ,..., ,..., )j ij njw w w
jc kategori atau kelas yang
direpresentasikan oleh unit output j
jx w jarak Euclidean antara vektor input
(vektor bobot) dan unit output j
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 jx w
bernilai minimum
3. Perbaiki jw dengan :
1. jika T=jc maka
( ) ( ) ( )j j jw baru w lama x w lama
jika Tjc maka
( ) ( ) ( )j j jw baru w lama x w lama
4. Kurangi learning rate
5. Tes kondisi berhenti
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
Alur proses pengolahan citra digital
yang dikerjakan dapat digambarkan sebagai
berikut :
Gambar 3.1 Alur Proses Pengolahan
Citra Digital
5
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.
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.
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
secara keseluruhan sebab ciri khusus dari
barcode adalah sama untuk setiap baris.
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.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.
6
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.
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.
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,
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 :
4.1.1 Pengujian Proses Pengolahan Citra
a. Pengujian Deteksi Tepi (Edge
Detection)
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 :
Gambar 4.1 Barcode Hasil Proses
Deteksi Tepi
b. Pengujian Grayscalling dan
Thresholding
Setelah citra barcode mengalami
proses deteksi tepi lalu citra mengalami
7
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 :
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 :
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 Learning Rate
terhadap Akurasi
Pada Tabel 5.1 dapat disimpulkan
bahwa dengan mengambil nilai learning rates
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 :
Tabel 5.2 Hasil Uji Coba JST-LVQ dalam
Pengenalan Barcode.
8
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.
9
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.
DAFTAR PUSTAKA
1. Ahmad, Usman.,(2005), Pengolahan
Citra Digital dan Teknik
Pemrogramannya.Yogyakarta :
Graha Ilmu.
2. Budi R, Imam H dan Arif H.,(2007),
Mudah Belajar Java. Bandung :
Informatika Bandung.
3. Fausett, L.,(1994), Fundamental of
Neural Networks, Architecture,
Algorithms dan Aplication,
Prentice Hall.
4. “Java Tutorial”,
http://www.java2s.com/Tutorial/Java/C
atalogJava.htm
5. Kristanto, Andri.,(2004), Jaringan
Syaraf Tiruan. Yogyakarta : Gava
Media.
6. "Mengenal dan Mempelajari
Barcode",
http://www.activebarcode.com
7. Siang, JJ.,(2005), Jaringan Syaraf
Tiruan dan Pemrogramannya
Menggunakan Matlab. Yogyakarta :
Andi Offset.
8. Sigit, R. , Basuki, A. , Ramadijanti, N.
(2005). Step by Step Pengolahan
Citra Digital. Yogyakarta : CV.
Andi Offset.
9. Yuan L, Jen L and Rong T., (1994), A
Bar-Code Recognation System Using
Backpropagation Neural Networks,
pp. 81-90, 1995.