Difference between revisions of "2010 Winter Project Week ProstateSeg"
From NAMIC Wiki
(8 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
Image:PW-SLC2010.png|[[2010_Winter_Project_Week#Projects|Projects List]] | Image:PW-SLC2010.png|[[2010_Winter_Project_Week#Projects|Projects List]] | ||
Image:ProstateSegResults.png|Prostate segmentation result with the old (RandomWalk) algorithm - already integrated into Slicer | Image:ProstateSegResults.png|Prostate segmentation result with the old (RandomWalk) algorithm - already integrated into Slicer | ||
+ | Image:ProstateSegShapeBased.png|Prostate segmentation result using the new shape-based algorithm, using a command-line module (ProstateSegSB) | ||
</gallery> | </gallery> | ||
Line 30: | Line 31: | ||
<h3>Progress</h3> | <h3>Progress</h3> | ||
− | The algorithm | + | *The segmentation Slicer module has been created (available at http://svn.na-mic.org/NAMICSandBox/trunk/Queens/ProstateSeg/ShapeBased) |
− | + | *Tested segmentation on 3 images, execution time is 10-20 minutes | |
+ | *Shape learning algorithm (for segmentation of any other shape than prostate) is added to the repository, and tested on Linux and Windows | ||
+ | *To do: add as an extension module (partially done), add test, tutorial | ||
</div> | </div> | ||
</div> | </div> | ||
Line 46: | Line 49: | ||
===Training === | ===Training === | ||
+ | * each directory contains an executable together with a bash script | ||
*Registration | *Registration | ||
− | **alignTrainingShapes.bash (execution time is about 30min) | + | **alignTrainingShapes.bash (execution time is about 30min) (AF: with the default value of 50000 points, execution time is few (>3?) hours) |
***make isotropic (z direction) | ***make isotropic (z direction) | ||
***register | ***register | ||
Line 58: | Line 62: | ||
**alignTrainingShapesNonIso.bash: faster but not that accurate | **alignTrainingShapesNonIso.bash: faster but not that accurate | ||
*Convert from binary to level set | *Convert from binary to level set | ||
− | **ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable | + | **ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable + 1 script (toSFLS.bash) |
***Input: nrrd binary image | ***Input: nrrd binary image | ||
***Output: level set description | ***Output: level set description | ||
Line 76: | Line 80: | ||
===To do=== | ===To do=== | ||
*Send intermediate training data (to test the training steps) => Yi | *Send intermediate training data (to test the training steps) => Yi | ||
− | |||
− | |||
− | |||
− | |||
*Slicer module for segmentation: | *Slicer module for segmentation: | ||
− | ** | + | **Add/use the boost library in an extension module |
− | ** | + | **Filter for .sm file extension |
+ | **Add model files to the package (or upload the model to the project wiki) | ||
+ | *Add a quick test |
Latest revision as of 16:41, 8 January 2010
Home < 2010 Winter Project Week ProstateSeg
Key Investigators
- Andras Lasso, Gabor Fichtinger (Queen's University)
- Yi Gao, Allen Tannenbaum (Georgia Tech)
- Andriy Fedorov (BWH)
Objective
Implement a Slicer module from the shape-based prostate segmentation algorithm developed by Yi Gao et al.
Approach, Plan
Implement as a command-line module that can be downloaded and installed as a Slicer extension. Add automatic testing.
Progress
- The segmentation Slicer module has been created (available at http://svn.na-mic.org/NAMICSandBox/trunk/Queens/ProstateSeg/ShapeBased)
- Tested segmentation on 3 images, execution time is 10-20 minutes
- Shape learning algorithm (for segmentation of any other shape than prostate) is added to the repository, and tested on Linux and Windows
- To do: add as an extension module (partially done), add test, tutorial
References
- Yi Gao, Romeil Sandhu, Gabor Fichtinger, Allen Tannenbaum, A Coupled Global Registration and Segmentation Framework with Application to the Magnetic Resonance Prostate Imagery, IEEE Trans Med Imaging (in review)
Notes
Training
- each directory contains an executable together with a bash script
- Registration
- alignTrainingShapes.bash (execution time is about 30min) (AF: with the default value of 50000 points, execution time is few (>3?) hours)
- make isotropic (z direction)
- register
- ShapeBased\_reg\src\imageRegByPointSet\c\affine\ => 1 executable
- pairwise image registration (there are many supporting files in ShapeBased\_reg\src; the result is one executable)
- input: two images from ShapeBased\_reg\trainingShapes
- output: transformed moving image in uchar nrrd image format
- ShapeBased\_reg\src\imageRegByPointSet\c\affine\ => 1 executable
- make anisotropic (maybe this step could be skipped, to have an atlas with isotropic images)
- results are copied to ShapeBased\_reg\alignTrainingShapes
- alignTrainingShapesNonIso.bash: faster but not that accurate
- alignTrainingShapes.bash (execution time is about 30min) (AF: with the default value of 50000 points, execution time is few (>3?) hours)
- Convert from binary to level set
- ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable + 1 script (toSFLS.bash)
- Input: nrrd binary image
- Output: level set description
- For each binary image a level set image is generated and saved to ShapeBased\_reg\alignTrainingShapes\toSFLS
- ShapeBased\_reg\alignTrainingShapes\toSFLS\ => 1 executable + 1 script (toSFLS.bash)
- Learning using PCA
- ProstateSeg\ShapeBased\_reg\alignTrainingShapes\toSFLS\learn => 1 executable
- Input: shapeList.txt list of all level set files
- Output: mean shape and i-th eigen shape (multiplied by the eigen value),
- Execution time is about 1 minute, repeated for each eigen shape
- ProstateSeg\ShapeBased\_reg\alignTrainingShapes\toSFLS\learn => 1 executable
- Images are flipped, but the images to be segmented (or the training shapes) could be flipped instead.
Segmentation
- ProstateSeg\ShapeBased\bin\wholeSeg => 1 executable (wholeseg)
- Input: image to be segmented, and two points (at the left and right side of the prostate, on a center axial slice in IJK space)
- Output: ?
To do
- Send intermediate training data (to test the training steps) => Yi
- Slicer module for segmentation:
- Add/use the boost library in an extension module
- Filter for .sm file extension
- Add model files to the package (or upload the model to the project wiki)
- Add a quick test