Dynamic Contours using Dynamic Programming -- Snakes

Example of snakes using dynamic programming.

Description Implementation of energy minimizing active contours (snakes) using dynamic programming involves a discrete multistage decision process. This results in repositioning the snake points (snaxels) optimally within the search neighborhood for each iteration since all possible choices are considered, as opposed to local optimization methods like the greedy algorithm where optimization takes place at each snaxel locally without regard for how the current decision affects the total energy of the solution. The dynamic programming formalism allows for enforcing hard constraints such as a limit on the distance between points on the contour. Finally, in the discrete dynamic programming formulation, the active contour is guaranteed to converge to a final solution in a finite number of iterations since the energy measure is monotonically decreasing with time. Some disadvantages of this algorithm include greater computation time for each algorithm as compared to other methods such as greedy, or variational, and a practical limitation on the complexity of the energy function.

Keywords dynamic programming, active contours, dynamic contours, contour extraction, deformable models, optimization, snakes

Processing Examples

Publications

Main Reference: Amini, Amir A., Using Dynamic Programming for Solving Variational Problems in Vision, PAMI vol. 12, no 9, pp. 855-867, Sept. 1990.

Additional References

Anotated Code

Animated Code

Tutorial