# 06 - boundary models overview edge tracking active contours conclusion

Post on 27-Dec-2015

214 views

Embed Size (px)

TRANSCRIPT

06 - Boundary ModelsOverviewEdge TrackingActive ContoursConclusion

OverviewSuppose we wish to find the boundary of an object in an imageOne approach is to find edge segments and link them together

OverviewThe process of linking edge segments to obtain boundary models is deceptively difficultHow do we select edge segments for the object? How do connect these edge segments? What do we do with missing or conflicting data?What domain knowledge can be used?How much user input is necessary?How do measure the quality of our solution?

OverviewIn this section we will consider the design and implementation of two techniques

Edge tracking performs a greedy search to find a path around the object boundary

Active contours solves for object boundary by minimizing an energy functional that describes constraints on the object boundary

Edge TrackingEdge tracking is a conceptually simple approach for finding object boundaries

Edge tracking algorithm:Start at a point (x,y) on the object boundaryWalk clockwise around the boundary using gradient information to choose next pointStop when we return to the starting point

Edge TrackingUser selects (x,y) starting point

Edge TrackingGradient information used to find next (x,y) point on boundary

Edge TrackingProcess repeats to get sequence of points on boundary

Edge TrackingSometimes we have to make hard choices to pick boundary to track

Edge TrackingProcess continues until we reach starting point (x,y) again

Edge TrackingOr until the edge linking reaches a dead end or the edge of the image

Edge TrackingIf we are at pixel (x,y) on the boundary how do we select next point (x,y) on boundary?

There are a number of factors to consider:Find point with highest gradient magnitudeFind point with most similar gradient magnitudeFind point with most similar gradient directionFind point that gives smoothest boundary

Edge TrackingTo find point with highest gradient magnitudeCalculate gradient magnitude of imageSearch NxN neighborhood around point (x,y)Ignore points that are already on object boundaryFind point (x,y) that has the highest gradient magnitude value G

Very simple to implement, but might get stuck in local gradient maxima

Edge TrackingTo find point with most similar gradient magnitude to current boundary pointSearch NxN neighborhood around point (x,y)Find unused point (x,y) with smallest difference in gradient magnitude M

Edge TrackingTo find point with most similar gradient direction to current boundary pointSearch NxN neighborhood around point (x,y)Find unused point (x,y) with smallest difference in gradient direction D

Edge TrackingTo find point that gives smoothest boundarySearch NxN neighborhood around point (x,y)Calculate change in direction angle relative to current point C and previous point P on boundarySelect point (x,y) with smallest angle A

1359045PC01359045

90450135C45P13590

Edge TrackingWe can combine edge tracking criteria by minimizing a weighted average of scores

We stop edge tracking when we are close enough to the starting point (when current point is within radius R of starting point)

Edge TrackingEdge tracking works well when the edge strengths are strong in an image and the user provides a good starting point on the edge

Edge tracking works poorly if there are weak or missing edges since there are no global constraints on the shape of object boundary

Active ContoursEdge tracking approach may produce very rough object boundariesNo boundary smoothness constraints

Active contours solves this problemDefine object boundary as a parametric curveDefine smoothness constraints on the curveDefine data matching constraints on the curveDeform curve to find optimal object boundary

Active ContoursExample below shows active contour in action fitting itself to desired object boundary

Active ContoursInteractive active contours in operation (from Snakes: Active contour models by Kass 1988)

Active ContoursInteractive active contours in operation (from Snakes: Active contour models by Kass 1988)

Active ContoursRepresent the curve with a set of n points

Active ContoursSmoothness is controlled by an internal energy constraint on the parametric curveIf we minimize the elastic energy the curve will shrink like a rubber band

Active ContoursThe external energy constraint describes how well the curve matches the image dataIf we maximize the gradient magnitudes g(x,y)along the curve we will fit the strong edges that correspond to the object boundary

Active ContoursWe combine internal and external constraints to obtain a total energy functional to minimize

Notice that we changed the sign of external constraint to make this a minimization problem

Active ContoursOur next task is to solve for the parametric curve (xi, yi) that minimizes Etotal

Consider Einternal for three consecutive points on the curve (xi-1, yi-1), (xi, yi), (xi+1, yi+1)

Active ContoursIf we take the derivative of Einternal wrt xi and set it to zero we can solve for xi

Active ContoursSimilarly, we take the derivative of Einternal wrt yi and set it to zero to solve for yi

Active ContoursHence we can deform the active contour to minimize the internal energy by iteratively averaging adjacent boundary coordinates

Active ContoursTo minimize Etotal we must consider the partial derivatives of the Eexternal term wrt xi and yi

This moves the contour in the direction of the gradient of the gradient magnitude g(x,y)

Active ContoursWe can deform the active contour to minimize the external energy by making a step of size s in the direction of the gradient of g(xi,yi)

(xi-1,yi-1)(xi,yi)(xi+1,yi+1)

Active ContoursExample circle deforming to concave object

Active ContoursExample effects of varying a weight in total energy functional

Active ContoursExample fitting one active contour around two adjacent objects

Active ContoursAdditional constraints can be added to active contours to introduce stiffness (minimize second derivatives) and other external forces (user pulling curve at selected points)

Calculus of variations is typically used to solve the Euler-Legrange equations associated with these active contour energy functionals

ConclusionsThis section described how boundary tracking and active contours can be used to obtain the boundary of objects of interest in an image

Both methods require user interaction to select a starting point/curve Boundary tracking fast and easy to implementActive contours will result in smoother boundary