Cvičení 11: RANSAC Tomáš Sixta 23. listopadu 2012

Podobné dokumenty
SIFT: Scale Invariant Feature Transform Automatické nalezení korespondencí mezi dvojicí obrázků

Roman Juránek. Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 30

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

ROZ1 CVIČENÍ VI. Geometrická registrace (matching) obrazů

1 Projekce a projektory

Úlohy nejmenších čtverců

Úvod do mobilní robotiky AIL028

Matematika 1 MA1. 1 Analytická geometrie v prostoru - základní pojmy. 4 Vzdálenosti. 12. přednáška ( ) Matematika 1 1 / 32

1 Linearní prostory nad komplexními čísly

5. Lokální, vázané a globální extrémy

Zpracování digitalizovaného obrazu (ZDO) - Segmentace II

Geometrické transformace pomocí matic

y Obrázek 1.26: Průměrová rovina válcové plochy

BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND MULTIMEDIA BACHELOR S THESIS AUTHOR

Cvičná bakalářská zkouška, 1. varianta

Eukleidovský prostor a KSS Eukleidovský prostor je bodový prostor, ve kterém je definována vzdálenost dvou bodů (metrika)

4EK213 LINEÁRNÍ MODELY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Odečítání pozadí a sledování lidí z nehybné kamery. Ondřej Šerý

PROGRAM PRO VÝPOČET PROSTOROVÝCH SOUŘADNIC A TVORBU HLOUBKOVÉ MAPY

EXTRÉMY FUNKCÍ VÍCE PROMĚNNÝCH

Projektivní geometrie. Ing. Zdeněk Krňoul, Ph.D. Katedra Kybernetiky Fakulta aplikovaných věd Západočeská univerzita v Plzni

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

1 Funkce dvou a tří proměnných

LOKALIZACE MOBILNÍHO ROBOTA V PROSTŘEDÍ LOCALISATION OF MOBILE ROBOT IN THE ENVIRONMENT

12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ

Soustavy lineárních rovnic

LBP, HoG Ing. Marek Hrúz Ph.D. Plzeň Katedra kybernetiky 29. října 2015

REKONSTRUKCE 3D OBJEKTU Z OBRAZOVÝCH DAT

DETEKCE OBJEKTŮ POMOCÍ KINECTU

Matematika 1 MA1. 2 Determinant. 3 Adjungovaná matice. 4 Cramerovo pravidlo. 11. přednáška ( ) Matematika 1 1 / 29

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

Vlastní číslo, vektor

PROSTORY SE SKALÁRNÍM SOUČINEM. Definice Nechť L je lineární vektorový prostor nad R. Zobrazení L L R splňující vlastnosti

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Požadavky k písemné přijímací zkoušce z matematiky do navazujícího magisterského studia pro neučitelské obory

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

Analýza napjatosti PLASTICITA

Matematika B101MA1, B101MA2

Lineární algebra : Metrická geometrie

Přehled vhodných metod georeferencování starých map

11MAMY LS 2017/2018. Úvod do Matlabu. 21. února Skupina 01. reseni2.m a tak dále + M souborem zadané funkce z příkladu 3 + souborem skupina.

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

APLIKACE. Poznámky Otázky

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Globální matice konstrukce

[1] Motivace. p = {t u ; t R}, A(p) = {A(t u ); t R} = {t A( u ); t R}

Rovinné přetvoření. Posunutí (translace) TEORIE K M2A+ULA

Funkce v ıce promˇ enn ych Extr emy Pˇredn aˇska p at a 12.bˇrezna 2018

Vybrané kapitoly z matematiky

Nejdřív spočítáme jeden příklad na variaci konstant pro lineární diferenciální rovnici 2. řádu s kostantními koeficienty. y + y = 4 sin t.

Shodnostní Helmertova transformace

Řešení 1b Máme najít body, v nichž má funkce (, ) vázané extrémy, případně vázané lokální extrémy s podmínkou (, )=0, je-li: (, )= +,

Lineární zobrazení. 1. A(x y) = A(x) A(y) (vlastnost aditivity) 2. A(α x) = α A(x) (vlastnost homogenity)

Afinní transformace Stručnější verze

( ) ( ) ( ) ( ) Skalární součin II. Předpoklady: 7207

geekovo minimum počítačového Nadpis 1 Nadpis 2 Nadpis 3

Jasové transformace. Karel Horák. Rozvrh přednášky:

REKONSTRUKCE 3D SCÉNY Z OBRAZOVÝCH DAT

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

11 Analýza hlavních komponet

2. Schurova věta. Petr Tichý. 3. října 2012

Algoritmus pro hledání nejkratší cesty orientovaným grafem

