2. 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.
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.
3. Citra
Secara harafiah, citra (image) adalah gambar pada
bidang dwimatra (dua dimensi). Dari sudut pandang
matematis, citra merupakan fungsi menerus (continue)
dari intensitas cahaya pada bidang dwimatra. Citra
sebagai keluaran dari suatu sistem perekaman data
dapat bersifat
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.
4. Definisi Pengolahan Citra
Pengolahan citra adalah pemrosesan citra, khususnya
dengan menggunakan komputer, menjadi citra yang
kualitasnya lebih baik. Sebagai contoh, citra burung nuri
pada Gambar 1.2 (a) tampak agak gelap, lalu dengan
operasi pengolahan citra kontrasnya diperbaiki sehingga
menjadi lebih terang dan tajam (b). Umumnya, operasi-
operasi pada pengolahan citra diterapkan pada citra bila :
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.
5. 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).
(a) Citra burung nuri yang
agak gelap
(b) Citra burung yang telah
diperbaiki kontrasnya sehingga
terlihat jelas dan tajam
Gambar 1.2
6. 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.
Hubungan antara ketiga bidang (grafika komputer, pengolahan
citra, pengenalan pola) ditunjukkan pada Gambar 1.3.
7. Contoh grafika komputer misalnya menggambar sebuah ‘rumah’ yang
dibentuk oleh garis-garis lurus, dengan data masukan berupa koordinat
awal dan koordinat ujung garis (Gambar 1.4).
8. 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 1.5 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’.
Gambar 1. 5. Citra karakter ‘A’
yang digunakan sebagai masukan
untuk pengenalan huruf.
9. Computer Vision dan Hubungannya dengan Pengolahan Citra
Terminologi lain yang berkaitan erat dengan pengolahan citra adalah computer vision atau
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.
10. 8 Pengolahan Citra Digital [SCH89] mengklasifikasikan proses-proses di dalam
computer vision dalam hirarkhi sebagai berikut :
Dari penjelasan di atas, dapat kita lihat bahwa 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 vision mengoraknya
(analisis).
11. 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)
12. Gambar 1.6 adalah contoh operasi penajaman.
Operasi ini menerima masukan sebuah citra
yang gambarnya hendak dibuat tampak lebih
tajam. Bagian citra yang ditajamkan adalah
tepi-tepi objek.
(A)
(B)
citra Lena setelah deblurring
Citra Lena yang kabur (blur)
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.
13. Contoh metode pemampatan citra adalah metode JPEG. Perhatikan Gambar 1.8.
Gambar sebelah kiri adalah citra kapal yang berukuran 258 KB. Hasil
pemampatan citra dengan metode JPEG dapat mereduksi ukuran citra semula
sehingga menjadi 49 KB saja.
Gambar 1. 8. (a) Citra boat.bmp (258 KB)
sebelum dimampatkan, (b) citra boat.jpg (49
KB) sesudah dimampatkan.
(B)(A)
14. 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)
15. Gambar 1. 9. (a) Citra camera, (b) citra
hasil pendeteksian seluruh tepi
Gambar 1.9 adalah contoh operasi pendeteksian tepi pada
citra Camera. Operasi ini menghasilkan semua tepi (edge)
di dalam citra.
(B)(A)
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 untukmembentuk ulang gambar organ tubuh
16. 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 :
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.
17. 6. Hiburan
Pemampatan video (MPEG)
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
(a) Pengenalan sidik jari
(b) Pengenalan foto narapidana.
18. 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 atau computer 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):
19.
20. 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-oriented dan 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].
21. 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.
22. 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.
Berikut ini rumus mengkonversi nilai-nilai RGB menjadi HSV [12]:
Rumus untuk menentukan h:
23. 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)
25. 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 ).
26. Gambar 2.1: Gambar Berwarna "A" dan
Histogramnya
Colour Number of Pixels
(0,0,0) 234
(0,0,1) 23
(0,0,2) 478
… …
… …
… …
(3,3,3) 3429
Tabel 2.1: Color Histogram gambar "A"
Gambar 2.1 dan tabel 2.1 menunjukkan bahwa gambar "A" yang telah melalui
proses kuantisasi menjadi 64 warna. Sesuai dengan distribusi warna pada tiap pixel,
color histogram gambar "A" adalah sebagai berikut: HA = {234, 23, 478, ..., 3429}.
27. 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.
Sebagai contoh, misalnya ada 3 gambar dengan ukuran berbeda yang
terkuantisasi menjadi 2 warna (hitam dan putih) - lihat gambar 2.2
Gambar 2.2: Ukuran beda, tapi distribusi warna sama
Histogram 3 gambar ini adalah:
HA = {2500,2500}
HB = {5625, 5625}
HC = {10000,1000}
28. Seperti dilihat, meskipun ketiga gambar tadi mempunyai distribusi warna yang
sama, tapi mempunyai histogram yang berbeda. Ini dikarenakan perbedaan ukuran
gambar (dan tentu saja jumlah pixel). Oleh karena itu, untuk membuat histogram tetap
sama 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%}
29. 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.
30. 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%}
Literatur [7] menyebutkan cara termudah untuk menghitungnya, yaitu dengan
dengan menggunakan rumus:
Jika nilai 2 histogram tersebut dimasukkan ke dalam rumus diatas, maka
hasilnya adalah sebagai berikut:
31. d(A,B) = |0.2 - 0.1| + |0.3 - 0.1| + |0.1 - 0.5| + |0.4 - 0.3| = 0.8
Cara lain untuk melakukan perhitungan jarak antar dua histogram adalah
menggunakan rumus jarak Euclidan. Rumusnya:
Jika nilai dua histogram diatas dimasukkan ke dalam rumus, maka hasilnya
adalah sebagai berikut:
32. 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.
34. Image Hitam Abu-abu Putih
A 37.5% 37.5% 25%
B 31.25% 37.5% 31.25%
C 37.5% 37.5% 25%
Sedangkan Distribusi Tabel 2.2: GCH Image A, B, dan C warna (GCH) tiga gambar
diatas adalah seperti pada tabel. 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].
35. 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.
36. Penutup
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.
Notas do Editor
This template can be used as a starter file for a photo album.