400 likes | 527 Views
Vonalak, görbék, sarokpontok. Vámossy Zoltán 2004. Témakör. Sarokpontok detektálása Élszakaszok keresése adott futamok mentén Hogyan találhatunk meg vonalakat (lines)? Más görbéket (pl. ellipsziseket) miként kereshetünk?. CV rendszer általános modellje. Jellemzők kinyerése.
E N D
Vonalak, görbék, sarokpontok Vámossy Zoltán 2004
Témakör • Sarokpontok detektálása • Élszakaszok keresése adott futamok mentén • Hogyan találhatunk meg vonalakat (lines)? • Más görbéket (pl. ellipsziseket) miként kereshetünk?
Sarokpontok detektálása Trucco – Verri könyv és Chapter 4, Mubarak Shah, “Fundamentals of Computer Vision” 1992 alapján
Sarokpont detektálás • Gyakran keresünk jellemző sarokpontokat a képen, ezekben a pontokban legalább két irányban erőteljes intenzitásváltozás van • Alkalmazások: mozgás detektálás, sztereó illesztés, CBIR Módszerek: • SUSAN algoritmus • Movarec operátor • Harris sarokdetektáló
SUSAN sarokpont detektálás • Lásd múltkor • Küszöbmegválasztás!
MovarecOperátor • Számoljuk ki a az intenzitás változások varianciáját 4 irányban 4x4-es ablakokban: • … • Válasszuk ki a minimumát a 4 irányban kiszámolt értékeknek V(x, y) = min(Vh(x, y), Vv(x, y), Vd(x, y), Va(x, y))
MovarecOperátor • Egy 4 x 4-es, (x, y) középpontú ablak “érdekes”, ha az alábbi 12 x 12-es szomszédságában, összesen 25 ablak közül lokális maximum
Harris sarokdetektor • Számítsuk ki a deriváltak közelítését, minden pontban (esetleg előtte simítsuk a képet):Ix, Iy • Készítsük el a következő (gradiens momentum) mátrixot a pont valamely 2n+1 x 2n+1 (1<n<10) környezetében: Tulajdonképpen simítás egy környezetben – lehet más módon is
Harris sarokdetektáló • Számoljuk ki MH sajátértékeit • Szimmetrikus mátrix: diagonizálható, sajátértékek nem negatívak • a sajátvektorok élirányt jelentenek, a sajátértékek él nagyságot • Ha mindkét sajátérték elég nagy, akkor sarokpontot tároljuk el egy rendezett listában (a küszöb a hisztogramból származik: első völgy) • Induljunk a legnagyobb értéktől (ez sarokpont), és töröljünk minden olyan tárolt pontot, ami már egy detektált sarokpont közelében van
Harris sarokdetektáló - példa • Küszöb a hisztogramból
Kanade-Lucas-Tomasi algoritmusa • Hasonló elv (Kanade-Lucas-Tomasi algoritmusa): • 0 <= k <= 0.25 • k növekedésével érzéketlenebb a módszer
Szakaszok, vonalak detektálása Trucco – Verri könyv és Chapter 4, Mubarak Shah, “Fundamentals of Computer Vision” 1992 alapján
Szakaszok és élek detektálása • Elvárt helyzetű élszakaszok detektálása • Vonalak detektálása • Ellipszis keresés • Görbék detektálása
Elvárt helyzetű élszakaszok detektálása • Adott futamra merőleges irányban keressük az élszakaszt • Függőleges irányt tárgyalunk, de ez nem szűkítés valójában
Elvárt helyzetű élszakaszok detektálása • Lépések: • A futam irányára levetítés átlagos intenzitás számolásával (nem osztunk az oszlopban lévő pixelek számával egyenlő magas oszlopoknál) • Élerősség tömb elkészítése a futam mentén (differenciál szűrővel) • Átlagos intenzitás tömbből számolunk • Intenzitásváltozások • Csúcsok: erős élek • Élszakasz meghatározása (lokális maximumok egy minimális küszöb felett) • Előre megadott feltételek vizsgálata az élekre vonatkozóan
Átlagos intenzitás számolása • Átlagos intenzitás számolása
Élerősség tömb elkészítése • Nagyobb maszk: simít • Élszakasz meghatározása (lokális maximumok egy minimális küszöb felett)
Élfeltételek vizsgálata • Minimális élerősség • Elvárt élpozíció • Élpár esetén az elvárt távolság • Polaritás: világosból sötét, vagy fordítva • Az előzetes feltételeket esetleg súlyozzuk: élkiértékelési fgv.
Vonaldetektálás Hough trafóval • Cél: Az E(x, y) képen találjuk meg a vonalakat és határozzuk meg azok egyenletét • O(NNMM) nagyságrendű számítást kell elvégezni
Vonaldetektálás Hough trafóval • Konverzió paraméter térbe • Az m és n paraméterek megtalálása • Visszakonvertálás derékszögű koordinátákba Főbb pontok
Vonaldetektálás Hough trafóval • Kulcs: Használjuk a paraméterteret, ahol a bonyolult probléma az egyszerűbb lokális maximumok megtalálását jelenti • Input: • Bináris kép élpontokkal • Küszöb
Vonalillesztés • Vonal egyenlet • Az (m, b) teret osszuk fel egy ráccsal és minden cellához rendeljünk egy számlálót: c(m, b)kezdetben 0 értékkel • Minden élpixel ismert koordinátáival • Számoljuk ki b értékét minden lehetséges mmellett • Növeljük meg a c(mi, bi)-t eggyel • Keressük meg a lokális maximumokat a paraméter térben!
Hough trafó: kvantálás m • Vonal detektálás maximum/klaszter keresésével a paraméter térben • Függőleges vonalak esetén probléma • mésbvégtelen x
Hough transzformáció • Polár koordinátás reprezentáció • Egy egyenes minden pontjára ésállandó • Bármely irányban numerikusan stabil leírás • Különböző konstans értékeke fix értékeinél különböző vonalakat szolgáltatnak (A)
Algoritmus • Készítsünk egy 2D (,) számláló tömböt, a szög 0 és 180 fok között változik, a távolság maximum a kép átlója • Nullázuk ki • Aszög lehetséges értékeit vegyük fel • Például 10-os növekmények • Minden élpontra • Számoljuk ki értékét az (A) egyenlettel • Minden kiszámolt (,) párra növeljük meg a számlálótömb értékét • Keressük meg a lokális maximumokat
Vonaldetektálás
Vonaldetektálás - példa ideális zajos Nagyon zajos
Nehézségek • Hogyan osszuk fel a paraméter teret (,)? • nagy? Nem tudunk különbséget tenni vonalak között • kicsi? A zaj hibákat eredményez • Hány vonalat találunk? • Melyik élpont melyik vonalhoz tartozik? • A zaj miatt nehéz kielégítő megoldást találni
Kör illesztés, detektálás • Hasonló a vonalhoz • Három ismeretlen • 3D akkumulátor tömböt kell elkészíteni: A • Dimenziók: x0, y0, r • Egyik paraméter fix legyen, a másik kettő változó • Növeljük meg a megfelelő elemet az Atömbben. • Keressünk lokális maximumot Atömbben
Gyakorlatban javasolt módszer • Az élpontnál használjuk az iránytangenst • Számoljukx0, y0értéket, adottx, y, r
Görbedetektálás Hough trafóval • Input: ugyanaz, mint vonal esetében • Legyen a C görbe paraméteres alakja. • Válasszuk meg a paramétertérben az egyes irányokban a felbontást: s1-sp • Legyen A(s1,s2,…,sp) egy p dimmenziós számláló tömb
Görbedetektálás Hough trafóval • E(i, j) élpixelre (E(i, j) = 1), számoljuk ki a paramétertérben minden lehetséges értékre a kifejezés értékét és növeljük a számláló értékét az helyen eggyel • Keressük meg az olyan pontokat a paramétertérben, amik egy előírt küszöbnél nagyobbak • Output: vektorok listája, amely leírja E képen a görbéket • Megjegyzés: használjuk itt is a polárleírást
Hough transzformáció: eredmények Kép Éldetektálás Hough transzformáció