|
GsTL
/ Skull Stripping from MRI
/ Postprocessing
/ Publication List
GsTL is a programmer's library for geostatistics written in C++. It provides most of the commonly used geostatistical algorithms:
A comprehensive description of GsTL is given here. The library is based on the Generic Programming paradigm. Generic programming, also referred to as "programming with concepts", provides a high level of abstraction without loss of efficiency. This last point is a major gain over object-oriented programming which often trades efficiency for abstraction. To show the flexibility of GsTL, GsTL was used to simulate (using sequential Gaussian Simulation) an arbitrary property on two very different types of grids: a faulted triangulated surface and a 3D unstructured grid with polyhedron cells. The grid implementations are provided by the gOcad software.
To simulate these two grids, two small (about 50 lines of code) wrapper classes had to be implemented in order to make the gOcad grids comply with the GsTL requirements. However, the GsTL code was never modified.
The aim of this research is to design an algorithm to automatically isolate brain from non brain tissue. The method is the combination of two algorithms adapted to MRI segmentation. First, the contour of the brain tissues is extracted using a recently developed classification technique termed ``gradient boosting of classification-trees''. Following a projection pursuit scheme, this technique combines several small classification trees (``weak learners'') to build an efficient prediction model. This classification algorithm extracts possibly disconnected pieces of the brain contour. Second, a continuous contour is reconstructed by deforming an initial surface until it fits the previously extracted brain contour pieces. The evolution of the surface is modeled by a partial differential equation, solved in the level set framework. This research on brain tissue segmentation from MRI data was done in association with the Stanford Psychiatry Neuroimaging Laboratory, and in particular professors Stephan Eliez and Allan Reiss. The table below shows the results obtained on a 3D MRI. First row: original slice. Second row: corresponding automatically delineated brain contour (in red) and contour found by a human expert (in white). (click on the images for a larger view)
A view of the brain 3D reconstructed surface:
Here is a histogram of the error, i.e. the signed distance between each point defining the automatically extracted brain surface and the actual (defined by a human expert) brain surface. The error is expressed in number of pixels. For 95% of the points of the automatically extracted surface, the error is equal or lesser than 1 pixel. This algorithm is currently being implemented into BrainImage, a 3D image-analysis program developed by the Stanford Psychiatry Neuroimaging Laboratory.
The goal of this project is to define an algorithm to post-process an image A so that the structures of A are more similar to the structures of a training image B.
The training image is a "conceptual" image: B does not say that there should be a grey stripe at a given precise location. Rather it says that the structures in the image should be slightly meandering stripes, horizontally stretching across the entire image. The structures in image A do not have those characteristics: they meander around a horizontal direction but they are interrupted at several locations. The post-processing algorithm should then be able to identify these discontinuities as a problem and correct the image accordingly. The post-processing is achieved in two distinct steps:
Most of the problems in A have been corrected as expected: the stripes are now continuous, except at one location. These are preliminary results. The correction phase, in particular, can be much improved.
This algorithm can work in 3D as well.
|