The document discusses machine vision and image matching. It begins with definitions of image matching as the process of geometrically positioning two images so their pixels represent the same physical areas. It describes extracting local invariant features from images using methods like Scale Invariant Feature Transform (SIFT) to find correspondences between images for tasks like object recognition and panorama creation despite variations in lighting, viewpoint and scale. SIFT extracts key points from images and represents each with a 128-element feature vector for robust matching between images.
2. Machine Vision
LEARNING OUTCOMES
a. Peserta diharapkan memahami definisi dari proses matching serta menerapkannya pada
permasalahan sehari-hari.
b. Peserta dapat memahami fitur lokal yang bersifat invariant dan penerapannya pada proses
matching.
c. Peserta dapat memahami dan mengimplementasikan metode ekstraksi fitur menggunakan
Scale Infariant Feature Transform (SIFT)
OUTLINE MATERI (Sub-Topic):
1. Definition
2. Invariant Local Features
3. Scale Infariant Feature Transform (SIFT)
4. Feature Matching
3. Machine Vision
ISI MATERI
Image Matching
Image matching didefinisikan sebagai sebuah proses untuk memposisikan dua citra
secara geometris agar piksel-piksel pada kedua citra tersebut merepresentasikan area fisik
yang sama dari obyek/pemandangan pada citra tersebut. Proses matching dilakukan dengan
menerapkan transformasi geometrik seperti translasi, rotasi, skala, dan lain-lain sedemikian
sehingga kesamaan antara dua citra yang dicocokkan menjadi maksimal. Obyek pada dunia
nyata didefinisikan pada tiga dimensi, sehingga proses pencocokkan akan lebih sulit
dilakukan apabila sebuah obyek dilihat dari beberapa sudut pandang berbeda dan memiliki
kondisi pencahayaan yang sangat bervariasi. Sebagai contoh akan dilakukan penggabungan
beberapa buah citra untuk membentuk panorama pegunungan, dimana citra-citra tersebut
diambil pada waktu yang berbeda dengan lokasi pengambilan yang berbeda. Gambar berikut
mengilustrasikan proses pembentukan panorama pegunungan dari 5 citra berbeda.
Pengambilan gambar pada waktu yang berbeda akan menghasilkan pencahayaan yang
berbeda, penggabungan dari citra tersebut membutuhkan penyesuaian tingkat pencahayaan.
Meskipun obyek yang diambil gambarnya adalah sama, namun lokasi pengambilan gambar
yang berbeda akan menghasilkan obyek yang tampak berbeda pada citra yang dihasilkan.
Perlu dilakukan koreksi geometri agar kedua gambar tersebut dapat digabungkan.
Image matching merupakan salah satu aspek mendasar dari beberapa permasalahan di
bidang computer vision, seperti pengenalan obyek, content-based image retrieval, stereo
correspondence¸ deteksi gerakan, klasifikasi tekstur dan video data mining. Hingga saat ini
image matching merupakan permasalahan yang kompleks karena beberapa hal, seperti obyek
4. Machine Vision
yang sebagian terhalang oleh obyek lain (partial occlusion), perbedaan kondisi saat
pengambilan gambar (sudut pandang maupun pencahayaan).
Berikut tahapan dari image matching:
1. Mencari area yang dapat dijadikan sebagai kunci dalam menggabungkan dua citra, area
tersebut harus ada di kedua citra dan memiliki ciri yang khusus sehingga dapat dibedakan
dari area lainnya. Dalam contoh pembuatan panorama pegunungan, area yang dipilih
dapat berupa puncak gunung, lembah, atau obyek lainnya.
2. Mendapatkan deskripsi dari area yang dipilih dengan cara menghitung fitur lokal yang
bersifat invariant (tidak dipengaruhi oleh operasi transformasi geometrik seperti translasi,
rotasi, maupun skala).
3. Mendefinisikan korespondensi pada dua citra yang akan digabungkan berdasarkan
kesamaan fiturnya.
4. Ulangi langkah 1 sampai 3 untuk mencari area-area lain yang memiliki korespondensi
pada dua citra tersebut.
Gambar berikut memperlihatkan pemilihan area-area yang dapat dijadikan kunci untuk
menggabungkan dua citra truk mainan. Dari 5 total area yang dipilih, terdapat 3 area yang
saling berkorespondensi pada kedua citra tersebut, yaitu yang ditandai dengan bujur sangkar
berwarna biru.
5. Machine Vision
ISI MATERI
Invariant Local Features
Fitur lokal (local feature) adalah sebuah pola pada citra yang memiliki karakteristik
berbeda dari area di sekitarnya. Biasanya tampak pada area yang ditandai dengan adanya
perubahan karakteristik tertentu, seperti intentitas keabuan, warna, atau tekstur. Fitur lokal
dapat berupa titik, edge (sisi), atau area kecil pada citra. Untuk mendapatkan deskripsi dari
fitur lokal, beberapa pengukuran dilakukan pada area yang ditentukan. Proses pengukuran
tersebut disebut juga sebagai ekstraksi fitur. Algoritma ekstraksi fitur yang baik akan
menghasilkan pengukuran yang serupa meskipun kondisi citra bervariasi, atau disebut juga
sebagai invariant. Fitur lokal yang bersifat invariant (local invariant features) tidak
dipengaruhi oleh variasi geometrik seperti translasi, rotasi, maupun skala, serta variasi
fotometrik seperti tingkat kecerahan warna, exposure, dan lain-lain.
Misalkan akan dibandingkan dua buah citra I1 dan I2. Kedua citra tersebut
merepresentasikan obyek yang sama dengan beberapa variasi tertentu. Citra I2 bisa saja
merupakan hasil transformasi dari I1. Fitur yang bersifat invariant akan menghasilkan
pengukuran yang serupa dari kedua citra tersebut. Sifat tersebut disebut juga sebagai
transformational invariance. Mayoritas algoritma feature extraction dirancang untuk bersifat
invariant terhadap transformasi dua dimensi, seperti translasi, rotasi, maupun skala. Beberapa
algortima lain juga bersifat invariant terhadap transformasi tiga dimensi seperti misalnya
algoritma SIFT (Scale Invariant Feature Transform) yang tidak dipengaruhi oleh operasi
rotasi hingga 60 derajat.
Fitur yang bersifat invariant biasanya menangkap informasi tidak hanya di sebuah titik
saja, namun juga di area sekeliling titik tersebut. Bentuk paling sederhana dari area dapat
berupa bujur sangkar yang berukuran n piksel. Untuk mengekstraksi fitur menggunakan
fungsi (misalkan f) yang bersifat scale invariant, dapat dilakukan dengan mencari titik yang
memberikan local maximum dari f pada skala yang berbeda. Salah satu fungsi yang umum
digunakan untuk mendefinisikan f adalah Laplacian atau selisih antara dua citra yang dikenai
operasi Gaussian filtering (difference of Gaussian) menggunakan parameter σ berbeda.
Gambar berikut mengilustrasikan ide ini, f yang merupakan fungsi difference of Gaussian
6. Machine Vision
akan menghasilkan local maximum pada posisi yang sama (ditandai dengan huruf ‘x’
berwarna kuning) meskipun digunakan skala atau parameter σ berbeda (𝜎1, 𝜎�, 𝜎�):
𝜎1 𝜎� 𝜎�
Sifat rotation invariant dapat diperoleh dengan cara memutar area citra yang akan dipilih
sebagai kunci dengan sudut tertentu sebelum dilakukan ekstraksi fitur. Besarnya sudut
perputaran dapat diperkirakan dengan menghitung orientasi dominannya. Salah satu
pendekatan yang dapat digunakan untuk mengkalkulasi orientasi dominan adalah menghitung
vektor eigen pada Harris corner detector (materi ini sudah dibahas pada materi kuliah sesi ke
6). Ilustrasi berikut menggambarkan bagaimana pendekatan ini bekerja. Kotak berwarna
putih pada citra merepresentasikan orientasi dominan dari area di sekitar puncak gunung.
Orientasi dominan dari area yang dibatasi oleh kotak tersebut dinyatakan oleh sudut
kemiringan dari kotak tersebut.
7. Machine Vision
ISI MATERI
Scale Infariant Feature Transform (SIFT)
Scale Invariant Feature Transform (SIFT) adalah sebuah metode ektraksi fitur yang
dikembangkan oleh David Lowe (1999, 2004). Metode ini banyak diterapkan pada bidang
computer vision terutama dalam point matching diantara dua citra yang diambil dari sudut
pandang berbeda dan pengenalan obyek. Fitur SIFT bersifat invariant terhadap operasi
translasi, rotasi dan skala, juga tahan terhadap transformasi perspektif dan perbedaan
pencahayaan. Hasil eksperimen membuktikan bahwa SIFT sangat cocok diterapkan untuk
kebutuhan image matching dan pengenalan obyek pada kondisi dunia nyata. Pada formulasi
yang diusulkan oleh David Lowe, SIFT terdiri dari metode untuk mendeteksi interenst point
dari citra graylevel dan perhitungan statistik gradien lokal dari intensitas keabuan citra untuk
memberikan deskripsi struktur citra secara lokal di sekitar interest points.
Berikut karakteristik dari SIFT descriptor:
1. Tahan terhadap perubahan sudut pandang
2. Tahan terhadap rotasi hingga 60 derajat
3. Tahan terhadap perubahan tingkat pencahayaan, dalam beberapa kasus citra yang diambil
pada siang hari dan malam hari.
4. Cepat dan efisien
5. Kode sumber banyak tersedia di intenet:
http://people.csail.mit.edu/albert/ladypack/wiki/index.php/Known_implementations_of_S
IFT
Pada gambar berikut diperlihatkan bahwa SIFT berhasil mendeteksi interest points pada
bangunan gedung dengan baik meskipun terhalang oleh obyek manusia dan terdapat
perbedaan tingkat pencahayaan yang besar.
8. Machine Vision
Ide dasar dari SIFT dapat dijelaskan dalam empat tahapan berikut:
1. Deteksi interest points
2. Tentukan window berukuran 16 × 16 untuk setiap interest points
3. Hitung orientasi (edge orientation) dari masing-masing piksel
4. Eliminasi edge-edge yang memiliki gradient magnitude dibawah nilai threshold (weak
edges)
5. Buat histogram dari orientasi edge yang memiliki gradient magnitude diatas nilai
threshold (surviving edges)
Gambar berikut mengilustrasikan tahapan diatas.
Ekstraksi fitur menggunakan SIFT akan mentranformasikan citra input menjadi koleksi
local feature vector, dimana setiap feature vector tersebut bersifat invariant terhadap operasi
translasi, rotasi, maupun skala. Algoritma SIFT menerapkan empat tahap filter dalam
mengekstrak fitur tersebut:
9. Machine Vision
1. Scale-space Extrema Detection
Tahap ini bertujuan untuk memperoleh lokasi dan skala yang dapat diidentifikasi dari
sudut pandang berbeda dari sebuah obyek yang sama. Hal ini dapat dilakukan dengan
menerapkan fungsi “scale space”:
L(x,y,σ) = G(x,y,σ) * I(x,y)
dimana * adalah operator konvolusi, G(x,y,σ) adalah variable-scale Gaussian, dan I(x,y)
adalah citra input.
Terdapat beberapa pendekatan yang dapat digunakan untuk mendeteksi lokasi keypoints
pada scale-space, salah satunya adalah Difference of Gaussian (DoG), yang mendeteksi
scale-space extrema, D(x,y,σ) dengan mengkalkulasi selisih antara dua citra, dimana salah
satunya k × lebih besar dari yang lainnya. D(x,y,σ) dapat dihitung berdasarkan rumus:
D(x,y,σ) = L(x,y,kσ) - L(x,y,σ)
Untuk mendeteksi lokal maksimum dan lokal minimum dari D(x,y,σ), setiap titik
dibandingkan dengan 8 piksel tetangga pada skala yang sama dan 9 piksel pada satu skala
diatas dan dibawahnya. Jika nilai ditemukan nilainya maksimum/minimum terhadap
semua tetangga tersebut, maka titik tersebut merupakan titik maksimum/minimum.
2. Keypoint Localization
Tahap ini bertujuan untuk mengeliminasi keypoint yang memiliki kontras rendah atau
letak titik sulit ditemukan pada sebuah edge (poorly localised on an edge). Hal ini dapat
dilakukan dengan cara menghitung Laplacian, untuk setiap keypoint pada tahap 1, lokasi
dari extremum z dapat dihitung berdasarkan:
𝑧 = −
���−1
�𝑥�
��
�𝑥
Apabila z dibawah nilai threhsold maka titik tersebut dieliminasi. Persamaan tersebut
akan mengeliminasi keypoint yang memiliki kontras rendah. Titik-titik yang bersifat
“poorly localised on an edge” dapat dieliminasi berdasarkan rasio dari vektor eigen
terbesar terhadap vektor eigen terkecil dari matriks Hessian yang berukuran 2x2 pada
lokasi titik tersebut berada.
10. Machine Vision
3. Orientation Assignment
Tahap ini akan bertujuan untuk menentukan orientasi dari keypoint berdasarkan sifat lokal
dari citra. Deskriptor dari keypoint, dapat direpresentasikan relatif terhadap orientasinya
dengan cara melakukan normalisasi sudut (rotasi sebesar sudut orientasi). Proses
normalisasi akan menghasilkan fitur yang bersifat invariant terhadap operasi rotasi.
Orientasi dari keypoint dapat diperoleh dengan cara berikut:
- Hitung gradient magnitude, m:
𝑚(𝑥, 𝑦) = �(𝐿(𝑥 + 1, 𝑦) − 𝐿(𝑥 − 1, 𝑦))� + (𝐿(𝑥, 𝑦 + 1) − 𝐿(𝑥, 𝑦 − 1))�
- Hitung orientasi, θ:
𝜃(𝑥, 𝑦) = tan−1
�
𝐿(𝑥, 𝑦 + 1) − 𝐿(𝑥, 𝑦 − 1)
𝐿(𝑥 + 1, 𝑦) − 𝐿(𝑥 − 1, 𝑦)
�
- Hitung histogram orientasi dari gradient orientation dari titik-titik sampel
- Tentukan lokasi puncak tertinggi pada histogram kemudian gunakan puncak tersebut
dan puncak-puncak lainnya yang memiliki tinggi di atas 80% dari puncak tertinggi
untuk membentuk keypoint pada orientasi θ.
- Cocokkan (fit) parabola pada 3 nilai terdekat ke puncak tertinggi untuk
menginterpolasi posisi puncak.
4. Orientation Assignment
Informasi gradien lokal yang diperoleh pada tahap sebelumnya, juga digunakan untuk
membentuk keypoint descriptor. Informasi gradien diputar sebesar sudut orientasi θ dan
selanjutnya diberi bobot 1.5 × skala keypoint. Data ini selanjutnya digunakan untuk
membentuk histogram dari setiap window yang berpusat pada keypoint. Keypoint
descriptor biasanya terdiri dari 16 histogram yang tersusun dalam kisi berukuran 4 × 4,
dimana masing-masing tersusun atas 8 bin orientasi yang mewakili setiap arah mata angin
(Utara, Timur Laut, Timur, Tenggara, Selatan, Barat Daya, Barat, Barat Laut). Sehingga
menghasilkan feature vector yang mengandung 128 elemen. Vektor yang dihasilkan
disebut juga sebagai SIFT key.
11. Machine Vision
ISI MATERI
Feature Matching
Jika diketahui sebuah fitur di citra I1, bagaimana menemukan lokasi yang paling cocok
berdasarkan fitur tersebut pada citra I2. Hal tersebut dapat dilakukan dengan mendefinisikan
sebuah fungsi yang mengukur perbedaan atau jarak diantara fitur pada masing-masing citra.
Selanjutnya fungsi tersebut diterapkan pada citra I2, cari lokasi yang menghasilkan perbedaan
yang paling minimum. Bagaimana mendefinisikan fungsi yang dapat mengukur
perbedaan/jarak antara fitur f1 dan f2? Salah satu pendekatan yang umum digunakan adalah
mengukur jarak menggunakan Euclidean distance:
𝑑(𝑢, 𝑣) = ��(𝑢� − 𝑣�)�
�
�
1/�
Proses matching dapat dilakukan dengan salah satu dari strategi berikut:
a. Mengembalikan semua titik yang memiliki jarak d yang lebih kecil dari threshold.
b. Nearest neighbor: titik yang memiliki jarak d terkecil.
c. Nearest neighbor distance ratio:
NNDR = d1/d2
dimana d1, d2 menyatakan jarak ke titik terdekat dan titik terdekat kedua. Apabila nilai
NNDR kecil, maka titik tersebut diasumsikan match.
12. Machine Vision
SIMPULAN
1. Proses image matching merupakan permasalahan yang cukup kompleks karena citra yang
dibandingkan seringkali memiliki perbedaan dalam hal sudut pandang, lokasi, orientasi,
skala, maupun tingkat pencahayaan.
2. Fitur lokal yang bersifat invariant (local invariant features) tidak dipengaruhi oleh variasi
geometrik seperti translasi, rotasi, maupun skala, serta variasi fotometrik seperti tingkat
kecerahan warna, atau exposure sangat penting dalam proses image matching.
3. SIFT merupakan salah satu metode ekstraksi fitur yang memiliki karakteristik: tahan
terhadap perubahan sudut pandang, tahan terhadap rotasi hingga 60 derajat, tahan
terhadap perubahan tingkat pencahayaan, serta cepat dan efisien.
13. Machine Vision
DAFTAR PUSTAKA
1. Forsyth. (2011). Computer Vision a Modern Approach (2nd
Edition). Prentice Hall.
New Jersey. ISBN-10: 013608592X. ISBN-13: 978-0136085928.
2. M. Brown, R. Szeliski, S. Winder, Multi-image matching using multi-scale oriented
patches, CVPR 2005, pp. 510-517 vol. 1.
3. Multi-Image Matching using Multi-Scale Oriented Patches,
https://www.microsoft.com/en-us/research/wp-content/uploads/2004/12/tr-2004-
133.pdf
4. D. G. Lowe, “Distinctive image features from scale-invariant keypoints,” Int. Journal
of Compututer Vision, vol. 60, no. 2, pp. 91–110, Nov. 2004.
5. Known implementations of SIFT,
http://people.csail.mit.edu/albert/ladypack/wiki/index.php?title=Known_implementati
ons_of_SIFT
6. SIFT on OpenCV,
http://docs.opencv.org/2.4/modules/nonfree/doc/feature_detection.html
7. G. P. Kusuma, A. Szabo, L. Yiqun and J. A. Lee, Appearance-based object
recognition using weighted longest increasing subsequence, ICPR 2012, pp. 3668-
3671.
8. K. D. Harjono and G. P. Kusuma, Object instance recognition using best increasing
subsequence, KICSS 2016, Yogyakarta, pp. 1-5.