Anda di halaman 1dari 45

Feature detection and matching

PENGAMPU

Dr. Fajar Astuti Hermawati, S.Kom.,M.Kom. Dwi Harini Sulistyawati, S.ST., MT

Fridy Mandita, S.Kom., M.Sc Andrey Kartika Widhy H., S.Kom., M.Kom.

Universitas 17 Agustus 1945 Surabaya Teknik Informatika


Capaian pembelajaran
• Mahasiswa mampu memahami konsep dari deteksi dan pencocokan fitur
pada citra digital
• Mahasiswa mampu melakukan perhitungan dengan beberapa metode deteksi
dan pencocokan fitur pada citra digital
• Mahasiswa mampu membuat script Matlab untuk mengimplementasikan
deteksi dan pencocokan fitur pada citra digital
• Mahasiswa mampu mengevaluasi hasil implementasi metode deteksi dan
pencocokan fitur pada citra digital
Feature detection and matching
Feature extraction: Corners
Image matching

by Diva Sian by swashford


Feature Matching
Feature Matching
Invariant local features
• Temukan fitur yang invarian untuk transformasi
• Invarian secara geometris : translasi, rotasi, skala
• invarian secara fotometrik: kecerahan, pencahayaan, ...

Feature Descriptors
Kelebihan local features
Locality
• Fitur bersifat lokal sehingga robus terhadap kemacetan dan kekacauan
Quantity
• ratusan atau ribuan dalam satu gambar
• Distinctiveness:
• dapat membedakan database obyek yang besar
• Efficiency
• kinerja real-time dapat dicapai
Kelebihan local features
Fitur points dapat digunakan untuk:
• Image alignment (e.g., mosaics)
• 3D reconstruction
• Motion tracking
• Object recognition
• Indexing and database retrieval
• Robot navigation
• … dll
Bagaimana fitur yang baik

• Mencari sesuatu yang unik


• Cari wilayah gambar yang tidak biasa
• Mengarah pada kecocokan yang tidak ambigu dalam gambar lain
• Bagaimana cara mendefinisikan yang "tidak biasa"?
Ukuran keunikan fitur lokal
• Misalkan kita hanya mempertimbangkan jendela ketetanggaan kecil
piksel
• Apa yang mendefinisikan apakah suatu fitur adalah kandidat yang baik atau
buruk?
• Ide adalah sudut bagus sbg fitur. Yang dapat ditemukan pada jendela
ketetanggaan yang berisi gradien kuat dan gradien yang berorientasi
pada lebih dari satu arah.
Ukuran keunikan fitur lokal
• Bagaimana perubahan jendela saat kita
menggesernya?
• Menggeser jendela ke segala arah menyebabkan
perubahan besar

“flat” region: tidak ada “edge”: Tidak ada perubahan di “corner”: berubah secara
perubahan di segala arah sepanjang garis tepi signifikan di segala arah
Harris corner detection: prinsip
• Misalkan untuk menggeser jendela W sebesar (u, v)
• bagaimana piksel dalam W berubah?
• bandingkan setiap piksel sebelum dan sesudah dengan
menggunakan ukuran perbedaan kuadrat (SSD)
• Error SSD E(u, v) didefinisikan
W
Corner detection:
Corner detection:

W
Matriks momen kedua
• Bentuk permukaan E(u,v) secara lokal didekati dengan bentuk
kuadrat.
E(u,v)

v
u

Horizontal edge:
E(u,v)

v
u

Vertical edge:
Secara Umum Corner detection
H dapat divisualisasikan sebagai sebuah ellipse dengan
panjang axis ditentukan dengan eigenvalues dari H dan
sudut ditentukan oleh eigenvectors dari H

Persamaan Ellipse : arah perubahan lmax, lmin : eigenvalues dari H


tercepat
éu ù arah perubahan
[u v] H ê ú = const paling lambat
ëv û
(lmax)-1/2
(lmin)-1/2
Corner detection:
xmin

xmax

Eigenvalues dan eigenvectors dari H


