Mengenali Variant Produk Dengan Menggunakan CBIR ( Warna )

Teks penuh

(1)

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.

1. Latar belakang

Sekumpulan gambar dalam sistem CBIR membutuhkan label gambar yang menunjukkan gambar tersebut termasuk kategori yang mana. Pelabelan gambar tidak dilakukan secara manual melalui nama file gambar tetapi dilakukan berdasarkan hasil ekstraksi ciri yang berupa feature vector. Teknik ekstraksi ciri dasar gambar yang umum dipakai : untuk ciri warna adalah histogram, ciri bentuk dengan vektor kuantisasi, diharapkan dapat memberikan hasil yang optimal dalam pembentukan label gambar.

Prinsip dasar dari teknik CBIR adalah penggunaan algoritma analisa citra untuk mengekstrak secara otomatis sejumlah atribut citra suatu waktu pada database citra. Atribut ini dapat memasukkan nilai numerik terhadap warna, tekstur, dan bentuk. Disebabkan oleh kompleksitas informasi citra, user tidak dapat berharap mendapatkan kecocokan dengan pasti diantara query dan citra yang akan ditampilkan kembali dari database. Kemiripan diantara query user dan citra database ditaksir nilainya dengan nilai kemiripan, menemukan tetangga terdekat dengan citra query diantara citra-citra

pada database yang berhubungan dengan matrik kemiripan. Permasalahan image retrieval pada beberapa kasus dapat dipandang sebagai permasalahan pattern classification, dimana setiap citra mempunyai kelas tertentu. Tetapi belum disediakan label kelas untuk sekumpulan data citra sehingga hal ini dapat dikerjakan dengan membandingkan kesamaan ciri diantara citra (similarity). Penggunaan ciri warna sudah dapat mendeteksi perbedaan yang cukup bagus. Berdasarkan hal itu, pada proyek akhir ini menggunakan metode histogram untuk mendapatkan ciri warna gambar.

Pada proyek akhir ini, kita mencoba menggunakan produk sebagai obyek untuk dapat dikenali komputer. Sebagaimana kita ketahui produk merupakan obyek yang dapat kita bedakan dengan melihat ciri warna, sebab ketelitian komputer dalam membandingkan komposisi warna(RGB) suatu obyek lebih teliti jika dibandingkan dengan mata manusia. Oleh karena itu kita menggunakan metode image matching dengan histogram warna dalam mengenali variant produk.

Proses pengenalan variant produk dilakukan dengan dua langkah, yaitu langkah pertama komputer harus diberi pengetahuan

(2)

mengenai produk, dimana dengan cara menghitung histogram warnanya. Langkah kedua yaitu dengan melakukan pengenalan menggunakan selisih gambar query dengan gambar data dengan Image Matching dan selisih yang terkecil yang diambil. Hal yang perlu dilakukan sebelum komputer mengidentifikasi suatu obyek, perlu dilakukan training sebagai pembanding. Semakin banyak training maka semakin pintar komputer dalam mengidentifikasi suatu obyek.

2. Perumusan Masalah

Dari latar belakang diatas, maka penulis dapat merumuskan masalah sebagai berikut :

1. Bagaimana membuat ciri warna pada tiap variant produk

2. Bagaimana menggunakan image matching untuk identifikasi variant produk

3. Bagaimana membuat softwere aplikasi identifikasi variant produk

3. Tujuan

Tujuan dari pembuatan proyek akhir ini adalah untuk Mendapatkan program aplikasi yang dapat mengenali variant dari suatu produk.

4. Perencanaan dan Implementasi

4.1. Algoritma System

Pada pembangunan system untuk penggenalan variant produk menggunakan CBIR dengan histogram warna ini dilakukan dengan metode Histogram Matching.

Proses dimulai dengan mencari Histogram RGB dari citra query dan

masing-masing citra yang ada pada database citra. Setelah diketahui nilai histogram RGB pada citra query dan citra database, maka dilakukan proses matching atau pencocokan citra antara citra query dengan citra database. Proses ini bertujuan untuk mencari citra yang mempunyai content yang sama dengan citra query.

