Vessel Laminae Segmentation

From FarsightWiki
(Difference between revisions)
Jump to: navigation, search
Line 66: Line 66:
 
===Python Script===
 
===Python Script===
  
The segmentation code is also wrapped in python to enable ease of use. For example, one can segment the image named 'NM_crop1_EBA.pic' and produce an output binary image 'NM_crop1_EBA_surface.pic' using the following command. For more details on how to run a demo file, see [[FARSIGHT Tutorials/5-Label]]
+
The segmentation code is also wrapped in python in FARSIGHT. For example, one can segment the image named 'NM_crop1_EBA.pic' and produce an output binary image 'NM_crop1_EBA_surface.pic' using the following command. For more details on how to run a demo file, see [[FARSIGHT Tutorials/5-Label]]
  
 
  subprocess.call(['vessel_segmentation.exe', 'NM_crop1_EBA.pic', 'NM_crop1_EBA_surface.pic'])
 
  subprocess.call(['vessel_segmentation.exe', 'NM_crop1_EBA.pic', 'NM_crop1_EBA_surface.pic'])
 
 
Source code and python script to run the code to be added here.
 
  
 
==References==
 
==References==
  
 
Arunachalam Narayanaswamy, Saritha Dwarakapuram, Christopher S. Bjornsson, Barbara M. Cutler, William Shain, Badrinath Roysam, Robust Adaptive 3-D Segmentation of Vessel Laminae from Fluorescence Confocal Microscope Images & Parallel GPU Implementation, (accepted, in press), IEEE Transactions on Medical Imaging, March 2009.
 
Arunachalam Narayanaswamy, Saritha Dwarakapuram, Christopher S. Bjornsson, Barbara M. Cutler, William Shain, Badrinath Roysam, Robust Adaptive 3-D Segmentation of Vessel Laminae from Fluorescence Confocal Microscope Images & Parallel GPU Implementation, (accepted, in press), IEEE Transactions on Medical Imaging, March 2009.

Revision as of 20:05, 21 May 2009

This page describes the vessel surface segmentation algorithm. We provide the background, a brief description of the algorithm and show some sample results. Finally we provide instructions on how to run the program.

Contents

Background and motivation

A 2-D projection of a 3-D blood vessel image. Imaging resolution: 0.36 x 0.36 x 1.5 µm3. Stack size: 1024x1024x77 voxels3

Accurate and rapid segmentation of microvasculature from three-dimensional (3-D) images is important for diverse studies in neuroscience, tumor biology, stem-cell niches, cancer stem cell niches, and other areas. It is needed for measuring vascular features such as surface areas, diameters and tortuosities of vessel segments, branching patterns of the vascular tree, and distributions and orientations of cells relative to the vasculature. When time-lapse imaging of living vasculature is performed, segmentation results can be used for analyzing angiogenesis. Finally, quantifying the impact of pharmacological interventions requires vessel segmentation for change analysis.


Vessel segmentation algorithm presents a robust 3-D algorithm to segment vasculature that is image by labeling laminae, rather than lumenal volume. The signal is weak, sparse, noisy, non-uniform, low-contrast, and exhibits gaps and spectral artifacts, so adaptive thresholding & Hessian filtering based methods are not effective.


The Algorithm

The algorithm has four steps

  • The first step of our algorithm identifies high-confidence foreground voxels using a robust voxel-based generalized hypothesis test.
  • The second step performs an adaptive region growing algorithm to identify additional foreground voxels while rejecting noise. This also yields relative estimates of detection confidence at each voxel.
  • The third step uses the marching tetrahedra algorithm to link the detected foreground voxels to produce a triangulated 3-D mesh with watertight isosurfaces. The mesh is smoothed using a volume-preserving algorithm to eliminate jagged facets, and adaptively decimated using an edge-collapsing and volume-preserving algorithm to produce the final mesh. Once this is complete, we estimate the local surface curvature at each triangle.
  • Finally, we extract the vessel topology by generating a filled-in vessel that could be traced by tube tracing techniques to produce centerline estimates.


Parameters

For the real data sets used in our experiments, typical values are represented below along with some guidance on how to choose the parameters for a different application.


 \lambda_T^h  : typical values: 8-12

Set this value high enough such that the segmentation detects at least some points in each vessel segment. One way to choose this is to set this equal to  \lambda_T^l and look at the points detected by the segmentation program. These are the initial points you expect to get detected. Choose this parameter before the lower threshold.

 \lambda_T^l  : typical values: 3-6

Set this value to a low enough value such that maximum vessel foreground points are detected.

ω : typical values: 1.5

This value is half the thickness of the vessels seen in the images(in voxels). Choose this based on the resolution of the imaging involved.

Γ size : typical values: 7x7x5

The neighborhood size used for doing hypothesis testing. Higher the neighborhood used, the more robust the test is and the less sensitive it is. Choosing higher neighborhood size also increases the computational time significantly.

Programs

The source code is available in the FARSIGHT svn repository under trunk/Vessel. It is organized into four folders:

  • Centerline - This folder contains source code for producing the 'filled' image used for generating the centerlines. This image is traced by common vessel tracing algorithms available in FARSIGHT.
  • Common - This folder contains a common set of source codes for both visualizing and generating 'filled' vessel images.
  • Segmentation - This folder contains source code for binarizing the raw vessel laminae image. It creates three kinds of files. (1) .npts files contains X,Y,Z locations of the binarized points along with L1,L2. L1 is the estimated difference in foreground and background intensity at that point and L2 is the computed likelihood ratio.
  • Visualization - This folder contains source code (uses OpenGL libraries) to visualize the segmented vessels in 3D. The key bindings are as follows
    • W - enables/disables wireframe mode
    • V - enables/disables solid surfaces with lighting
    • Left mouse button - enables 3-D rotation
    • Right mouse button - enables zooming in and out of the 3-D vessel

Python Script

The segmentation code is also wrapped in python in FARSIGHT. For example, one can segment the image named 'NM_crop1_EBA.pic' and produce an output binary image 'NM_crop1_EBA_surface.pic' using the following command. For more details on how to run a demo file, see FARSIGHT Tutorials/5-Label

subprocess.call(['vessel_segmentation.exe', 'NM_crop1_EBA.pic', 'NM_crop1_EBA_surface.pic'])

References

Arunachalam Narayanaswamy, Saritha Dwarakapuram, Christopher S. Bjornsson, Barbara M. Cutler, William Shain, Badrinath Roysam, Robust Adaptive 3-D Segmentation of Vessel Laminae from Fluorescence Confocal Microscope Images & Parallel GPU Implementation, (accepted, in press), IEEE Transactions on Medical Imaging, March 2009.

Personal tools