• Tentukan arah gerakan atau pergeseran dengan perubahan
kesalahan terkecil dan terbesar
• xmax = arah peningkatan terbesar dalam E
• lmax = besarnya peningkatan pada arah xmax
• xmin = arah peningkatan terkecil dalam E
• lmin = besarnya peningkatan pada arah xmin
Corner detection:
• Bagaimana lmax, xmax, lmin, dan xmin relevan untuk feature detection?
• Apa fungsi penilaian fiturnya?
• Yang diinginkan E(u,v) menjadi besar untuk pergeseran yang kecil di segala arah
• Minimum E(u,v) harus besar, terhadap semua unit vector [u v]
• Nilai minimum diberikan oleh eigenvalue paling kecil (lmin) dari H
Corner detection
Langkah untuk deteksi sudut
• Hitung gradien (turunan pertama) pada setiap titik dalam citra
• Buat matriks H dari nilai dalam gradien
• Hitung nilai eigenvalues.
• Temukan titik dengan respon terbesar (lmin > threshold)
• Pilih titik-titik dengan lmin adalah local maximum sebagai fitur
Corner detection
Bagaimana
• Pilih titik-titik dengan lmin adalah local maximum sebagai fitur à
dipilih dengan batasan threshold tertentu
Contoh Hasil Deteksi Sudut
Contoh Hasil Deteksi Sudut
Implementasi Corner Detection in Matlab
Implementasi Corner Detection in Matlab
Feature descriptor
Menggunakan block descriptor dimana:
1. Setiap titik atau sudut yang terdeteksi diekstrak dalam sebuah window ketetanggaan, misalkan
11x11 dan dirubah menjadi sebuah vektor yang disebut vector feature

2. Jika titik yang terdeteksi = 120 titik dan ukuran blok=11x11, maka ukuran vektor adalah
120x121
Implementasi Block descriptor in Matlab
Implementasi Block descriptor in Matlab
Feature matching
Jika diberikan sebuah fitur dalam citra I1, bagaimana
memperoleh pencocokan paling baik dalam citra I2?
1. Definisikan fungsi jarak yang membandingkan dua
deskriptor
2. Test semua fitur dalam I2, temukan fitur dengan jarak
paling kecil
Feature distance
Bagaimana mendefinisikan difference antara dua fitur f1, f2?
• Pendekatan sederhana: L2 distance, ||f1 - f2 ||
• dapat memberikan skor bagus untuk pencocokan yang ambigu (salah)

f1 f2
I1 I2
Feature distance
• Pendekatan yang lebih baik : ratio distance = ||f1 - f2 || / || f1 - f2’ ||
• f2 adalah SSD (Sum of squared differences) terbaik yang cocok ke f1 dalam I2
• f2’ adalah SSD terbaik kedua yang cocok ke f1 dalam I2
• Hasilnya akan memberikan nilai besar untuk pencocokan ambigu

f1 f2' f2

I1 I2
Feature matching example

58 matches
Implementasi Feature Matching di Matlab
Implementasi Feature Matching di Matlab
Implementasi Feature Matching di Matlab
Evaluating the results
Bagaimana kita mengukur kinerja pencocok fitur (feature matcher) ?

50
75
200

feature distance
True/false positives
Bagaimana kita mengukur kinerja pencocok fitur (feature matcher) ?

50
true match
75
200
false match

• Ambang jarak mempengaruhi kinerja feature distance


• True Positive = jumlah kecocokan terdeteksi yang benar
• Misalkan kita ingin memaksimalkan ini — bagaimana cara memilih ambang?
• False Positive = jumlah kecocokan terdeteksi yang salah
• Misalkan kita ingin meminimalkan ini — bagaimana memilih ambang?
Evaluating the results
• Bagaimana kita mengukur kinerja pencocok fitur (feature matcher) ?
1

0.7

true
# true positives positive
# matching features (positives)
rate
“recall”

0 0.1 false positive rate 1


# false positives
# unmatched features (negatives) 1 - “precision”
Evaluating the results
• Bagaimana kita mengukur kinerja pencocok fitur (feature matcher)
ROC curve (“Receiver Operator Characteristic”)
1

0.7

true
# true positives positive
# matching features (positives)
rate
“recall”

0 0.1 false positive rate 1


# false positives
# unmatched features (negatives)
1 - “precision”
Applications
Features are used for:
• Image alignment (e.g., mosaics)
• 3D reconstruction
• Motion tracking
• Object recognition (e.g., Google Goggles)
• Indexing and database retrieval
• Robot navigation
• … other
Example Object recognition (David Lowe)

Anda mungkin juga menyukai