Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic AEACD 17. Segmentarea imaginilor: Region-based segmentation. Graph Theory In Image Segmentation
Region-based segmentation Considerente generale: Fie R intreaga imagine Segmentarea este procesul care partitioneaza R in n subregiuni R1 Rn astfel incat: a. b. R este o regiune conexa c. d. e.
Region-based segmentation (2) Omogenitatea regiunilor Exemple de criterii de stabilirea a omogenitatii unei regiuni R Diferenta dintre nivelul maxim si minim de gri in cadrul regiunii R se afla sub un prag prestabilit Diferenta dintre valoarea nivelului de gri al oricarui pixel din R si media tuturor pixelilor din R se afla sub un prag prestabilit Variatia nivelului de gri in cadrul regiunii R se afla sub un prag prestabilit
Region-based segmentation (3) Segmentarea depinde de: Proprietatile considerate Masura similaritatii intre proprietati Toleranta variatiei similaritatii Conectivitatea in imaginile digitale Depinde de cat de multi vecini sunt considerati conectati la un pixel 8-connectivity: toti cei 8 vecini 4-connectivity: doar 4 vecini (pe verticala sau orizontala) Pixelii p din S si q din S sunt conectati in setul S daca exita o secventa de pixeli p0=p; p1; p2; ; pn=q din S care conecteaza p la q astfel incat pi este vecin al lui pi-1, i=1..n Setul S este o regiune conexa daca toti pixelii care ii apartin sunt conectati
Region-based segmentation (4) Region growing este o procedura care grupeaza pixeli sau regiuni in regiuni mai mari Incepe de la un set de regiuni samanta (seed) Apoi cauta puncte vecine compatibile care verifica modelul regiunii crestem regiunea Redefineste modelul regiunii considerand si noile puncte Se verifica diferentele dintre noul si vechiul model si daca nu se observa schimbari opreste cresterea Tehnicile region growing functioneaza mai bine decat tehnicile edge-based in cazul imaginilor cu zgomote unde marginile (edge) sunt greu de detectat
RBS Region growing Cea mai simpla abordare este pixel aggregation: Incepe cu un pixel samanta p in cadrul unei regiuni R Se defineste masura similaritatii pentru fiecare pereche de pixeli (i,j) din imagine Se adauga pixelul adiacent q la regiunea pixelului p daca masura similaritatii satisface un prag T Se evaluaza toti vecinii lui p asa cum am spus mai devreme Continuam pana cand toti pixelii din vecinatatea investigata la un moment dat nu mai satisfac criteriul de adaugare al unui pixel la o regiune
RBS Region growing (2) Imagine preluata: http://cs.joensuu.fi/pages/koles/image/segmentation.pdf
Region-based segmentation (5) Regions Merge & Splitting Se imparte imaginea intr-un set de regiuni disjuncte si apoi se unesc si/sau se impart regiunile in incercarea de a satisface o conditie P Procedura: Se imparte in patru cadrane distincte orice regiune Ri unde Se unesc toate regiunile adiacente Ri si Rj pentru care Procedura se incheie atunci cand nu mai putem efectua operatii de impartire si unire
Region-based segmentation (6) Region merging Algoritm general de unire a regiunilor: Se incepe cu o imagine segmentata Se defineste un criteriu pentru unirea a doua regiuni adiacente Se unesc toate regiunile adiacente care satisfac criteriul de unire Se opreste atunci cand nu mai exista doua regiuni care pot fi unite
Region-based segmentation (7) Region splitting Inversul mecanismului de region merging Incepe cu intreaga imagine reprezentata ca o singura regiune care nu satisface conditia de omogenitate Algoritm general de impartire a regiunilor: Se alege o metoda de impartire a regiunilor Ex: impartirea in 4 regiuni egale Daca o regiune nu satisface conditia de omogenitate aceasta se imparte comform metodei definite anterior Ne oprim cand toate regiunile satisfac conditia de omogenitate
Region-based segmentation (8) Original Image After Region Growing After Region Split After Region Spilt and Merge
Region-based segmentation (9) Watershed Segmentation Vizualizarea imaginii ca fiind 3D: coordonatele spatiale si nivelul de gri Ne imaginam ca umplem cu apa zonele de altitudine mai mica pana cand bazinele formate tind sa se uneasca Ne dorim sa determinam aceste linii de demarcatie intre bazine
Region-based segmentation (10) Imagine preluata: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Region-based segmentation (11) Imagine preluata: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Region-based segmentation (12) Watershed Segmentation Algorithm 1 Se construieste o lista un toti pixelii sortati Cele mai mici valori se considera prima data Acestea formeaza baza bazinelor (regiuni) initiale Pentru fiecare nivel de intensitate k Pentru ficare pixel ce are intensitatea k analizam vecinii Daca toti vecinii sunt neetichetati atunci acest pixel reprezinta un minim local si genereaza o noua regiune si i se atribuie o noua eticheta Daca toti vecinii sunt etichetati ca apartinand aceleiasi regiuni atunci si acesta este etichetat la fel Daca se gasesc 2 sau mai multe etichete diferite pentru pixelii vecini atunci acesta se gaseste pe o linie de demarcatie ( watershed label) Se termina cand toti pixelii au fost etichetati
Watershed Segmentation Algorithm1 Imagini preluate: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Imagini preluate: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Watershed Segmentation Algorithm1 Imagine preluata: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Region-based segmentation (13) Watershed Segmentation Algorithm 2 Se determina toate minimele locale pe care le etichetam diferit (seeds) Se adauga toti vecinii acestora intr-o lista de prioritati Se proceseaza pixelii din coada Se ia un pixel din coada si se examineaza vecinii Daca toti vecinii sunt etichetati ca apartinand aceleiasi regiuni atunci si acesta este etichetat la fel Daca se gasesc 2 sau mai multe etichete diferite pentru pixelii vecini atunci si acesta se gaseste pe o linie de demarcatie ( watershed label) Toti vecinii gasiti neetichetati se adauga in coada Se termina cand coada este vida
Imagini preluate: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Imagini preluate: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Region-based segmentation (14) Oversegmentation Zgomotele creaza foarte multe minime locale -> un filtru de nivelare este obligatoriu Pentru a elimina regiunile de zgomot sau cele cu mai multe minime locale folosim region merging: Cand descoperim un pixel ce se afla pe o linia de demarcatie decidem daca unim cele doua regiuni sau pastram linia de demarcatie, consideran marimea sau adancimea Daca hotaram unirea regiunilor verificam acestea respecta criteriul de omogenitate. Daca da unim, daca nu lasam linia de demarcatie
Region-based segmentation (15) Imagine preluata: http://www.it.uu.se/edu/course/homepage/bild2/ht09/lectures/lecture5.pdf
Region-based segmentation (16) K-Means Clustering Algoritm: Se alege valoarea parametrului k care reprezinta numarul de regiuni (clusters) Se imparte imaginea in k regiuni alese aleator. Se gaseste centroidul fiecarui cluster Clasifica pixelii prin asignarea lor la regiunile al caror centroid se afla mai aproape de ei Recalculeaza centroizii Continua pana cand centroizii nu se mai modifica
Region-based segmentation (17) K-Means: Original K=5 K=11
Graph Theory In Image Segmentation Pentru a analiza o imagine folosind teoria grafurilor aceasta este mapata pe un graf Fiecare pixel (subregiune) din imagine corespunde unui nod In general intre noduri exista 4 (sau 8) muchii Nodurile si muchiile au costuri: Valoarea nivelului de gri a pixelului este considerata in general si costul nodului Costul asociat muchiilor se bazeaza pe o proprietate a pixelilor pe care ii conecteaza, spre exemplu diferenta intensitatii culorii
Graph Theory In Image Segmentation(2) Inserarea de link-uri intre pixelii pentru care o propietare a priori aleasa are valori similare creaza subarbori care reprezinta obiecte (regiuni din imagine) Imagini preluate: http://www.eee.metu.edu.tr/~alatan/courses/rv03.pdf Folosind maparea imaginii pe grafuri putem aplica algoritmi specifici precum Recursive Shortest Spanning Tree pentru a determina regiunile din cadrul acesteia