390 likes | 498 Views
Küszöbölés Szegmentálás I. Vámossy Zoltán 2004 (Kató Zoltán – Szeged, Bebis – Nevada Univ. , Ribeiro – Florida alapján). CV rendszer általános modellje. Képoperációk osztályozása. Képtérben történő műveletek Pont alapú transzformációk Maszk, vagy ablak alapú transzformációk
E N D
KüszöbölésSzegmentálás I. Vámossy Zoltán 2004 (Kató Zoltán – Szeged, Bebis – Nevada Univ. , Ribeiro – Florida alapján)
Képoperációk osztályozása • Képtérben történő műveletek • Pont alapú transzformációk • Maszk, vagy ablak alapú transzformációk • Geometriai transzformációk • Teljes képre vonatkozó transzformációk • Frekvencia tartományban módszerek
Hisztogram • Olyan grafikon, amely minden lehetséges szürkeárnyalathoz megadja a képen az adott árnyalatú pixelek számát • Ha normalizáljuk (minden értéket elosztunk a kép méretével), akkor az egyes pixelértékek előfordu-lási valószínűségét kapjuk
Hisztogram • A digitális kép [0, L-1] intenzitástartományban tekintett hisztogramja:h(rk) = nkahol rk a k-ik szürkeségi érték, nk azoknak a pixeleknek a száma, amelyeknek az intenzitása rkh(rk) a digitális kép hisztogramja rk intenzitásnál unsigned char* x; x = image->data; for (i= sor * oszlop; i = 0; i--) hist[*x++]++;
Normalizált hisztogram • A hisztogram minden rk intenzitás összdarabszámát (nk-t) elosztjuk a kép pixeleinek számával (n):p(rk) = nk / np(rk) az rk intenzitás előfordulásának valószínűségét becsüli • A normalizált hisztogram elemeinek összege 1
Megvilágítás és visszaverődésFényviszonyok hatása Kis kitérő megjegyzések
Intenzitás - megvilágítás • Egy szürkeárnyalatos kép fényintenzitást rögzít • A rögzített intenzitás egy (x, y) pontban lényegében két összetevő szorzata: f(x, y) = r(x, y) * i(x, y) • a felület visszaverődési tulajdonsága (reflectance): 0 < r(x, y) < 1(r értékek: fekete bársony 0.01; rozsdamentes acél 0.65; fehérszínű fal 0.8; hó 0.93) • illetve a megvilágítás erőssége: 0 < i(x, y) < ∞(i értékek: felhőtlen napsütés 9000 footcandle, szoba 100, felhős idő 1000) • Ha a megvilágítás egyenletes (vagyis i(x, y) konstans), akkor f(x, y) jól tükrözi a szegmentálandó felületek visszaverődési tulajdonságát -> a hisztogram jól használható (tulajdonságok meghatározása egyszerűbb) • Ha a megvilágítás nem egyenletes, akkor a f(x, y) torzítottan adja vissza r(x, y)-t -> a hisztogramból nyert információ félrevezető lehet
Megvilágítás (illumináció) • A cél konstans megvilágítás elérése annak érdekében, hogy a hibák effektusok, tulajdonságok kiderüljenek, könnyebben azonosíthatók legyenek • Fényforrások: • Izzólámpa: olcsó, de erős árnyék • diffúz (szórt) fény: kicsi árnyék • Probléma 1: degradálódás. Ha a szoftver a belső fény abszolút intenzitását veszi figyelembe és ennek változására érzékeny, ez probléma, mivel a fényerő idővel degradálódik. Megoldás: a rendszer önkalibráló és/vagy fénymérő. • Probléma 2: vibrálás.
Intenzitás • Lmin=imin*rmin>0; gyakorlati érték = 0.005 • Lmax=imax*rmax< ∞ gyakorlati érték=100 • Szürkeségi árnyalatok: f(x,y) є[Lmin, Lmax] (gray scale interval), szokás ezt az intervallumot eltolni a [0, L]-be, ahol L = Lmax-Lmin • Emlékeztető - Képvétel lépései: • (x,y) = digitalizálás = image sampling • amplitúdó (f(x, y)) digitalizálás = gray level quantization
Küszöbölés Feltevések és módszerek
Küszöbölés (thresholding) • Alapfeltevések: • Az objektum és a háttér eltérő intenzitású (nagy kontraszt) • A kapott két halmaz átlagos intenzitásának eltérése a legnagyobb legyen • Az objektum és a háttér homogén intenzitású • Például: sötét objektum világos háttéren: • f(x,y) - input kép; • t(x,y) - szegmentált kép; • T=küszöbérték • f(x,y)<=T -> t(x,y)=1 (object) • f(x,y)>T -> t(x,y)=0 (background)
Küszöbérték meghatározása • Zajos kép esetében nehéz (~lehetetlen) kielégítő küszöbértéket meghatározni -> a szegmentálás inhomogén lesz. • Zajszűrés jelenthet megoldást, ha nem túl nagy a zaj
Küszöbérték meghatározása • Lehet az input képtől függetlenül, manuálisan rögzített érték • Egyszerű • Kontrollált környezetben jól használható (ipari alkalmazások) • Adaptív eljárások, melyek az input képhez automatikusan választják ki az optimális küszöbértéket: • Objektumok, alkalmazás, környezet ismeretében (méretek, intenzitások, objektum számok) • Globális hisztogramból klaszterezéssel számított érték • Lehet küszöb: medián (fele objektum, fele háttér); átlag • Isodata algoritmus (Yanni) • Otsu algoritmus • Lokálisan változó érték (egyenetlen megvilágítás) • Niblack algoritmus
Hisztogram alapján • A homogén intenzitású régiók erős csúcsot jelentenek a hisztogramban
Hisztogram alapján – több szintben • Több küszöb szerint is lehet szétvágni • If f (x, y) < T1 then f (x, y) = 255else if T1 <= f (x, y) < T2 then f (x, y) = 128else f (x, y) = 0 • Ha a hisztogramnak erős csúcsai vannak, mély elválasztó völgyekkel, akkor könnyebb a szeparálás
Küszöbölés p-ed résznél • Ha tudjuk, hogy a háttérhez és a tárgyhoz tartozó pontok aránya ~1/p (pl. a nyomtatott szöveg betűi kb. 1/10-ét foglalják el a lapnak), akkor a T küszöb választása: • ahol pi az i intenzitás relatív gyakorisága.
Hiszterézises küszöbölés • Ha nincs “tiszta” völgy a hisztogramban, akkor a háttérben sok olyan pixel van, aminek az intenzitása megegyezik az objektum pixeleinek intenzitásával és fordítva • Két küszöböt definiálunk a völgy két szélénél • A nagyobb küszöb feletti pixelek objektumok, a kisebb alatti háttér • A két küszöb közötti akkor objektum, ha létezik objektumhoz tartozó szomszédos pixele
Isodata algoritmus • Jól használható, ha az előtér és a háttér kb. ugyanannyi pixelből áll. • Inicializálás: a hisztogramot két részre osztjuk (célszerűen a felezőponton): T0 • Kiszámítjuk az objektum, valamint a háttér intenzitásának középértékét: TO, TB (küszöbnél kisebb intenzitásúak, ill. nagyobbak átlaga) • Az új küszöbérték a két középérték átlaga: Ti=(TO+TB)/2 • Vége, ha a küszöbérték már nem változik: Tk+1=Tk
Otsu algoritmus I. • A bemeneti kép L szürkeárnyalatot tartalmaz • A normalizált hisztogram minden i szürkeértékhez megadja az előfordulás gyakoriságát (valószínűségét): pi • Az algoritmus lényege: keressük meg azt a T küszöbszámot, amely maximalizálja az objektum-háttér közötti varianciát (szórás négyzetet). Homogén régiónak a varianciája kicsi • Bimodális histogramot tételez fel
Otsu algoritmus II. • A háttér/előtér pixelek gyakorisága (valószínűsége) • A háttér, előtér és teljes kép középértéke
Otsu algoritmus III. • Objektum és háttér pixelek középértéke: • Varianciák:
Otsu algoritmus IV. • Teljes kép varianciája: • Az osztályon belüli és osztályok közötti varianciák: • ahol az osztályok közötti variancia és az osztályon belüli variancia
Otsu algoritmus V. • A teljes szórás nem függ T-től, T-t úgy kell beállítani, hogy a két osztály közötti variancia a legnagyobb legyen és az osztályon belüli variancia a legkisebb. • Maximalizáljuk , ami a következő módon is írható: ahol • Induljunk el a hisztogram kezdetétől és nézzük meg, hogy milyen T-re maximális
Otsu algoritmus összefoglaló • A hisztogram elejéről kezdve nézzük meg minden szürkeértéket, mint lehetséges küszöböt: • Számoljuk ki σB2(T) értékét µ(T), µB(T) és qB(T) segítségével • Számoljuk ki σO2(T) értékét µ(T), µO(T) és qO(T) segítségével • Mindaddig növeljük T értékét, amíg σB*2(T) növekszik • Ez az algoritmus feltételezi, hogy σB*2(T)-nek egyetlen maximuma van és a histogram bimodális! • Nem jó az algoritmus: • Nagyon eltérő méretű osztályoknál • Változó megvilágításnál
Példák • Isodata • Otsu
Lokálisan változó küszöbölés Lokális küszöbölés Niblack algoritmus Nem egyenletes megvilágítás kezelése
Lokálisan változó küszöbérték • Mit tehetünk abban az esetben, ha az objektum vagy a háttér nem homogén? • Amennyiben az objektum és a háttér kontrasztja lokálisan továbbra is nagy, akkor alkalmazhatunk lokális küszöbölést
Példa adaptív küszöbölésre • Globális és lokális küszöbölés
Dinamikus lokális küszöbölés • T(x,y) = ablak_átlag(x,y) – C, • ahol ablak_átlag(x,y) az (x,y) pont k x k –as környezetében számított átlag és C: konstans. eredeti globális dinamikus (k=7, C = 7)
Niblack algoritmus • Egyetlen küszöb nem elegendő az objektum és háttér szétválasztásához • Változó küszöbérték (T(i,j)) kell, amely követi az intenzitásváltozásokat: T(i, j) = μ(i, j) + k *σ(i, j) • (i,j) adott környezetében: • µ(i, j) – középérték • σ(i,j) – szórás • k mennyire vegyük figyelembe a szórást • Sötét objektum k < 0 • Világos objektum k > 0 • Általában |k| ~ 0.2-0.5 • A környezet méret: elég kicsi lokális részek megőrzésére, elég nagy zaj elnyomására (15 x 15)
Niblack algoritmus: példák • Forrás Niblack k = -0,2 30 x 30 • Otsu • k = -0,5 30 x 30 • Niblack k = -0,2 k = -0,2 15 x 15 60 x 60 • Niblack k = -0,5 k = -0,5 15 x 15 60 x 60
Postprocessing • “ghost” objektumok eltüntetése • Számítsuk ki az átlagos gradiens értékét az objektumok élei mentén • Töröljük le azokat az objektumokat, amelyeknek az átlagos gradiense egy adott küszöbérték alatt van
Postprocessing példák • Eredeti Niblack k=-0.2 15X15 • Gradiens postprocess után
Nem egyenletes megvilágítás kezelése • Egyenetlen megvilágítás esetén egy lehetséges megközelítés, hogy a kép intenzitást egyszerű függvénynek (pl. ferde sík) tételezzük fel • A küszöbölés: sík feletti és alatti intenzitások segítségével