(Cramerovo pravidlo, determinanty, inverzní matice)

Matematika II, úroveň A ukázkový test č. 1 (2018) 1. a) Napište postačující podmínku pro diferencovatelnost funkce n-proměnných v otevřené

Afinita je stručný název pro afinní transformaci prostoru, tj.vzájemně jednoznačné afinní zobrazení bodového prostoru A n na sebe.

ANTAGONISTICKE HRY 172

1. LINEÁRNÍ ALGEBRA Vektory Operace s vektory... 8 Úlohy k samostatnému řešení... 8

Derivace funkcí více proměnných

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY CVIČENÍ 9

Základy maticového počtu Matice, determinant, definitnost

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ

Operační výzkum. Teorie her cv. Hra v normálním tvaru. Optimální strategie. Maticové hry.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Cvičení 5 - Inverzní matice

Diferenciální počet 1 1. f(x) = ln arcsin 1 + x 1 x. 1 x 1 a x 1 0. f(x) = (cos x) cosh x + 3x. x 0 je derivace funkce f(x) v bodě x0.

V praxi pracujeme s daty nominálními (nabývají pouze dvou hodnot), kategoriálními (nabývají více

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

4EK213 Lineární modely. 5. Dualita v úlohách LP

DERIVACE FUKNCÍ VÍCE PROMĚNNÝCH

4EK201 Matematické modelování. 2. Lineární programování

Rastrové digitální modely terénu

a vlastních vektorů Příklad: Stanovte taková čísla λ, pro která má homogenní soustava Av = λv nenulové (A λ i I) v = 0.

Fakulta informačních technologíı. Extrakce obrazových příznaků 1 / 39

Markovské metody pro modelování pravděpodobnosti

AVDAT Vektory a matice

Úloha: Verifikace osoby pomocí dynamického podpisu

7 Analytické vyjádření shodnosti

Podobnostní transformace

4. Statika základní pojmy a základy rovnováhy sil

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

0.1 Úvod do lineární algebry

7.5.3 Hledání kružnic II

Arnoldiho a Lanczosova metoda

Geometrické transformace

Matematika I 12a Euklidovská geometrie

1 Analytická geometrie

Transkript:

Cvičení 11: RANSAC Tomáš Sixta 23. listopadu 2012 1 Úvod V tomto cvičení se naučíte pracovat s algoritmem RANSAC pro nalezení transformace mezi dvěma množinami bodových korespondencí. Mějme dva obrázky (označme je jako levý a pravý), v každém několik klíčových bodů a předpokládejme, že pro každý bod z levého obrázku máme kandidátské korespondence s body v pravém obrázku. Ne všechny jsou však správné, některé dvojice neodpovídají jednomu fyzickému prvku scény. Vaším úkolem bude najít takovou transformaci mezi levou a pravou množinou, která má co možná největší podporu (support). 2 Automatická registrace obrázků Automatickou registraci obrázků pomocí klíčových bodů lze rozdělit na několik fází: Nalezení klíčových bodů v obou obrázcích. Výpočet popisů klíčových bodů invariantních vůči nějaké třídě transformací. Vytvoření tentativních (kandidátských) korespondencí mezi body v obou obrázcích. Nalezení transformace mezi obrázky (např. algoritmem RANSAC). Transformace jednoho z obrázků. 2.1 Hledání klíčových bodů Kvalitní klíčový bod (keypoint) by měl ležet v místě, jehož pozice je dobře určena (tedy ne v jednobarevných oblastech nebo na hranách). Takovými místy mohou být např. rohy (průsečíky dvou hran, lokální extrém intenzity atd.), pro které existuje mnoho postupů, jak je detekovat. Prvním prakticky použitelným byl Harrisův detektor, který hledá body, v nichž se gradient mění ve dvou ortogonálních směrech. Využívá vlastností tzv. autokorelační matice gradientu 1

A = u ( ) I 2 w(u, v) x(u, v) I x I y (u, v) I x I y (u, v) Iy(u, 2, (1) v) v kde w je nějaká okenní funkce centrovaná ve vyšetřovaném bodě (typicky gaussián) a I x a I y jsou parciální derivace obrázku I. Je-li výraz det(a) κtrace 2 (A) (2) větší než zvolený práh, prohlásíme takový bod za rohový (konstanta κ nastavuje citlivost detektoru). Další detektory klíčových bodů (oblastí) jsou např. Hessian detector, FAST a další. 2.2 Deskriptory Porovnávání dvou klíčových bodů pouze na základě obrazové informace v jejich okolí dává očekávané výsledky jen pro mírně odlišné obrázky (rotace o malý úhel, malá změna měřítka). Pokud se liší více, je vhodné použít deskriptory invariantní vůči nějaké třídě transformací. Odhad měřítka a natočení okolí klíčového bodu nám někdy vrátí jejich detektor. V tomto cvičení budete používat implementaci deskriptoru SIFT (Scale Invariant Feature Transform), které jsou v současné době velmi populární. Další významné metody popisu klíčových bodů jsou např. SURF (Speeded Up Robust Feature), HOG (Histogram of Oriented Gradients) a další. 2.3 Tentativní korespondence Nejjednodušší způsob, jak nalézt možné protějšky bodu z levé množiny, je povolit jeho párování se všemi body pravé množiny. Takový postup však vytváří velké množství možných korespondencí, a proto je vhodný jen pro malé množiny bodů a jednoduché transformace (rigidní). Lepší způsob je popsat klíčové body vhodnými deskriptory a každému bodu z levé přiřadit bod z pravé množiny s nejpodobnějším deskriptorem. 3 Zadání 1. Pomocí funkce find_keypoints z doprovodného archivu najděte klíčové body a jejich popisy v obrázcích 1a, 1b, 2a a 2b. Význam parametrů je následující: image [w h] nebo [w h 3]: Obrazová data. frames: [n 2]. Klíčové body. První sloupec jsou x-ové souřadnice, ve druhém sloupci jsou y-ové souřadnice. descriptors [128 n]: Popisy klíčových bodů. Aby mohla find_keypoints správně pracovat, je třeba rozbalit a přidat do cesty Matlabu archiv sift-0.9.19-bin.tar.gz, který obsahuje potřebné mex soubory. 2. Napište funkci [c]=get_correspondences(descriptors1,descriptors2), která pro každý klíčový bod z levého obrázku najde v pravém obrázku klíčový bod s nejpodobnějším popisem (0,5 bodu). 2

descriptors1 [128 n]: Popisy klíčových bodů z levého obrázku. descriptors2 [128 m]: Popisy klíčových bodů z pravého obrázku. c: [n 2]. Pole indexů, v prvním sloupci jsou body z levého obrázku, ve druhém z pravého. Podobnost dvou deskriptorů měřte jako euklidovskou vzdálenost daných vektorů. 3. Napište funkci [support inl]=get_support(points1,points2,t,threshold), která spočítá podporu (support) transformace T (1 bod). points1 [n 2]: Body z levé množiny, první sloupec obsahuje x-ové souřadnice, druhý sloupec points2 [n 2]: Body z pravé množiny, první sloupec obsahuje x-ové souřadnice, druhý sloupec T [3 3]: Transformační matice zobrazující levou množinu na pravou. threshold [1 1]: Maximální vzdálenost bodu z pravé množiny a transformovaného bodu z levé množiny, pro kterou jsou tyto body označeny za inliery. support [1 1]: Podpora (support) transformace T, tedy počet bodů takových, že #x : x T (x) < threshold (3) inl [n 1]: Pole obsahující na i-té pozici 1, je-li i-tý bod z levé množiny inlier, jinak 0. 4. Napište funkci [T inl]=ransac(points1,points2,c,confidence,threshold,type), která pomocí algoritmu RANSAC najde similaritní transformaci mezi množinami points1 a points2. (2,5 bodu). points1 [n 2]: Body z levé množiny, první sloupec obsahuje x-ové souřadnice, druhý sloupec points2 [m 2]: Body z pravé množiny, první sloupec obsahuje x-ové souřadnice, druhý sloupec c [n 2]: Indexy korespondujícíh bodů z levé a pravé množiny. confidence [1 1]: Číslo z intervalu (0,1) udávající požadovanou pravděpodobnost, že vrácená transformace je správná (confidence). threshold [1 1]: Maximální vzdálenost bodu z pravé množiny a transformovaného bodu z levé množiny, pro kterou jsou tyto body označeny za inliery. type: Typ transformace. Řetězec similarity pro similaritu, affine pro afinní z bonusu 2 a homography pro obecnou homografii z bonusu 3. T [3 3]: Transformační matice mezi množinami points1 a points2. inl [n 1]: Pole obsahující na i-té pozici 1, je-li i-tý bod z levé množiny inlier, jinak 0. Kandidátské similaritní transformace můžete hledat pomocí funkce find_transformation ze 4. cvičení (předejte jí vždy tři korespondující páry). Počet zbývajících iterací odhadujte vždy při změně nejlepší dosud nalezené transformace. Označímeli požadovanou pravděpodobnost správnosti modelu (confidence) jako p, počet skutečných inlierů v datech jako w a počet datových bodů jako n, je odhad počtu zbývajících iterací roven 3

k = log(1 p) log(1 w n ) (4) Protože počet skutečných inlierů není typicky znám, odhaduje se z počtu parametrů transformace a počtu bodů, které podporují dosud nejlepší nalezenou transformaci. K odhadu počtu zbývajících iterací můžete využít funkci [SampleCnt] = nsamples(ni, ptnum, pf, conf), jejíž parametry mají následující význam: ni [1 1]: Support dosud nejlepší nalezené transformace. ptnum [1 1]: Počet všech dvojic bodů. pf [1 1]: Počet dvojic bodů potřebných k výpočtu parametrů transformace. conf [1 1]: Požadovaná pravděpodobnost, že vrácená transformace je správná (confidence). 5. Použijte funkci ransac k nalezení similaritní transformace mezi dvojicemi obrázků 1a 1b a 2a 2b. Pro každou dvojici obrázků vložte do reportu: Pravý obrázek se zakreslenými body points2. Levý obrázek se zakreslenými body points1 a s jejich transformovanými protějšky z množiny points2. Sobě odpovídající body spojte úsečkou. Zakreslujte body tak, aby bylo možné odlišit points1 od points2 a inliery od outlierů. Rozdílový obrázek po transformaci. Pokud se obrázky překrývají jen částečně, doplňte myšleně každý za jeho okrajem nulami. Počet detekovaných klíčových bodů v obou obrázcích, nejlepší dosažený support a hodnoty všech parametrů (confidence, threshold). Rozumné hodnoty jsou confidence=0.99 a threshold=1, avšak nebojte se experimentovat. K transformaci obrázků můžete využít funkci transform_image ze 3. cvičení. 6. Bonus. Použijte funkce find_keypoints a ransac k nalezení transformace mezi dvěma obrázky Vašeho výběru, které se částečně překrývají, a vytvořte z nich panorama. Pokud se rozhodnete naprogramovat také afinní transformaci nebo obecnou homografii, můžete je v tomto bodě využít namísto prosté similarity. Výstupem bude skript, který složí panorama ze dvou obrázků bez zásahu uživatele. Zdrojové obrázky a výsledné panorama vložte do reportu (2 body). 7. Bonus. Implementujte funkci [T]=find_transformation_affine(points1,points2), která nalezne parametry afinní transformace (významy parametrů jsou stejné jako u funkce find_transformation ze 4. cvičení) (1 bod). Obecnou afinní transformaci bodů v rovině lze zapsat pomocí následujícího maticového násobení: x h 11 h 12 h 13 x λ y = h 21 h 22 h 23 y (5) 1 0 0 1 1 Tuto soustavu můžeme rozepsat na λx = h 11 x + h 12 y + h 13 λy = h 21 x + h 22 y + h 23 λ = 1 a dosazením tří různých párů x x dostaneme (rozmyslete si přechod k maticovému zápisu!) 4

x 1 y 1 1 0 0 0 0 0 0 x 1 y 1 1 x 2 y 2 1 0 0 0 0 0 0 x 2 y 2 1 x 3 y 3 1 0 0 0 0 0 0 x 3 y 3 1 h 11 h 12 h 13 h 21 h 22 h 23 = x 1 y 1 x 2 y 2 x 3 y 3 (6) Aby měla matice soustavy 6 plnou hodnost, nesmí být body v pravé ani levé množině kolineární. 8. Bonus. Odvoďte a implementujte funkci [T]=find_transformation_homography(points1,points2), která nalezne parametry obecné homografie, tedy transformace x h 11 h 12 h 13 x λ y = h 21 h 22 h 23 y (7) 1 h 31 h 32 h 33 1 (pozor, λ v tomto není případě pro všechny body rovna 1, což musíte vzít v úvahu při výpočtu supportu). Odvození vložte do reportu. (3 body za odvození, 1 za implementaci). a) MRI scan lebky b) MRI scan lebky po similaritní transformaci c) MRI scan lebky po afinní transformaci Obrázek 1 d) MRI scan lebky po transformaci obecnou homografíí 5

a) b) Obrázek 2 Histologický řez krysí ledvinou 4 Literatura [1] Harris C., Stephens M.. A Combined Corner and Edge Detector. In Proceedings of The Fourth Alvey Vision Conference, pp. 147-151., 1988. [2] Lowe D. G.. Object Recognition from Local Scale-Invariant Features. Computer Vision. The Proceedings of the Seventh IEEE International Conference on, pp 1150-1157, 1999. [3] Chum O.. Two-View Geometry Estimation by Random Sample and Consensus (PhD thesis). Online available at: cmp.felk.cvut.cz/~chum/teze/chum-phd.pdf, 2005. 6