medical segmentation
Medical segmentation Imaging: Segmentation
Motivation
The segmentation of structure from 2D and 3D medical segmentation is an important first step in analyzing medical segmentation data. For example, it is necessary to segment the brain in an MR image, before it can be rendered in 3D for visualization purposes. Segmentation can also be used to automatically detect the head and abdomen of a fetus from an ultrasound image. The boundaries can then be used to get quantitative estimates of organ sizes and provide aid in any necessary diagnoses. Another important application is registration. It may be easier, or at least less error prone to segment objects in multiple medical segmentation prior to registration. This is especially true in medical segmentation from different modalities such as CT and MRI.
Image-guided surgery is one other important application of segmentation. Recent advances in technology have made it possibleto acquire medical segmentation of the patient while the surgery is taking place. The goal is then to segment relevant regions of interest and overlay them on an image of the patient to help guide the surgeon in his work.
Segmentation is therefore a very important task in medical segmentation imaging. However, manual segmentation is not only a tedious and time consuming process, it is also inaccurate. Segmentation by experts has shown to be variable up to 20%. It is therefore desirable to use algorithms that are accurate and require as little user interaction as possible.
Background
Active contours or “snakes” can be used to segment objects automatically. The basic idea is the evolution of a curve, or curves subject to constraints from the input data. The curve should evolve until its boundary segments the object of interest. This medical segmentation has been used successfully by Kass et al. to extract boundaries and edges . One potential problem with this approach is that the topology of the region to be segmented must be known in advance. During evolution, curves may change connectivity and split. Although this topological constraint may be reasonable in the segmentation of the liver, it would certainly be undesirable when segmenting blood vessels in an MR image. Intersection of higher dimensional surface with the data set results in a level set.
The intersection of higher dimensional surface with the data set results in a level set.
Osher and Sethian first introduced an algorithm to overcome these difficulties.. They modeled the propagating curve as a specific level set of a higher dimensional surface. It is common practice to model this surface as a function of time. So as time progresses, the surface can change to take on the desired shape.
Algorithms
I implemented two different algorithms for this project. This first was based on the paper Shape Modeling with Front Propogation: A Level Set Approach by Ravikanth Malladi, James A. Sethian, and Baba C. Vemuri. The algorithm is based on propogating the segmenting curve until it reaches the object boundaries. It is then stopped using an edge-stopping function defined by the image gradient.
Segmentation of the femur in an MR image of the knee. The propogating curve is halted where the edge-stopping function is near zero. Image Medical segmentation: http://www.billingsmricenter.com
The second algorithm was based on the paper Active Contours Without Edges by Tony F. Chan and Luminita A. Vese. This model attempts to avoid the constraint that objects to be segmented must be defined by gradient. It is based on an energy minimization approach.
Objects with smooth contours can not be segmented by the edge-stopping approach. The curve will eventually collapse in on itself. However, using the energy minimzation approach, we achieve the desired segmentation.
I’ve made available a more in-depth in pdf format. It contains the mathematics behind the levels set methods described here and contains a few more results that I’ve obtained.
PDF write-up
Implementation and Results
The entire project was implemented in matlab. There were two main reasons for this. The first is that matlab is optimized for matrix operations, and one of the algorithms can be implemented purely using matrix additions and subtractions. Secondly, matlab code is much faster and easier to write than the corresponding C/C++ code.
Medical segmentation Code
Artificial image corrupted with Gaussian noise. Segmentation using energy minimization.
Segmentation of Carotid Artery using energy minimization. Image Medical segmentation: http://www.billingsmricenter.com
Segmentation of brain in sagittal MR image. Image Medical segmentation: Jeff Orchard, http://www.cs.uwaterloo.ca/~jorchard/
Segmentation of bone in CT image of a head using energy minimization. Image Medical segmentation: Visible Human Project
Segmentation of blood vessels using energy minimization.
Conclusion
I have implemented the two different segmentation algorithms based on a level-set approach. The edge-stopping approach works well with regions whose edges have a strong gradient.
However, given enough iterations, the curve can break through the edge-stopping function and result in an incorrect segmentation. To solve this problem, an active contour method without edges was implemented. The algorithm is based on Mumford-Shah techniques and relies on energy minimization. The algorithm can detect objects whose boundaries are not necessarily defined by gradient. It can also detect interior curves starting with only one initial curve.
Both algorithms have been tested extensively and the numerical results in this paper validate the models.
Popularity: 2%