390 likes | 541 Views
Comp 775: Graph Cuts and Continuous Maximal Flows. Marc Niethammer, Stephen Pizer Department of Computer Science University of North Carolina, Chapel Hill. Representations. Graph Cuts and Continuous Maximal Flows. Background.
E N D
Comp 775: Graph Cuts and Continuous Maximal Flows Marc Niethammer, Stephen Pizer Department of Computer Science University of North Carolina, Chapel Hill
Representations Graph Cuts and Continuous Maximal Flows Background Classifying individual pixels versus finding an optimal separating curve/surface between object and background.
From curve evolution to pixel/voxel labeling Graph Cuts and Continuous Maximal Flows Background Example: Chan-Vese model Indicator function Relaxed indicator function Putting it all together:
Convex vs. Non-Convex Graph Cuts and Continuous Maximal Flows Background Prone to locally optimal solutions. Non-convex Initial contour Final contour Convex Independent of initial condition, optimal solution is guaranteed. Convex Final contour Initial contour Images: Bresson et al.
From Curve Evolution to Pixel/Voxel Labeling Graph Cuts and Continuous Maximal Flows Background non-convex convex Convex, continuous, constrained optimization problems. ... can also include region-based terms, appearance information, orientation-dependency Advantages: - Convex -> Globally optimal - No metrication artifacts - Straightforward parallel implementations
Continuous Maximal Flow [Appleton] Graph Cuts and Continuous Maximal Flows Continuous Maximal Flow Continuous version of maximal flow [Appleton]. Results in a PDE and can be solved as such. Energy to be minimized: More general form (can easily include local classifiers):
Segmentation with Continuous Max-Flow Graph Cuts and Continuous Maximal Flows Continuous Maximal Flow Thresholding Continuous max-flow with seeds. Images: Unger
Continuous Maximal Flow Graph Cuts and Continuous Maximal Flows Continuous Maximal Flow Energy to be minimized: Introduce the auxiliary variable p, which we maximize for: Now solve this by gradient descent.
Continuous Maximal Flow Graph Cuts and Continuous Maximal Flows Continuous Maximal Flow The variation is The gradient descent scheme becomes
Chan-Vese (=Otsu-Thresholding w/ spatial regularity) Graph Cuts and Continuous Maximal Flows Continuous Max-Flow Iterative solution method is related to solving a wave equation.
Ex.: Segmentation with Continuous Max-Flow Graph Cuts and Continuous Maximal Flows Continuous Max-Flow
3D Example Graph Cuts and Continuous Maximal Flows Continuous Max-Flow
Segmentation by Graph-Cut Graph Cuts and Continuous Maximal Flows Graph-Cut Alternative approach through graph construction (vs. PDE) Example: Binary Segmentation Need to partition the picture into foreground and background. Images from ECCV Tutorial, Kumar/Kohli
Segmentation by Graph-Cut Graph Cuts and Continuous Maximal Flows Graph-Cut Graph G=(V,E) Approach: Interpret the image as a graph, where pixels are connected to its neighbors. Goal: Cut the graph into pieces to obtain the desired image partition. Assign a label to every pixel. Images from ECCV Tutorial, Kumar/Kohli
Segmentation by Graph-Cut Graph Cuts and Continuous Maximal Flows Graph-Cut Optimization Problem: Minimize Looking at it on a pixel-by-pixel basis (where f is the labeling): Problem: We cannot try all possible pairings for the labels f. Need an efficient algorithm to solve this problem.
Maximum Flow and Minimum Cut Graph Cuts and Continuous Maximal Flows Graph-Cut Solution: 1) Transform problem to maximizing nework flow 2) Use algorithms for network flows on images. Preview: Graph structure for binary labeling Images: Boykov Pixels are connected to neighbors (pairwise interaction cost) and to source and target vertices (data cost). Cut separating source (s) from sink (t) gives the segmentation.
Max-Flow/Min-Cut Theorem Graph Cuts and Continuous Maximal Flows Graph-Cut For any network having a single origin and a single destination node, the maximum possible flow from origin to destination equals the minimum cut value for all the cuts in the network.
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Pixel weights: s to node flow: high if near source (bkg) class, low if not Pixel weights: Node to t flow: high if near target class, low if not Node to neighbor flow: high in both directions if near intensities
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut One way to compute maximal flow: 1) Pick any viable path (no zero flow) 2) Subtract minimum flow from each segment on path 3) Add minimum flow on reverse path
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 1) Pick path (no zero flow)
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 2) Subtract minimum flow from each segment on path 3) Add minimum flow on reverse path
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 1) Pick path (no zero flow)
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 2) Subtract minimum flow from each segment on path 3) Add minimum flow on reverse path
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 1) Pick path (no zero flow)
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 2) Subtract minimum flow from each segment on path 3) Add minimum flow on reverse path
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 1) Pick path (no zero flow)
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut 2) Subtract minimum flow from each segment on path 3) Add minimum flow on reverse path
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut - Cut at zeros. - Cost of min-cut is 4. - Divides the nodes (pixels) into two groups. - Sum of original values of zeros equals the maximum flow.
Example: Ford & Fulkerson Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Look at the difference between initial and final capacities. Ignore negative capacities. This is where everything flows. Flow is conserved at nodes.
Why update the backward flow? Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Image: John Chinneck Can undo flows. Final flow does not include the central edge.
Image Segmentation Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Original Noisy Reconstructed Image: Boykov Allows (amongst many things) to compute binary segmentations.
Multi-Label Case Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Image: Boykov
Multi-Label Case Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Image: Boykov
Influence of Neighborhood Choice Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Minimum cost cut (standard 4-neighborhoods) Minimum length geodesic contour (image-based Riemannian metric) Images: Boykov Can choose different weighted neighborhood to reduce metrication errors. (Or use continuous maximal flow.)
Interactive Segmentations Graph Cuts and Continuous Maximal Flows Segmentation by Graph Cut Images: Boykov