4.2. Blok Diagram

Gambar 1. Blok Diagram System

Dari blok diagram diatas dapat dilihat bahwa image query dan image database masing – masing dihitung histogram RGB. Kemudian untuk proses matching antara citra query dengan citra database dilakukan perhitungan jarak dari nilai histogram RGB tadi da nilai jarak yang paling minimal merupakan citra yang mempunyai kemiripan dengan citra query.

4.3. Histogram RGB

Histogram RGB merupakan proses pada citra dimana dihasilkan distribusi warna dari citra yaitu jumlah pixel yang mempunyai nilai RGB sama. Nilai RGB pada tiap-tiap pixel dideteksi kemudian nilai RGB tersebut dimasukkan pada color kubus. Sehingga bila ditemukan pixel yang mempunyai nilai RGB yang sama, maka nilai pada color cubus akan bertambah. Dari proses ini akan diketahui

(3)

jumlah pixel yang mempunyai nilai RGB yang sama.

Setiap warna RGB terdiri dari nilai 0 sampai 255. RGB(256,256,256) atau dalam vektor dapat dituliskan dengan 256 x 256 x 256. 255 0 255 255 Gambar 2 RGB ( 256, 256, 256 ) 4.4. Image Matching

Image matching merupakan pencocokan antara citra query dengan citra yang ada pada database.

Gambar Query adalah suatu gambar yang dijadikan acuan informasi (content) dalam proses pencarian. Sedangkan Gambar Database adalah sekumpulan gambar yang akan digunakan sebagai database gambar. Dari kumpulan gambar ini akan dicari gambar yang mempunyai kemiripan dengan gambar templatenya. Pada proyek akhir ini yang dijadikan gambar query adalah gambar capture .

Pada proses image matching dilakukan dengan seleksi warna. Proses seleksi warna dilakukan dengan cara histogram warna , dengan menghitung jarak dari nilai histogram RGB pada masing-masing citra. Dari jumlah histogram yang mempunyai R, G dan B yang sama akan dicari jaarak antara cita query dengan masing-masing citra target yang ada di database. Citra yang mempunyai jarak yang minimal adalah citra yang paling mirip dengan citra query. Persamaan yang

digunakan untuk menghitung jarak diatas adalah sebagai berikut : d =

∑ ∑∑

(

)

r g b T b g r Q b q r

H

H

, , , , 2

Dimana HQ dan HT adalah histogram dari citra query dan citra target dalam database.

4.5. Format Gambar

Ada banyak algortima (format) yang digunakan untuk membentuk sebuah file gambar. ada bitmap, jpeg, gif ,tiff, dan masih ratusan format lainnya. dari sekian banyak format gambar, berikut ini merupakan penjelasan-penjelasan untuk beberapa format gambar yang umum digunakan.

1. Bitmap (bmp,rle)

format yang satu ini dikeluarkan oleh Microsoft. format ini juga merupakan format standar pada OS Windows. format Bitmap merupakan sebuah format gambar yang tidak menggunakan algoritma kompresi dalam proses pembuatan file. format ini menyimpan semua informasi yang ia terima. oleh karena itu, biasanya sebuah file bertipe bitmap berukuran besar. bitmap mendukung penggunaan warna 1 bit hingga 32 bit. format ini cocok untuk anda yang tidak ingin gambar anda kehilangan keasliannya. selain itu format ini juga cocok untuk gambar-gambar seperti desain logo, banner, dsb.

2. GIF (gif)

format yang satu ini pada mulanya dikeluarkan oleh Compuserve untuk gambar-gambar pada halaman website mereka. pada waktu itu (sekitar pertengahan 1990-an), kecepatan internet masihlah rendah. dan format-format gambar yang ada terlalu besar ukurannya jika

(4)

digunakan untuk menghias sebuah website. format GIF menggunakan sebuah algoritma kompresi dari unisys (LZW). karena pada mulanya digunakan untuk mengatasi kecilnya kecepatan internet, maka GIF hanya mendukung penggunaan warna dari 1 bit (hitam-putih) hingga 8 bit (256 warna saja). namun format GIF mendukung transparasi dan juga bisa digunakan untuk animasi. format ini sangat cocok untuk menghiasai sebuah website atau animasi-animasi kecil.

