Using a Mask to Decrease Computation Time for SpatialObject to Image Conversions
Queensland University of Technology
| Please use this identifier to cite or link to this publication: http://hdl.handle.net/1926/272 |
Published in The Insight Journal - 2006 July - December.
Submitted by Dan Mueller on 12-04-2006.
This article presents an approach for decreasing the computational time for converting a sparse SpatialObject to an Image. The method is applicable for SpatialObjects which occupy less volume than the total output Image (which occurs often, especially when using TubeSpatialObjects to represent vessels). A new filter MaskedSpatialObjectToImageFilter is introduced which dramatically decreases the execution time by creating a mask of relevant pixels. The mask is computed by calling the conventional SpatialObjectToImageFilter at a lower resolution, which is significantly faster for large images. The mask is then up-sampled to control which areas are further processed.
Data
Code
Automatic Testing Results
by Insight-Journal Dashboard
on Fri Aug 18 17:36:58 2006 for revision #5 



expertise: 5 sensitivity: 4.6 Click here for more details.
Go here to access the main testing dashboard.
Automatic Testing Results
by Insight-Journal Dashboard
on Fri Aug 18 17:07:41 2006 for revision #4 



expertise: 5 sensitivity: 5
Automatic Testing Results
by Insight-Journal Dashboard
on Fri Aug 18 16:58:40 2006 for revision #3 



expertise: 5 sensitivity: 5
Automatic Testing Results
by Insight-Journal Dashboard
on Fri Aug 18 16:04:53 2006 for revision #2 



expertise: 5 sensitivity: 4.5
Automatic Testing Results
by Insight-Journal Dashboard
on Fri Aug 18 15:27:42 2006 for revision #1 



expertise: 5 sensitivity: 5 Reviews
Optimized rendering of SpatialObjects to Images
by Gavin Baker on 10-30-2006 for revision #5 



expertise: 4 sensitivity: 4.6
Summary:
Hypothesis:
Evidence:
Describes a filter that reduces the time required to render a SpatialObject into an Image by precomputing a mask (which is a low-resolution rendering of the SpatialObject). This avoids processing sparse data during rendering where most SpatialObjects will not encompass the entire volume.
Hypothesis:
This method assumes that the bounding box of an individual SpatialObject is considerably smaller than the entire volume of the Image, which holds probably a great majority of the time.
The hypothesis is that by precomputing an image mask, the rendering of the spatial object can be reduced to the size of the mask and thus avoid procsesing the empty areas of the volume. Further that the cost of rendering the low-resolution version to generate the mask is significantly less than the time saved once the masked area is processed at full resolution.
Evidence:
The approach is evaluated on four test data sets, two generated and two realistic volumes. The resolution and spacing of the "toy" test data were low resolution isotropic cubes, while the real data was anisotropic (an important test). Timings were taken and reported as the mean of 5 runs. Evidence shows that the approach runs significantly faster than without the precomputed mask. The timing is presented as a bar chart, and no numeric results are provided, nor is the speedup factor calculated (apart from a mention of "an order of magnitude"). According to the timing results on the dashboard, the speedup factor is:
Toy1: 1.2
Open Science:
Reproducibility:
Use of Open Source Software:
Open Source Contributions:
Code Quality:
Applicability to other problems:
Suggestions for future work:
Requests for additional information from authors:
The resolution of the problem evaluating at the origin (as mentioned in another review). Have you since tested this on other types of SpatialObjects (since only tubular SOs were evaluated)?
Additional Comments:
It would have been interesting to see more discussion of what kinds of SpatialObjects would benefit from such an approach, or what circumstances (eg. Toy1) would lead to negligible gain (or even a slowdown in a degenerate case).
Toy2: 6.9
Real1: 10.4
Real2: 16.3
The claim of an order of magnitude speedup is supported by these two real cases, which is reasonably convincing. In this reviewer's experience, since the main assumption holds in so many cases, and the speedup (versus the cost of computing the entire volume) so significant, the improvement is expected to be broadly applicable.
Open Science:
Full source code, in the style of ITK, is provided. Input and output data, test scripts (which run successfully on the ITK Dashboard) are provided. The entire approach is open and reproducible.
Reproducibility:
I downloaded and inspected the code, and reviewed the results via the ITK dashboard. (I was unable to build and test due to time constraints, as I did not have the required/latest version of ITK installed.) All information was provided to enable reproducibility.
Use of Open Source Software:
This builds on the SpatialObject framework of ITK, and is completely FLOSS. There is little discussion on the authors' experience or pros+cons with this approach.
Open Source Contributions:
The complete source is provided, conforms to all relevant guidelines, and would be immediately useable.
Code Quality:
The code was clear, and seems to be portable (not verified, but there are no obvious signs of non-portableness).
Applicability to other problems:
This approach should be applicable to any type of spatial object, and is thus very general.
Suggestions for future work:
It would be interesting to see this evaluated on more complex vascular systems (or hierarchical SpatialObject configurations), to see where the breakeven point lies (though I strongly suspect it would only improve).
I developed a simple technique for rendering SpatialObjects in sparse images that uses bounding boxes to optimize the rendering, which is vaguely similar to this paper. However, not all SpatialObjects seem to support calculating the bounding box, so this is not always an option. But given the (usually) negligible cost of computing a bounding box versus rendering a low-res mask and dilating it, it would be interesting to compare the above with bounding boxes (which should be even faster in many cases).
Requests for additional information from authors:
The resolution of the problem evaluating at the origin (as mentioned in another review). Have you since tested this on other types of SpatialObjects (since only tubular SOs were evaluated)?
More information on the interaction betweeen the low resolution, the scale of the dilation mask and the accuracy of the upsampled mask would be very interesting.
Additional Comments:
It would have been interesting to see more discussion of what kinds of SpatialObjects would benefit from such an approach, or what circumstances (eg. Toy1) would lead to negligible gain (or even a slowdown in a degenerate case).
A table of timings would be nice, as the chart does not allow easy estimation of actual values.
Overall, a nice piece of work that makes a clear contribution and significantly improves the SpatialObject framework in a general way. Definitely needs to be integrated into the toolkit (and maybe made into an optional part of the SpatialObjectToImager enderer).
Computationally efficient SpatialOject to Image Conversion
by Hans Johnson on 10-10-2006 for revision #5 



