Top Banner
SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků [email protected] Přílohy (videa, zdrojáky, …) ke stažení na: http://mach.matfyz.cz/sift
54

SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Aug 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

SIFT:Scale Invariant Feature Transform

Automatické nalezení korespondencímezi dvojicí obrázků

[email protected]

Přílohy (videa, zdrojáky, …) ke stažení na:

http://mach.matfyz.cz/sift

Page 2: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Korespondence mezi obrázky

Page 3: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Korespondence mezi obrázky

Page 4: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

K čemu je to dobré?

Motivace na začátek

Page 5: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Panorama stitching (a)

Page 6: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Panorama stitching (b)

Page 7: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Automatická rekonstrukce 3D scény

• Ukázka

Page 8: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Jak najít korespondence?

• Nejprve na obrázku nalezneme „významná“ místa – features (body zájmu)

Page 9: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Deskriptory

• Každou feature popíšeme deskriptorem: vektorem 128 integerů

• Deskriptory jsou invariantní vůči následujícím operacím s obrazem: – zvětšení/zmenšení, posun, 2d rotace, šum, změna

kontrastu, jasu, osvětlení

– částečně invariantní vůči prostorové změně úhlu pohledu

• Stejné body na dalších obrázcích tedy budou mít stejné (nebo velmi podobné) deskriptory

Page 10: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Schéma algoritmu

1. Vybereme velké množství bodů – „kandidátů“

2. Z této množiny odfiltrujeme nestabilní features(nekontrastní, na hranách, …)

3. Vypočítáme deskriptory

4. Vše provedeme v různých„měřítcích“ (scale space) původního obrázku a všechny features hodíme na jednu hromadu

Page 11: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Pozorování: vezmeme obrázek

Page 12: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Gaussovské rozostření poprvé

Page 13: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Gaussovské rozostření podruhé

Page 14: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odečteme je od sebe

Page 15: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odečteme je od sebe

Page 16: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Co se stalo?

• Zajímat nás budou lokální extrémy v „rozdílovém“ obrázku (na předchozím obrázku je zobrazený v absolutní hodnotě)

• Černé (= nulový rozdíl) jsou hrany a velké homogenní oblasti – ty nás nezajímají

• Bílé (= velký rozdíl) jsou oblasti vedle hrana středy malých kruhů

Page 17: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Proč se to stalo?

• Ukážeme si to na příkladu jednorozměrné funkce („1D obrázek“):

Page 18: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Pokračujeme s funkcí

• Funkci rozostříme podobně jako jsme to provedli s obrázkem:

Page 19: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

„Rozostření“ podruhé

• Zopakujeme konvoluci:

Page 20: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

odečteme funkce od sebe

… výsledek

Page 21: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

původní funkce

rozdíl z minulého slidu

2. derivace této funkce

Page 22: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Závěr pozorování

• Rozdíl dvou gaussovsky rozostřených obrázků je aproximací druhé derivace obrázku (přesněji Laplaciánu)

• Algoritmus na začátku vybere lokální extrémy v takovýchto „rozdílových obrázcích“

Page 23: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Sestavíme scale space

Page 24: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Sestavíme scale space

Page 25: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Sestavíme scale space

Page 26: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Sestavíme scale space

Page 27: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Sestavíme scale space

Page 28: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Sestavíme scale space

Page 29: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odečteme sousední obrázky

Page 30: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Vybereme lokální extrémy

• V rozdílových obrázcích vybereme lokální extrémy – pixely s hodnotou větší (menší) než všichni sousedé

Porovnáváme ovšem i s pixely na 3x3 okolí na stejném místě v sousedních obrázcích ve scale space

Page 31: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Ukázka: lokální extrémy ve scale space

Page 32: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Proložení kvadratickou funkcí (a)

• Pro každý lokální extrém vezmeme jeho 3×3 okolí a představíme si ho jako funkci R2 → R

Page 33: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Proložení kvadratickou funkcí (b)

• Těmito hodnotami proložíme trojrozměrnou kvadratickou funkci:

