1. Pendahuluan
Content-based image retrieval (CBIR), adalah suatu aplikasi computer vision yang digunakan untuk melakukan pencarian gambar-gambar digital pada suatu database. Yang dimaksud dengan "Content-based" di sini adalah: bahwa yang dianalisa dalam proses pencarian itu adalah actual contents (kandungan aktual) sebuah gambar. Istilah content pada konteks ini merujuk pada warna, bentuk, tekstur, atau informasi lain yang didapatkan dari gambar tersebut.
Proses umum dari CBIR adalah pada gambar yang menjadi query dilakukan proses ekstraksi feature (image contents), begitu halnya dengan gambar yang ada pada sekumpulan gambar juga dilakukan proses seperti pada gambar query. Parameter feature gambar yang dapat digunakan untuk retrieval pada system ini dapat berupa histogram, susunan warna, teksture, dan shape, tipe spesifik dari obyek, tipe event tertentu, nama individu, lokasi, emosi.
Citra
Secara harafiah, citra (image) adalah gambar pada bidang dwimatra (dua dimensi). Gambar 1.1 adalah citra seorang gadis model yang bernama Lena, dan gambar di sebelah kanannya adalah citra kapal di sebuah pelabuhan. Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dwimatra. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam.
Citra sebagai keluaran dari suatu sistem perekaman data dapat bersifat [MUR92]:
1. optik berupa foto,
2. analog berupa sinyal video seperti gambar pada monitor televisi,
3. digital yang dapat langsung disimpan pada suatu pita magnetik.
Citra yang dimaksudkan di dalam keseluruhan isi buku ini adalah “citra diam” (still images). Citra diam adalah citra tunggal yang tidak bergerak Citra bergerak (moving images) adalah rangkaian citra diam yang ditampilkan secara beruntun (sekuensial) sehingga memberi kesan pada mata kita sebagai gambar yang bergerak. Setiap citra di dalam rangkaian itu disebut frame. Gambar-gambar yang tampak pada film layar lebar atau televisi pada hakikatnya terdiri atas ratusan sampai ribuan frame.
1.2 Definisi Pengolahan Citra
Meskipun sebuah citra kaya informasi, namun seringkali citra yang kita miliki mengalami penurunan mutu (degradasi), misalnya mengandung cacat atau derau (noise), warnanya terlalu kontras, kurang tajam, kabur (blurring), dan sebagainya. Tentu saja citra semacam ini menjadi lebih sulit diinterpretasi karena informasi yang disampaikan oleh citra tersebut menjadi berkurang.
Agar citra yang mengalami gangguan mudah diinterpretasi (baik oleh manusia maupun mesin), maka citra tersebut perlu dimanipulasi menjadi citra lain yang kualitasnya lebih baik. Bidang studi yang menyangkut hal ini adalah pengolahan citra(image processing).
Pengolahan citra adalah pemrosesan citra, khususnya dengan menggunakan komputer, menjadi citra yang kualitasnya lebih baik. Umumnya, operasi-operasi pada pengolahan citra diterapkan pada citra bila [JAI89]:
1. perbaikan atau memodifikasi citra perlu dilakukan untuk meningkatkan kualitas penampakan atau untuk menonjolkan beberapa aspek informasi yang terkandung di dalam citra,
2. elemen di dalam citra perlu dikelompokkan, dicocokkan, atau diukur,
3. sebagian citra perlu digabung dengan bagian citra yang lain.
Di dalam bidang komputer, sebenarnya ada tiga bidang studi yang berkaitan dengan data citra, namun tujuan ketiganya berbeda, yaitu:
1. Grafika Komputer (computer graphics).
2. Pengolahan Citra (image processing).
3. Pengenalan Pola (pattern recognition/image interpretation).
Grafika Komputer bertujuan menghasilkan citra (lebih tepat disebut grafik atau picture) dengan primitif-primitif geometri seperti garis, lingkaran, dan sebagainya. Primitif-primitif geometri tersebut memerlukan data deskriptif untuk melukis elemen-elemen gambar. Contoh data deskriptif adalah koordinat titik, panjang garis, jari-jari lingkaran, tebal garis, warna, dan sebagainya. Grafika komputer memainkan peranan penting dalam visualisasi dan virtual reality.
Contoh grafika komputer misalnya menggambar sebuah ‘rumah’ yang dibentuk oleh garis-garis lurus, dengan data masukan berupa koordinat awal dan koordinat ujung garis .
Pengolahan Citra bertujuan memperbaiki kualitas citra agar mudah diinterpretasi oleh manusia atau mesin (dalam hal ini komputer). Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik daripada citra masukan. Termasuk ke dalam bidang ini juga adalah pemampatan
citra (image compression).
Contoh pengenalan pola misalnya citra pada gambar adalah tulisan tangan yang digunakan sebagai data masukan untuk mengenali karakter ‘A’. Dengan menggunakan suatu algoritma pengenalan pola, diharapkan komputer dapat mengenali bahwa karakter tersebut adalah ‘A’.
1.3 Computer Vision dan Hubungannya dengan
Pengolahan Citra
Terminologi lain yang berkaitan erat dengan pengolahan citra adalah computer visionatau machine vision. Pada hakikatnya, computer vision mencoba meniru cara kerja sistem visual manusia (human vision). Human vision sesungguhnya sangat kompleks. Manusia melihat objek dengan indera penglihatan (mata), lalu citra objek diteruskan ke otak untuk diinterpretasi sehingga manusia mengerti objek apa yang tampak dalam pandangan matanya. Hasil interpretasi ini mungkin
digunakan untuk pengambilan keputusan (misalnya menghindar kalau melihat mobil melaju di depan). Computer vision merupakan proses otomatis yang mengintegrasikan sejumlah
besar proses untuk persepsi visual, seperti akuisisi citra, pengolahan citra, klasifikasi, pengenalan (recognition), dan membuat keputusan. Computer vision terdiri dari teknik-teknik untuk mengestimasi ciri-ciri objek di dalam citra, pengukuran ciri yang berkaitan dengan geometri objek, dan menginterpretasi informasi geometri tersebut. Mungkin berguna bagi anda untuk mengingat persamaan [JAI95] berikut:
Vision = Geometry + Measurement + Interpretation (1.1)
Proses-proses di dalam computer vision dapat dibagi menjadi tiga aktivitas:
1. Memperoleh atau mengakuisisi citra digital.
2. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra
(operasi-operasi pengolahan citra).
3. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan, memantau proses manufaktur, dan lain -lain.
Pengolahan Citra Digital
Pengolahan citra dan pengenalan pola merupakan bagian dari computer vision. Pengolahan citra merupakan proses awal (preprocessing) pada computer vision, sedangkan pengenalan pola merupakan proses untuk menginterpretasi citra. Teknik-teknik di dalam pengenalan pola memainkan peranan penting dalam computer vision untuk mengenali objek. Jika dihubungkan dengan grafika komputer, maka computer vision merupakan kebalikannya. Grafika komputer membentuk (sintesis) citra, sedangkan computer visionmengoraknya (analisis). Pada masa awal kedua bidang ini, tidak ada hubungan antara keduanya, tetapi beberapa tahun belakangan kedua bidang tersebut berkembang semakin dekat. Computer vision menggunakan representasi kurva dan permukaan dan beberapa teknik lain dari grafika komputer, sedangkan grafika komputer menggunakan teknik -teknik di dalam computer vision untuk memuat citra realistik (virtual reality) [JAI95].
1.4 Operasi Pengolahan Citra
Operasi-operasi yang dilakukan di dalam pengolahan citra banyak ragamnya. Namun, secara umum, operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut:
1. Perbaikan kualitas citra (image enhancement).
Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter parameter citra. Dengan operasi ini, ciri-ciri khusus yang terdapat di dalam citra lebih ditonjolkan.
besar proses untuk persepsi visual, seperti akuisisi citra, pengolahan citra, klasifikasi, pengenalan (recognition), dan membuat keputusan. Computer vision terdiri dari teknik-teknik untuk mengestimasi ciri-ciri objek di dalam citra, pengukuran ciri yang berkaitan dengan geometri objek, dan menginterpretasi informasi geometri tersebut. Mungkin berguna bagi anda untuk mengingat persamaan [JAI95] berikut:
Vision = Geometry + Measurement + Interpretation (1.1)
Proses-proses di dalam computer vision dapat dibagi menjadi tiga aktivitas:
1. Memperoleh atau mengakuisisi citra digital.
2. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra
(operasi-operasi pengolahan citra).
3. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan, memantau proses manufaktur, dan lain -lain.
Pengolahan Citra Digital
Pengolahan citra dan pengenalan pola merupakan bagian dari computer vision. Pengolahan citra merupakan proses awal (preprocessing) pada computer vision, sedangkan pengenalan pola merupakan proses untuk menginterpretasi citra. Teknik-teknik di dalam pengenalan pola memainkan peranan penting dalam computer vision untuk mengenali objek. Jika dihubungkan dengan grafika komputer, maka computer vision merupakan kebalikannya. Grafika komputer membentuk (sintesis) citra, sedangkan computer visionmengoraknya (analisis). Pada masa awal kedua bidang ini, tidak ada hubungan antara keduanya, tetapi beberapa tahun belakangan kedua bidang tersebut berkembang semakin dekat. Computer vision menggunakan representasi kurva dan permukaan dan beberapa teknik lain dari grafika komputer, sedangkan grafika komputer menggunakan teknik -teknik di dalam computer vision untuk memuat citra realistik (virtual reality) [JAI95].
1.4 Operasi Pengolahan Citra
Operasi-operasi yang dilakukan di dalam pengolahan citra banyak ragamnya. Namun, secara umum, operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut:
1. Perbaikan kualitas citra (image enhancement).
Jenis operasi ini bertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter parameter citra. Dengan operasi ini, ciri-ciri khusus yang terdapat di dalam citra lebih ditonjolkan.
Contoh-contoh operasi perbaikan citra:
a. perbaikan kontras gelap/terang
b. perbaikan tepian objek (edge enhancement)
c. penajaman (sharpening)
d. pembrian warna semu (pseudocoloring)
e. penapisan derau (noise filtering)
2. Pemampatan citra (image compression).
Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan adalah citra yang telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus. Contoh metode pemampatan citra adalah metode JPEG. Gambar 1adalah citra kapal yang berukuran 258 KB. Hasil pemampatan citra dengan metode JPEG dapat mereduksi ukuran citra semula sehingga menjadi 49 KB saja.
3. Segmentasi citra (image segmentation).
Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola.
4. Pengorakan citra (image analysis)
Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri-ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya.
Contoh-contoh operasi pengorakan citra:
a. Pendeteksian tepi objek (edge detection)
b. Ekstraksi batas (boundary)
c. Representasi daerah (region)
5. Rekonstruksi citra (image reconstruction)
Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis. Misalnya beberapa foto rontgen dengan sinar X digunakan untuk membentuk ulang gambar organ tubuh.
1.5 Aplikasi Pengolahan Citra dan Pengenalan
Pola
Pengolahan citra mempunyai aplikasi yang sangat luas dalam berbagai bidang kehidupan. Di bawah ini disebutkan beberapa aplikasi dalam beberapa bidang [MEN89].
1. Bidang perdagangan
(a) Pembacaan kode batang (bar code) yang tertera pada barang (umum digunakan di pasar swalayan/supermarket).
(b) Mengenali huruf/angka pada suatu formulir secara otomatis.
2. Bidang militer
(a) Mengenali sasaran peluru kendali mela lui sensor visual.
(b) Mengidentifikasi jenis pesawat musuh.
3. Bidang kedokteran
(a) Pengolahan citra sinar X untuk mammografi (deteksi kanker payudara)
(b) NMR (Nuclear Magnetic Resonance)
(c) Mendeteksi kelainan tubuh dari foto sinar X.
(d) Rekonstruksi foto janin hasil USG
4. Bidang biologi
Pengenalan jenis kromosom melalui gambar mikroskopik
5. Komunikasi data
Pemampatan citra yang ditransmisi.
6. Hiburan
a. perbaikan kontras gelap/terang
b. perbaikan tepian objek (edge enhancement)
c. penajaman (sharpening)
d. pembrian warna semu (pseudocoloring)
e. penapisan derau (noise filtering)
2. Pemampatan citra (image compression).
Jenis operasi ini dilakukan agar citra dapat direpresentasikan dalam bentuk yang lebih kompak sehingga memerlukan memori yang lebih sedikit. Hal penting yang harus diperhatikan dalam pemampatan adalah citra yang telah dimampatkan harus tetap mempunyai kualitas gambar yang bagus. Contoh metode pemampatan citra adalah metode JPEG. Gambar 1adalah citra kapal yang berukuran 258 KB. Hasil pemampatan citra dengan metode JPEG dapat mereduksi ukuran citra semula sehingga menjadi 49 KB saja.
3. Segmentasi citra (image segmentation).
Jenis operasi ini bertujuan untuk memecah suatu citra ke dalam beberapa segmen dengan suatu kriteria tertentu. Jenis operasi ini berkaitan erat dengan pengenalan pola.
4. Pengorakan citra (image analysis)
Jenis operasi ini bertujuan menghitung besaran kuantitif dari citra untuk menghasilkan deskripsinya. Teknik pengorakan citra mengekstraksi ciri-ciri tertentu yang membantu dalam identifikasi objek. Proses segmentasi kadangkala diperlukan untuk melokalisasi objek yang diinginkan dari sekelilingnya.
Contoh-contoh operasi pengorakan citra:
a. Pendeteksian tepi objek (edge detection)
b. Ekstraksi batas (boundary)
c. Representasi daerah (region)
5. Rekonstruksi citra (image reconstruction)
Jenis operasi ini bertujuan untuk membentuk ulang objek dari beberapa citra hasil proyeksi. Operasi rekonstruksi citra banyak digunakan dalam bidang medis. Misalnya beberapa foto rontgen dengan sinar X digunakan untuk membentuk ulang gambar organ tubuh.
1.5 Aplikasi Pengolahan Citra dan Pengenalan
Pola
Pengolahan citra mempunyai aplikasi yang sangat luas dalam berbagai bidang kehidupan. Di bawah ini disebutkan beberapa aplikasi dalam beberapa bidang [MEN89].
1. Bidang perdagangan
(a) Pembacaan kode batang (bar code) yang tertera pada barang (umum digunakan di pasar swalayan/supermarket).
(b) Mengenali huruf/angka pada suatu formulir secara otomatis.
2. Bidang militer
(a) Mengenali sasaran peluru kendali mela lui sensor visual.
(b) Mengidentifikasi jenis pesawat musuh.
3. Bidang kedokteran
(a) Pengolahan citra sinar X untuk mammografi (deteksi kanker payudara)
(b) NMR (Nuclear Magnetic Resonance)
(c) Mendeteksi kelainan tubuh dari foto sinar X.
(d) Rekonstruksi foto janin hasil USG
4. Bidang biologi
Pengenalan jenis kromosom melalui gambar mikroskopik
5. Komunikasi data
Pemampatan citra yang ditransmisi.
6. Hiburan
Pemampatan video (MPEG)
7. Robotika
Visualy-guided autonomous navigation
7. Robotika
Visualy-guided autonomous navigation
8. Pemetaan
Klasifikasi penggunaan tanah melalui foto udara/LANDSAT
9. Geologi
Mengenali jenis batu-batuan melalui foto udara/LANDSAT
10. Hukum
10. Hukum
(a) Pengenalan sidik jari
(b) Pengenalan foto narapidana.
1.6 Citra Uji
Pada pembahasan operasi-operasi pengolahan citra, biasanya penulis buku/ literatur menggunakan beberapa contoh citra uji (test images) atau sampel. Terdapat sejumlah citra yang sering dipakai di dalam literatur pengolahan citra ataucomputer vision. Citra-citra tersebut banyak ditemukan di situs-situs web Universitas yang menawarkan mata kuliah (course) pengolahan citra. Anda bisa mencari citra tersebut dengan menggunakan bantuan mesin pencari Google (www.google.com) Kebanyakan dari citra tersebut merupakan citra klasik dalam pengolahan citra. Inilah beberapa diantaranya (dengan keterangan nama citra dan ukurannya, lebar ´ tinggi, dalam satuan pixel).
2. Fitur Warna
Selain bentuk dan textur, warna merupakan salah satu image contents yang sering digunakan pada kebanyakan sistem CBIR. Model warna (color model) adalah sebuah cara untuk merepresentasikan warna yang diindera manusia dalam komputasi. Model warna yang digunakan saat ini dapat digolongkan ke dalam dua kategori: hardware-orienteddan user-oriented.
Model warna hardware-oriented banyak digunakan untuk warna alat-alat. Misalnya model warna RGB (red, green, blue), biasa digunakan untuk warna monitor dan kamera. Model warna CMY (cyan, magenta, yellow), digunakan untuk warna printer; dan warna YIQ digunakan untuk penyiaran tv warna. Sedangkan model warna yang user-oriented termasuk HLS, HCV, HSV, MTM, dan CIE-LUV, didasarkan pada tiga persepsi manusia tentang warna, yaitu hue (keragaman warna), saturation
(kejenuhan), dan brightness (kecerahan) [7].
Berikut penjenjelasan ringkas tentang berbagai macam model atau format
warna:
a) Format warna RGB
Format ini digunakan untuk menghasilkan warna di monitor dan televisi tabung yang menggunankan gelombang elektromagnetik. Sebuah titik ditembak dengan spektrum R, G dan B.
b) Format warna HSV atau HSI atau HSL
(b) Pengenalan foto narapidana.
1.6 Citra Uji
Pada pembahasan operasi-operasi pengolahan citra, biasanya penulis buku/ literatur menggunakan beberapa contoh citra uji (test images) atau sampel. Terdapat sejumlah citra yang sering dipakai di dalam literatur pengolahan citra ataucomputer vision. Citra-citra tersebut banyak ditemukan di situs-situs web Universitas yang menawarkan mata kuliah (course) pengolahan citra. Anda bisa mencari citra tersebut dengan menggunakan bantuan mesin pencari Google (www.google.com) Kebanyakan dari citra tersebut merupakan citra klasik dalam pengolahan citra. Inilah beberapa diantaranya (dengan keterangan nama citra dan ukurannya, lebar ´ tinggi, dalam satuan pixel).
2. Fitur Warna
Selain bentuk dan textur, warna merupakan salah satu image contents yang sering digunakan pada kebanyakan sistem CBIR. Model warna (color model) adalah sebuah cara untuk merepresentasikan warna yang diindera manusia dalam komputasi. Model warna yang digunakan saat ini dapat digolongkan ke dalam dua kategori: hardware-orienteddan user-oriented.
Model warna hardware-oriented banyak digunakan untuk warna alat-alat. Misalnya model warna RGB (red, green, blue), biasa digunakan untuk warna monitor dan kamera. Model warna CMY (cyan, magenta, yellow), digunakan untuk warna printer; dan warna YIQ digunakan untuk penyiaran tv warna. Sedangkan model warna yang user-oriented termasuk HLS, HCV, HSV, MTM, dan CIE-LUV, didasarkan pada tiga persepsi manusia tentang warna, yaitu hue (keragaman warna), saturation
(kejenuhan), dan brightness (kecerahan) [7].
Berikut penjenjelasan ringkas tentang berbagai macam model atau format
warna:
a) Format warna RGB
Format ini digunakan untuk menghasilkan warna di monitor dan televisi tabung yang menggunankan gelombang elektromagnetik. Sebuah titik ditembak dengan spektrum R, G dan B.
b) Format warna HSV atau HSI atau HSL
Format ini merupakan format warna alamiah dengan mempertimbangkan bahwa spektrum warna adalah sebuah koordinat polar seperti warna pantulan yang jatuh di mata manusia. Format ini sangat baik untuk membedakan warna-warna yang 'terlihat'.
c) Format warna CIE
Format warna ini adalah varians dari RGB dengan normalisasi spektrum, sehingga sifat orthogonalitas dari masing-masing komponen warna lebih dijamin. FOrmat ini merupakan standard dalam QBIC
d) Format warna YCrCb
Format warna ini disebut juga dengan warna chrominant. Format ini banyak digunakan dalam skin-detection.
e) Format warna CMYK
Format warna ini adalah penghasil warna pada cat atau tinta. Format warna ini yang digunakan oleh mesin cetak.
2.1. HSV dan RGB
Model warna RGB merupakan yang paling banyak digunakan pada sistem CBIR. Pada model ini, warna direpresentasikan menjadi tiga warna primer, yaitu: red, green, dan blue [8]. Nilai masing-masing warna primer itu berkisar antara 0 - 255. Sedangkan HSV (hue, saturation, value) merupakan model warna yang diturunkan dari RGB. Literatur menunjukkan bahwa performa HSV ternyata lebih baik dalam membedakan warna jika dibandingkan dengan RGB.
3. Color Histogram
Color histogram adalah representasi distribusi warna dalam sebuah gambar yang didapatkan dengan menghitung jumlah pixel dari setiap bagian range warna, secara tipikal dalam dua dimensi atau tiga dimensi. Misalnya ada sebuah gambar berukuran 3x3 pixel dengan nilai RGB sebagai
berikut:
(1,1,1) (1,2,0) (1,2,0)
(1,1,0) (2,1,0) (2,3,1)
(3,2,1) (2,2,1) (2,1,0)
Bila yang digunakan adalah format H(r,g,b) dimulai dari H(0,0,0) s/d H(3,3,3) , maka histogram gambar tersebut adalah sebagai berikut :
H(0,0,0)=0 H(0,0,1)=0 H(0,0,2)=0 H(0,0,3)=0
H(0,1,0)=0 H(0,1,1)=0 H(0,1,2)=0 H(0,1,3)=0
H(0,2,0)=0 H(0,2,1)=0 H(0,2,2)=0 H(0,2,3)=0
H(0,3,0)=0 H(0,3,1)=0 H(0,3,2)=0 H(0,3,3)=0
H(1,0,0)=0 H(1,0,1)=0 H(1,0,2)=0 H(1,0,3)=0
H(1,1,0)=1 H(1,1,1)=1 H(1,1,2)=0 H(1,1,3)=0
H(1,2,0)=1 H(1,2,1)=0 H(1,2,2)=0 H(1,2,3)=0
H(1,3,0)=0 H(1,3,1)=0 H(1,3,2)=0 H(1,3,3)=0
H(2,0,0)=0 H(2,0,1)=0 H(2,0,2)=0 H(2,0,3)=0
H(2,1,0)=2 H(2,1,1)=0 H(2,1,2)=0 H(2,1,3)=0
H(2,2,0)=0 H(2,2,1)=1 H(2,2,2)=0 H(2,2,3)=0
H(2,3,0)=0 H(2,3,1)=1 H(2,3,2)=0 H(2,3,3)=0
H(3,0,0)=0 H(3,0,1)=0 H(3,0,2)=0 H(3,0,3)=0
H(3,1,0)=0 H(3,1,1)=0 H(3,1,2)=0 H(3,1,3)=0
H(3,2,0)=0 H(3,2,1)=1 H(3,2,2)=0 H(3,2,3)=0
H(3,3,0)=0 H(3,3,1)=0 H(3,3,2)=0 H(3,3,3)=0
Jika ditulis, histogram dari data-data diatas adalah:
H = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}
3.1. Color Quantization
Dalam pembuatan histogram, nilai RGB yang punya range dari 0 sampai 255 akan punya kemungkinan kombinasi warna sebesar 16777216 (didapat dari: 255 x 255 x 255). Pada proses komputasi, tentu saja ini proses yang menghabiskan banyak waktu (time consuming).
Masalah tersebut dapat diatasi dengan color quantization (kuantisasi warna), yaitu suatu prosedur untuk mengurangi kemungkinan jumlah warna. Dengan cara ini, jumlah warna yang besar tadi bisa dikurangi, sehingga proses yang dibutuhkan akan semakin mudah.
Seperti dijelaskan dalam literatur, misalnya nilai sebuah pixel RGB adalah (260, 200, 150). Maka setelah melalui kuantisasi menjadi 64 warna, misalnya, range R: 0-3, range G: 0-3, dan range B: 0-3, nilai itu menjadi (260 * 4/255, 200 * 4/255, 150 * 4/255) atau (3,3,2 ).
3.2. Normalisasi
Penggunaan nilai-nilai aktual distribusi warna pada distogram, membuat untuk dipahami. Namun pemakaian dengan cara ini akan menimbulkan masalah jika diterapkan pada gambar yang mempunyai ukuran berbeda namun seebenarnya mempunyai distribusi warna yang sama.
meskipun gambar mempunyai distribusi warna yangsama, tapi mempunyai histogram yang berbeda. Ini dikarenakan perbedaan ukurangambar (dan tentu saja jumlah pixel). Oleh karena itu, untuk membuat histogram tetapsama pada gambar yang mempunyai kesamaan distribusi warna, maka diperlukan suatu
normalisasi histogram. Alih-alih menggunakan jumlah aktual, lebih baik menggunakan persentase pembagian jumlah aktual dengan jumlah total pixel gambar yang digunakan color histogram.
Dengan cara ini, selama distribusi warna pada gambar sama, histogram warnanya akan sama, tidak tergantung lagi pada ukuran gambar. Berikut adalah hasil histogram warna pada gambar 2 yang sudah ternormalisasi:
HA = {50%, 50%}
HB = {50%, 50%}
HC = {50%, 50%}
4. Content Based Image Retrieval
Model warna RGB merupakan yang paling banyak digunakan pada sistem CBIR. Pada model ini, warna direpresentasikan menjadi tiga warna primer, yaitu: red, green, dan blue [8]. Nilai masing-masing warna primer itu berkisar antara 0 - 255. Sedangkan HSV (hue, saturation, value) merupakan model warna yang diturunkan dari RGB. Literatur menunjukkan bahwa performa HSV ternyata lebih baik dalam membedakan warna jika dibandingkan dengan RGB.
3. Color Histogram
Color histogram adalah representasi distribusi warna dalam sebuah gambar yang didapatkan dengan menghitung jumlah pixel dari setiap bagian range warna, secara tipikal dalam dua dimensi atau tiga dimensi. Misalnya ada sebuah gambar berukuran 3x3 pixel dengan nilai RGB sebagai
berikut:
(1,1,1) (1,2,0) (1,2,0)
(1,1,0) (2,1,0) (2,3,1)
(3,2,1) (2,2,1) (2,1,0)
Bila yang digunakan adalah format H(r,g,b) dimulai dari H(0,0,0) s/d H(3,3,3) , maka histogram gambar tersebut adalah sebagai berikut :
H(0,0,0)=0 H(0,0,1)=0 H(0,0,2)=0 H(0,0,3)=0
H(0,1,0)=0 H(0,1,1)=0 H(0,1,2)=0 H(0,1,3)=0
H(0,2,0)=0 H(0,2,1)=0 H(0,2,2)=0 H(0,2,3)=0
H(0,3,0)=0 H(0,3,1)=0 H(0,3,2)=0 H(0,3,3)=0
H(1,0,0)=0 H(1,0,1)=0 H(1,0,2)=0 H(1,0,3)=0
H(1,1,0)=1 H(1,1,1)=1 H(1,1,2)=0 H(1,1,3)=0
H(1,2,0)=1 H(1,2,1)=0 H(1,2,2)=0 H(1,2,3)=0
H(1,3,0)=0 H(1,3,1)=0 H(1,3,2)=0 H(1,3,3)=0
H(2,0,0)=0 H(2,0,1)=0 H(2,0,2)=0 H(2,0,3)=0
H(2,1,0)=2 H(2,1,1)=0 H(2,1,2)=0 H(2,1,3)=0
H(2,2,0)=0 H(2,2,1)=1 H(2,2,2)=0 H(2,2,3)=0
H(2,3,0)=0 H(2,3,1)=1 H(2,3,2)=0 H(2,3,3)=0
H(3,0,0)=0 H(3,0,1)=0 H(3,0,2)=0 H(3,0,3)=0
H(3,1,0)=0 H(3,1,1)=0 H(3,1,2)=0 H(3,1,3)=0
H(3,2,0)=0 H(3,2,1)=1 H(3,2,2)=0 H(3,2,3)=0
H(3,3,0)=0 H(3,3,1)=0 H(3,3,2)=0 H(3,3,3)=0
Jika ditulis, histogram dari data-data diatas adalah:
H = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}
3.1. Color Quantization
Dalam pembuatan histogram, nilai RGB yang punya range dari 0 sampai 255 akan punya kemungkinan kombinasi warna sebesar 16777216 (didapat dari: 255 x 255 x 255). Pada proses komputasi, tentu saja ini proses yang menghabiskan banyak waktu (time consuming).
Masalah tersebut dapat diatasi dengan color quantization (kuantisasi warna), yaitu suatu prosedur untuk mengurangi kemungkinan jumlah warna. Dengan cara ini, jumlah warna yang besar tadi bisa dikurangi, sehingga proses yang dibutuhkan akan semakin mudah.
Seperti dijelaskan dalam literatur, misalnya nilai sebuah pixel RGB adalah (260, 200, 150). Maka setelah melalui kuantisasi menjadi 64 warna, misalnya, range R: 0-3, range G: 0-3, dan range B: 0-3, nilai itu menjadi (260 * 4/255, 200 * 4/255, 150 * 4/255) atau (3,3,2 ).
3.2. Normalisasi
Penggunaan nilai-nilai aktual distribusi warna pada distogram, membuat untuk dipahami. Namun pemakaian dengan cara ini akan menimbulkan masalah jika diterapkan pada gambar yang mempunyai ukuran berbeda namun seebenarnya mempunyai distribusi warna yang sama.
meskipun gambar mempunyai distribusi warna yangsama, tapi mempunyai histogram yang berbeda. Ini dikarenakan perbedaan ukurangambar (dan tentu saja jumlah pixel). Oleh karena itu, untuk membuat histogram tetapsama pada gambar yang mempunyai kesamaan distribusi warna, maka diperlukan suatu
normalisasi histogram. Alih-alih menggunakan jumlah aktual, lebih baik menggunakan persentase pembagian jumlah aktual dengan jumlah total pixel gambar yang digunakan color histogram.
Dengan cara ini, selama distribusi warna pada gambar sama, histogram warnanya akan sama, tidak tergantung lagi pada ukuran gambar. Berikut adalah hasil histogram warna pada gambar 2 yang sudah ternormalisasi:
HA = {50%, 50%}
HB = {50%, 50%}
HC = {50%, 50%}
4. Content Based Image Retrieval
Content Based Image Retrieval System (CBIR) merupakan suatu teknik pencarian kembali gambar yang mempunyai kemiripan karakteristik atau content dari sekumpulan gambar. Proses umum dari CBIR adalah gambar yang menjadi query dilakukan proses ekstraksi fitur, begitu halnya dengan gambar yang ada pada
sekumpulan gambar juga dilakukan proses seperti pada gambar query. Fitur gambar yang dapat digunakan untuk retrieval pada system ini misalnya histogram, susunan warna, teksture, dan shape, tipe spesifik dari obyek, tipe event tertentu, nama individu, lokasi, emosi [9]. Fokus pembahasan pada bagian ini adalah penggunaan color histogram pada image retrieval.
4.1. Pengukuran Jarak Antar Dua Histogram
Fitur warna merupakan fitur yang paling banyak digunakan pada sistem CBIR. Banyak diantaranya mengunakan image color histogram.Color histogram antara dua gambar tadi kemudian dihitung jaraknya. Gambar yang memiliki jarak paling kecil, merupakan solusinya. Sebagai penjelasan, dimisalkan ada dua gambar dengan histogram 4 warna yang sudah terkuantisasi sebagai berikut:
HA = {20%, 30%, 10%, 40%}
HB = {10%, 10%, 50%, 30%}
4.2. Colour Histogram Type
Histogram warna terdiri dari dua tipe, Global colour histograms (GCHs) dan Local colour histograms (LCHs).Pada penggunaan GCH, distribusi warna global suatu gambar diambil dan digunakan sebagai metada. Jika pengguna mencari gambar dengan yang dalam sistem databasenya hanya memperhatikan distribusi warna global suatu gambar, memang, GCH adalah pilihan terbaik. Walaupun demikian, karena GCH hanya mengambil distribusi warna global suatu gambar sebagai pertimbangan untuk membandingkan gambar, ini bisa mengembalikan hasil yang tidak sesuai dengan persepsi visual [7]. abu, dan putih (gambar 4.3). Misalkan gambar A adalah query image, sedangkan gambar B dan C adalah gambar-gambar dalam database.
Image Hitam Abu-abu Putih
A 37.5% 37.5% 25%
B 31.25% 37.5% 31.25%
C 37.5% 37.5% 25%
GCH Image A, B, dan C
Sedangkan Distribusi warna (GCH) tiga gambar diatas adalah seperti pada maka, jarak antara gambar A dengan gambar B dan C adalah:
d(A,B) = |0.375 - 0.3125| + |0.375 - 0.375| + |0.25-0.3125| = 0.125
d(A,C) = |0.375 - 0.375| + |0.375 - 0.375| + |0.25 - 0.25| = 0
C 37.5% 37.5% 25%
GCH Image A, B, dan C
Sedangkan Distribusi warna (GCH) tiga gambar diatas adalah seperti pada maka, jarak antara gambar A dengan gambar B dan C adalah:
d(A,B) = |0.375 - 0.3125| + |0.375 - 0.375| + |0.25-0.3125| = 0.125
d(A,C) = |0.375 - 0.375| + |0.375 - 0.375| + |0.25 - 0.25| = 0
Dari hasil pembandingan, gambar C ternyata ditemukan lebih mirip daripada gambar B (karena jarak C lebih kecil). Padahal, sesuai dengan persepsi, yang lebih mirip dengan gambar A sebenarnya adalah gambar B [7]. GCH merepresentasikan keseluruhan bagian gambar dengan satu histogram.
Sedangkan LCH membagi gambar menjadi beberapa bagian dan kemudian mengambil histogram warna tiap bagian tadi. LCH memang berisi lebih banyak informasi tentang gambar, namun metode ini membutuhkan lebih banyak proses komputasi [10, 11].
5. Contoh Aplikasi Pencarian Melalui Gambar
Google Goggles Aplikasi ini berfungsi sebagai mesin pencari berbasis gambar dari perangkat smartphone yang menggunakan platform Android dan iOS v4.0.
Aplikasi Google Goggles ini memungkinkan anda dan pengguna smartphone lain dapat melakukan pencarian dari foto yang di ambil dari kamera smartphone anda.
Akan terasa kegunaannya untuk mencari tahu tantang produk, landmark terkenal, barcode, karya seni, dan gambar lain yang cukup populer yang mungkin dapat anda temukan secara online. Selain itu, aplikasi ini juga bisa anda gunakan sebagai penerjemah bahasa Inggris, Itali, Jerman, Perancis, dan juga Spanyol hanya dari teks yang anda foto.
Video Google Goggless Review
Dalam praktiknya, pencarian dengan CBIR ternyata tidak hanya melibatkan satu atau dua gambar saja, namun melibatkan lebih banyak lagi (ratusan atau lebih). Oleh karena itu, untuk lebih mempercepat proses pencarian, gambar-gambar tadi dikelompokkan terlebih dahulu menjadi bebarapa cluster berdasarkan kesamaan histogramnya(clustering). Teknik clustering ini bisa menggunakan algoritma K-Means, Algoritma Genetika, FGKA [2] dan sebagainya . Selanjutnya, pencarian dapat dilakukan dengan membandingkan histogram sample gambar dengan nilai-nilai pusat cluster (centroid) tersebut.
8. Referensi
http://ilmukomputer.org/wp-content/uploads/2009/10/yanuwid-cbir.pdf
[1] Anonym, "Content-based image retrieval," http://en.wikipedia.org/wiki/Contentbased_image_retrieval
[2] Entin Martiana, “Perbaikan Kinerja Algoritma Klusterisasi K-Means Genetika,” FTIFITS.
Komunitas eLearning IlmuKomputer.Com
Copyright © 2003-2007 IlmuKomputer.Com
[3] Yi Lu, Shiyong Lu, Farshad Fotouhi, Youping Deng, and Susan Brown, "Fast Genetic
K-means Algorithm and its Application in Gene Expression Data Analysis," Technical
Report TR-DB-06-2003, Department of Computer Science, Wayne State University, June, 2003.
[4] Wen Chen, Yun Q. Shi, and Guorong Xuan, "Identifying Computer Graphics Using
HSV Color Model and Statistical Moments of Characteristic Functions," tanpa tahun.
[5] Gedhe Wiryana Wardana, "Image Clustering Berdasarkan Warna Untuk Identifikasi Buah dengan Metode Hill Climbing,"Jurusan Teknologi Informasi, Politeknik
Elektronika Negeri Surabaya - Institut Teknologi Sepuluh Nopember, 2007.
[6] Helmy Hasniawati, "Image Clustering Berdasarkan Warna Untuk Identifikasi Buah dengan Metode Valley Tracing," Jurusan Teknologi Informasi, Politeknik Elektronika Negeri Surabaya - Institut Teknologi Sepuluh Nopember, 2007.
[7] Yue Zhang, "On the use of CBIR in Image Mosaic Generation," Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada , 2002.
[8] Anonym, "Color histogram," http://en.wikipedia.org/wiki/Color_histogram.
[9] Bayu Bagus, "Image Database Menggunakan Sistem Content Based Image Retrieval dengan Ekstraksi Fitur Terstuktur," Jurusan Teknologi Informasi, Politeknik Elektronika Negeri Surabaya - Institut Teknologi Sepuluh Nopember, 2007.
[10]Shengjiu Wang, “A Robust CBIR Approach Using Local Color Histograms,” Department of Computer Science, University of Alberta, Edmonton, Alberta, Canada, Tech. Rep. TR 01-13, October 2001.
[11]Rami Al-Tayeche dan Ahmed Khalil, "CBIR: Content Based Image Retrieval," Department of Systems and Computer Engineering, Faculty of Engineering, Carleton University, 2003.
[12] HSL and HSV, http://en.wikipedia.org/wiki/HSL_and_HSV Komunitas eLearning
Pada dasarnya CBIR (Content-Based Image Retrieval) Merupakan suatu teknik pencarian suatu data gambar yang diinginkan oleh pengguna terhadap beberapa data gambar, dalam skala yang besar.
User terlebih dahulu memasukkan formasi query yang berupa gambar --> kemudian query tersebut di ekstraksi --> sehingga menghasilkan vektor ciri (ciri khusus suatu gambar), begitu pula data-data gambar yang tersimpan dalam database akan mengalami struktur yang sama seperti formasi query sehingga ditemukan vektor ciri --> kemudian akan dibandingkan satu sama lain untuk mencari kesamaannya. Setelah proses pembandingan tersebut, maka akan terpilih beberapa gambar yang memiliki nilai-nilai vektor yang sama atau hampir sama --> kemudian dilakukan indexing dan retrieval data yang telah terpilih tadi --> sehingga ditemukan urutan gambar yang (dalam database) yang memiliki kesamaan dengan formasi gambar (sesuai keinginan user).
Keyword :
Indexing : merupakan proses pengelompokan data-data sehingga dapat mempermudah penggalian dan pemanggilan data dalam proses pencarian.
Retrieval : pengambilan kembali.
LINK LAINNYA:
Slideshare :
http://www.slideshare.net/fazarhidayat/content-based-image-retrieval-tugas-softskill-kelompok-1-2-ia15
4Shared :
http://www.4shared.com/file/8r__Qjrnce/Content_Based_Image_Retrieval_.html
YouTube :
Http://youtu.be/JGTzmnHKh58
KELOMPOK 1
Nama Anggota
1.Agung Kuncoro
2.Ainun Amaliah
3.Alvian Ganda Putra
4.Andre Oktolesi
5.Bhimo Samudra
6.Dicka A.R
7.Didi Dwi
8.Fajar Hidayatulloh
9.Hojida Zagoto S
10.Maulana Malik
11.Yunita Rahman
Tidak ada komentar:
Posting Komentar