Mubarak Shah (University of Central Florida) és társai anyaga alapján Szegmentálás II. Vámossy Zoltán 2004-2006 Mubarak Shah (University of Central Florida) és társai anyaga alapján
Régió szegmentálás Mubarak Shah: Fundamentals of Computer Vision 1992 és Szegedi kollégák (Kuba Attila, Palágyi Kálmán, Kató Zoltán) anyagai alapján
Csoportosítás (clustering)
Szegmentálás - felosztás R4 R1 R2 R6 R3 R5
Régió szegmentálás
Régió szegmentálás
Réteg reprezentáció
Hierarchikus szegmentálás Kiinduló kép finomodó szegmentációs szegmentációk fa
Szegmentálás Az I(x, y) kép szegmentálása kapcsolódó részképekre (régiókra) bontást jelent Keressük R1, R2, ….,Rn összefüggő régiókat úgy, hogy Az i-ik régióban minden pixelre teljesül valamilyen hasonlósági feltétel P(Ri) = 1
Hasonlósági feltételek A részkép minden pixele ugyanolyan intenzitású Bármely részképben a pixelek intenzitása nem különbözik jobban egymástól, mint egy adott küszöb Bármely részképben a pixelek intenzitása nem különbözik jobban a régió átlagos intenzitásától, mint egy adott küszöb Bármely régióban az intenzitásértékek szórása kicsi …
A szegmentálás sikeres ha … a régiók homogének és egyenletesek (uniformitás), a régiók belsejében nincsenek lyukak, a szomszédos régiók között jelentős különbség van, a szegmensek közötti határ egyszerű és pontos.
Szegmentálási módszerek küszöböléses (lásd korábban is) él-alapú régió-alapú illesztésen alapuló
A küszöbölés típusai Globális: T = T{I(x,y)} Lokális: T = T{A(x,y), I(x,y)} Dinamikus: T = T{x, y, A(x,y), I(x,y)}, ahol (x,y): pozíció, A(x,y): az (x,y) környezetéből számított valamilyen lokális tulajdonság, I(x,y): intenzitás (x,y)-ban
Egyszerű küszöbölés
Hisztogram alapú szegmentálás - példa
Hisztogram alapú szegmentálás - példa
Valós hisztogramok Nem valós Valós (zajos)
Valós hisztogram Zajos - simítás! A hisztogramon hajtsunk végre átlagoló, vagy 1D Gauss szűrés(eke)t! Peak - csúcs csúcs völgy csúcs völgy völgy
Él-alapú szegmentálás A hisztogram csak a szürkeségi értékek előfordulási gyakoriságát mutatja meg, a pozíciók, a szomszédos elemek szürkesége és egyéb információk hiányoznak. Ahhoz, hogy zárt és összefüggő határvonalakat kaphassunk más módszerek szükségesek. Előforduló problémák (pl. zaj esetén): álpozitív (false positive) élek — élt detektálunk ott, ahol nincs él; álnegatív (false negative) élek — nem találunk élt, pedig van.
Él-alapú szegmentálás modellje Kép simítás => simított kép Lokális élkiemelés => gradiens irányok és nagyságok Él korrekció => éltérkép Élek kapcsolása, csoportosítása => vonal jellemzők
Él-korrekciós módszerek hiszterézis küszöbölés (lásd a Cannynél) nem-maximális élek elnyomása (lásd a Cannynél) él-relaxáció él-kapcsolás
Él-relaxáció Iteratívan újraértékeljük a képpontok osztályozását): Egy él (akár erős is), ha nincs folytatása a környezetében, valószínűleg nem tartozik semmilyen határhoz. Egy gyenge él, ha két erős él között van, valószínűleg a határvonalhoz tartozik.
Él-kapcsolás Összekapcsolhatunk szomszédos él-pontokat, ha hasonló tulajdonságaik vannak: Hasonló a gradiensük nagysága valamely küszöbértékre: Hasonló gradiensük iránya valamely küszöbértékre:
Régió alapú szegmentálás … az objektum/szegmens által elfoglalt területet határozza meg. Megközelítések: régió növelés (region growing) egyesítés (merge), szétválasztás (split), egyesítés és szétválasztás fagocita algoritmus.
Régió növeléses szegmentálás lépései Seed segmentation Számítsuk ki a kép hisztogramját Simítsuk a hisztogramot átlagolással vagy Gauss szűréssel (kis csúcsok, zajok eltüntetése) Detektáljunk “jó” csúcsokat (peakiness) és völgyeket – lokális maximumok és minimumok keresése-, peakiness test Szegmentáljuk a képet bináris képpé a völgyben lévő küszöbökkel (rendeljünk 1-t a régiókhoz, 0 a háttér) Alkalmazzuk a kapcsolódó komponensek algoritmusát (connected component algorithm) minden bináris képrészre, hogy megtaláljuk az összefüggő régiókat
Jó csúcsok - Peakiness Test
Hisztogram alapú szegmentálás Használjuk a völgyeket küszöbölésre Alkalmazzuk a küszöböket a hisztogramon Címkézzük meg a pixeleket az adott küszöbnek megfelelő tartományban ugyanazzal az értékkel, pl., a, b, c … vagy 1, 2, 3 …
Connected Components A nem csatlakozó, ugyanolyan szegmensű részeket szét kell vágni C szegmenshez adható
Rekurzív kapcsolódó komponens módszer Connected Component Algorithm Dolgozzuk fel a bináris képet balról jobbra, fentről lefelé Ha még nem címkézett “1”-t tartalmazó pixelhez érkezünk, akkor rendeljünk egy új címkét hozzá Rekurzívan vizsgáljuk meg a szomszédait a 2. lépésnek megfelelően, és rendeljük hozzá ugyanazt a címkét, ha még nem címkézettek és az értékük 1 Álljunk meg, ha minden 1 értékű pixelt megvizsgáltunk Megjegyzés: 4-es, 8-as szomszédság
Soros kapcsolódó komponens módszer Dolgozzuk fel a bináris képet balról jobbra, fentről lefelé Ha még nem címkézett “1”-t tartalmazó pixelhez érkezünk, akkor rendeljünk hozzá egy új címkét a következő szabályok szerint: 0 0 0 0 0 1 0 L L 1 L L L L L L 0 1 0 L M 1 M L (L=M) Határozzuk meg a címkék közül az ekvivalenseket (pl.: a=b=e=g és c=f=h, és i=j) Az ekvivalens csoportok minden eleméhez rendeljük ugyanazt a címkét második körben
Soros kapcsolódó komponens módszer Tehát két lépéses az algoritmus: Címkézés Ekvivalens elemek összekapcsolása d=c Ekvivalens osztály
8 szomszédságra szabályok 0 0 0 0 0 0 L 0 0 L 0 0 0 1 0 L 0 1 0 L 0 L 0 0 L 0 0 0 L 0 0 L 0 1 0 L 0 1 0 L * * 0 * * 0 * * L * * L L 1 L L M 1 M L (L=M)
Példa – fehérrel jelölt ujjhegyek
Példa szegmentálásra 93 csúcs
Példa szegmentálásra Simított histogram (átlagolás 5 méretű maszkkal) 54 csúcs Peakiness teszt után 18 Simított histogram kétszer 21 csúcs Peakiness teszt után 7 Simított histogram háromszor 11 csúcs Peakiness teszt után 4
Példa szegmentálásra (0, 40) (40, 116) (116, 243) (243, 255)
Seed Segmentation továbbfejlesztése A kis régiókat kapcsoljuk nagyobbakhoz Régió növelés Nagy régiók szétvágása Régió vágás Gyenge határok eltüntetése szomszédos régiók esetében
Régió növelés Régió vágás és egyesítés (split and merge) Fagocita (phagocyte) algoritmus Valószínűségi arány teszt
Split and Merge régiókra Vágás: vágjuk a nem homogén régiókat 4 szomszédos részre Egyesítés: hasonló tulajdonságú (uniform) szomszédos régiókat kapcsoljuk össze Álljunk meg, ha már nem lehet sem vágni, sem ragasztani Az uniformitás/hasonlóság függvénye: P
Példa – split and merge R R1 R2 R3 R4 R1 R2 R
Példa – split and merge R R R R R R R R R R R R R R R R R R R R R R R
Quad Tree Négyes fa adatstruktúra régióreprezentáláshoz Három fajta csomópont: szürke, fekete és fehér Elsőként generáljunk egy piramist: Ha a piramis fehér, vagy fekete, akkor visszatérés, egyébként: Rekurzívan keressünk egy quad tree-t X1 negyedben Rekurzívan keressünk egy quad tree-t X2 negyedben Rekurzívan keressünk egy quad tree-t X3 negyedben Rekurzívan keressünk egy quad tree-t X4 negyedben Return
Fagocita algoritmus Határ összeolvasztás A gyenge határokat megszünteti Hasonló a régióegyesítéshez A határ gyengeség (weakness) hasonló intenzitáson alapul R2 R1
Fagocita algoritmus R2 R1
Fagocita illesztés heurisztikája Olvasszunk össze két régiót, ha ahol P1 az R1 régió, P2 az R2 régió kerülete Ha T2 < ½, akkor nőhet a határ, ha T2 > ½, akkor csökkenhet Fagocita Gyengeség
Valószínűségi arány teszt Cél: annak eldöntése, hogy összeragasztható-e két régió Két hipotézisünk van: H1: két külön régió van a képen H2: csak egy régió található Feltételezzük, hogy az intenzitás minden régióban: Gauss eloszlású Függetlenek egymástól a régióban
Valószínűségi arány teszt
Valószínűségi arány teszt Annak valószínűsége, hogy egy véletlenül Kiválasztott pixel intenzitása x – Gauss eloszlás A régióban annak a valószínűsége, hogy x1, x2, … xm1 intenzitások vannak: x1, x2, …,xm1A B régióban annak a valószínűsége, hogy xm1+1, xm1+2, … xm1+m2 intenzitások vannak: xm1+1, xm1+2, …,xm1+m2B
Valószínűségi arány teszt Egy régiós hipotézis: Két régiós hipotézis:
Valószínűségi arány teszt Egy régiós hipotézis: Két régiós hipotézis: Valószínűségi arány: Régiók illesztése, ha LH < T
Régió szomszédsági gráf – megj. Régiók reprezentálására jól használható adatstruktúra A régiók csomópontok a gráfban Az élek a régiók szomszédságát reprezentálják 1 2 6 2 5 3 3 4 6 1 5 4
Régió szomszédsági gráf – megj. Tegyük fel, hogy a régiókat rendre össze tudjuk ragasztani az ábra szerint A gráfban kell csak a csomópontokat „adminisztrálni”: azonosság jelzése; majd eltávolítás
Régiószegmentálás és éldetektálás Összehasonlítás Zárt határ Éldetektálás esetében általában nem Régiószegmentálás zárt határokat produkál Lokális < > globális Éldetektálás lokális művelet Régiószegmentálás globális Jellemző vektorok tulajdonságainak növekedése Általában nem javítja az éldetektálás hatékonyságát nagy mértékben Javítja a szegmentálás hatékonyságát (mozgás, textúra, stb.) Határpontok Pontos helyzet meghatározás az éldetektálás során Általában nincs ilyen
Javasolt irodalom Chapter 3, Mubarak Shah, “Fundamentals of Computer Vision”, 1992 (book.pdf)