Narotama Collection http://ejournal.narotama.ac.id
Mengenali Variant Produk Dengan Menggunakan CBIR ( Warna ) Dwi Sukriya Wanti Universitas Narotama Surabaya CBIR ( Content Based Image Retrieval System ) adalah teknik untuk mencari citra yang berhubungan dan mempunyai kemiripan karakteristik dari sebuah database citra, dengan proses otomatis. Pada proyek akhir ini digunakan color histogram (Histogram RGB) sebagai ekstrasi feature dari citra baik citra query maupun citra pada database. Kemudian untuk proses matching antara citra query dengan citra database dilakukan perhitungan jarak dari nilai histogram citra query dengan citra database. Nilai jarak yang paling minimal merupakan citra yang mempunyai kemiripan dengan citra query.
pada database yang berhubungan dengan
1. Latar belakang
matrik
kemiripan.
Permasalahan
image
Sekumpulan gambar dalam sistem
retrieval pada beberapa kasus dapat dipandang
membutuhkan label
yang
sebagai permasalahan pattern classification,
termasuk
dimana setiap citra mempunyai kelas tertentu.
kategori yang mana. Pelabelan gambar tidak
Tetapi belum disediakan label kelas untuk
dilakukan secara manual melalui nama file
sekumpulan data citra sehingga hal ini dapat
gambar tetapi dilakukan berdasarkan hasil
dikerjakan dengan membandingkan kesamaan
ekstraksi ciri yang berupa feature vector.
ciri diantara citra (similarity). Penggunaan ciri
Teknik ekstraksi ciri dasar gambar yang umum
warna sudah dapat mendeteksi perbedaan yang
dipakai : untuk ciri warna adalah histogram,
cukup bagus. Berdasarkan hal itu, pada proyek
ciri
akhir ini menggunakan metode histogram
CBIR
menunjukkan
bentuk
gambar
dengan
gambar
tersebut
vektor
kuantisasi,
untuk mendapatkan ciri warna gambar.
diharapkan dapat memberikan hasil yang
Pada proyek akhir ini, kita mencoba
optimal dalam pembentukan label gambar. Prinsip dasar dari teknik CBIR adalah
menggunakan produk sebagai obyek untuk
penggunaan algoritma analisa citra untuk
dapat dikenali komputer. Sebagaimana kita
mengekstrak secara otomatis sejumlah atribut
ketahui produk merupakan obyek yang dapat
citra suatu waktu pada database citra. Atribut
kita bedakan dengan melihat ciri warna, sebab
ini dapat memasukkan nilai numerik terhadap
ketelitian komputer dalam membandingkan
warna, tekstur, dan bentuk. Disebabkan oleh
komposisi warna(RGB) suatu obyek lebih teliti
kompleksitas informasi citra, user tidak dapat
jika dibandingkan dengan mata manusia. Oleh
berharap mendapatkan kecocokan dengan pasti
karena itu kita menggunakan metode image
diantara query dan citra yang akan ditampilkan
matching dengan histogram warna dalam
kembali dari database. Kemiripan diantara
mengenali variant produk. Proses
query user dan citra database ditaksir nilainya
pengenalan
variant
produk
dengan nilai kemiripan, menemukan tetangga
dilakukan dengan dua langkah, yaitu langkah
terdekat dengan citra query diantara citra-citra
pertama komputer harus diberi pengetahuan
1
Narotama Collection http://ejournal.narotama.ac.id
mengenai
produk,
dimana
cara
masing citra yang ada pada database citra.
menghitung histogram warnanya. Langkah
Setelah diketahui nilai histogram RGB pada
kedua yaitu dengan melakukan pengenalan
citra query dan citra database, maka dilakukan
menggunakan selisih gambar query dengan
proses matching atau pencocokan citra antara
gambar data dengan Image Matching dan
citra query dengan citra database. Proses ini
selisih yang terkecil yang diambil. Hal yang
bertujuan untuk mencari citra yang mempunyai
perlu
content yang sama dengan citra query.
dilakukan
dengan
sebelum
komputer
mengidentifikasi suatu obyek, perlu dilakukan training sebagai pembanding. Semakin banyak training maka semakin pintar komputer dalam
4.2. Blok Diagram
mengidentifikasi suatu obyek.
2. Perumusan Masalah Dari latar belakang diatas, maka penulis dapat merumuskan masalah sebagai berikut : 1.
Bagaimana membuat ciri warna pada Gambar 1. Blok Diagram System
tiap variant produk 2.
Bagaimana
menggunakan
image Dari blok diagram diatas dapat dilihat
matching untuk identifikasi variant
bahwa image query dan image database
produk 3. Bagaimana membuat softwere
masing – masing dihitung histogram RGB.
aplikasi identifikasi variant produk
Kemudian untuk proses matching antara citra query
database
dilakukan
tadi da nilai jarak yang paling minimal
Tujuan dari pembuatan proyek akhir adalah
aplikasi
citra
perhitungan jarak dari nilai histogram RGB
3. Tujuan
ini
dengan
untuk
Mendapatkan
merupakan citra yang mempunyai kemiripan
program
dengan citra query.
yang dapat mengenali variant dari
suatu produk. 4.3. Histogram RGB 4. Perencanaan dan Implementasi Histogram RGB merupakan proses pada citra dimana dihasilkan distribusi warna
4.1. Algoritma System Pada pembangunan system untuk
dari citra yaitu jumlah pixel yang mempunyai
penggenalan variant produk menggunakan
nilai RGB sama. Nilai RGB pada tiap-tiap
CBIR dengan histogram warna ini dilakukan
pixel dideteksi kemudian nilai RGB tersebut
dengan metode Histogram Matching.
dimasukkan pada color kubus. Sehingga bila mencari
ditemukan pixel yang mempunyai nilai RGB
Histogram RGB dari citra query dan masing-
yang sama, maka nilai pada color cubus akan
Proses
dimulai
dengan
bertambah. Dari proses ini akan diketahui
2
Narotama Collection http://ejournal.narotama.ac.id
jumlah pixel yang mempunyai nilai RGB yang
digunakan untuk menghitung jarak diatas adalah
sama.
sebagai berikut : Setiap warna RGB terdiri dari nilai 0
sampai 255. RGB(256,256,256)
d=
atau dalam
∑∑∑ (H r
g
Q r , q ,b
− H rT, g ,b
)
2
b
vektor dapat dituliskan dengan 256 x 256 x Dimana HQ dan HT adalah histogram dari
256.
citra query dan citra target dalam database.
255
4.5. Format Gambar Ada banyak algortima (format) yang 0
digunakan untuk membentuk sebuah file
255
gambar. ada bitmap, jpeg, gif ,tiff, dan masih ratusan format lainnya. dari sekian banyak
255
format Gambar 2 RGB ( 256, 256, 256 )
berikut
ini
merupakan
penjelasan-penjelasan untuk beberapa format gambar yang umum digunakan.
4.4. Image Matching Image
gambar,
matching
merupakan
1. Bitmap (bmp,rle)
pencocokan antara citra query dengan citra
format
yang ada pada database.
Microsoft. format ini juga merupakan format
yang
satu
ini
dikeluarkan
oleh
Gambar Query adalah suatu gambar yang
standar pada OS Windows. format Bitmap
dijadikan acuan informasi (content) dalam proses
merupakan sebuah format gambar yang tidak
pencarian. Sedangkan Gambar Database adalah
menggunakan
sekumpulan
digunakan
proses pembuatan file. format ini menyimpan
sebagai database gambar. Dari kumpulan gambar
semua informasi yang ia terima. oleh karena
ini
itu, biasanya sebuah file bertipe bitmap
gambar
akan dicari
yang
gambar
akan
yang
mempunyai
algoritma
kompresi
dalam
kemiripan dengan gambar templatenya. Pada
berukuran
proyek akhir ini yang dijadikan gambar query
penggunaan warna 1 bit hingga 32 bit. format
adalah gambar capture .
ini cocok untuk anda yang tidak ingin gambar
besar.
bitmap
mendukung
Pada proses image matching dilakukan
anda kehilangan keasliannya. selain itu format
dengan seleksi warna. Proses seleksi warna
ini juga cocok untuk gambar-gambar seperti
dilakukan dengan cara histogram warna , dengan
desain logo, banner, dsb.
menghitung jarak dari nilai histogram RGB pada masing-masing citra. Dari jumlah histogram yang
2. GIF (gif)
mempunyai R, G dan B yang sama akan dicari
format yang satu ini pada mulanya dikeluarkan
jaarak antara cita query dengan masing-masing
oleh Compuserve untuk gambar-gambar pada
citra target yang ada di database. Citra yang
halaman website mereka. pada waktu itu
mempunyai jarak yang minimal adalah citra yang
(sekitar
paling mirip dengan citra query. Persamaan yang
internet masihlah rendah. dan format-format
pertengahan
1990-an),
kecepatan
gambar yang ada terlalu besar ukurannya jika
3
Narotama Collection http://ejournal.narotama.ac.id
digunakan untuk menghias sebuah website.
penggunaan warna mulai dari 1 bit (hitam-
format GIF menggunakan sebuah algoritma
putih) hingga 32 bit (16 juta warna +
kompresi dari unisys (LZW). karena pada
blending). selain itu PNG juga memiliki
mulanya digunakan untuk mengatasi kecilnya
fleksibilitas dalam dukungan kompresi. PNG
kecepatan
bisa menggunakan teknik lossles compression,
internet,
maka
GIF
hanya
mendukung penggunaan warna dari 1 bit
bisa
(hitam-putih) hingga 8 bit (256 warna saja).
compression.
namun format GIF mendukung transparasi dan
gambar-gambar logo, website, dsb. kelemahan
juga bisa digunakan untuk animasi. format ini
dari PNG adalah tidak didukung oleh browser-
sangat cocok untuk menghiasai sebuah website
browser lawas (internet explorer 6.0 juga tidak
atau animasi-animasi kecil.
sepenuhnya mendukung format ini), namun
juga
menggunakan format
PNG
teknik
lossy
cocok
untuk
dengan diluncurkannya internet explorer 7.0, 3. JPEG (jpg, jfif , jpg2000)
maka bisa dibilang format ini telah didukung
JPEG sebenarnya merupakan nama sebuah
oleh browser-browser modern.
organisasi (Joint Photographic Experts Group) yang mengeluarkan format jfif. namun pada
5. TIFF
perkembangannya, nama JPEG lebih umun di
format ini terkenal untuk pengguna komputer
kenal dari pada nama format itu sendiri. format
Apple, karena format ini merupakan format
ini sangat terkenal untuk penyimapan sebuah
standar untuk Mancintosh. format ini hampir
photo.
sama dengan Bitmap, namun TIFF memiliki
tidak
seperti
bitmap,
JPEG
menggunakan sebuah alogritma kompressi
kelebihan
(berbasis MPEG) yang dimana aloritma itu
kompresi, mendukung Metadata, dan biasa
akan membuang informasi-infromasi yang
digunakan untuk photo-photo panorama.
seperti
mendukung
algoritma
tidak terlalu penting oleh seuatu gambar. oleh karena itu, format ini akan menghasilkan file
6. RAW
yang berukuran kecil dibandingkan dengan
format yang satu ini umumnya digunakan pada
bitmap dengan sumber yang sama. namun,
kamera-kamera digital. format RAW hampir
karena ada informasi yang hilang, maka
mirip dengan Bitmap. format ini (biasanya)
kualitas gambar yang ada tidak sama 100%
menyimpan semua informasi-informasi yang
dengan sumber.
ada menggunakan teknik lossles compression untuk mengurangi ukuran file. salah satu
4. Portable Network Graphic (png) format
yang
satu
ini
kekurangan dari format RAW ialah tidak untuk
adanya standarisasi format, sehingga hal ini
mengantikan format GIF. berbeda dengan
membuat pihak-pihak yang menggunakan
format GIF yang berlisensi (anda harus bayar
format ini (biasanya pembuat kamera digital)
jika ingin menulis dan membaca), PNG
bisa sesukanya membuat standar sendiri akan
berlisensi gratis. selain itu, karena diciptakan
format file ini. hal itu menyebabkan terkadang
untuk menggantikan GIF, maka PNG juga
sebuah file RAW hasil dari sebuah kamera
mendukung transparansi,
diciptakan
dan
mendukung
4
Narotama Collection http://ejournal.narotama.ac.id
digital belum tentu bisa dibuka/dilihat pada
tipe spesifik dari obyek, tipe event tertentu,
kamera digital yang lain.
nama individu, lokasi, emosi. Citra
query
yang
digunakan
mempunyai beberapa level, yaitu :
7. TGA (TrueVision Targa)
-
format TGA sekarang sudah sangat jarang
Level
1
:
retrival
dengan
dipakai. format ini populer pada awal 80′an
primitive feature, seperti color,
hingga pertengahan 98. format ini hampir sama
teksture, shape. -
dengan Bitmap. biasanya format ini digunakan
Level 2 : retrieval dengan logical
untuk gambar-gambar pada game dikarenakan
feature,
format TGA mendukung teknik transparasi.
individu obyek atau orang. -
Dari sekian banyak format gambar seperti yang dijelaskan diatas,
seperti
tipe
obyek,
Level 3 : retrieval dengan abstrak feature, seperti nama even, tipe
pada tugas
aktifitas, emotional, religius.
akhir ini menggunakan format jpg. Kelebihan menggunakan format gambar jpg
Penelitian dan pembangunan dalam
adalah : -
Mampu
menayangkan
warna
CBIR mencakup keseluruhan topik. Beberapa
dengan
kedalaman 24-bit true color.
pokok
persoalan
- Mengkompresi gambar dengan sifat lossy.
pembangunan CBIR dapat diuraikan sebagai
- Umumnya digunakan untuk menyimpan
berikut : -
gambar-gambar hasil foto.
yang
terjadi
Pemahaman
citra
- format ini akan menghasilkan file yang
dibutuhkan
berukuran kecil.
pencarian informasi -
Pengindentifikasian sesuai
4.6. CBIR
oleh
dalam
dalam
yang
user
dan
cara
yang
penggambaran
content atau karakteristik dari Content
Based
Image
citra
Retrieval -
System ( CBIR ) merupakan suatu teknik
Proses
ekstraksi
feature
dari
image
pencarian kembali citra yang mempunyai -
kemiripan karakteristik atau content dari
Penyediaan tempat penyimpanan untuk database yang besar
sebuah database citra, dengan proses yang -
otomatis.
Proses
matching antara
citra
Proses secara umum dari CBIR adalah citra
query dan citra yang ada pada
yang menjadi query dilakukan proses ekstraksi
database -
feature, begitu halnya dengan citra yang ada di
database secara efisien.
database juga dilakukan proses seperti pada -
citra query.
pada
system ini
Penyediaan human interface dari CBIR system.
Parameter feature citra yang dapat digunakan untuk retrieval
Pengaksesan citra yang ada pada
seperti
histogram, susunan warna, teksture, dan shape,
5
Narotama Collection http://ejournal.narotama.ac.id
Rancagan Program
Dalam rancangan program ini akan dijelaskan
tentang
penggenalan
sistem
variant
dari
program
produk
dengan
menggunakan CBIR dengan ciri warna. Dalam program aplikasi ini hanya ada satu tampilan seperti gambar dibawah ini .
Gambar 4 Untuk menghitung dan menampilkan ciri warna (RGB) maka source code adalah :
th = Val(Text2) nth = Int(256 / th) For i = 1 To 3 * nth h(i) = 0
Gambar 3 Program Aplikasi
Next i Gambar di atas adalah merupakan
For i = 1 To 160
program aplikasi pengenalan variant produk
For j = 1 To 120
menggunakan CBIR dengan ciri warna.
w = Picture1.Point(i, j)
Dimana gambar yg muncul merupakan citra
r = w And RGB(255, 0, 0)
query yang nantinya akan kita bandingkann
g = Int((w And RGB(0, 255, 0)) / 256)
dengan citra yang ada di database dan dikenali
b = Int(Int((w And RGB(0, 0, 255)) / 256) / 256)
sebagai variant produk apa dalam database. Saat kita klik tombol lihat fitur, maka program
akan
menghitung
dan
r = Int(r / th) + 1
akan
g = Int(g / th) + 1
menggambarkan ciri warna yang ada pada citra
b = Int(b / th) + 1
query pada kolom R G B. Seperti gambar 4.
h(r) = h(r) + 1 h(nth + g) = h(nth + g) + 1 h(2 * nth + b) = h(2 * nth + b) + 1 Next j Next i h(1) = 0 h(nth) = 0 h(nth + 1) = 0 h(2 * nth + 1) = 0
6
Narotama Collection http://ejournal.narotama.ac.id
h(nth * 2) = 0
Pada
Gambar
5
variant
produk
hmaks = 0
dikenali sebagai Vita Jelly Drink Strawberry.
For i = 1 To 3 * nth
Dikolom nilai kemiripan terdapat detail nilai
If h(i) > hmaks Then hmaks = h(i)
jarak masing-masing citra database dengan
Next i
citra query.
Picture2.ScaleWidth = 3 * nth
untuk
Picture2.ScaleHeight = 1
codenya adalah :
Picture2.Refresh
Private Sub Command2_Click()
Picture2.Cls
Dim hp(768) As Single
For i = 1 To 3 * nth
Bersihkan
proses
pengenalan
h(i) = h(i) / hmaks
th = Val(Text2)
If i < nth + 1 Then
nth = Int(256 / th)
warna = RGB(255, 0, 0)
produk
source
List1.Clear
Else
k = -1
If i < 2 * nth + 1 Then warna = RGB(0,
nk = -1
255, 0) Else warna = RGB(0, 0, 255)
Emin = 100
End If
For n = 0 To Nproduk
Picture2.Line (i - 0.9, 1)-(i, 1 - h(i)), warna,
Picture4.Picture = LoadPicture(namafile(n))
BF
Picture4.Refresh
Next i
' Perhitungan Ciri
End Sub.
For i = 1 To 3 * nth hp(i) = 0
Setelah proses diatas, kemudian kita
Next i
hitung nilai RGB yang ada pada citra database
For i = 1 To 160
setelah itu kita matchingkan antara citra
For j = 1 To 120
database dan citra query sehingga produk bisa
w = Picture4.Point(i, j)
dikenali seperti terlihat pada gambar 5.
r = w And RGB(255, 0, 0) g = Int((w And RGB(0, 255, 0)) / 256) b = Int(Int((w And RGB(0, 0, 255)) / 256) / 256) r = Int(r / th) + 1 g = Int(g / th) + 1 b = Int(b / th) + 1 hp(r) = hp(r) + 1 hp(nth + g) = hp(nth + g) + 1 hp(2 * nth + b) = hp(2 * nth + b) + 1 Next j Next i
Gambar 5. Penggenalan Produk
hp(1) = 0
7
Narotama Collection http://ejournal.narotama.ac.id
hp(nth) = 0 hp(nth + 1) = 0 hp(2 * nth + 1) = 0 hp(nth * 2) = 0 hpmaks = 0 For i = 1 To 3 * nth If hp(i) > hpmaks Then hpmaks = hp(i) Next i 'Perhitungan jarak d=0 For i = 1 To 3 * nth hp(i) = hp(i) / hpmaks d = d + (h(i) - hp(i)) ^ 2 Next i E = (d / (3 * nth)) ^ 0.5 kal = "Produk" & Str(n) & " : e = " & Format(E, "#.####") ' Menentukan produk If E = 0 Then k=k+1 Picture3(k).Picture = LoadPicture(namafile(n)) Label9(k) = namaproduk(n) If E < Emin Then Emin = E: nk = n End If List1.AddItem kal List1.Refresh Next n If nk >= 0 Then Label12 = "DIKENALI SEBAGAI " & UCase(Trim(namaproduk(nk))) Else Label12 = "TIDAK DIKENALI" Picture4.Picture = LoadPicture("") Picture4.Refresh End Sub
8