3. JPEG (jpg, jfif , jpg2000)

JPEG sebenarnya merupakan nama sebuah organisasi (Joint Photographic Experts Group) yang mengeluarkan format jfif. namun pada perkembangannya, nama JPEG lebih umun di kenal dari pada nama format itu sendiri. format ini sangat terkenal untuk penyimapan sebuah photo. tidak seperti bitmap, JPEG menggunakan sebuah alogritma kompressi (berbasis MPEG) yang dimana aloritma itu akan membuang informasi-infromasi yang tidak terlalu penting oleh seuatu gambar. oleh karena itu, format ini akan menghasilkan file yang berukuran kecil dibandingkan dengan bitmap dengan sumber yang sama. namun, karena ada informasi yang hilang, maka kualitas gambar yang ada tidak sama 100% dengan sumber.

4. Portable Network Graphic (png)

format yang satu ini diciptakan untuk mengantikan format GIF. berbeda dengan format GIF yang berlisensi (anda harus bayar jika ingin menulis dan membaca), PNG berlisensi gratis. selain itu, karena diciptakan untuk menggantikan GIF, maka PNG juga mendukung transparansi, dan mendukung

penggunaan warna mulai dari 1 bit (hitam-putih) hingga 32 bit (16 juta warna + blending). selain itu PNG juga memiliki fleksibilitas dalam dukungan kompresi. PNG bisa menggunakan teknik lossles compression, bisa juga menggunakan teknik lossy compression. format PNG cocok untuk gambar-gambar logo, website, dsb. kelemahan dari PNG adalah tidak didukung oleh browser-browser lawas (internet explorer 6.0 juga tidak sepenuhnya mendukung format ini), namun dengan diluncurkannya internet explorer 7.0, maka bisa dibilang format ini telah didukung oleh browser-browser modern.

5. TIFF

format ini terkenal untuk pengguna komputer Apple, karena format ini merupakan format standar untuk Mancintosh. format ini hampir sama dengan Bitmap, namun TIFF memiliki kelebihan seperti mendukung algoritma kompresi, mendukung Metadata, dan biasa digunakan untuk photo-photo panorama.

6. RAW

format yang satu ini umumnya digunakan pada kamera-kamera digital. format RAW hampir mirip dengan Bitmap. format ini (biasanya) menyimpan semua informasi-informasi yang ada menggunakan teknik lossles compression untuk mengurangi ukuran file. salah satu kekurangan dari format RAW ialah tidak adanya standarisasi format, sehingga hal ini membuat pihak-pihak yang menggunakan format ini (biasanya pembuat kamera digital) bisa sesukanya membuat standar sendiri akan format file ini. hal itu menyebabkan terkadang sebuah file RAW hasil dari sebuah kamera

(5)

digital belum tentu bisa dibuka/dilihat pada kamera digital yang lain.

7. TGA (TrueVision Targa)

format TGA sekarang sudah sangat jarang dipakai. format ini populer pada awal 80′an hingga pertengahan 98. format ini hampir sama dengan Bitmap. biasanya format ini digunakan untuk gambar-gambar pada game dikarenakan format TGA mendukung teknik transparasi.

Dari sekian banyak format gambar seperti yang dijelaskan diatas, pada tugas akhir ini menggunakan format jpg.

Kelebihan menggunakan format gambar jpg adalah :

- Mampu menayangkan warna dengan kedalaman 24-bit true color.

- Mengkompresi gambar dengan sifat lossy. - Umumnya digunakan untuk menyimpan gambar-gambar hasil foto.

- format ini akan menghasilkan file yang berukuran kecil.

4.6. CBIR

Content Based Image Retrieval System ( CBIR ) merupakan suatu teknik pencarian kembali citra yang mempunyai kemiripan karakteristik atau content dari sebuah database citra, dengan proses yang otomatis.

