460 likes | 608 Views
Cap4. Segmentarea imaginii. Cap. 4. Segmentarea imaginii. Segmentare = divizarea imaginii în părţi (regiuni) corelate cu obiectele şi suprafetele din imagini Segmentare: completă regiuni disjuncte = obiecte: proc. de nivel rid .
E N D
Cap4. Segmentarea imaginii Cap. 4. Segmentarea imaginii Segmentare = divizarea imaginii în părţi (regiuni) corelate cu obiectele şi suprafetele din imagini Segmentare: completă regiuni disjuncte = obiecte: proc. de nivel rid. parţială regiuni ce nu conduc direct la obiecte: proc. de nivel scaz. Segmentare partiala regiuni omogene (luminozitate, culoare, textura etc.) Metode de segmentare • bazate pe cunoştinţe globale despre imagine (uzual se foloseste histograma) • bazate pe muchii (lanturi de muchii frontiera) • bazate pe regiuni (dezvoltarea regiunilor)
Cap. 4. Segmentarea imaginii 4.1. Segmentarea prin metode de prag Nivel de gri constant = prag extragerea obiectelor din fundal Segmentarea completă a unei imagini R regiunile R1, R2, … RS Metoda pragului: 1= obiecte, 0 = fundal (sau invers) : imagine binara Metode de prag • globale: un singur prag T pentru R (i) • locale: pragul T variază pe R (ii)
Cap. 4. Segmentarea imaginii • • “Band-thresholding” • • Praguri multiple • Semi-prag • Metoda pragului niveluri de gri din imagine, gradientul imaginii etc. Di = submulţimi de niveluri de gri
Cap. 4. Segmentarea imaginii Rosu – [26 56]; Albastru – [110 128]; Verde – [56 84]; Violet – [147 166];
Cap. 4. Segmentarea imaginii 4.1.1. Detecţia pragului • Metoda “p-tile” Text tipărit: aria ocupată de caractere = = 1/p din aria totalăhistograma : (1/p)NG<T • Metode bazate pe analiza histogramei - Histogramă Obiectul un maxim bimodalăFundalul al doilea maxim - Histogramă multimodală: mai multe praguri = minime între maxime - Netezirea histogramei - Construirea histogramei cu raport optim maxim/minim se elimina pixelii muchie R = pixelii obiectului + cei ai fundalului se folosesc numai pixelii muchie histograma unimodala: T = max.
Cap. 4. Segmentarea imaginii • Metoda optimală de găsire a pragului probabilitatea ca un pixel dintr-o imagine M×N să aibă nivelul de gri g Histograma Distributie probabilistică varianţa = gradul de omogenitate Părţi omogene varianţe mici Pragul T H-bimodala (i) şi (ii): varianţa ponderată pragul T : se calculeaza efort de calcul : probabilitatea de apariţie a pixelilor cu NG T : probabilitatea de apariţie a pixelilor cu NG> T varianţa varianţa
Cap. 4. Segmentarea imaginii Soluţie iterativă (rapida): media şi varianţa totală
Cap. 4. Segmentarea imaginii ( nu depinde de T ) se calculează recursiv
Algoritm de segmentare: 1o Întreaga imagine = o singură regiune 2o bandă spectrală histogramă netezită histogramă max. semnificativ + 2 min. segmentarea în 2 subregiuni proiectarea într-o singură imagine multispectrală 3o Repetă pasul 2o pentru fiecare regiune un singur maxim Cap. 4. Segmentarea imaginii 4.1.2. Metoda pragului pentru imagini multispectrale Segmentare prin metoda pragului pe fiecare banda
Cap. 4. Segmentarea imaginii • 4.2. Segmentarea bazată pe muchii • Istoric: primul grup de tehnici de segmentare • Segmentare: gasirea muchiilor lanturi de muchii frontiera (contur) • Metode de segmentare bazate pe muchii • - strategii de construire a conturului final • - informatii apriorice disponibile in procesul de segmentare • Zgomot muchii false prag • Prewitt LoG
Cap. 4. Segmentarea imaginii • 4.2.1. Relaxarea muchiilor Frontiere prin metode de prag zgomote Proprietăţile muchiei în contextul mutual al vecinilor creste calitatae segmentarii Intensitatea muchiei într-o vecinătate locală gradul de certitudine al muchiei • Metoda de relaxare bazata pe muchiile dintre pixeli (crack edges) Contextul muchiei cele două capete (varfuri) extreme Vst, Vdr Se pot adăuga şi muchiile i şi h paralele cu e Relaxarea muchiilor frontieră continuă e – muchie centrală:câte un vârf la fiecare capăt 3 posibilecontinuări ale frontierei din fiecare vârf Vârf nr. de muchii emanat (fără e) = tipul vârfului Tipul muchiei = i - j= forma muchiei i, j = tipurile vârfurilor muchiei
Cap. 4. Segmentarea imaginii • Pentru simetrie: i j situaţii contextuale: • 0 - 0 muchie izolată : influenţă negativă asupra certitudinii • 0 - 2 capăt mort : influenţă negativă asupra certitudinii • 0 - 3 • 0 - 1 muchie nesigură : influenţă slab pozitivă sau fără influenţă • 1 - 1 muchie de prelungire (continuare) : influenţă puternic pozitivă • 1 - 2 muchie de continuare spre intersecţia • 1 - 3frontierei : influenţă medie pozitivă • 2 – 2 • 3 - 3punte între frontiere : fără importanţă pentru segmentare • 2 - 3 fără influenţă
Cap. 4. Segmentarea imaginii • Relaxarea muchiei metodă iterativă certitudinea muchiei converge la: • 0 = muchie terminal • 1 = muchie ce formează frontiera • Certitudinea c(1)(e) pentru primul pas = magnitudinea normalizată a • muchiei “crack” e • Normalizarea max. global al muchiilor “crack” din întreaga imagine • max. local într-o vecinătate a muchiei • Algoritm de relaxare • 1o Calculează c(1)(e) pentru toate muchiile “crack” din imagine • 2o Găseşte tipul muchiei utilizând certitudinea într-o vecinătate • 3o Actualizează c(k+1)(e) : tipul muchiei + c(k)(e) • 4o Stop dacă toate certitudinile converg către 0 sau 1; dacă nu se repetă 2o şi 3o • Algoritmul evaluează: tipul vârfurilor tipul muchiilor • modificarea certitudinii muchiilor
Cap. 4. Segmentarea imaginii • Un vârf este de tipul i dacă: • a, b, c: valorile normalizate ale muchiilor “crack” incidente cu • m = max(a, b, c, q); q constantă egală de obicei cu 0.1 • Ex. vârf de tipul 1 (q = 0.1) • vârf de tipul 3 (q = 0.1) • Tipul muchiei o înlănţuire a tipurilor vârfurilor • Modificarea certitudinilor muchiei: • - certitudinea creşte • - certitudinea descreşte
Cap. 4. Segmentarea imaginii • 4.2.2. Trasarea frontierelor • Reginile def. in imagine(binare-etichetate) frontiere:interioara, exterioara, extinsa • Algoritmi pentru trasarea frontierei interioare • 1oP0 : pixelul din stânga sus al unei regiuni • “dir” = direcţia de la pixelul precedent curent • (i) dir = 3 (V4); (ii) dir = 7 (V8) • 2o V(33) pentru pixelul curent: caută (trig.) • (i) (dir + 3) mod 4 (c); • (ii) (dir + 7) mod 8 (d) pentru dir par • (dir + 6) mod 8 (e) pentru dir impar • Primul pixel = valoarea pixelului curent • un nou elementPn al frontierei actualizează direcţia • 3o Elementul curent al frontierei Pn = P1 : al doilea element şi dacă Pn-1 = P0 STOP • Dacă nu pasul 2o • 4o Pixelii P0 …. Pn-2 = frontiera interioară
Cap. 4. Segmentarea imaginii 1 2 3 4 Exemplu: Trasarea frontierei interioare 1 2 3 4 5 6 Pasul 1o: P0dir = 7 Pasul 2o: P0dir = (7+6)mod 8 = 5 (5,2)=P1 dir = 5 P1 dir = (5+6)mod 8 = 3 (4,1), (4,2)=P2 dir = 4 P2 dir = (4+7)mod 8 = 3 (3,1), (3,2), (3,3)=P3 dir = 5 P3 dir = (5+6)mod 8 = 3 (2,2), (2,3)=P4 dir = 4 P4 dir = (4+7)mod 8 = 3 (1,2), (1,3), (1,4), (2,4)=P5 dir = 6 Notă: Algoritmul nu poate detecta frontiera interioară a unei găuri • - pixelii testaţi pe parcursul trasării frontierei • - pixelii frontierei
Cap. 4. Segmentarea imaginii • Algoritm pentru trasarea frontierei exterioare • 1o Trasează frontiera interioară utilizând V4 • 2o Pixelii testaţi R frontiera exterioară • Frontiera exterioară perimetrul, compatitatea • Exemplu: Trasarea frontierei exterioare Pasul 1o: P0dir = 3 Pasul 2o: P0dir = (3+3)mod 4 = 2 (1, 2), (2, 3), (3.2)=P1 dir = 0 P1dir = (0+3)mod 4 = 3 (3,3)=P2 dir = 3 P2dir = (3+3)mod 4 = 2 (2, 3), (3,4)=P3 dir = 3 P3dir = (3+3)mod 4 = 2 (2, 4), (3, 5), (4,4)=P4 dir = 4
Cap. 4. Segmentarea imaginii • Frontiera extinsă • Frontiera interioară R • Frontiera exterioară R • Frontiera extinsa regiuni adiacente • Definirea frontierei extinse V8 • R: regiune ; Q: exteriorul regiunii R • Pixelii frontierei interioare regiunii R: pixel STÂNGA: P R şi P4(P) Q • pixel DREAPTA: P R şi P0(P) Q • pixel SUS: P R şi P2(P) Q • pixel JOS: P R şi P6(P) Q
Cap. 4. Segmentarea imaginii • Definirea frontierei extinse • Fie submulţimile corespunzatoare lui R: STÂNGA (R), DREAPTA (R), SUS (R), JOS (R) • FE submultimea punctelor P, P0, P6, P7ce satisfac: • FE = {P: P STÂNGA (R)}{P: P SUS (R)} {P6(P): P JOS (R)} • {P6(P): PSTÂNGA (R)}{P0(P): PDREAPTA (R)}{P7(P): PDREAPTA (R)} • Exemplu:Trasarea frontierei extinse Frontiera extinsă
Cap. 4. Segmentarea imaginii • Construirea FE folosind frontiera exterioară • (a) frontiera exterioară • (b) construirea FE • (c) FE = aceeaşi formă cu frontiera obiectului • Frontiera exterioară: DREAPTA, STÂNGA, SUS, JOS • Se deplasează: • - DREAPTA un pixel în jos • - STÂNGA un pixel spre dreapta • - SUS un pixel în jos şi la dreapta • - JOS nu se modifică
Cap. 4. Segmentarea imaginii • Algoritm de trasare a FE – metoda look-up table • Tabelul ce defineşte 12 situaţii posibile ale configuraţiei locale a unei ferestre 2 2, • dependente de direcţiile precedente şi de statutul pixelilor ferestrei. • 1o Defineşte pixelul de start: standard (stg. dr., sus jos ) • 2o Prima mişcare după 1o: dir = 6 (jos) (i) din tabel • 3o Trasează FE cu tabelul de mai sus FE închisă STOP • Observaţie: Algoritmul nu permite trasarea frontierelor găurilor gaura regiune • separată pentru care se aplică algoritmul
Cap. 4. Segmentarea imaginii • 4.2.3. Conectarea muchiilor cu ajutorul grafurilor orientate • Cunoştinţe apriorice: - punctele de START şi STOP ale unei frontiere • - muchiile x R2din imagine cu magnitudineas(x)şi direcţia(x) • Graf: - noduri ni muchiile x • - arce între nodurile orientate si ponderate: ponderea = cost • ni(xi)– nj(xj): (xi), (xj) = dir. locală a frontierei • Reguli pentru construirea grafurilor • - muchie = nod dacă s(x) T ; T = prag • - ni(xi)– nj(xj) => intre noduri va exista un arc daca: • xjeste unul din cei trei vecini (V8) ai pixelului xiîn direcţia: • diferenţa direcţiilor : • - arcele se ponderează cu s(xj)
Cap. 4. Segmentarea imaginii • Exemplu Muchii cu directii si magnitudini Construirea unui graf orientat
Cap. 4. Segmentarea imaginii • Construirea frontierei • Construirea frontierei găsirea unei căi de cost minim în graf de la un nod de • START xA la un nod de STOP xB • g(xi): funcţia de cost a căii optime între nodurile nA şi nB ce trece prin ni : xA xi xB • g(xi): componentegs(xi): estimarea costului căii xA xi • ge(xi): estimarea costului căii xi xB • gs(xi): suma costurilor arcelor sau nodurilor xA xi; sau lungimea xA xi • gs(xi): lungimea frontierei xi xB • Funcţia de cost esenţială poate fi dependentă de: • a) - modulul gradientului: • b) - curbura frontierei detectate: • c) - distanţa până la punctul final:
Cap. 4. Segmentarea imaginii • Exemplu Functia de cost: g(D) = 1; g(C) = 7; g(G) = 5 => D selectat (se renunta la C si G) => din D: E, F si B determina calea
Cap. 4. Segmentarea imaginii • 4.2.4. Conectarea muchiilor folosind tehnici de programare dinamica • Optimizare: => gasirea unui optim global in mai multi pasi • Bellman optimul unei cai intre doua puncte => optimul intre oricare doua puncte care apartin caii • Dacă: • Eliminăm x2: numai înh1 n pasi cu optimizarea unor functii de 2 variabile calcule în loc de pn
Cap. 4. Segmentarea imaginii Trasarea frontierei funcţie de evaluare care să conducă la “cea mai bună frontieră” Criteriul pentru estimarea unei “bune frontiere” din n pixeli: Criteriul are forma (*) optimul funcţiei de evaluare
Cap. 4. Segmentarea imaginii Exemplu Ponderarea arcelor: Conectarea muchiilor folosind programarea dinamica
Cap. 4. Segmentarea imaginii 4.2.5. Transformata Hough Obiecte = forme şi mărimi cunoscute
Cap. 4. Segmentarea imaginii • Detectare unei linii drepte expresia analitică • Linie punct în planul parametrilor • Detecţia liniilor: - se extrag muchiile (posibile puncte ale liniilor) daca s(x)T • - pentru fiecare punct: un număr limită de direcţii (a discretizat) • - b discretizat structura rectangulara de celule in planul parametrilor • - pentru fiecare celula un acumulator A(a, b) se incrementează la detectarea liniei • - pentru fiecare muchie se determina a, b: linii cu directii permise ce trec prin pixelul respectiv valorile a, b: A(a, b)
Cap. 4. Segmentarea imaginii • Detectia liniei detectia unui maxim local in spatiul acumulatorilor • Metoda nu este sensibilă la: • - porţiuni lipsă din linie • - zgomote • - alte structuri linii • linii verticale a : • Transformata Hough pentru curbe complexe: • a : vector al parametrilor curbei x • Algoritm pentru detecţia curbelor • 1o Cuantizează spatiul parametrilor • 2o Formeaza o arie de acumulatori A(a); seteaza pe 0 toate elementele • 3o (x1, y1) muchie si • 4o Maxim local in aria A realizarea curbei f (x, a).
(x1, y1) R b a Cap. 4. Segmentarea imaginii • Exemplu: Cercul • Acumulator tridimensional A(a,b, r): se va incrementa daca (a, b) este la distanta r fata de x • Acumulatorul creste exponential cu numarul parametrilor • Volum de calcule scazut: informatii apriorice despre directia muchiilor • Exemplu: Detectia unei frontiere circulare cu raza R • - muchii cu 8 directii se incementeaza un numar mai mic de celule • : relatia satisfacuta incrementare • - : directia muchiilor pentru pixelul x • - : eroare maxima de directie anticipata • - A mai mare pentru muchii cu magnitudini mari • Parametrii pot reprezenta diferite curbe analitice: • - linii, cercuri, elipse, parabole, etc.
Cap. 4. Segmentarea imaginii • 4.2.6. Construirea regiunilor cu ajutorul frontierelor • Segmentarea bazata pe muchii detectia frontierelor • segmentare totala • partiala frontiere partiale • Frontiere partiale construirea regiunilor • Metoda “superslice” • - pentru regiuni cu prop. dominante dependente de nivelurile de gri • - se cunoaste amplasarea in imagine a unor fragmente de frontiera • - regiunea R: in interiorul frontierelor partiale • - pixelii de frontiera: pozitia x directia (x) • - se cauta pixelul “opus” = pixel muchie semnificativa pe o directie perpendiculara (x) • - pixel al regiunii R = pixel de pe liniile ce unesc pixelii “opusi”
Cap. 4. Segmentarea imaginii • Algoritm de formare a regiunilor din frontiere partiale • 1o Pentru fiecare pixel x al frontierei se cauta pixelii opusi pe o distanta M; • se conecteaza prin linii pixelii opusi • 2o Calculeaza de câte ori un pixel s-a aflat pe o linie = numarul de marcari b(x) • 3o Determina numarul ponderat de marcari B(x): • B(x) = 0.0 pentru b(x) = 0 • B(x) = 0.1 pentru b(x) = 1 • B(x) = 0.2 pentru b(x) = 2 • B(x) = 0.5 pentru b(x) = 3 • B(x) = 1.0 pentru b(x) > 3 • Certitudinea ca un pixel • Condiţia ca x si y sa fie opusi:
Cap. 4. Segmentarea imaginii 4.3. Segmentarea imaginilor prin formarea regiunilor Omogenitatea regiunilor divizarea imaginii in zone cu omogenitate maxima - segmentare (S) Functie binara de evaluare a omogenitatii regiunilor Ri H(Ri) - omogenitate (O) Ri adiacent cu Rj - maximalitate (M) Segmentarea regiuni cu proprietatile O si M Formarea regiunilor - unirea regiunilor - divizarea regiunilor - unirea/divizarea regiunilor
Cap. 4. Segmentarea imaginii • 4.3.1. Unirea regiunilor • Algoritm de unire a regiunilor • 1o Defineste o metoda de startare a segmentarii regiuni mici care satisfac (O) • 2o Defineste un criteriu de unire a doua regiuni adiacente • 3o Uneste toate regiunile ce satisfac criteriu de la pasul 2o. Daca nu exista nici un • grup de doua regiuni ce satisfac criteriu STOP • Metode simple • Regiuni: 22, 44, 88 proprietati statistice (histograma) • Regiunile adiacente cu aceleasi descrieri se unesc; se marcheaza regiunile ce nu pot • fi puse in corespondenta • O regiune nu poate fi unita cu nici un vecin adiacent STOP
Cap. 4. Segmentarea imaginii 4.3.2. Divizarea regiunilor START: Imaginea = o regiune nu satisface (O) Se divide imaginea in regiuni cu: (S, (O) si (M) 4.3.3. Divizare si unire Reprezentare piramidala a imaginii regiunea = patrat - Regiune neomogena divizare in patru regiuni - 4 regiuni a unui nivel cu aceeasi omogenitate o regiune Divizare Unire
01 00 1 02 03 310 311 30 312 313 2 32 33 2 1 30 32 33 01 02 03 04 310 312 313 314 Cap. 4. Segmentarea imaginii Segmentarea = construirea unui arbore cvadripartit - fiecare nod f.= regiune omogena (f. = “frunza”) - nr. noduri f. = nr. regiuni segmentate Arbore cvadripartit de segmentare Divizare si unire eliminarea sau adaugarea unor parti din arborele cvadripartit
Cap. 4. Segmentarea imaginii • Algoritmul “divide si uneste” • 1o Segmentarea initiala in regiuni omogenitate • reprezentare piramidala • 2oH(R) = (“fals”) divide R in 4 regiuni “copil”; daca 4 regiuni cu acelasi parinte • pot fi unite uneste-le. Daca nu se pot uni sau divide regiunile 3o • 3oRi, Rj adiacente daca se pot uni intr-o regiune omogena uneste-le chiar daca • nu fac parte din acelasi nivel al piramidei sau daca nu au acelasi parinte • 4o Uneste regiunile mici cu cele mai similare regiuni adiacente daca este necesar sa • fie eliminate regiunile cu dimensiuni mici.