3BAB II.
4LANDASAN TEORI
4.1. Pelacak Objek (Yang, Shao, Zheng, Wang, & Song, 2011) Pelacak objek (Object Tracking)
telah
banyak
digunakan
dalam
aplikasi
computer
vision.
Perkembangan teknologi komputer, ketersediaan kamera yang berkualitas tinggi dan harga yang terjangkau, meningkatkan kebutuhan-kebutuhan akan analisis video yang dimana menimbulkan ketertarikan akan algoritma pelacakan visual. Berbagai penelitian tentang pelacakan atau pengenalan visual telah banyak dilakukan. Seperti pengenalan berdasarkan pergerakan, pengawasan otomatis, pengindeksan dan perolehan kembali video, interaksi manusia dan komputer, pemantauan lalu lintas, dll. (Jacob & J, 2012) pelacak objek merupakan proses memisahkan objek pada suatu frame video dan memantau pergerakan, orientasi, dan keadaan lainnya pada objek untuk mengekstrak informasi yang berguna.
4.1.1. Representasi Objek (Yilmaz, Javed, & Shah, 2006) Pada proses pelacakan, suatu objek dapat di definisikan sebagai sesuatu yang diinginkan oleh pengguna untuk dilacak. Misalnya seekor ikan yang berada didalam akuarium, kendaraan dijalan, orang yang berjalan dijalan, dan sebagainya. Objek dapat direpresentasikan oleh bentuk atau tampilannya. Representasi bentuk objek yang umum digunakan untuk pelacakan adalah sebagai berikut:
6
8
-
Titik: objek direpresentasikan oleh sebuah titik, yaitu suatu titik pusat massa (Gambar 2.1 (a)) atau merupakan kumpulan dari titik-titik (Gambar 2.1 (b)). Umumnya representasi titik cocok untuk melacak benda-benda yang menempati daerah kecil dalam suatu citra.
-
Bentuk geometris primitif: bentuk objek direpresentasikan oleh suatu persegi, elips (Gambar 2.1 (c), (d)). Pergerakan objek untuk representasi tersebut biasanya dimodelkan oleh translasi atau transformasi proyektif.
-
Objek Siluet dan kontur: representasi kontur mendefinisikan batas dari suatu objek (Gambar 2.1 (g), (h)). Daerah didalam kontur disebut dengan siluet objek. bentuk yang kompleks dapat dilacak dengan menggunakan representasi siluet atau kontur.
-
Model bentuk artikulasi: objek yang diartikulasi terdiri dari bagianbagian tubuh yang disatukan bersama-sama dengan sambungan seperti pada Gambar 2.1 (e).
-
Model rangka: kerangka objek dapat diekstrak dengan menerapkan perubahan sumbu medial ke objek siluet. Model ini biasanya digunakan sebagai representasi bentuk untuk mengenali objek. Representasi rangka dapat digunakan untuk objek yang diartikulasi atau objek yang kaku (Gambar 2.1 (f)).
9
Gambar 4.1 Representasi Objek
4.1.2. Kategori Pelacak Objek (Yilmaz, Javed, & Shah, 2006) Menuliskan survey terhadap metodemetode pelacak objek dan melakukan kategorisasi pelacak objek dengan metodemetode yang merepresentasikan setiap kategori. Penulis menambahkan CAMSHIFT pada kategori Kernel Tracking untuk Template and density based appearance models. Tabel 4.1 Kategori Pelacak (Yilmaz, Javed, & Shah, 2006) Categories Point Tracking Deterministic methods Statistical methods Kernel Tracking Template and appearance models
density
Multi-view appearance models
Representative Work MGE tracker [Salari and Sethi 1990], GOA tracker [Veenman et al. 2001]. Kalman filter [Broida and Chellappa 1986], JPDAF [Bar-Shalom and Foreman 1988], PMHT [Streit and Luginbuhl 1994]. based Mean-shift [Comaniciu et al. 2003], KLT [Shi and Tomasi 1994], Layering [Tao et al. 2002], CAMSHIFT [Bradski 1998] Eigentracking [Black and Jepson 1998],
10
SVM tracker [Avidan 2001] Silhouette Tracking Contour evolution Matching shapes
State space models [Isard and Blake 1998], Variational methods [Bertalmio et al. 2000], Heuristic methods [Ronfard 1994]. Hausdorff [Huttenlocker et al. 1993], Hough transform [Sato and Aggarwal 2004], Histogram [Kang et al. 2004].
4.1. OpenCV Berdasarkan (Bradski & Kaehler, 2008) OpenCV merupakan open source computer vision library yang saat ini banyak digunakan untuk pengembangan aplikasi computer vision. Library dari OpenCV ditulis dalam C dan C++ dan berjalan dibawah Linux, Windows, dan Mac OS X. OpenCV dirancang untuk efisiensi komputasi dan fokus yang kuat pada aplikasi real-time. Salah satu tujuan dari OpenCV adalah menyediakan infrastruktur visi komputer (computer vision) yang mudah digunakan yang membantu orang membangun aplikasi yang cukup canggih secara cepat. Library OpenCV berisi lebih dari 500 fungsi yang menjangkau area permasalahan computer vision seperti, termasuk inspeksi produk pabrik, pencitraan medis, kalibrasi kamera, antarmuka pengguna, stereo vision, dan robotika.
4.2. Kecerdasan Buatan (Artificial Intelligence) Menurut (Rich & Knight, 1991) kecerdasan buatan atau artificial intelligence merupakan studi bagian dari ilmu komputer yang mempelajari bagaimana membuat komputer melakukan berbagai tindakan pekerjaan dapat seperti dan sebaik yang dilakukan manusia. Kecerdasan buatan dibuat pada suatu mesin dengan tujuan untuk membantu manusia dalam mengerjakan pekerjaan
11
sehari-hari atau menemukan solusi dari suatu masalah yang kompleks yang dihadapi. Manusia dianugrahkan memiliki pemikiran, akal, kemampuan untuk belajar dari pengalaman, yang membuatnya bertambah pintar untuk menyelesaikan berbagai masalah yang dihadapi.Demikian pula pada suatu mesin, agar dapat melakukan seperti dan sebaik manusia, maka mesin tersebut diberikan pengetahuan, kemampuan untuk menalar seperti manusia. Berdasarkan (Russel & Norvig, 1995) definisi tentang kecerdasan buatan dapat dikelompokan menjadi empat kategori: -
Sistem yang dapat berpikir seperti manusia.
-
Sistem yang dapat berperilaku seperti manusia
-
Sistem yang berpikir secara rasional
-
Sistem yang dapat berperilaku secara rasional
Pengertian kecerdasan buatan dapat dipandang dari berbagai sudut pandang (Kusumadewi, 2003): 1. Sudut pandang kecerdasan Kecerdasan buatan akan membuat mesin menjadi “cerdas”, mampu berbuat seperti apa yang dilakukan oleh manusia. 2. Sudut pandang penelitian Kecerdasan buatan adalah suatu studi bagaimana membuat agar computer dapat melakukan sesuatu sebaik yang dikerjakan oleh manusia.
12
Domain yang sering dibahas oleh para peneliti: -
-
-
Mundane Task •
Persepsi (Vision & Speech)
•
Bahasa alami (understanding, generation & translation)
•
Pemikiran yang bersifat commonsense
•
Robot control
Formal Task •
Permainan/games
•
Matematika (geometri, logika, kalkulus integral, pembuktian)
Expert Task •
Analisis financial
•
Analisis medical
•
Analisis ilmu pengetahuan
•
Rekayasa (desain, pencarian kegagalan, perencanaan manufaktur)
3. Sudut pandang bisnis Kecerdasan buatan adalah kumpulan peralatan yang sangat powerful dan metodologis dalam menyelesaikan masalah-masalah bisnis. 4. Sudut pandang pemrograman Kecerdasan buatan meliputi studi tentang pemrograman simbolik, penyelesaian masalah (problem solving) dan pencarian(searching). Didalam membangun aplikasi kecerdasan buatan ada 2 bagian utama yang sangat dibutuhkan, yaitu:
13
-
Knowledge Base, berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya.
-
Inference Engine, yaitu kemampuan menarik kesimpulan berdasarkan pengalaman.
Gambar 4.2 Penerapan konsep kecerdasan buatan pada suatu sistem
4.2.1. Kecerdasan Buatan dan Kecerdasan Alami Kecerdasan buatan yang merupakan kecerdasan yang dimiliki oleh suatu mesin dan kecerdasan alami yang dimiliki oleh manusia memiliki keuntungan dan kerugian. Beberapa keuntungan secara komersial dari kecerdasan buatan (Kusumadewi, 2003): -
Kecerdasan buatan bersifat permanen. Tidak akan berubah sepanjang komputer dan program tidak mengubahnya. Sedangkan kecerdasan alami kapan saja dapat hilang dikarenakan sifat manusia yang pelupa.
-
Kecerdasan
buatan
lebih
mudah
diduplikasi
&
disebarkan.
Pengetahuan yang terletak pada suatu sistem komputer dapat disalin dari komputer yang satu ke komputer lain dengan usaha dan biaya yang murah. Sedangkan mentransfer pengetahuan manusia dari satu orang ke orang lainnya membutuhkan proses yang lebih lama dan suatu keahlian atau kemampuan yang dimiliki tidak akan pernah dapat diduplikasi dengan lengkap.
14
-
Kecerdasan buatan bersifat konsisten. Karena kecerdasan buatan adalah bagian dari teknologi komputer. Sedangkan kecerdasan alami akan senantiasa berubah-ubah.
-
Kecerdasan buatan dapat didokumentasi. Keputusan yang dibuah oleh komputer dapat didokumentasi dengan mudah dengan cara melacak setiap aktivitas dari sistem tersebut. Kecerdasan alami sangat sulit untuk direproduksi.
-
Kecerdasan buatan dapat mengerjakan pekerjaan lebih cepat dibanding dengan kecerdasan alami.
-
Kecerdasan buatan dapat mengerjakan pekerjaan lebih baik dibanding dengan kecerdasan alami.
Beberapa keuntungan dari kecerdasan alami adalah : -
Kreatif.
Kemampuan
untuk
menambah
ataupun
memenuhi
pengetahuan itu sangat melekat pada jiwa manusia. Pada kecerdasan buatan, untuk menambah pengetahuan harus dilakukan melalui sistem yang dibangun. -
Kecerdasan
alami
memungkinkan orang
untuk
menggunakan
pengalaman secara langsung. Sedangkan pada kecerdasan buatan harus bekerja dengan input-input simbolik. -
Pemikiran manusia dapat digunakan secara luas, sedangkan kecerdasan buatan sangat terbatas.
15
4.3. Computer vision Definisi Computer Vision menurut (Shapiro & Stockman, 2001) merupakan salah satu cabang ilmu pengetahuan yang mempelajari bagaimana komputer dapat mengenali objek yang diamati, misalnya mempelajari bagaimana suatu sensor dapat memperoleh citra pada dunia nyata, bagaimana mengekstrak informasi yang terkandung didalam suatu citra untuk diproses dan menghasilkan suatu keputusan, mempelajari representasi apakah yang harus digunakan untuk menyimpan deskripsi akan suatu objek yang diamati, dan algoritma apa yang digunakan untuk membangun semua itu. Tujuan utama dari computer vision adalah untuk membuat keputusan yang berguna mengenai objek fisik yang nyata dan berdasarkan peristiwa atau kejadian pada citra yang diamati. Untuk membuat keputusan-keputusan akan objek yang nyata, hampir selalu memerlukan pembuatan beberapa deskripsi atau model dari suatu citra. Karena hal ini, banyak pakar yang mengatakan bahwa tujuan utama dari computer vision adalah membangun deskripsi akan peristiwa atau kejadian dari suatu citra.
4.4. Citra Menurut (Sutoyo, Mulyano, Suhartono, Nurhayati, & Wijanarto, 2009) Citra adalah suatu representasi, kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan.
16
-
Citra Analog
Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar-x, foto yang tercetak di kertas foto, lukisan, pemandangan alam, hasil CT scan, gambar-gambar yang terekam pada pita kaset, dan lain sebagainya. Citra analog tidak dapat direpresentasikan dalam komputer sehingga tidak bisa diproses di komputer secara langsung. Citra analog harus melewati proses konversi analog ke digital untuk dapat diproses di komputer. -
Citra Digital
Menurut (Putra, 2010) Citra digital merupakan sebuah array yang berisi nilai-nilai real maupun kompleks yang direpresentasikan dengan deretan bit tertentu. Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x,y, dan nilai amplitudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra terebut adalah citra digital.
17
Gambar 4.3 Koordinat citra digital (Gonzalez & Woods, 2002) Citra digital dapat ditulis dalam bentuk metriks sebagai berikut:
f (x,y) =
f 0,0 f 1,0 f M
1,0
f 0,1 f 1,1 f M
1,1
f 0, N f 1, N f M
1, N
1 1 1
Nilai pada suatu irisan antara baris dan kolom (pada posisi x,y) disebut dengan picture elements, image elements, pels, atau pixels.
Gambar 4.4 Contoh citra pada area tertentu beserta nilai intensitasnya (Putra, 2010)
18
4.4.1. Pembentukan Citra Digital Pembentukan citra digital melalui beberapa tahapan, yaitu akuisisi citra, sampling, dan kuantisasi. (Sutoyo, Mulyano, Suhartono, Nurhayati, & Wijanarto, 2009) 1. Akuisisi citra Proses akuisisi citra adalah pemetaan suatu pandangan (scene) menjadi citra kontinu dengan menggunakan sensor.
Gambar 4.5 Pemanfaatan sensor array (larik) (Gonzalez & Woods, 2002) Gambar diatas menampilkan contoh proses akuisisi citra digital. Dimana ada sebuah objek yang akan di ambil gambarnya (scene element) untuk dijadikan citra digital. Sumber cahaya diperlukan untuk menerangi objek, yang berarti ada intensitas cahaya (brightness) yang diterima oleh objek. Intensitas cahaya ini sebagian diserap oleh oleh objek, dan sebagian lagi dipantulkan ke lingkungan sekitar objek secara radial. Sistem pencitraan (imaging system) menerima
19
sebagian dari intensitas cahaya yang dipantulkan oleh objek tadi. Didalam sistem pencitraan terdapat sensor optik yang digunakan untuk mendeteksi intensitas cahaya yang masuk ke dalam sistem. Keluaran dari sensor ini berupa arus yang besarnya sebanding dengan intensitas cahaya yang mengenainya. Arus tersebut kemudian dikonversi menjadi data digital yang kemudian dikirimkan ke unit penampil atau unit pengolah lainnya. Secara keseluruhan hasil keluaran sistem pencitraan berupa citra digital. 2. Sampling Sampling adalah transformasi citra kontinu menjadi citra digital dengan cara membagi citra analog (kontinu) menjadi M kolom dan N baris sehingga menjadi citra diskrit. Semakin besar nilai M dan N, semakin halus citra digital yang dihasilkan dan artinya resolusi citra semakin tinggi. Pada kamera digital biasanya menggunakan sensor optik jenis CCD (Charge Coupled Device) yang membentuk sebuah array (larik) berukuran M kolom dan N baris. Sensor jenis CCD digunakan untuk mendeteksi intensitas cahaya yang masuk ke dalam kamera. Jumlah seluruh pantulan cahaya yang masuk ke sensor CCD sebenarnya adalah citra analog 2 dimensi. Oleh sensor optik dari seluruh pantulan cahaya ini yang diterima hanya sebagian saja, yaitu sebesar ukuran array tadi (MxN). Akibatnya ada beberapa informasi citra yang hilang (tidak tertangkap oleh sensor). Inilah yang dimaksud dengan sampling, yaitu pengambilan sebagian cahaya dari seluruh cajaya yang diterima oleh sensor. Oleh karena cahaya yang diterima sensor hanya array berukuran M kolom
20
mensi ini dipproyeksikann menjadi cittra digital 2 dan N bariss maka citra analog 2 dim dimensi berrukuran M kolom k dan N baris.
Gambar 4.6 4 (a) Citra analog, (b) Citra analogg disamplingg menjadi 144 baris dan 12 kolom, (c) Citra diggital hasil sam mpling berukkuran 12x144 pixel (Gon nzalez & Woods, 2002) 3.. Kuantisasi Warnna sebuah ciitra digital dditentukan oleh o besar iintensitas piiksel-piksel penyusunnyya. Warna ini i diperolehh dari besarr kecilnya iintensitas caahaya yang ditangkap oleh o sensor. Sedangkann skala intennsitas cahayya di alam inni (gradasi intensitas analog) a tidakk terbatas, yyang bisa meenghasilkan warna deng gan jumlah yang tak teerhingga. Sayyangnya, sam mpai saat inni belum adaa satu sensorr pun yang mampu meenangkap seeluruh gradaasi warna teersebut. Ketterbatasan in nilah yang mengharusk kan kita membuat m ggradasi waarna sesuai dengan kebutuhan. Transformaasi intensitass analog yanng bersifat kontinu k ke ddaerah intenssitas diskrit disebut den ngan kuantissasi. Prosess kuantisasi dihasilkan oleh peralattan digital, misalnya sccanner, foto digital, dann kamera diggital. Misal bbesarnya meemori yang digunakan untuk u menyiimpan warnaa adalah 3 bit b maka graddasi warna citra c analog
21
pada gambar diatas (yang seharusnya mempunyai jumlah gradasi warna yang tak terhingga) hanya diwakili oleh gradasi warna 3 bit atau memiliki 23 = 8 warna. Kemudian dilakukan kuantisasi untuk setiap piksel. Warna tiap-tiap piksel disesuaikan dengan gradasi warna yang disediakan oleh memori.
Gambar 4.7 Gradasi warna 3 bit yang hanya memiliki 8 warna (Putra, 2010) Setelah tiap-tiap piksel dikuantisasi, nilai-nilai intensitas diperoleh sebagai berikut:
Gambar 4.8 Citra digital yang disimpan oleh memori hanyalah nilai-nilai intensitas tersebut, yang berbentuk metriks berukuran 12 kolom x 14 baris (Putra, 2010)
22
Bila citra digital tersebut ditulis dalam bentuk matematis sebagai fungsi f(x,y), maka:
Gambar 4.9 Citra digital yang ditulis dalam bentuk matematis. Pada f(3,10) = 7, artinya piksel di titik (3,10) mempunyai nilai intensitas sebesar 7 (Putra, 2010)
4.4.2. Jenis Citra Nilai suatu pixel memiliki nilai dalam rentang tertentu, dari nilai minimum sampai nilai maksimum. Jangkauan yang digunakan berbeda-beda tergantung dari jenis warnanya. Namun secara umum jangkauannya adalah 0-255. Citra dengan penggambaran seperti ini digolongkan kedalam citra integer. Berikut adalah jenis-jenis citra berdasarkan nilai pixelnya (Sutoyo, Mulyano, Suhartono, Nurhayati, & Wijanarto, 2009): -
Citra Biner
23
Citra biner adalaah citra yanng hanya meemiliki 2 warna, w yaitu hitam dan putih. Sehin ngga, citra biner b hanyaa tampak denngan kombinasi warna hitam atau putih. Untu uk menyimpaan kedua waarna ini dibuttuhkan 1 bit di memori. Gradaasi warna:
0
1
Gambaar 4.10 Citraa biner -
n) Citra Graayscale (Skaala Keabuan
Banyaaknya warnaa tergantungg pada jumlah bit yang disediakan di memori untuk menaampung kebu utuhan warnna ini.
Gamb bar 4.11 Perbbandingan ggradasi warnaa mulai dari 1 bit sampaai 8 bit -
Citra Wa arna(True C Color)
24
Setiap piksel pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar atau primer yaitu RGB (Red, Green, Blue). Warna dasar tersebut dapat menghasilkan warna-warna lain dengan perpaduan antara warna dan intensitasnya. Misalnya perpaduan dari warna primer, dapat menghasilkan warna sekunder, yaitu: 1. Magenta = merah + biru 2. Cyan = hijau + biru 3. Kuning = merah + hijau
Gambar 4.12 Perpaduan warna pada RGB. Setiap warna primer menggunakan penyimpanan 8 bit = 1 byte, yang berarti setiap warna mempunyai gradasi sebanyak 256 warna. Berarti setiap piksel mempunyai kombinasi warna sebanyak 2 · 2 · 2
16.777.216 warna
(24 bit).
4.4.3. Model Warna Pada warna premier, karakteristik umum yang digunakan untuk membedakan satu warna dengan warna lainnya adalah: 1. Brightness, ukuran tingkat intensitas dari warna chromatic.
25
2. Hue, ukuran panjang gelombang yang dominan dalam campuran gelombang cahaya. Hue menunjukan warna dominan yang diterima oleh pengamat. 3. Saturation, ukuran sedikit/banyaknya cahaya putih yang tercampur dengan hue (kemurnian warna). Hue dan saturation jika digabung disebut sebagai chromaticity. Jumlah warna merah, hijau, dan biru yang dibutuhkan untuk membentuk warna tertentu disebut nilai tristimulus yang dinotasikan dengan X(merah), Y(hijau), Z(biru). Dengan demikian setiap warna bisa dinotasikan sebagai berikut: ,
,
,
1
Model warna adalah sebuah sistem koordinat yang bisa memetakan semua warna dalam sistem tersebut dengan sebuah titik.Berikut beberapa model warna yang ada: -
Model Warna RGB (Red, Green, Blue)
Model warna RGB berorientasi hardware, terutama untuk warna monitor dan warna pada kamera video. Dalam model ini tiap warna ditunjukan dengan kombinasi tiga warna primer. Ketiga warna primer tersebut membentuk sistem koordinat cartesian tiga dimensi. Subruang pada diagram tersebut menunjukan posisi tiap warna. Nilai RGB terletak pada satu sudut dan nilai cyan, magenta, dan yellow berada di sudut lainnya. Warna hitam berada pada titik asal,
26
sedangkan warna putih terletak pada titik terjauh dari titik asal. Grayscale membentuk garis lurus dan terletak diantara dua titik tersebut.
Gambar 4.13 Skema warna kubus RGB (Gonzalez & Woods, 2002) -
Model Warna HSV (Hue Saturation Value)
(Putra, 2010) Model HSV menunjukan ruang warna dalam bentuk tiga komponen utama yaitu hue, saturation, dan value (atau disebut juga brightness). Hue adalah sudut dari 0 sampai 360 derajat. Biasanya 0 adalah merah, 60 adalah kuning, 120 adalah hijau, 180 adalah cyan, 240 adalah biru, dan 300 adalah magenta. Hue menunjukan jenis warna atau corak warna, yaitu tempat warna tersebut ditemukan dalam spektrum warna. Saturation dari suatu warna adalah ukuran seberapa besar kemurnian dari warna tersebut. Sebagai contoh suatu warna yang semuanya merah tanpa putih adalah saturation penuh. Jika ditambahkan putih pada warna merah, hasilnya akan menjadi warna merah muda, dimana hue masih tetap merah tetapi nilai saturation-nya berkurang. Saturation biasanya bernilai dari 0 sampai 1 (atau 0 sampai 100%) dan menunjukan nilai keabu-abuan warna dimana 0 menunjukan abu-abu dan 1 menunjukan warna
27
primer murni. Komponen yang ketiga dari HSV adalah value atau disebut juga intensitas (intensity) yaitu ukuran seberapa besar kecerahan dari suatu warna atau seberapa besar cahaya datang dari suatu warna. Value dapat bernilai dari 0 sampai 100%.
Gambar 4.14 Sistem warna HSV. (Bradski & Clara, 1998) Suatu warna dengan nilai value 100% akan tampak secerah mungkin dan suatu warna dengan nilai value 0 akan tampak segelap mungkin. Sebagai contoh jika hue adalah merah dan value bernilai tinggi maka warna akan kelihatan cerah tetapi ketika nilai value rendah maka warna tersebut akan kelihatan gelap.
4.4.4. Elemen Citra Digital Berikut merupakan elemen-elemen yang terdapat pada citra digital (Sutoyo, Mulyano, Suhartono, Nurhayati, & Wijanarto, 2009): -
Kecerahan (Brightness)
28
Kecerahan merupakan intensitas cahaya yang dipancarkan piksel dari citra yang ditangkap oleh sistem penglihatan. Kecerahan pada sebuah titik (piksel) didalam citra merupakan intensitas rata-rata dari suatu area yang melingkupinya. -
Kontras (Contrast)
Kontras menyatakan sebaran terang dan gelap dalam sebuah citra. Pada citra yang baik, komposisi gelap dan terang tersebar secara merata. -
Kontur (Contour)
Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada piksel yang bertetangga. Karena adanya perubahan intensitas inilah mata mampu mendeteksi tepi-tepi objek didalam citra. -
Warna (Colour)
Warna sebagai persepsi yang ditangkap sistem visual terhadap panjang gelombang cahaya yang dipantulkan oleh objek. -
Bentuk (Shape)
Bentuk adalah properti intrinsik dari objek 3 dimensi, dengan pengertian bahwa bentuk merupakan properti intrinsik utama untuk sistem visual manusia. -
Tekstur (Texture)
Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam sekumpulan piksel-piksel yang bertetangga atau bersebelahan. Tekstur adalah sifat-sifat atau karakteristik yang dimiliki oleh suatu daerah yang cukup besar sehingga secara alami sifat-sifat tadi dapat berulang dalam daerah tersebut.
29
Tekstur adalah keteraturan pola-pola tertentu yang terbentuk dari susunan pikselpiksel dalam citra digital. Informasi tekstur dapat digunakan untuk membedakan sifat-sifat permukaan suatu benda dalam citra yang berhubungan dengan kasar dan halus, juga sifat-sifat spesifik dari kekasaran dan kehalusan permukaan tadi yang sama sekali terlepas dari warna permukaan tersebut.
4.4.5. Histogram Menurut (Zhou, Wu, & Zhang, 2010) Histogram merupakan satu hal yang sangat penting dalam fitur statistik dari suatu citra. Histogram telah banyak digunakan dalam pengolahan citra. Histogram intensitas adalah distribusi dari nilai intensitas warna dari seluruh pixel didalam citra. Setiap bin dalam histogram merepresentasikan jumlah pixel yang ada dalam citra terhadap bin tertentu. Jika digambarkan dalam koordinat kartesian, maka sumbu X menunjukan tingkat warna dan sumbu Y menunjukan frekuensi kemunculan.
Gambar 4.15 Contoh citra dan histogramnya.
30
4.4.6. Back projection Berdasarkan (Bradski & Kaehler, 2008)back projection merupakan cara untuk mengetahui seberapa baik pixel-pixel dalam suatu citra, cocok dengan distribusi pixel dalam suatu model histogram. Sebagai contoh, terdapat suatu histogram dari warna kulit, kemudian digunakan back projection untuk menemukan warna kulit pada suatu area dalam suatu citra.
Gambar 4.16 Contoh penggunaan back projection. Pada gambar kiri atas, merupakan histogram dari warna kulit yang akan digunakan untuk mengkonversi citra tangan (kanan atas) menjadi citra distribusi probabilitas warna kulit (kanan bawah). Dan gambar kiri bawah merupakan histogram dari citra tangan.
31
4.4.7. Perbandingan Histogram Berdasarkan
(Bradski & Kaehler,
2008) perbandingan histogram
diperkenalkan oleh Swain dan Ballard dan diteruskan oleh Schiele dan Crowly. Perbandingan histogram dilakukan untuk mendapatkan spesifik kriteria kemiripan. Beberapa metode yang dapat digunakan untuk perbandingan histogram : -
Chi-square
∑
,
(2.1)
Untuk chi-square, semakin rendah nilai merepresentasikan kecocokan semakin baik, dibanding dengan nilai tinggi. Nilai sempurna adalah 0 dan total ketidakcocokan adalah tak terhingga (tergantung dari besarnya histogram). -
Intersection ∑ min
,
,
(2.2)
Untuk histogram intersection, semakin tinggi nilai menunjukan semakin tinggi tingkat kecocokan, dan sebaliknya semakin rendah nilai semakin rendah tingkat kecocokan. Jika kedua histogram dinormalisasi menjadi 1, maka nilai sempurna adalah 1, dan total jika tidak ada kecocokan adalah 0. -
Bhattacharyya distance
,
1
∑
· ∑
·∑
(2.3)
32
Untuk pencocokan Bhattacharyya, semakin rendah skor menunjukan tingkat kecocokan semakin tinggi, dan skor tinggi menunjukan tingkat kecocokan yang rendah.Skor dengan kecocokan sempurna adalah 0, dan skor jika tidak ada kecocokan adalah 1.
4.5. Pengolahan Citra Digital Pengolahan citra digital adalah sebuah disiplin ilmu yang mempelajari halhal yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras, transformasi warna, restorasi citra), transformasi gambar (rotasi, translasi, skala, transformasi geometrik), melakukan pemilihan citra ciri (feature images) yang optimal untuk tujuan analisis, melakukan proses penarikan informasi atau deskripsi objek atau pengenalan objek yang terkandung pada citra, melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data. Input dari pengolahan citra adalah citra, sedangkan ouput-nya adalah citra hasil pengolahan.
4.5.1. Hubungan dengan bidang lain Pengolahan citra digital berkaitan dengan disiplin ilmu grafika komputer dan computer vision, sehingga batasan ketiganya hampir tidak jelas (Sutoyo, Mulyano, Suhartono, Nurhayati, & Wijanarto, 2009). -
Grafika Komputer
Grafika komputer adalah sebuah disiplin ilmu yang mempelajari proses menciptakan suatu gambar berdasarkan deskripsi objek maupun latar belakang yang terkandung pada gambar tersebut. Hal ini tentu meliputi teknik-teknik untuk
33
membuat gambar objek sesuai dengan objek tersebut di alam nyata. Grafika komputer mencoba memvisualisasikan suatu informasi menjadi citra. Jadi, input dari grafika komputer adalah informasi mengenai citra yang akan digambar, sedangkan output-nya berupa citra. -
Computer Vision
Komputer vision adalah sebuah disiplin ilmu yang mempelajari proses menyusun deskripsi tentang objek yang terkandung pada suatu gambar atau mengenali objek yang ada pada gambar. Komputer vision berusaha menerjemahkan
citra
menjadi
deskripsi
atau
suatu
informasi
yang
merepresentasikan citra tersebut. Jadi, input-nya berupa citra, sedangkan outputnya berupa informasi.
4.5.2. Operasi Pengolahan Citra Pengolahan citra dapat dibagi kedalam tiga kategori yaitu: 1. Kategori rendah Pada kategori pengolahan citra rendah, operasi yang terlibat seperti peningkatan kualitas citra (Image Enhancement), perbaikan citra (Image Restoration). Peningkatan kualitas citra dan perbaikan citra bertujuan meningkatkan kualitas tampilan citra untuk pandangan manusia atau untuk mengkonversi suatu citra agar memiliki kualitas yang lebih baik seperti prapengolahan citra untuk mengurangi derau (noise reduction), pengaturan kontras, dan pengaturan ketajaman citra. Pengolahan kategori rendah ini memiliki input dan outputnya berupa citra.
34
2. Kategori menengah Pada kategori pengolahan citra menengahmelibatkan operasi-operasi seperti segmentasi citra yang bertujuan untuk membagi wilayah-wilayah yang homogen ataumembagi citra ke dalam daerah intensitasnya masing-masing sehingga bisa membedakan antara objek dan background-nya. Kemudian Operasi klasifikasi citra yang mengelompokan objek berdasarkan pengukuran kuantitatif fitur atau sifat utama dari suatu objek.Proses pengolahan citra menengah ini melibatkan input berupa citra dan output berupa atribut (fitur) citra yang dipisahkan dari citra input. 3. Kategori tinggi Melibatkan proses pengenalan dan deskripsi citra. Operasi pada pengolahan citra pada kategori ini seperti memberikan label atau deskripsi terhadap suatu objek, pengenlan pola huruf, pengenalan wajah, sidik jari, dan lain sebagainya sehingga objek tersebut dapat dikenali dan diproses lebih lanjut.
4.5.3. Segmentasi Menurut (Bradski & Kaehler, 2008) segmentasi citra merupakan komponen penting dalam aplikasi computer vision, dan dapat mengatasi masalah pengelompokan suatu wilayah dalam suatu citra. Sebagai contoh pada suatu video keamanan, kamera selalu mengambil latar belakang beserta objeknya. Dalam computer vision terkadang diperlukan suatu proses untuk memisahkan objek dengan latar belakangnya untuk keperluan analisis. Segmentasi citra membagi suatu citra menjadi beberapa wilayah. Setiap wilayah dibagi dengan
35
mempertimbangkan atribut tertentu (misalnya intensitas, warna, dan tekstur) dari citra sampai bagian-bagian wilayah cukup homogen. Dengan membagi-bagi wilayah dalam suatu citra, dimungkinkan dapat memisahkan objek dengan latar belakangnya.
4.5.4. Segmentasi Mean-shift Berdasarkan (Bradski & Kaehler, 2008) segmentasi mean-shift merupakan algoritma segmentasi / clustering. Segmentasi mean-shift menggunakan algoritma dari mean-shift dimana tujuan dari algoritma ini adalah untuk menemukan nilai maksimum lokal dari suatu kepadatan probabilitas yang diberikan. Dengan dilakukan segmentasi mean-shift, suatu citra akan memiliki warna-warna yang homogen dalam suatu wilayah.
Gambar 4.17 Contoh penggunaan segmentasi mean-shift.
36
4.5.5. Region growing Region growing merupakan salah satu teknik segmentasi, dimana menggunakan suatu titik “seed” dengan tujuan untuk menumbuhkannya, sehingga suatu wilayah tertentu dalam suatu citra akan terpilih. Region growing juga digunakan untuk membuat suatu batas dalam suatu wilayah tertentu, Salah satu teknik region growing yang sering digunakan adalah flood fill. Berdasarkan (Bradski & Kaehler, 2008) flood fill merupakan fungsi yang sangat berguna dimana sering digunakan untuk menandai atau mengisolasi suatu bagian dalam suatu citra untuk keperluan analisis atau pengolahan citra lebih lanjut. Flood fill juga bisa digunakan untuk menghasilkan suatu mask yang dapat digunakan pada proses selanjutnya untuk mempercepat atau membatasi suatu proses pengolahan citra dimana hanya pixel-pixel yang diproses sesuai dengan bagian yang ditunjukan oleh mask. Penggunaan metode floodfill dalam OpenCV, mirip dengan operasi pada suatu program pengolahan citra pada komputer. Dimana suatu titik “seed” dipilih dalam suatu citra dan semua titik-titik tetangganya yang memiliki kemiripan warna sesuai rentang tertentu akan terpilih dengan ditandai suatu warna yang seragam untuk menandai bagian yang terpilih.
37
Gambar 4.18 Contoh region growing dengan menggunakan metode flood fill.
4.5.6. Ekstraksi Fitur (Feature Extraction) (Lu, 1999) Salah satu hal yang paling penting didalam pengolahan citra adalah ekstraksi fitur atau representasi isi (fitur apakah yang paling penting didalam suatu citra). Ekstraksi fitur bisa merupakan proses otomatis atau semiotomatis. Ekstraksi fitur dapat juga dikatakan sebagai indexing. Fitur dan atribut dari suatu informasi citra di ekstrak, diparameterkan, dan disimpan bersama dengan citra itu sendiri.Fitur dan atribut dari citra yang di query juga diekstrak dengan cara yang sama jika citra tersebut secara eksplisit tidak ditentukan. Sistem akan melakukan pencocokan pada basis data citra yang memiliki kemiripan fitur dan atribut berdasarkan kesamaan metrik tertentu. Suatu citra yang ada pada basis data citra biasanya diolah untuk diekstrak fitur dan atributnya. Selama proses pencarian, fitur-fitur dan atribut ini di cari dan
38
di bandingkan antara citra query dengan citra yang ada pada basis data citra. Oleh karena itu, kualitas dari fitur dan atribut yang di ekstrak sangat menentukan hasil dari pencarian. Ekstraksi fitur harus memenuhi persyaratan sebagai berikut (Lu, 1999): 1. Fitur dan atribut yang diekstrak harus selengkap mungkin untuk mewakili isi dari informasi yang terkandung di dalam citra. 2. Fitur-fitur yang diekstrak harus mewakili dan disimpan dengan lengkap. Fitur yang rumit dan kompleks dapat menjauh dari tujuan ekstraksi
fitur,
karena
sangat
menentukan
kecepatan
dan
perbandingan pada saat proses pencarian. 3. Perhitungan jarak antara fitur harus efisien, karena jika tidak memperhatikan hal ini, waktu respons sistem dapat memakan waktu.
4.6. CAMSHIFT CAMSHIFT (Continuously
Adaptive
Mean-shift)
adalah
algoritma
pelacakan pergerakan yang merupakan perluasan dari algoritma Mean-shift yang diusulkan oleh (Bradski & Clara, 1998). (Chouhan, Mishra, & Nitnawwre, 2012) Mean-shift merupakan teknik non-parametric yang mendaki suatu kepadatan pada distribusi probabilitas untuk menemukan puncak dari suatu distribusi. Algoritma mean-shift diusulkan oleh (Fukunaga & Hostetler, 1975) dan diterapkan untuk pencocokan pola. Pada tahun 1995, (Cheng, 1995) mengenalkan penggunaan mean-shift untuk bidang computer vision. Algoritma mean-shift beroperasi pada distribusi probabilitas. Distribusi probabilitas yang
39
diperoleh dari urutan citra video selalu berubah. Sehingga algoritma mean-shift harus dimodifikasi untuk beradaptasi secara dinamis terhadap perubahan distribusi pada citra. Untuk
memenuhi
kebutuhan
tersebut,
(Bradski
&
Clara,
1998)
mengusulkan metode pelacakan yang disebut dengan CAMSHIFT. Ide utamanya adalah dengan melakukan operasi mean-shift terhadap semua frame dalam urutan video, menggunakan pusat massa dan ukuran dari search window yang diperoleh dari frame sebelumnya sebagai nilai inisial untuk search window pada frame selanjutnya, dan mencapai pelacakan objek dengan proses secara iterasi. (Li, Zhang, Zhou, Guo, Wang, & Zhao, 2011) CAMSHIFT menggunakan fitur warna berupa histogram warna sebagai model objek. Karena histogram dari citra objek merupakan probabilitas warna dari objek, algoritma ini tidak akan mudah dipengaruhi oleh perubahan bentuk dari objek. Dengan demikin dapat mengatasi masalah sewaktu objek berpindah lokasi atau objek hanya tampil sebagian. Selain itu, algoritma CAMSHIFT memiliki waktu komputasi yang cepat, sehingga dapat melakukan pelacakan secara real-time.
40
Gambar 4.19 Blok diagram dari pelacakan objek dengan CAMSHIFT. (Bradski & Clara, 1998)
4.6.1. Algoritma Mean-shift (Bradski & Clara, 1998) Prosedur dari penggunaan algoritma mean-shift adalah sebagai berikut : 1. Tentukan ukuran dari search window. 2. Tentukan inisial lokasi dari search window. 3. Hitung lokasi mean didalam search window 4. Pusatkan search window pada lokasi mean yang dihitung pada langkah 3. 5. Ulangi langkah 3 dan 4 sampai konvergen (atau dapat dikatakan, sampai lokasi mean berpindah dibawah nilai threshold yang telah ditentukan)
41
Perbedaan utama antara algoritma mean-shift dan CAMSHIFT adalah algoritma mean-shift dirancang untuk distribusi yang statis, sedangkan CAMSHIFT dirancang untuk dapat mengubah distribusi secara dinamis. Hal ini terjadi ketika objek yang dilacak pada urutan video dimana objek selalu berpindah (bergerak maju dan mundur mendekati kamera) sehingga ukuran dan lokasi dari distribusi probabilitas berubah setiap waktu. Algoritma CAMSHIFT melakukan penyesuaian terhadap ukuran dari search window.
4.6.2. Algoritma CAMSHIFT (Bradski & Clara, 1998) Prosedur dari penggunaan algoritma CAMSHIFT: 1. Tentukan ukuran dan lokasi search window untuk menentukan daerah kalkulasi (calculation region) yang berisikan objek yang ingin dilacak. Kemudian hitung histogram warna pada daerah tersebut sebagai model objek. 2. Membuat distribusi probabilitas dari frame saat ini menggunakan histogram warna dari model objek dengan menggunakan metode histogram back projectionuntuk menghasilkan citra back projection (citra distribusi probabilitas). 3. Berdasarkan citra distribusi probabilitas, hitung lokasi pusat massa(centroid) didalamsearch window, pusatkan search window pada pusat massa tersebut, dan hitung area tersebut. 4. Jika search window konvergen (sampai lokasi window tersebut berpindah dengan jarak dibawah threshold yang ditentukan), maka
42
kembali ke langkah 2, selain itu kembali ke langkah 3 sampai konvergen. Untuk menghitung pusat massa menggunakan persamaan berikut, dimana ,
adalah tiap-tiap nilai pixel pada citra distribusi probabilitas: 0-order moment: ∑ ∑
,
(2.4)
1-order moment: ∑ ∑
,
(2.5)
∑ ∑
,
(2.6)
Maka koordinat pusat dari search window adalah: ,
(2.7)
Untuk menentukan orientasi dari distribusi probabilitas menggunakan persamaan: 2-order moment: ∑ ∑
,
∑ ∑
,
(2.9)
∑ ∑
,
(2.10)
(2.8)
(2.11)
43
Search window dari CAMSHIFT merupakan elips, untuk menghitung panjang l dan lebar w:
(2.12)
(2.13) Dimana :
,
2
,
4.7. SURF (Speeded Up Robust Feature) (Bay, Ess, Tuytelaars, & Gool, 2007) SIFT (Scale Invariant Feature Transform) merupakan fitur citra yang diusulkan oleh Lowe yang invarian terhadap rotasi dan skala. SIFT sering digunakan dalam pencocokan citra, namun kompleksitas dan data yang digunakan sangat besar sehingga membutuhkan waktu komputasi yang lebih lama. SURF menawarkan kinerja yang lebih baik dari pada SIFT. (Du, Su, & Cai, 2009) Sama seperti SIFT, detektor dari SURF ditugaskan untuk menemukan keypoint dalam suatu citra, dan kemudian deskriptor digunakan untuk mengekstrak vektor fitur pada setiap keypoint. Perbedaan yang mendasar antara SIFT dan SURF adalah SIFT menggunakan difference of gaussian untuk mendeteksi keypoint, sedangkan SURF menggunakan pendekatan metriks hessian untuk mengoperasikan citra integral untuk melokalisasi keypoint,
44
dimana dengan pendekatan metriks hessian ini menurunkan waktu komputasi dengan drastis. (Li, Hu, Shen, Zhang, Dick, & Hengel, 2013) Melakukan perbandingan secara kualitatif terhadap metode-metode yang umumnya digunakan untuk membangun pendeskripsi objek yang digunakan untuk sistem pelacak objek:
45
Tabel 4.2 2 Perbandingan kualitatiif representaasi visual (Lii, Hu, Shen,, Zhang, Diick, & Heng gel, 2013)
Berdaasarkan perb bandingan seecara kualitaatif dari mettode-metodee yang ada, SURF meruupakan mettode yang ddapat diandaalkan. Dari ssegi kecepaatan, SURF memiliki kecepatan k yaang sedang, namun dap pat mengataasi gangguan n terhadap
46
objek yang tampil hanya sebagian, mengalami perubahan iluminasi, dan perubahan bentuk dari objek.
4.7.1. Keypoints Detection Berdasarkan (Bay, Ess, Tuytelaars, & Gool, 2007) untuk membuat suatu fitur yang invarian(memiliki ketahanan) terhadap perubahan skala, maka tahap pertama yang dilakukan adalah membuat ruang skala. Ruang skala citra disebut juga dengan Gaussian Pyramid yang digunakan untuk menemukan keypoint pada skala yang berbeda. Ruang skala terbagi kedalam beberapa tingkatan yang disebut dengan octave. Setiap octave merepresentasikan respon filter yang diperoleh dengan melakukan proses konvolusi box filter terhadap citra yang diinputkan dengan ukuran filter yang semakin besar sesuai dengan ukuran citra untuk membentuk piramid citra. (Li, Zhang, Zhou, Guo, Wang, & Zhao, 2011) Pada SIFT, citra secara berulang dikonvolusi dengan menggunakan Gaussian Kernel dan berulang kali di sub sampel, dimana hasil metode ini dalam setiap lapisan bergantung pada proses sebelumnya, dengan demikian kompleksitasnya sangat besar. Untuk pyramid citra, SURF menggunakan box filter sebagai aproksimasi dari turunan parsial kedua dari Gaussian.
47
Gambar 4.20 Dari kiri ke kanan: Turunan parsial kedua dari Gaussian pada arah sumbu y dan sumbu xy; pendekatan yang digunakan dengan box filter. Daerah abu-abu sama dengan 0. Untuk mendeteksi keypoint yang invarian terhadap perubahan skala, SURF menggunakan determinant of Hessian matrix yang digunakan pada lokalisasi keypoint untuk menentukan apakah suatu titik merupakan nilai ekstrim. Diberikan suatu titik x = (x,y) pada suatu citra I, metriks Hessian
,
pada
xpada skala σ, didefinisikan sebagai berikut: , ,
,
Dimana
,
,
,
, dan
, , ,
adalah konvolusi dari penurunan
orde kedua dari Gaussian dengan citra I pada titik xberturut-turut. Untuk mengurangi waktu komputasi, suatu box filter berukuran 9x9 digunakan sebagai tafsiran dari Gaussian dengan σ = 1.2 dan merepresentasikan skala terendah untuk menghitung blob response maps, yang dinotasikan dengan ,
, dan
. Persamaannya adalah sebagai berikut:
(2.14)
48
Pembobotan diterapkan pada wilayah persegi untuk menjaga efisiensi komputasi. Pada persamaan diatas,
adalah bobot untuk menyeimbangkan
determinan Hessian yang dibutuhkan untuk menyeimbangkan bobot relatif: 1.2
9
1.2
9
0.912 …
0.9
Untuk melokalisasi keypoint pada citra dan keseluruhan skala ditentukan dengan non-maximum suppresion pada 3 x 3 x 3 dari tetangganya. Nilai ekstrim dari determinan metriks hessian diinterpolasikan pada skala ruang dengan metode yang diusulkan oleh (Brown & Lowe, 2002).
4.7.2. Keypoint Descriptor Berdasarkan (Bay, Ess, Tuytelaars, & Gool, 2007) pendeskripsian keypoint menjadi deskriptor vektor dilakukan agar keypoint invarian terhadap perubahan rotasi, iluminasi, dan perubahan sudut pandang. Untuk membuat keypoint yang invarian terhadap perubahan rotasi, maka setiap keypoint yang terdeteksi akan diberikan orientasi. Deskriptor keypoint SURF mengandalkan orientasi dominan dari seluruh keypoint, kemudian komponen deskriptor dibangun. Perhitungan orientasi dominan berdasarkan respon Haar wavelet, dimana menghitung respon Haar pada koordinat X dan Y pada suatu wilayah lingkaran dimana pusatnya adalah keypoint dengan radius 6s. Dengan melakukan sampling pada tiap-tiap skala s, begitu juga perhitungan respon haar wavelet sesuai dengan skalanya. Sehingga pada skala yang besar, ukuran wavelet juga akan besar. Pada tahap ini penggunaan citra integral kembali digunakan untuk melakukan filter yang cepat. Dengan demikian hanya dibutuhkan enam operasi untuk menghitung respon pada
49
sumbu x dan sumbu y pada tiap skala. Ukuran dari haar wavelet adalah 4s dan jumlah dari vektor dihitung setiap 60 derajat pada lingkaran. Dan pada akhirnya orientasi dengan jumlah terbesar dari vektor adalah orientasi yang dominan. Proses dari penentuan orientasi dapat dilihat pada gambar berikut:
Gambar 4.21 Penentuan orientasi. (Li, Zhang, Zhou, Guo, Wang, & Zhao, 2011) Setelah orientasi dominan telah ditentukan, untuk mengekstrak deskriptor, langkah pertama yang diambil adalah membuat daerah persegi yang berpusat disekitar keypoint, dan orientasinya mengarah ke orientasi yang sudah ditentukan sebelumnya. Ukuran dari jendela persegi tersebut adalah 20σ. Daerah tersebut kemudian dibagi lagi menjadi 4x4 sub daerah. Daerah ini tetap berisi informasi spasial sesuai dengan aslinya. Untuk masing-masing sub daerah ini, akan dihitung beberapa respon haar wavelet pada 5x5 titik sampel ruang. Untuk kesederhanaan, respon haar wavelet pada arah horizontal akan disebut dengan dengan
dan respon haar wavelet pada arah vertikal akan disebut
. Untuk meningkatkan ketahanan terhadap deformasi geometrik dan
kesalahan lokalisasi, maka respon
dan
Gaussian (σ = 3.3s) yang berpusat pada keypoint.
akan dibobot dengan sebuah
50
Kemudian respon wavelet
dan
dijumlahkan untuk setiap sub
wilayah. Hal ini akan memberikan informasi tentang polar dari perubahan intensitas, dan juga akan dihasilkan jumlah nilai absolut dari respon |
|dan
Masing-masing sub wilayah mempunyati 4 dimensi vektor deskriptor v, yaitu ,|
|, dan
. ,
. Untuk 4x4 sub daerah, akan dihasilkan vektor deskriptor
dengan panjang 64. Terakhir dilakukan normalisasi, dan didapatkanlah komponen vektor deskriptor. Deskriptor SURF invarian terhadap skala, rotasi, dan translasi citra.