User:S0838969

Optimal surface detection is a process for efficient identification of borders in an image with more than 2 dimensions. It can be considered as a type of segmentation. Optimal surface detection is mainly used in 3D applications, but can be generalised to higher-dimensional spaces.

Optimal surface detection consists of two steps:
 * 1) Creating an N-dimensional graph corresponding to the N-dimensional volume (or hypervolume) of the space; then
 * 2) Searching this N-dimensional graph for a minimal-cost method.

In a 3D image, each image voxel is represented by a node in the 3D graph. Each node has a local cost. However, both the calculation of a node's local cost and the definition of a surface in terms of nodes depends on the application. Hence, there is no general solution for optimal surface detection.

Advantages of Optimal Surface Detection
Optimal surface detection is preferred over analysing a sequence of 2D image slices for several reasons. The most important is that contextual slice-to-slice information is lost when a 2D sequence is analysed. With a single set of 3D data, a smoother surface can be built across the image slices.

Also, optimal surface detection methods use novel ways of representing and searching the 3D graph. This is important since extending standard 2D path-search to 3 (or higher) dimensional surface-search creates a combinatorial explosion.

Graph-Transformation Approach


Thedens and Fleagle developed an approach based on cost-optimisation. In this approach, the 3D lattice (formed by layering a number of 2D image slices) is transformed into a traditional graph form, then standard graph search methods are used on it. The transformation is as follows:

For a sequence of $$F$$ images, each node in the graph is represented by an ($$F + 1$$)-tuple. The first element in this tuple refers to the row of the images from which the points are taken, and the other elements represent the location of the lattice point on that row for each image. It has not been extensible to higher dimensions.

The links between nodes are determined by generating a list of nodes that can be adjacent to it, given constraints on both the distance of the node from another row in the same image, and the distance of the node from a node in the same row of a different image.

The number of nodes is proportional to $$PR(2M+1)^{F-1}$$ and the number of links is proportional to $$PR(2M+1)^{F-1}(2N+1)^{F}$$ where
 * $$R$$ is the number of rows,
 * $$P$$ is the number of points on each row,
 * $$M$$ is the maximum distance (in pixels) between border points in adjacent images; and
 * $$N$$ is the maximum distance (in pixels) between border points between the rows of an image.

This method guarantees surface optimality. However, since the requirements grow exponentially with the size of $$F$$, it is not feasible to use without extra constraints or heuristics.

Dynamic Programming Approach
Frank and Dove developed a new approach to direct surfaces detection based on dynamic programming. This approach can be generalised to searching higher-dimensional spaces.

Combinatorial explosion is avoided by introducing local conditions that the surface must satisfy, hence pruning the graph.

Algorithm
In this algorithm, a 3D graph is created using the 3D matrix of volumetric data, and the minimum-cost surface is found from this graph.

Surface Cost
The cost of a surface is given by the cumulative cost of its nodes.

$$ S = \sum_{x=1}^X \sum_{y=1}^Y C(x,y,z(x,y)) $$

Surface Connectivity
To guarantee that the surface is continuous, the parameter $$N$$ is needed to represent the maximum allowed change in the z-coordinate of the surface, normalised in x and y directions. The size of N affects the stiffness of the allowed surface: the smaller N is, the more stiff the surface will be.

The connectivity constraint is hence as such:


 * $$\text{for all } x \in [1,X] \text{ AND } y \in [1,Y]:$$
 * $$ \mid z \big(x,y \big) - z \big(x-1,y \big) \mid \leq N \text{ AND } \mid z \big(x,y \big) - z \big(x,y-1 \big) \mid \leq N $$

From this constraint, each internal node of the graph has up to 4(2N+1) legal neighbours.

Creating the 3D Matrix
A 3D matrix corresponding to the size of the image volume (i.e. with dimensions $$\big(X,Y,Z\big)$$) is initialised.

Creating the 3D Graph
To find the cumulative surface cost, the nodes are visited in order of coordinates $$z-x-y$$, from column $$\big( 1,1,z \big)$$ to column $$\big(X,Y,z \big)$$.



At each node $$n$$, the cumulative surface cost is calculated as the sum of the node's local cost, and the minima in each of the two columns of the 3D graph that represent $$n$$'s immediate predecessors.

The equation is given as:

