190 likes | 339 Views
GRAPH CUT - SEGMENTACE. ÚVOD. + bez zásahu uživatele bez zásahu uživatele obecně horší výsledky + jednodušší. + zásah uživatele (specifikace cíle) zásah uživatele + obecně lepší výsledky - složitější. Obrázek -> graf . Graf G = (V, E) V … množina uzlů E … množina hran
E N D
ÚVOD • + bez zásahu uživatele • bez zásahu uživatele • obecně horší výsledky • + jednodušší • + zásah uživatele (specifikace cíle) • zásah uživatele • + obecně lepší výsledky • - složitější
Obrázek -> graf • Graf G = (V, E) • V … množina uzlů • E … množina hran • Uzly grafu = pixely obrázku • Hrany grafu = páry sousedících pixelů (4,8, … okolí) • 2 speciální uzly (terminály): • s (source, zdroj) … objektový terminál • t (sink, spotřebič) … terminál pozadí
Obrázek -> graf 2/ • 2 typy hran (linek) • n-linky … spojují sousedící pixely • t-linky … spojují pixel s terminály
Funkčnost • Graphcut (s-t cut)= řez grafu • množina hran, rozdělující graf na disjunktní subgrafy • cena s-t řezu • minimální s-t řez • min s-t řez je duální k maxflow problému • Interaktivita – označení oblastí (seedů) • 2 druhy omezení: • silná omezení … seedy • slabá omezení … reflektují informace o hraně a oblasti
Váhová funkce • I … množina pixelů • N … množina hran (páry sousedících pixelů) • Lk… označení pixeluik; • L = (L1 , L2 …, L|I| ) … segmentace • C(L) … váhová funkce segmentace L • R(L) … oblast, t-linky • B(L) … hranice, n-linky
Váhová funkce • penalizace přiřazení p objektu či pozadí • reflektuje shodu s modelem objektu či pozadí • určení modelů: • histogram seedů • sofistikovanější přístup (ppstní rozdělení atd.)
Váhová funkce • penalizace hranice • p, q podobné => B{p,q}>> 0 • p, q různé => B{p,q}-> 0 • zohlednění vzdálenosti mezi p, q • tvar funkce B{p,q} : • gradient jasové funkce • hranové operátory
Váhy hran … součet vah n-linek z pixelup
Přidání seedu • změna vah při přidáni objektového sedu • změna vah -> redukce váhy jiných hran -> problémy
Max Flow • maximální množství vody tekoucí směrem s->t • kapacita hrany (velikost trubky) • saturace hran • velikost min s-t řezu = velikost maxflow • maxflow algoritmy: • augmentingpath • push-relabel • Boykov – Kolmogorov algoritmus
Max Flow – Augmentingpath • inicializace nulovým tokem • residuální graf (stejná topologie krom kapacit hran) • nalezení nejkratší cesty přes nesaturované hrany • prohledávání do šířky • vpuštění max toku touto cestou (saturace hran(y)) • konec algoritmu: neexistuje cesta s->t neobsahující saturovanou hranu
Max Flow – Push-relabelalg. • f(u,v) … tok směrem u->v • height(u) … výška uzlu u • excess(u) … přebytečný tok (součet toku do a z uzlu u) • nejdelší možná cesta: |V| • height(s) = |V| • height(t) = 0 • puštění toku u->v <=> height(u)>height(v) -> terén • pustíme tok -> všechen možný do t -> zvyšujeme výšku uzlů -> všechen přebytečný zpět do s
Max Flow – Push-relabelalg. • operace PUSH směrem u->v • poslání části přebytečného toku tímto směrem, když: • přebytečný tok, volná kapacita, vyhovující výšky • pošleme množství: min(excess(u), c(u,v)-f(u,v)) • operace RELABEL • height(u) ≤ height(v) pro všechna v: c(u,v)-f(u,v) > 0 • zvyšujeme výšku uzlu u • konec algoritmu: všechen přebytečný tok zpět v s
MaxFlow – Boykov,Kolmogorov • princip augmentingpath • 2 prohledávací stromy – rychlost algoritmu zvýšena jejich znovupoužíváním • labelování uzlů: aktivní, pasivní
Max Flow – Boykov,Kolmogorov • 3 fáze činnosti: • growth • expanze stromů; končí při dotyku stromů – augmentingpath • augmentation • poslání max. toku nalezenou cestou -> saturace hran(y) • vznik sirotků – kvůli saturaci hrany nemají platného předka • adoption • nalezení vhodného předka každého sirotka (ze stejného stromu) • pokud nenalezneme: sirotek->volný uzel; potomci->sirotci • konec algoritmu: stromy nemohou růst (žádný volný uzel)
Shrnutí • Výhody • spojení hranového a oblastního přístupu • interaktivita • výsledky • Nevýhody • volba vah • časově náročnější • složitost