Graph Based Image Segmentation Sandeep Chalasani
Image Segmentation A division of the pixels of an image into disjoint groups (where the groups correspond to objects or parts of objects) The partition given by a binary pixel affinity function s, where s(i,j)=1 when pixels i and j belong together, and s(i,j)=0 otherwise.
Image Segmentation Purely local criteria are inadequate – Difference along border between A and B is less than differences within C Criteria based on piecewise constant regions are inadequate – Will arbitrarily split A into subparts C A B Image Courtesy http://www.cs.cornell.edu/projects/btr/bioinformaticsschool/slides/huttenlocher.pdf
Graph Based Formulation G=(V,E) with vertices corresponding to pixels and edges connecting neighboring pixels Weight of edge is magnitude of intensity difference between connected pixels A segmentation, S, is a partition of V such that each C∈S is connected
Disjoint Sets Data Structure A disjoint-set is a collection S={S1, S2,…, Sk} of distinct dynamic sets. Each set is identified by a member of the set, called representative. Each node points to its parent. Root points to itself. Rooted trees, each tree is a set, root is the representative. Each node points to its parent. Root points to itself. An Application of Disjoint-Set is to determine the connected components of an undirected graph.
Disjoint Sets Data Structure (cont) Disjoint set operations: MAKE-SET(x): create a new set with only x. assume x is not already in some other set. UNION(x,y): combine the two sets containing x and y into one new set. A new representative is selected. FIND-SET(x): return the representative of the set containing x. c f h e c f c d d h f UNION Set {c,h,e} Set {f,d} Image: www.cs.iupui.edu/~xkzou/teaching/CS580/DisjointSets.ppt
An Application of Disjoint-Set Determine the connected components of an undirected graph. CONNECTED-COMPONENTS(G) for each vertex v V[G] do MAKE-SET(v) for each edge (u,v) E[G] do if FIND-SET(u) FIND-SET(v) then UNION(u,v) SAME-COMPONENT(u,v) if FIND-SET(u)=FIND-SET(v) then return TRUE else return FALSE
Component Difference Let internal difference of a component be maximum edge weight in its Minimum Spanning Tree Int(C) = max e∈MST(C,E) w(e) – Smallest weight such that all pixels of C are connected by edges of at most that weight Let difference between two components be minimum edge weight connecting them Dif(C1,C2) = min vi∈C1, vj∈C2 w((vi,vj)) – Note: infinite if there is no such edge
D(C1,C2) =true if Dif (C1;C2) > MInt(C1;C2) Algorithm The region comparison is done by evaluating if there is evidence for a boundary between a pair or components by checking if the difference between the components, Dif (C1;C2), is large relative to the internal difference within at least one of the components, Int(C1) and Int(C2). D(C1,C2) =true if Dif (C1;C2) > MInt(C1;C2) false otherwise MInt(C1;C2)=min(Int(C1)+τ(C1);Int(C2)+τ (C2)) The threshold function τ controls the degree to which the difference between two components must be greater than their internal differences in order for there to be evidence of a boundary between them (D to be true).
Results Original Image τ=150,k=1000 τ=150,k=500 τ=150,k=750
Conclusions The Graph Based Image Segmentation is a highly efficient and cost effective way to perform image segmentation. The threshold values and the number of minimum vertices that should be present so that a component can be considered as an image segment play an important role in determining the segmentation.