Page 34: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Subpixelová přesnost

• Najdeme minimum/maximum této funkce a tak zjistíme polohu feature se subpixelovou přesností

Page 35: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Filtrování features

• Podle tvaru kvadratické funkce odstraníme nestabilní features: s nedostatečným kontrastem nebo ležící podél hran

Page 36: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Znovu: lokální extrémy ve scale space

Page 37: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odstranění nekontrastních features

Page 38: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odstranění features na hranách

Page 39: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odstranění features na hranách

Page 40: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Odstranění features na hranách

Page 41: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Orientace a velikost

• Bodům zájmu přiřadíme orientaci a velikost

• V rozostřeném obrázku vypočítáme 1. derivaci v místě feature (ve směrech os x a y: dx, dy)

• Velikost: L = sqrt(dx2 + dy

2)

• Orientace: α = arctan(dy/dx)

Page 42: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Orientace a velikost

• Velikost feature: L = sqrt(dx2 + dy

2)

• Orientace feature: α = arctan(dy/dx)

Page 43: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Deskriptor

• Chceme vhodně popsat okolí feature(o velikosti L)

• Výpočet deskriptoru budeme provádět relativně vzhledem k orientaci feature (α)

• Tím dosáhneme invariance vzhledem k rotaci obrázku

Page 44: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Deskriptor

• Deskriptor je typicky 128-rozměrný vektor vypočítaný na základě gradientů v okolífeature

• To vychází z biologického modelu rozpoznávání objektů

Image licensed under GNU FDL

Page 45: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Deskriptor

• V okolí feature vypočítáme gradienty

• Deskriptor je histogramem těchto gradientů

© D. Lowe

Page 46: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Feature matching

• Každý bod zájmu máme popsaný vektorem

• Na druhém obrázku najdeme bod zájmu, který má tento vektor co nejpodobnější

• Podobnost vektorů: použijeme běžnou eukleidovskou metriku

• Feature space outlier rejection

• Zrychlení: PDS, kd-strom

Page 47: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Další aplikace

Zdrojáky využívají knihovnu OpenCVa opensource implementaci SIFTů

(viz odkazy na literaturu).

Page 48: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Rozpoznávání objektů

• Hledání korespondencí oproti celé množině fotografií (databáze)

© Unknown

Page 49: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

matching.c, pano.c

Page 50: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Kalibrace kamer

• Kalibrace snímků videa či fotografií

• U videa ale fungují i primitivnější metody

• Přidávání renderovaných objektů do videa, modelování podle fotografií

• Nicméně: SIFT není zcela afině invariantní, hledání korespondencí mezi fotografiemi s velmi odlišnými úhly pohledu je stále problém

Page 51: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Literatura

• Hlavní článek:

– David G. Lowe: „Distinctive image features from scale-invariant keypoints,“ International Journal of Computer Vision, 60, 2 (2004), pp. 91-110

– http://www.cs.ubc.ca/~lowe/keypoints/

Page 52: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Další informace

• Filtrování chybných korespondencí (RANSAC, guided matching) a mnoho dalšího:– R. I. Hartley, A. Zisserman, „Multiple View Geometry in

Computer Vision, 2nd Edition, “ Cambridge University Pr., 2004.

• Automatická rekonstrukce 3D scén pomocí SIFTů:– Brown, Lowe, „Unsupervised 3D Object Recognition and

Reconstruction in Unordered Datasets“– http://research.microsoft.com/~brown/papers/3dim05.pdf

• Jiný algoritmus (stabilnější při změně polohy pozorovatele):– J. Matas, O. Chum, M. Urban, T. Pajdla, „Robust Wide Baseline

Stereo from Maximally Stable Extremal Regions,“ British Machine Vision Conference, 2002.

Page 54: SIFT: Scale Invariant Feature Transformcgg.mff.cuni.cz/~pepca/ref/SIFT.pdf · SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Děkuji za pozornost

Licensed under Creative Commons BY 3.0