expertise: 2 sensitivity: 3.4
Summary:
A heuristic method is presented that converts SpatialObjects into image masks. It is shown that the by downsampling and using a mask that significant time savings can be acheived for
fast conversions.
Hypothesis:
Converting from SpatialObjects to image binary representations is an important and time critical task. By downsampling and masking a smaller area of interest, much of the un-interesting
part of the image do not need to be accessed or analyzed.
Evidence:
Several synthetic and real world examples were given to demonstrate that the proposed algorithm performs much faster than the existing SpatialObject to image conversion algorithms.
Open Science:
The source code, data, and scripts necessary to replicate the findings are available.
Reproducibility:
I did not complie and run the source code, but I did review the automated dashboard builds.
Use of Open Source Software:
ITK software coding paradigms were used, and a description of how to integrate with existing code base was given. Additional information regarding modification of existing code base
could better support integration of the new methods was also discussed.
Open Source Contributions:
Yes.
Code Quality:
The code is well documented, and conforms to the ITK coding standards.
Applicability to other problems:
This is a specialized function that is only intended for this single purpose. The concept of reducing scale size for efficient computation is common in many image processing applications.
Suggestions for future work:
The documentation demonstrates that the algorithm is much faster, but also alludes to the fact that the results are "nearly identical". It would be nice to have a classification of where the
types of problems were this algorithm is appropriate, and where it would be necessary to expend the extra computational time to get an exact result. How does the MaskDilationSize affect
the speed and accuracy?
It seems to me that even a very large MaskDilationSize may not produce an accurate result compared to the original implementation. Is this correct?
A heuristic method is presented that converts SpatialObjects into image masks. It is shown that the by downsampling and using a mask that significant time savings can be acheived for
fast conversions.
Hypothesis:
Converting from SpatialObjects to image binary representations is an important and time critical task. By downsampling and masking a smaller area of interest, much of the un-interesting
part of the image do not need to be accessed or analyzed.
Evidence:
Several synthetic and real world examples were given to demonstrate that the proposed algorithm performs much faster than the existing SpatialObject to image conversion algorithms.
Open Science:
The source code, data, and scripts necessary to replicate the findings are available.
Reproducibility:
I did not complie and run the source code, but I did review the automated dashboard builds.
Use of Open Source Software:
ITK software coding paradigms were used, and a description of how to integrate with existing code base was given. Additional information regarding modification of existing code base
could better support integration of the new methods was also discussed.
Open Source Contributions:
Yes.
Code Quality:
The code is well documented, and conforms to the ITK coding standards.
Applicability to other problems:
This is a specialized function that is only intended for this single purpose. The concept of reducing scale size for efficient computation is common in many image processing applications.
Suggestions for future work:
The documentation demonstrates that the algorithm is much faster, but also alludes to the fact that the results are "nearly identical". It would be nice to have a classification of where the
types of problems were this algorithm is appropriate, and where it would be necessary to expend the extra computational time to get an exact result. How does the MaskDilationSize affect
the speed and accuracy?
It seems to me that even a very large MaskDilationSize may not produce an accurate result compared to the original implementation. Is this correct?
Faster filter for conversion of sparse ITK spatial objects to images
by Ivo Wolf on 08-25-2006 for revision #5 