Proses secara umum dari CBIR adalah citra yang menjadi query dilakukan proses ekstraksi feature, begitu halnya dengan citra yang ada di database juga dilakukan proses seperti pada citra query.

Parameter feature citra yang dapat digunakan untuk retrieval pada system ini seperti histogram, susunan warna, teksture, dan shape,

tipe spesifik dari obyek, tipe event tertentu, nama individu, lokasi, emosi.

Citra query yang digunakan mempunyai beberapa level, yaitu :

- Level 1 : retrival dengan primitive feature, seperti color, teksture, shape.

- Level 2 : retrieval dengan logical feature, seperti tipe obyek, individu obyek atau orang. - Level 3 : retrieval dengan abstrak

feature, seperti nama even, tipe aktifitas, emotional, religius.

Penelitian dan pembangunan dalam CBIR mencakup keseluruhan topik. Beberapa pokok persoalan yang terjadi dalam pembangunan CBIR dapat diuraikan sebagai berikut :

- Pemahaman citra yang dibutuhkan oleh user dan pencarian informasi

- Pengindentifikasian cara yang sesuai dalam penggambaran content atau karakteristik dari citra

- Proses ekstraksi feature dari image

- Penyediaan tempat penyimpanan untuk database yang besar - Proses matching antara citra

query dan citra yang ada pada database

- Pengaksesan citra yang ada pada database secara efisien.

- Penyediaan human interface dari CBIR system.

(6)

Rancagan Program

Dalam rancangan program ini akan dijelaskan tentang sistem dari program penggenalan variant produk dengan menggunakan CBIR dengan ciri warna. Dalam program aplikasi ini hanya ada satu tampilan seperti gambar dibawah ini .

Gambar 3 Program Aplikasi

Gambar di atas adalah merupakan program aplikasi pengenalan variant produk menggunakan CBIR dengan ciri warna. Dimana gambar yg muncul merupakan citra query yang nantinya akan kita bandingkann dengan citra yang ada di database dan dikenali sebagai variant produk apa dalam database.

Saat kita klik tombol lihat fitur, maka program akan menghitung dan akan menggambarkan ciri warna yang ada pada citra query pada kolom R G B. Seperti gambar 4.

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 Next i For i = 1 To 160 For j = 1 To 120 w = Picture1.Point(i, j) 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 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

(7)

h(nth * 2) = 0 hmaks = 0

For i = 1 To 3 * nth

If h(i) > hmaks Then hmaks = h(i) Next i Picture2.ScaleWidth = 3 * nth Picture2.ScaleHeight = 1 Picture2.Refresh Picture2.Cls For i = 1 To 3 * nth h(i) = h(i) / hmaks If i < nth + 1 Then warna = RGB(255, 0, 0) Else If i < 2 * nth + 1 Then warna = RGB(0, 255, 0) Else warna = RGB(0, 0, 255) End If

Picture2.Line (i - 0.9, 1)-(i, 1 - h(i)), warna, BF

Next i End Sub.

Setelah proses diatas, kemudian kita hitung nilai RGB yang ada pada citra database setelah itu kita matchingkan antara citra database dan citra query sehingga produk bisa dikenali seperti terlihat pada gambar 5.

Gambar 5. Penggenalan Produk

Pada Gambar 5 variant produk dikenali sebagai Vita Jelly Drink Strawberry. Dikolom nilai kemiripan terdapat detail nilai jarak masing-masing citra database dengan citra query.

untuk proses pengenalan produk source codenya adalah :

Private Sub Command2_Click() Dim hp(768) As Single Bersihkan th = Val(Text2) nth = Int(256 / th) List1.Clear k = -1 nk = -1 Emin = 100 For n = 0 To Nproduk Picture4.Picture = LoadPicture(namafile(n)) Picture4.Refresh ' Perhitungan Ciri For i = 1 To 3 * nth hp(i) = 0 Next i For i = 1 To 160 For j = 1 To 120 w = Picture4.Point(i, j) 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 hp(1) = 0

(8)

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

Figur

Memperbarui...

Related subjects :