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