[link]
Edge, contour or boundary detection in 2D images have been an area of active research, with a variety of different algorithms. However due to a wide variety of image types and content, developing automatic segmentation algorithms have been challenging, while manual segmentation is tedious and time consuming. Previous algorithms approaching this task have tried to incorporate higher level constraints, energy functional (snakes), global properties (graph based). However the approaches still do not entirely fulfill the fully automated criteria due to a variety of reasons. To this end, Barrett et al. propose a graphbased boundary extraction algorithm called Interactive LiveWire, which is an extension to the original livewire algorithm presented in Mortensen et al. [1]. The algorithm is built upon a reformulation of the segmentation approach into graphs, particularly, an image $I$ is converted to an undirected graph with edges from a pixel $p$ to all it's neighbouring 8connected pixels. Each pixel or node is assigned a local cost according to a function (described later). The segmentation task then becomes a problem where there needs to be a shortest path from a pixel $p$ (seed) to another pixel $q$ (free goal point), where the cumulative cost of path is minimum. The local cost function is defined as: $l(p,q) = w_G.f_G(q) + w_Z.f_Z(q) + w_D.f_D(p,q)$ where $w_i, i = {G, Z, D}$ are weight coefficients controlling relative importance of the terms. The three terms that make up the local cost function are gradient magnitude ($f_G(q)$), Laplacian ZeroCrossing feature ($f_Z(q)$), and Gradient Direction feature ($f_D(p,q)$). The first term $f_G(q)$ defines a strong measure of edge strength, and is heavily weighted. The term $f_Z(q)$ provides a second degree measure for edge strength in the form of zerocrossing information. The third term $f_D(p,q)$ adds a smoothness constraint to the livewire boundary by adding high cost for rapidly changing gradient directions. The algorithm also exhibits some other features, namely boundary freezing, onthefly learning and datadriven cooling. Boundary freezing proves useful when Livewire segmentation digresses from the desired object boundary during interactive mode. The boundary can be "frozen" right before the digression point by specifying another seed point, until which the boundary is frozen and not allowed to be changed. Onthefly learning provides robustness to the method by learning the underlying cost distribution of a known "good" boundary, and using that to guide the livewire further to follow similar distribution. Datadriven path cooling allows the livewire to generate new seed points automatically as a function of image data and path properties. Pixels on "stable" paths will cool down and eventually freeze, producing new seed points. The results report that average times taken for segmenting a region using LiveWire was roughly 4.6 times less than manual human tracing time. LiveWire provided same amount of accuracy as manual tracing would in a fraction of time, with high reproducibility. However, the method does not provide a way to ``snap out" of an \textit{automatically} frozen livewire segmentation. Onthefly training can fail at instances where the edges of the object change too fast, and not much implementation related information is provided, especially for freezing and training parts.
Your comment:
