Loading in 2 Seconds...
Loading in 2 Seconds...
Active Cuts for Real-Time Graph Partitioning in Vision Active Cuts, un algorithme de GraphCut adapté à la Vision Olivier Juan (CERTIS, ENPC) Joined work with Yuri Boykov (University of Western Ontario)
Outline • Existing algorithms • Context & Motivations • Description of the new algorithm • New concepts • Guidelines • Experiments • Segmentation • Dynamic Segmentation • Hierarchical Segmentation • Conclusions
Existing Methods (1/2) • Feasible Flow (Ford & Fulkerson 62, Dinic 70) Flow Conservation Law : • For each edge, flow does not exceed its capacity • Total amount of inflow that enters each node should be equal to the amount of outflow that leaves the node • Preflow (introduced by Karzanov 74, Goldberg&Tarjan 85) Relaxation of the Conservation Law : Any node can have a positive flow excess Excess = Inflow-Outflow ≥ 0
Augmenting Path Algorithms • Algorithm : Ford&Fulkerson 62 • While there exists a path between source and sink in the residual graph • Take such path • Send as much flow as possible along the selected path • Update the residual graph • Complexity : O(E|C|) • Alternatives : • Shortest Augmenting Path O(VE2) • Maximum Capacity Augmenting Path • Dinic’s Augmenting Path O(EV2) • Boykov-Kolmogorov O(VE|C|)
Boykov&Kolmogorov Algorithm Ford&Fulkerson Bottleneck : any path is good, even the longest ! Shortest Augmenting Path Bottleneck : search of the shortest path over the graph Relaxing Relaxing Any path is good ! Heuristics to use a short one ! Boykov&Kolmogorov Trick: Use of a dual dynamic tree structure to maintain a short path relationship
Push Relabel • Algorithm : Cormen, Golberg&Tarjan 85 • While there is some active node (excess > 0), push this excess using “Push Step” • Admissible edge : edge connecting the current node p with another node q with a label just below L(p) = L(q) + 1 • Push step : • Push as much flow as possible over outgoing admissible edges • If some excess remains do “Relabel” • Relabel step : • Increase the label to the minimum label + 1 of the reachable nodes • Initialization : • Label : distance to the sink or |V| for the source • Nodes connected to the source are “excessed” by t-link saturation • Heuristics : Global relabeling, Gap relabeling, … • Complexity : O(V3) or O(EV2) or even a little bit better
pulling deficits towards the source S along the source tree pushing excess towards the sink T along the sink tree to leafs to root T d e from leafs to leafs from root S from leafs from leafs to leafs to root T from leafs e d to leafs from leafs from leafs from root S New Concepts (1/2) • Push-Pull : • Excess node : e = Outflow – Inflow > 0 They are pushed over outgoing edges towards the sink • Deficit node : d = Outflow – Inflow < 0 They are pulled over incoming edges towards the source • Use of a dual dynamic tree for connectivity selection • A tree is rooted at a terminal • A tree spans all nodes “reachable” from a root • All edges included in a tree are non-saturated
- + - + S T - + - + New Concepts (2/2) • Initialization with a given cut : But How…
S S S T T T
- + - - S T - + + - + Stuck ? Better Cut • The new cut or “better cut” in dotted line has a lower cost than the previous one. Cost(New Cut) = Cost(Previous Cut) - |Flow Stuck| • Sequence of decreasing cost cuts.
S S d T T Equivalence Deficit/t-link The same scheme is available for excess
- + - - S T - + + - + + - S T - + + - + Better Cut • Reconnect stuck deficit to the Sink and stuck excess to the Source • Complete the tree • And so on
Effect of Initialization Concentric initializations show that : running time is correlated to the distance between initialization and optimal solution. Closest initialization == Fastest convergence Radius
Video Segmentation • ActiveCuts is in mean 5 times faster than BK (up to 11) • Speed is also correlated to Hausdorff distance
Hierarchical Segmentation • Recycle the previous level cut • No lost of global optima as in Banded GraphCut
Contributions & Conclusions • A new algorithm for solving s/t mincut problem • Takes advantage of a good initial cut (Pre-Segmentation, Dynamic or Hierarchical Segmentation, etc…) • Faster than standard Maxflow algorithm • Outputs a sequence of decreasing cost cuts Useful for iterative/learning scheme • Could be combine with Dynamic GraphCut (Kohli&Torr05) to speed up the convergence • Need to improve our dynamic tree structure ???