710 likes | 941 Views
SEGMENTAREA. Tehnica de prag Detectarea de contur Segmentarea bazata pe regiuni . A naliza unei imagini : distinctie obiect si fond => tehnici de segmentare .
E N D
SEGMENTAREA Tehnica de prag Detectarea de contur Segmentarea bazata pe regiuni
Analiza unei imagini: distinctie obiect si fond => tehnici de segmentare. Segmentarea: identifica zonele din imagine care apar ca fiind uniforme unui observator => imaginea impartita in regiuni cu aspect uniform => recunoasterea de obiecte. Moduri de segmentarea: -se cunosc in avans caracteristicile regiunilor; -se incearca sa se gaseasca aceste caracteristici in timpul prelucrarilor. Metode de segmentare: -metode globale, utilizand histograma imaginii; -segmentare bazata pe contururi; -segmentare bazata pe regiuni.
TEHNICA DE PRAG • Valoarea fiecarui pixel comparata cu o valoare de prag => pixelul asignat uneia din doua categorii. • Selectia valorii de prag: din histograma. • volum de calcul redus,cu hardware special in timp real ! • valoare de prag pentru stralucire T imagineaf[x,y] : • dacaf[x,y]≥T f[x,y]=obiect=1 • altfelf[x,y]=fond=0 • (obiecte luminoase pe un fond intunecat) • dacaf[x,y]<T f[x,y]=obiect=1 • altfelf[x,y]=fond=0 • (obiecte intunecate pe un fond luminos)
Exemplu: imagine cu doua regiuni => histograma cu doua varfuri => valoarea de prag derivata din histograma. a) Imagine de prelucrat b) Histograma imaginii
Etape de aplicare practica a tehnicii de prag: -se determina din histograma valoarea de prag T; -se imparte histograma in doua benzi B1 si B2(fond si obiecte);
-se creaza imaginea intermediara g1[x,y] : pentru x=0, 1, ... , N-1; y=0, 1, ... , N-1(LE si LB= valorile de pixeli pentru contur si respectiv fond); -se creaza imaginea intermediara g2[x,y] : pentru x=0, 1, ... , N-1; y=0, 1, ... , N-1; -imaginea cu granitele dintre regiuni: pentru x=0, 1, ... , N-1; y=0, 1, ... , N-1.
Valoare fixa de prag Problema: gasirea unei valori convenabile pentru pragul T=> cea mai simpla tehnica: cu valoare fixa de prag. Valoarea de prag independenta de imagine. Solutia: eficienta pentru diferenta foarte mare intre obiect si fond. Exemplu: pe o scara 0-255=>T = 128(o buna valoare de prag).
Tehnica de prag variabil (adaptiv) Selectarea corecta a valorii de prag: importanta pentru succesul metodei => interactiv / rezultat al unei metode de detectare a pragului. Variatiile nivelurilor de gri <= iluminare neuniforma, parametri neuniformi ai dispozitivului de intrare (achizitie a imaginii) sau alti factori: => T = T(f) Solutia: tehnica de prag variabil (adaptiv) (valoarea de prag variaza in cadrul imaginii): -imaginea este divizata in subimagini fc; -o valoare de prag este determinata independent in fiecare subimagine; -daca nu se poate determina o valoare de prag intr-o anumita subimagine, atunci aceasta poate fi obtinuta prin interpolare din valorile de prag ale subimaginilor vecine; -fiecare subimagine prelucrata in raport cu valoarea locala de prag: T = T(f, fc)
Tehnica de prag in banda Imaginea impartita in regiuni cu niveluri de gri apartinand unui set D si in regiunea de fond:
Tehnica de prag multiplu Imaginea rezultata nu mai este binara:
Tehnica de semiprag Urmareste mascarea fondului, lasand nemodificata informatia prezenta in obiecte:
Metode de detectare a valorii de prag Detectarea valorii de prag simplificata daca se cunoaste o anumita proprietate a imaginii (valoarea de prag selectata asigura satisfacerea proprietatii respective). Exemplu: imagine cu foaie de hartie tiparita-> contine caractere care ocupa 1/p din aria totala. Algoritmul P-tile-thresholding: alege o valoare de prag T (pe baza histogramei imaginii) astfel incat 1/p din aria imaginii are valori < T, iar restul are valori de gri >T.
Algoritmul bazat pe histograma bimodala: pentru imaginile cu obiecte avand aprox. acelasi nivel de gri ≠ nivel de gri corespunzator fondului: Valoarea de prag = minim dintre cele doua valori maxime din histrograma.
Algoritmul iterativ (optimal) de selectie a pragului: 1) Presupunand ca nu se cunoaste amplasarea exacta a obiectelor, se considera o prima aproximare prin care cele patru colturi ale imaginii contin pixeli de fond, iar ceilalti pixeli contin pixeli de obiecte. 2) La pasul t se calculeaza μBt si μOt: valorile medii pentru fond si respectiv pentru obiecte, unde segmentarea in fond si obiecte la pasul t este definit prin valoarea de prag T t determinata la pasul precedent (ecuatia de la pasul 3):
3) Seteaza: (T(t+1)valoare de prag actualizata) 4) Daca T(t+1) = T(t)atunci stop algoritm altfel reluare de la pasul 2.
Algoritmul isodata. solutie iterativa (varianta a algoritmului precedent): -histograma este impartita in doua printr-o valoare initiala de prag (exemplu T0=2B-1, B fiind numarul de biti / pixel); -calculeaza media valorilor pixelilor apartinand obiectului (μO0) si media valorilor pixelilor apartinand fondului (μB0); -calculeaza o noua valoare de prag T1, ca medie a celor doua valori. => procesul se repeta pana cand valoarea de prag nu se mai modifica:
Tehnica de prag multispectrala Se aplica imaginilor multispectrale sau color. Se determina valorile de prag independent in fiecare spectru si se combina rezultatele intr-o singura imagine segmentata. Algoritm recursiv de prag multispectral. 1) Initializeaza intreaga imagine ca o singura regiune. 2)Calculeaza o histograma filtrata pentru fiecare banda spectrala. Gaseste varful cel mai semnificativ din fiecare histograma si determina doua valori de prag ca minime locale de ambele parti ale acestui maxim. Segmenteaza fiecare regiune din fiecare banda spectrala in subregiuni in functie de aceste valori de prag. Fiecare segmentare din fiecare banda spectrala este proiectata in cadrul unei segmentari multispectrale. Regiunile pentru urmatorii pasi de prelucrare sunt cele din imaginea multispectrala. 3) Repeta pasul 2 pentru fiecare regiune a imaginii pana cand histograma fiecarei regiuni contine numai un singur varf semnificativ.
Exemplificarea algoritmului: a) b) c) Se observa: segmentarea din banda 1 (a), apoi segmentarea din banda 2 (b) si in final segmentarea multispectrala (c).
DETECTAREA DE CONTUR Tehnica de prag =>segmentare => toti pixelii unui obiect (unor obiecte) de interes din imagine. O solutie alternativa: determinarea granitelor obiectelor din imagine (tehnica de detectare a conturului). Detectarea de contur: localizeaza schimbarile abrupte in cadrul functiei intensitate luminoasa (valorile de pixeli). Conturul: reprezentat prin vectorul gradient: - magnitudine; - directie: directia cresterii maxime a functiei luminozitate (ex. de la negru f(i,j)=0 la alb f(i,j)=255).
Exemplu: directia gradientului (curbele inchise ~ linii de aceeasi intensitate luminoasa, directia 0º este catre est). Conturul: utilizat in analiza de imagine pentru gasirea granitelor dintre regiuni.
Gradientul unei imagini: (ix,iy= vectori unitari pe directiile orizontala si verticala). => magnitudinea gradientului: => directia gradientului:
Clasificarea operatorilor de gradient: • operatori care aproximeaza derivatele functiei imagine prin diferente, (invarianti la rotatie, ex. Laplacianul) si necesitand o singura masca de convolutie; aproximarea primei derivate utilizeaza mai multe masti, orientarea fiind estimata pe baza celei mai bune potriviri dintre cateva sabloane simple. • 2) operatori bazati pe trecerea prin zero a derivatei a doua a functiei imagine (ex: Marr-Hildreth sau Canny). • 3) operatori care incearca sa potriveasca o functie imagine la un model parametric al contururilor (modelele parametrice: descriere a contururilor mult mai precisa, dar volum mare de calcule). • Multe aplicatii: interes numai pentru magnitudinile muchiilor (fara considerarea orientarilor)=> se poate utiliza Laplacianul (aceleasi proprietati in toate directiile, fiind invariant la rotatia imaginii).
Operatorul Laplace Operatorul Laplace: mult utilizat in aplicatii, aproximand derivata a doua (furnizeaza doar magnitudinea gradientului). Laplacianul: aproximat printr-o convolutie, cu masca 3x3, vecinatate de ordin 4 sau ordin 8: Variante (pondere diminuata a pixelului central, fara insa invarianta la rotatie): Dezavantaj: poate sa raspunda dublu la anumite contururi din imagine.
Operatorul Roberts astfel incat magnitudinea conturului: | f[i,j] - f[i+1,j+1] |+| f[i,j+1] - f[i+1,j] | Dezavantaj: sensibilitatea ridicata la zgomote (utilizeaza prea putini pixeli pentru aproximarea gradientului).
Operatorul Prewitt Operatorul Prewitt: aproximeaza derivata intai (la fel ca operatorii Sobel, Kirsch, Robinson etc). Operatorii aproximand derivata intai ~ operatori busola / compas (determina directia gradientului). Masca de convolutie 3x3: gradientul estimat in opt directii posible => magnitudinea cea mai mare directia gradientului. Se pot utiliza si masti mai mari. Directia gradientului: data de masca cu raspunsul maxim (valabil pentru toti operatorii aproximand derivata de ordin intai).
Operatorul Sobel Utilizare: detectarea orizontalitatii si verticalitatii contururilor (caz in care se utilizeaza numai mastile h1si h3). Daca raspunsul lui h1 este y si raspunsul lui h3 este x, se poate obtine magnitudinea conturului: si directia:
Operatorul Robinson Operatorul Kirsch
Exemplu de aplicare a tehnicii bazate pe gradient. Problema: gasirea de contururi inchise care sa inconjoare obiectele de interes. In cazul obiectelor cu raport semnal-zgomot (SNR) ridicat: calcularea gradientului si apoi utilizarea unei valori convenabile de prag. Detectarea de contur pe baza gradientului Sobel si a algoritmului de prag Isodata: a) SNR=30 db b) SNR=20 dB Imagine buna cu SNR=30 dB => rezultat bun. Imagine mai slaba cu SNR=20 dB => rezultat mai slab (solutie:filtrare pentru reducerea zgomotului si apoi aplicarea gradientului).
Exemplu: aplicarea operatorilor Roberts, Sobel, Prewitt si Marr pentru detectarea contururilor intr-o imagine. imaginea initiala imaginile prelucrate
Trecerile prin zero ale derivatei a doua Operatorii Kirsch, Sobel, Prewitt pentru detectarea conturului: convolutia intr-o fereastra de vecinatate mica (functioneaza bine numai pentru anumite imagini). Dezavantaje: dependentele fata de dimensiunile obiectelor si sensibilitatea la zgomote. Tehnica de detectare a conturului bazata pe trecerile prin zero ale derivatei a doua: -contur treapta ~ schimbare abrupta in functia de imagine; -prima derivata un extrem in pozitia corespunzatoare conturului; -derivata a doua = 0. => mult mai simplu sa se gaseasca un punct de trecere prin zero decat un extrem!Metoda: pentru imagini cu mult zgomot.
Conturul: Laplacianul (derivata a doua) isi schimba semnul. Posibil crestere a zgomotului operatie de filtrare (filtru Gaussian), apoi derivata a doua (Laplacianul)=> operator LoG – „Laplacian of Gaussian”. Pentru filtrare: operatorul Gaussian: (σ= deviatia standard a distributiei de probabilitate asociate) Pixelii din fereastra de convolutie mai departati de pixelul central: influenta mai mica asupra rezultatului (neglijabila pentru pixeli cu dist > 3σ). Derivata a doua: operatorul Laplacian:
Operatia derivativa: liniara si invarianta la deplasare => ordinea operatorilor poate fi schimbata sau pot fi combinati intr-un singur filtru LoG: Derivata filtrului Gaussian: independenta de imagine => poate fi precalculata (reducand complexitatea algoritmului). Gaussiana: circular simetrica => substitutia r2 = x2 + y2 (r= distanta de la origine) => Gaussiana 2D functie 1D (mai usor de diferentiat):
Prima derivata : derivata a doua: coordonatele originale x,y x c (coeficient multiplicativ de normalizare: suma elementelor mastii = 0) => masca de convolutie a detectorului de trecere prin zero (filtrul LoG):
Nucleul de convolutie bidimensional (filtrul „palarie mexicana”): a) LoG(x,y) b) LoG(r) Filtrul LoG cu σ=1.0.
Laplacianul Gaussienei defineste operatorul Marr-Hildreth. O reprezentare mai exacta: Gaussiana Derivata intai
Derivata a doua Avantaje: -se considera o arie mai mare din jurul pixelului central -influenta pixelilor mai departati scade. Mastile de convolutie cresc pe masura ce σ creste => σ=4 masca contine aproximativ 40 de pixeli. Dezavantaj: in anumite situatii formele sunt filtrate prea mult (ex: colturile ascutite pot fi pierdute).
Exemplu: aplicarea filtrului LoG. a) Imagine SNR=20 dB b) Filtrare LoG Detectarea de contur utilizand algoritmul de trecere prin zero a derivatei a doua (filtru LoG).
Alte tehnici pentru detectarea de contur Utilizeaza un operator de gradient, urmat de o operatie de prag asupra gradientului => decide daca s-a detectat o muchie. Pixelii identificati ca muchii conectati impreuna => curbe inchise inconjurand regiunile. Detectarea unui punct singular: sablon de punct: de exemplu:
Se calculeaza produsul scalar: w x = [w1 w2 ... w9][x1 x2 ... x9]= w1x1 + w2x2 +... + w9 x9 S-a detectat un punct daca wx>T (o valoare de prag).
Detectarea unei linii orizontale / verticale / oblice (45˚) de grosime un pixel. Se utilizeaza sabloanele w1, w2, w3 si w4: corespunzand fiecare pentru cate un tip de linie (—, /, \, | ). Se calculeaza wi x, pentru i=1,2,3,4. S-a detectat o linie de un anumit tip daca x este cel mai aproape de sablonul i, adica: wi x >wj x oricare j≠i
Utilizarea gradientului pentru detectarea unui contur. Se considera o fereastra de imagine de 3*3 pixeli: Se definesc: Gx= (g+2h+i)-(a+2b+c) (rand 3 – rand 1, elementele apropiate de e au pondere dubla: estimare a derivatei pe directia x) Gy=(c+2f+i)-(a+2d+g) (estimare a derivatei pe directia y).
Gradientul in punctul e: Implementare: operatorii Sobel (sabloanele de gradient): Se calculeaza: Gx=w1 x Gy=w2 x => magnitudinea gradientului G.
Algoritmul Frei si Chen pentru detectarea punctelor, liniilor si muchiilor. Spatiu tridimensional definit de trei vectori ortogonali unitari, cu trei componente fiecare, w1, w2 si w3 (sabloanele 1 si 2 sunt pentru linii, iar sablonul 3 pentru puncte). Problema: regiunea reprezentata prin vectorul x este mai aproape de o linie sau mai aproape de un punct.
Magnitudinea (norma) lui x: Unghiul dintre x si proiectia sa pe planul w1 w2: Asemanator, unghiul dintre x si proiectia sa pe subspatiul w3 este:
Daca θ<φ => x este mai aproape de caracteristicile unei linii (decat de cele ale unui punct). Aplicarea practica a algoritmului: ferestre de 3*3. Sabloanele propuse de Frei si Chen sunt: (baza subspatiului muchie, e - „edge”)
(baza subspatiului linie, l – „line”) (baza subspatiului medie, a – „average”).
Fiind data o regiune 3*3 reprezentata de x si presupunand ca vectorii wi (i=1,2,...,9) au fost normalizati => magnitudinile proiectiilor lui x pe muchie, linie si medie:
Unghiurile dintre x si proiectiile sale pe subspatiile muchie, linie si medie: