Reducing aliasing artifacts in iso-surfaces of binary volumes

Introduction
Visualizing a binary volume as a 3D model involves rendering an estimate of the volume's surface. Surface estimation from a discrete binary volume is generally an ill posed problem because the discrete sampling of a continuous function does not retain enough information to recover that continuous function. There are infinitely many possible isosurface embeddings, and the particular estimate of the isosurface will depend on the choice of interpolant.

The binary volume itself is the worst possible choice of an isosurface embedding and will result in considerable aliasing artifacts if rendered directly. Yet binary volumes are of interest in the medical imaging domain because they are commonly used to encode segmentation data. Very high contrast imaging modalities also produce information that can be considered binary for many applications.

The problem addressed here is how to create a surface estimation from a binary volume which reduces aliasing artifacts. We present a technique for antialiasing using deformable level set models. An initial isosurface estimation of the volume is deformed under mean curvature flow. This flow is constrained by a discrete, inside/outside function that is the binary volume itself.

This technique produces a surface estimation that satisfies criteria recognized to give good results from common surface rendering and extraction algorithms. Specifically, the isosurface estimation is one that picks the least surface area to give a maximally smooth surface. For more details, see [1].

Level Set Modeling in the Insight Toolkit
Before describing the implementation of the antialiasing filter itself, it is helpful to understand its context within the larger class of solvers which exist in the Insight Toolkit (Itk). Itk contains a framework of solvers and function objects for building filters which use level set methods. At the top of the hierarchy, the FiniteDifferenceImageFilter implements a generic finite difference scheme for solving partial differential equations. SparseFieldLevelSetImageFilter refines this functionality by narrowing the domain of the solution to a sparse band of pixels around the evolving interface.

A separate hierarchy of function objects does the numerical work of the calculations. This arrangement allows a single solver to be used for multiple applications by simply interchanging function objects. For level-set applications, there is a CurvatureFlowFunction and more general LevelSetFunction object, each of which can be subclassed to create new algorithms.

Figure 1 below illustrates the solver and function object frameworks. For more detailed information, see the online and inline documentation for the objects themselves.

Figure 1
Figure 1. The finite difference solver framework.

itk::AntiAliasBinaryImageFilter
AntiAliasBinaryImageFilter implements the surface estimation technique for reducing aliasing artifacts on itk::Images. Briefly, the algorithm is as follows: The binary volume (filter input) is used as a set of constraints in an iterative relaxation process of an initial estimate of the ND surface. The surface is described implicitly as the zero level set of a volume and allowed to deform under curvature flow. A set of constraints is introduced on its movement which fits the surface to the volume in such a way as to minimize surface area, producing a smooth estimation. Figure 2 describes an iteration of the algorithm.

AntiAliasBinaryImageFilter is built as a subclass of the SparseFieldLevelSetImageFilter solver and uses CurvatureFlowFunction for mean curvature calculations on the evolving interface. The constraint function on the iterative update has been added in this subclass.

Figure 2
Figure 2. Iterative algorithm for evolving the surface under curvature flow with constraints.

The filter produces a volume which is a level-set image of real, signed values (regardless of the input type). The zero crossings of the image represent the estimated position of the isosurface. Values inside the surface are positive and values outside the surface are negative. The isosurface is suitable for rendering without further processing using standard rendering techniques.

Example Code
A sample application for processing data with AntiAliasBinaryImageFilter can be found in InsightApplications/AntiAliasBinaryImageFilter. To use this code, first read the README.txt file found in that directory. You will also need to build the parameter file parser found in InsightApplications/StreamedWatershedSegmentation/ParameterFileParser. Detailed instructions can be found in the application directories.

Note that after building the antialiasing application, you will find another application that generates a sample data set. Test your build on this sample data. If you have access to a Tcl wrapped version of VTK 4.2, then there is also a tcl script available for rendering the output of the application.

Some Results
The images in this section are renderings of data processed with the example code in Applications/AntiAliasBinaryImageFilter. All renderings were done in VTK using the Marching Cubes algorithm. For each example, the image on the left is a rendering of the binary volume and the image on the right is a rendering of the surface estimation. Times represent processing on a single Intel PIII 900Mhz processor.

Segmentation of  right lens from Visible Female color cryosection data.

Figure 3. A segmentation (done in Itk!) of the right lens from the Visible Female color cryosection data.
Binary volume resolution: 58 x 73 x 78
Maximum RMS error setting: 0.020
Iterations required: 15
Time in seconds: less than 1



Segmentation of  right eye with lateral and medial rectus muscles and the optic nerve from Visible Female color cryosection data.

Figure 4. A segmentation (done in Itk!) of the right eye with lateral and medial rectus muscles and the optic nerve from the Visible Female color cryosection data.
Binary volume resolution: 126 x 78 x 58
Maximum RMS error setting: 0.024
Iterations required: 9
Time in seconds: 5



A high  resolution, binary representation of an extraction of the surface of a brain (from MRI data).

Figure 5. A high resolution, binary representation of an extraction of the surface of a brain (from MRI data).


Detail of above.

Detail of above.
Binary volume resolution: 256 x 256 x 175
Maximum RMS error setting: 0.024
Iterations required: 9
Time in seconds: 45



Detail of a high resolution  binary toy dragon volume.

Figure 6. Detail of a high resolution binary toy dragon volume.
Binary volume resolution: 356 x 161 x 251
Maximum RMS error setting: 0.024
Iterations required: 14
Time in seconds: 47



References

[1] R. Whitaker. Reducing Aliasing Artifacts in Iso-Surfaces of Binary Volumes. IEEE Volume Visualization and Graphics Symposium, October 2000, pp.23-32.

[2] J. Sethian. Level Set Methods: Evolving Interfaces in Geometry, Fluid Mechanics, Computer Vision, and Material Sciences. Cambridge University Press. 1996.

Go to next application.