A Skull-Stripping Filter for ITK

,


Introduction
Skull-stripping is an important pre-processing step for analyzing medical images of the head region.Skullstripping separates the brain from the skull and other surrounding structures.This is required by many algorithms for automatic segmentation or registration of brain images, as well as for visualization of the results.
In the last years, many different approaches have been proposed to solve this problem.They range from simple morphological operations to advanced model-based methods or sophisticated classification-based approaches [2,4,6,9,13,11,12,15,16,19].Arguably the most-used tool is the brain extraction tool (BET) developed by Smith et al. [16].Although there have been a number of comparison papers [5,7,10] and even one online resource for directly comparing different algorithms [14], the results are inconclusive.
Recently, there have also been methods proposed, which are targeted at specific applications, as an example skull-stripping for tumor-bearing brain images [17,1].
In general, the majority of the current methods are tuned to work on T 1 -weighted magnetic resonance images (MRI).The problem with some of the most accurate methods is, that they require a significant amount of computation time, which makes them not very useful for preprocessing purposes.Additionally, most implementations are not publicly available and to the best of our knowledge, there is no filter with publicly available source code for the Insight Toolkit (ITK) [8] www.itk.org.An ITK filter, which is easy to use, versatile, robust and has a fast run-time, would be important for being able to directly integrate this preprocessing step into individual applications.We want to address this need by contributing an ITK class for skull-stripping of medical images.

Methods
We implemented a method previously described in [1].It is based on a two step procedure.Initially, an atlas image is registered to the patient image using an affine transformation model and the brain mask of the atlas is propagated to the patient image with the calculated transformation matrix [20].This brain mask is eroded and then serves as initialization for a refined brain extraction based on level-sets.The level-set is evolved towards the edge of the brain-skull border with dedicated expansion, curvature and advection terms [18].
As an atlas, we use a customized isotropic T 1 -weighted MR image from the IXI dataset 1 with a manually generated brain mask.

Implementation
The method has been implemented as an ITK filter, named itk::StripTsImageFilter which can be used within a standard ITK pipeline.It is designed as a composite filter, making use of standard ITK classes, namely the registration framework and the level-set framework.It is derived from the itk::ImageToImageFilter class and thus implements the standard functions.The filter requires 3 inputs: and outputs a binary brain mask image, which can be used to extract the brain from the patient image.
In order to make the method more robust, after geometrical initialization with the itk::CenteredTransformInitializer, we first perform a multi-resolution itk::VersorRigid3DTransform, followed by an itk::AffineTransform using the itk::MattesMutualInformationImageToImageMetric.This allows us to handle cases, where the atlas has a different modality than the patient image.For speed reasons, the initial registration is performed on a subsampled version of the patient image.The final refinement of the brain-skull border is carried out by the itk::GeodesicActiveContourLevelSetImageFilter in two resolution levels in order to increase robustness and speed.Additionally, in order to be able to handle various input image resolutions easily, all computations are performed in a standard space of 1mm isotropic resolution.
The current implementation assumes that the images are 3-dimensional.It can be applied to a wide range of different image modalities and does not require any specific parameter settings, but when necessary, the user can fine-tune the parameters of the registration or level-set segmentation according to his requirements.

Evaluation
We applied the proposed method to a T 1 -weighted MR image from the synthetic Brainweb database [3] and show the result on one axial slice in figure 1.In order to demonstrate the versatility of the method, we also applied it to different medical image modalities using the same atlas and parameters settings.Figure 2 illustrates the results on T 1 , T 1contrast , T 2 and T 2flair MR images of varying resolutions, as well as one CT image.We also applied the method to a database of around 50 tumor-bearing brain MR images with visually convincing results.Only on fMRI data the results were not satisfactory.In order to provide quantitative evaluation, we applied the filter to a database of 40 healthy T 1 -weighted MR images from the segmentation validation engine [14].With standard settings, we achieve an average Dice coefficient of 0.91 with a standard deviation of ±0.02 on these images.
Computation time is between 1 and 4 minutes on a standard PC.

Conclusion
We implemented a method for automatic skull-stripping of volumetric medical images as an ITK filter and provide the source code along with this article.The method is based on initial atlas registration with subsequent level-set refinement of the brain mask.The advantages of this filter include its ease-of-use, the robustness also in case of lesions, a reasonable computation time and the ability to be used on a number of different image modalities.The accuracy is sufficient for many tasks in neuroimage analysis.

User Guide
We provide a short C++ program skullStripping.cxxdemonstrating the use of the filter.It works on 3D medical images and can also serve as an example how to use the itk::StripTsImageFilter in an individual project.
For the command line program, the user has to provide the patient image filename, the atlas image filename and the atlas mask filename as a command line argument.If the program is called without any arguments, a brief help is displayed.
For example in a Windows environment, you would use:

Figure 1 :
Figure 1: Skull-stripping result shown on an axial slice of one T 1 -weighted Brainweb image.Left: original image with mask overlay.Right: Brain tissues after applying the skull-stripping mask.
Distributed under Creative Commons Attribution LicenseThe following excerpt from the skullStripping.cxxmainfileshows how to use the itk::StripTsImageFilter in an individual project and how to use the output for masking the patient image.We would like to thank Arnaud Gelas and Bill Lorensen for their help with setting up and improving the module.Latest version available at the Insight Journal [ http://hdl.handle.net/10380/3353]Distributed under Creative Commons Attribution License skullStripping.exepatientImageFilenameatlasImageFilename atlasMaskFilenameLatest version available at the Insight Journal [ http://hdl.handle.net/10380/3353]