$$ \begin{align} C_{cumulative}(x,y,z)\text{ } &= \text{ } C(x,y,z) \text{ } \\ &+ \text{ } min_{k \in [z-N, z+N]}\{C_{cumulative}(x-1,y,k)\} \text{ } \\ &+ \text{ } min_{k \in [z-N, z+N]}\{C_{cumulative}(x,y-1,k)\} \end{align} $$

Constructing the Surface
The surface construction proceeds in the reversed $$z - y - x$$ order, from column $$\big( X,Y,z \big)$$ to column $$\big(1,1,z \big)$$. The connectivity constraint is propagated along the surface.

For each (x,y) column, the z-coordinate $$D \big( x,y \big) $$ is defined as:

$$ D(x,y) \text{ } = z \text{ for which } C_{cumulative}(x,y,z) = min_{k \in [zmin, zmax]} (C_{cumulative}(x,y,k)) $$

where


 * $$ zmax = min \big( Z, D \big(x+1,y \big) + N, D \big( x, y+1 \big) + N) $$
 * $$ zmin = max \big( 1, D \big(x+1,y \big) - N, D \big( x, y+1 \big) - N) $$

When it reaches $$\big(1,1,z \big)$$, the minimum cumulative cost node that define the surface will have been identified.

Pseudocode
Create a 3D matrix (X x Y x Z) corresponding to the 3D image volume for y ← 1 to Y do for x ← 1 to X do for z ← 1 to Z do Ccumulative(x,y,z) ← C(x,y,z) + mink ∈[z-N,z+N]{Ccumulative(x-1,y,k)} + mink ∈[z-N,z+N]{Ccumulative(x,y-1,k)} end do end do end do for x ← X downto 1 do for y ← Y downto 1 do zmax ← min(Z,D(x+1,y) + N,D(x,y+1) + N)        zmin ← max(1,D(x+1,y) - N,D(x,y+1) - N)         for z in {zmin, zmax} do if Ccumulative(x,y,z) = mink ∈[zmin,zmax](Ccumulative(x,y,k)) D(x,y) ← z            end if end for end for end for

s-t Graph Cut-Based Approach
Li et al proposed an algorithm that makes use of set theory to find not just the local optimal surface, but also the global optimal surface. It can be generalised to searching higher-order spaces. In this approach, a weighted directed graph $$ \mathcal{G=(V,E)}$$ is created using the 3D volumetric data, and the minimum closed set represents the optimal surface.

The s-t Graph
$$ \mathcal{G}$$ is transformed into a new directed graph $$ \mathcal{G}_{st} = (\mathcal{V} \cup \{s,t\}, \mathcal{E} \cup \mathcal{E}_{st}) $$.

In this graph, $$ \mathcal{E}_{st} $$ is given by the following:
 * s is connected to each v ∈ V by a directed edge of weight -w(v)
 * Each v ∈ V is connected to t by a directed edge of weight w(v)

where w(v) is the cost of each vertex v.

Finding the optimal surface
The minimum s-t cut of the new graph $$ \mathcal{G}_{st} $$ is the minimum closed set of the original graph $$ \mathcal{G} $$, and hence also the optimal surface. Finding the minimum s-t cut is a studied problem in graph theory.

Applications of Optimal Surface Detection
Optimal surface detection is mostly used in medical imaging and bioinformatics. Some examples of work in this field include
 * Detecting surfaces in proteins
 * Myocardial borders
 * The cost function was proportional to the inverted edge strength as given by a 2D Prewitt operator.


 * Arterial walls in intravascular ultrasound
 * The cost function was proportional to the inverted edge strength and edge direction.

Limitations of Optimal Surface Detection
There are two major limitations of current techniques in optimal surface detection :
 * 1) Only surfaces that can be "unfolded" in an invertible process can be detected
 * e.g. Cylindrical surfaces can be detected, but spherical surfaces cannot.
 * 1) Topology changes cannot be detected
 * e.g. Branching tubular structures cannot be segmented.

Extensions of Optimal Surface Detection
A newer problem is related to optimal surface detection is simultaneous surface detection. The aim of this task is to identify multiple surfaces that interact with each other. Methods for simultaneous surface detection are somewhat similar to those of optimal surface detection. However, they might involve extra constraints or a different graph representation (e.g. arc-weighted).