opencv - 해당되는 글 1건
크리에이티브 커먼즈 라이선스
Creative Commons License

Level set method 

 
An illustration of the level set method

A very simple, yet powerful way to understand the level set method is by first studying the accompanying illustration before proceeding towards a more technical definition, which then becomes quite accessible. The figure on the right illustrates several important ideas about the level set method. In the upper-left corner we see a shape; that is, a bounded region with a well-behaved boundary. Below it, the red surface is the graph of a level set function \varphi determining this shape, and the flat blue region represents the xy plane. The boundary of the shape is then the zero level set of \varphi, while the shape itself is the set of points in the plane for which \varphi is positive (interior of the shape) or zero (at the boundary).

In the top row we see the shape changing its topology by splitting in two. It would be quite hard to describe this transformation numerically by parameterizing the boundary of the shape and following its evolution. One would need an algorithm able to detect the moment the shape splits in two, and then construct parameterizations for the two newly obtained curves. On the other hand, if we look at the bottom row, we see that the level set function merely got translated downward. We see that it is much easier to work with a shape through its level set function than with the shape directly, where we would need to watch out for all the possible deformations the shape might undergo.

Thus, in two dimensions, the level set method amounts to representing a closed curve Γ (such as the shape in our example) using an auxiliary function  \varphi , called the level set function. Γ is represented as the zero level set of  \varphi by

\Gamma = \{(x, y)|\, \varphi(x, y) = 0 \}, \,

and the level set method manipulates Γ implicitly, through the function \varphi. \varphi is assumed to take positive values inside the region delimited by the curve Γ and negative values outside.[2][3]



The level set equation

If the curve Γ moves in the normal direction with a speed v, then the level set function \varphi satisfies the level set equation

\frac{\partial\varphi}{\partial t} = v|\nabla \varphi|.

Here, |\cdot| is the Euclidean norm (denoted customarily by single bars in PDEs), and t is time. This is a partial differential equation, in particular a Hamilton-Jacobi equation, and can be solved numerically, for example by using finite differences on a Cartesian grid.[2][3]

The numerical solution of the level set equation, however, requires sophisticated techniques. Simple finite difference methods fail quickly. Upwinding methods, such as the Godunov method, fare better; however the level set method does not guarantee the conservation of the volume and the shape of the level set in an advection field that does conserve the shape and size, for example uniform or rotational velocity field. Instead, the shape of the level set may get severely distorted and the level set may vanish over several time steps. For this reason, high-order finite difference schemes are generally required, such as high-order essentially non-oscillatory (ENO) schemes, and even then, the feasibility of long-time simulations is questionable. Further sophisticated methods to deal with this difficulty have been developed, e.g., combinations of the level set method with tracing marker particles advected by the velocity field.[4]







http://en.wikipedia.org/wiki/Level_set_method
저작자 표시
신고
Trackback 0 | Comment 0

강군v's Blog is powered by Daum & tistory

 

티스토리 툴바