In mathematics, specifically differential geometry, a geometric flow is the gradient flow associated to a functional on a manifold which has a geometric interpretation, usually associated with some extrinsic or intrinsic curvature. A geometric flow is also called a geometric evolution equation. (Imagine a manifold is evolving, i.e. flowing.)
Given an elliptic operator L, the parabolic PDE ut = Lu yields a flow, and stationary states for the flow are solutions to the elliptic PDE Lu = 0.
The elliptic PDE Lu = 0 can be associated with a functional. One can define a functional F(u) = ∫ f(x,u,ux), which has Euler-Lagrange equation Lu = 0 for some operator L, and associated PDE ut = Lu.
From a mathematical perspective, the level set method is a method to evolve the PDE ut = Lu.
In 2-D case, the manifold is a curve C on a plane. We want to evolve the curve C so that it forms a segmentation, in other words, capturing the shape of an object or several objects. To this end, we propagate the curve using the following formula,
![]() | (1) |
where p denotes the parameter for the curve, t denotes time, F(K) denotes speed and N denotes the normal vector, which is the direction of propagation.
So we can define some form of F(K) to drive the propagation. The curve propagation stops where F(K) = 0. A very intuitive definition is the reciprocal of the image gradient, so that curve propagation stops where the gradient is large, very likely being the boundary of an object.
Alternatively, we can define an energy function of the form,
![]() | (2) |
where s denotes the coordinate and Ω denotes the space. Solving the Euler-Lagrange equation (Cremers’s review 2007) leads to the level set flow function,
![]() | (3) |
However, if we evolve the curve C according to Eq. 1, we can never change the topology of C. The explicit representation of the curve prohibits any topological changes. The active contour snake method (Kass 1988) is such a method.
To overcome this problem, the level set method was proposed (Sethian, maybe 1988), where the curve is implicitly represented by a higher dimensional function ϕ. The curve C(p,t) is the zero level set of the function ϕ(t).
![]() | (4) |
ϕ(t) is a 3-D surface, whose intersection with the zero plane determines the curve C(t). When we evolve ϕ(t), the topology of C(t) can be changed.
We can write the level set formula as ϕ(C(t),t) = 0, where C(t) means a point on the curve C(t). Taking the derivative of ϕ(C(t),t) with respect to time, we have,
![]() | (5) |
We can also take the derivative of ϕ(C(t),t) along the tangential direction of the curve,
![]() | (6) |
It leads to the conclusion that ∇ϕ is ortho-normal to C and thus the
normal vector N can be represented as N = -.
It can be derived that,
It leads to the evolution function,
![]() | (8) |
where ∇(ϕ) denotes the gradient of ϕ(x,y,t) w.r.t. a curve point (x,y). The Euclidean distance transform of the curve is used in most of the cases as ϕ.
The level set method can be summarised as:
We are interested in the motion of the zero-level set and not in the motion of each isophote of the surface. So we only need to compute in a narrow band around the curve:
It significantly decrease the computational complexity, in particularly when implemented efficiently. And it can account for any type of motion flows.
Another reason that I think why we should use a narrow band is that the level set flow function Eq. 8 is only valid on the curve C, as shown from the its deriving process.
Central idea: move the curve one pixel in a progressive manner according to the speed function while preserving the nature of the implicit function.
I have gone through this part in Paragios’s PowerPoint but have not understood the details. Further reading is required: Tsitsiklis 1993 and Sethian 1995.
Weickert introduced additive operator splitting (AOS) for fast non-linear diffusion. It accelerates the algorithm by 1 order.
It diffuses the image gradients using gradient vector flow so that the contour can evolve even from an initial position far away from the object of interest.
![]() | (10) |
This is a very simple model with only two classes and it assumes that the image is piece-wise constant.
Geodesic active regions (Paragios-Deriche 1998)
It introduces geodesic active contours to the cost function and a Gaussian mixture model to describe the intensities of two classes. The cost function consists of both edge and region information.
Zhao-Chan-Merinman-Osher 1996, Samson-Aubert-Blank-Feraud 1999, and Vese-Chan 2002
The cost function consists of multiple classes in order to deal with multiple objects in an image.
Leventon-Faugeras-Grimson-etal 2000, Chen-etal 2001, Tsai-Yezzi-etal 2001, and Paragios-Rousson 2002
It uses a shape model as prior in the cost function. The shape model is learnt from a training set. It turns out to be effective when there is occlusion in images.