expertise: 4 sensitivity: 4.6
Summary:
A new filter for faster conversion of sparse itk::SpatialObjects to itk::Image is presented. First, a mask covering the relevant (non-zero) parts of the spatial object is computed at a low resolution; the sampling at the full resolution of the image is then done within the masked region only.
Evidence:
Results of the speed-up are presented for artificial and real-world examples.
Open Science:
Images, source code and test programs are included in the package.
Reproducibility:
Did you reproduce the authorsâ work? Yes.
Did you download their code? Did you compile it? Did you run it? Yes.
Did you managed to get the same results that they reported? Yes, except I did not try to verify the time measurements.
Use of Open Source Software:
ITK is used.
Open Source Contributions:
Do the authorâs provide their source code? Yes.
Is it in a form that is usable? Yes.
Do they describe clearly how to use of the code? Yes.
How long did it take you to use that code? It is very easy to use, since the filter is a replacement of itk::SpatialObjectToImageFilter with a few additional parameters (e.g., size of the mask).
Code Quality:
The code is well documented, multi-platform, and written in ITK style.
Additional Comments:
Due to a configuration problem (which was obviously my fault) I found a minor issue in the tests: argv[XXX] is used with XXX up to 10 before a check whether that much parameters are provided (abort if argc < XXX+1). Of course, it should be the other way round.
A new filter for faster conversion of sparse itk::SpatialObjects to itk::Image is presented. First, a mask covering the relevant (non-zero) parts of the spatial object is computed at a low resolution; the sampling at the full resolution of the image is then done within the masked region only.
Evidence:
Results of the speed-up are presented for artificial and real-world examples.
Open Science:
Images, source code and test programs are included in the package.
Reproducibility:
Did you reproduce the authorsâ work? Yes.
Did you download their code? Did you compile it? Did you run it? Yes.
Did you managed to get the same results that they reported? Yes, except I did not try to verify the time measurements.
Use of Open Source Software:
ITK is used.
Open Source Contributions:
Do the authorâs provide their source code? Yes.
Is it in a form that is usable? Yes.
Do they describe clearly how to use of the code? Yes.
How long did it take you to use that code? It is very easy to use, since the filter is a replacement of itk::SpatialObjectToImageFilter with a few additional parameters (e.g., size of the mask).
Code Quality:
The code is well documented, multi-platform, and written in ITK style.
Additional Comments:
Due to a configuration problem (which was obviously my fault) I found a minor issue in the tests: argv[XXX] is used with XXX up to 10 before a check whether that much parameters are provided (abort if argc < XXX+1). Of course, it should be the other way round.
The
by Zheen Zhao on 08-22-2006 for revision #5 



expertise: 3 sensitivity: 4.6
Summary:
This paper proposed a filter to reduce the computational time to convert spatial objects to an image.
Hypothesis:
Not applicable.
Evidence:
Not applicable.
Open Science:
Do the authors provide the source code of the programs used in their experiments? Yes.
Do the authors provide the input images that they used? Yes.
Or are those images publicly available? Yes.
Do the authors provide the output images that they show in the paper? Yes.
Do the authors provide enough details for you to be able to replicate their work? Yes
Reproducibility:
Did you download their code? Did you compile it? Did you run it? Yes.
Were there information missing from the paper, that was necessary for you to reproduce the work? Yes.
Use of Open Source Software:
ITK
Open Source Contributions:
Do the authorâs provide their source code? Yes
Is it in a form that is usable? Yes
Do they describe clearly how to use of the code? Yes
How long did it take you to use that code? a moment
Code Quality:
If the authors provided their source code: Was the code easy to read? Yes
Did they use a modern coding style? Yes
This paper proposed a filter to reduce the computational time to convert spatial objects to an image.
Hypothesis:
Not applicable.
Evidence:
Not applicable.
Open Science:
Do the authors provide the source code of the programs used in their experiments? Yes.
Do the authors provide the input images that they used? Yes.
Or are those images publicly available? Yes.
Do the authors provide the output images that they show in the paper? Yes.
Do the authors provide enough details for you to be able to replicate their work? Yes
Reproducibility:
Did you download their code? Did you compile it? Did you run it? Yes.
Were there information missing from the paper, that was necessary for you to reproduce the work? Yes.
Use of Open Source Software:
ITK
Open Source Contributions:
Do the authorâs provide their source code? Yes
Is it in a form that is usable? Yes
Do they describe clearly how to use of the code? Yes
How long did it take you to use that code? a moment
Code Quality:
If the authors provided their source code: Was the code easy to read? Yes
Did they use a modern coding style? Yes
Test
by Schmid Jerome on 07-24-2006 for revision #2 



expertise: 4 sensitivity: 4.5 Quick Comments
Resources
| Download Package | |
| Download Paper, View Paper | |
Statistics more
| Global rating: | ![]() ![]() ![]() ![]()
|
| Review rating: | ![]() ![]() ![]() ![]() [review]
|
| Code rating: | ![]() ![]() ![]() ![]()
|
| Paper Quality: |
|
Information more
| Keywords: | ITK, SpatialObject, Image, convert, fast, speed, time, |
| Toolkit: | ITK |
| Export citation: | |
Share
Associated Publications more
| A Framework for Algorithm Evaluation and Clinical Application Prototyping using ITK | ||
View license
Loading license...
Send a message to the author

