Title: Active Cuts for Real-Time Graph Partitioning in Vision
1Active 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)
2Outline
- Existing algorithms
- Context Motivations
- Description of the new algorithm
- New concepts
- Guidelines
- Experiments
- Segmentation
- Dynamic Segmentation
- Hierarchical Segmentation
- Conclusions
3Existing 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,
GoldbergTarjan 85) - Relaxation of the Conservation Law
- Any node can have a positive flow excess
- Excess Inflow-Outflow 0
4Augmenting Path Algorithms
- Algorithm FordFulkerson 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(EC)
- Alternatives
- Shortest Augmenting Path O(VE2)
- Maximum Capacity Augmenting Path
- Dinics Augmenting Path O(EV2)
- Boykov-Kolmogorov O(VEC)
5BoykovKolmogorov Algorithm
FordFulkerson 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 !
BoykovKolmogorov Trick Use of a dual dynamic
tree structure to maintain a short path
relationship
6Push Relabel
- Algorithm Cormen, GolbergTarjan 85
- While there is some active node (excess gt 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
7Existing Methods (2/2)
Feasible Flow Based Preflow Based
Unsymmetric Augmenting Path Push Relabel
Symmetric Boykov-Kolmogorov ?
8New Concepts (1/2)
- Push-Pull
- Excess node e Outflow Inflow gt 0
- They are pushed over outgoing edges towards the
sink - Deficit node d Outflow Inflow lt 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
9New Concepts (2/2)
- Initialization with a given cut
- But How
10(No Transcript)
11Stuck ? 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.
12Equivalence Deficit/t-link
- The same scheme is available for excess
13Better Cut
- Reconnect stuck deficit to the Sink and stuck
excess to the Source - Complete the tree
- And so on
14Effect of Initialization
- Concentric initializations show that running
time is correlated to the distance between
initialization and optimal solution.
Closest initialization Fastest convergence
Radius
15Sequence of cuts
16Video Segmentation
- ActiveCuts is in mean 5 times faster than BK (up
to 11) - Speed is also correlated to Hausdorff distance
17Hierarchical Segmentation
Algorithm Ventricle/Time Lung/Time
MaxFlow (BK) 18.15ms 26.47ms
ActiveCut 18.52ms 19.98ms
Hierarchical ActiveCut Level 2 0.70ms Level 1 0.61ms Level 0 8.59ms Total 9.90ms Level 2 0.45ms Level 1 2.14ms Level 0 16.95ms Total 19.54ms
- Recycle the previous level cut
- No lost of global optima as in Banded GraphCut
18Contributions 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
(KohliTorr05) to speed up the convergence - Need to improve our dynamic tree structure ???
19Questions ?