Generalized Computation of Gaussian Derivatives Using ITK
MacĂ­a I.
VICOMTech

Please use this identifier to cite or link to this publication: http://hdl.handle.net/1926/1290
Computation of local image derivatives is an important operation in many image processing tasks that
involve feature detection and extraction, such as edges, corners or more complicated features. However,
derivative computation in discrete images is an ill-posed problem and derivative operators without
any prior smoothing are known to enhance noise. Here we present a new convolution operator, the
GaussianDerivativeOperator, that allows to calculate locally Gaussian derivatives of N order. Furthermore,
we present some useful classes and examples that make use of this new operator.
Data
minus 4 Files (896Kb)
Code
minus Automatic Testing Results by Insight-Journal Dashboard on Tue Apr 22 13:46:35 2008 for revision #5
starstarstarstarstar expertise: 5 sensitivity: 3.3
yellow This project had trouble building: 4 errors, 0 warnings
Click here for more details.

Go here to access the main testing dashboard.
plus Automatic Testing Results by Insight-Journal Dashboard on Tue Apr 22 13:15:22 2008 for revision #4
starstarstarstarstar expertise: 5 sensitivity: 5
plus Automatic Testing Results by Insight-Journal Dashboard on Mon Oct 8 05:40:34 2007 for revision #2
starstarstarstarstar expertise: 5 sensitivity: 5
plus Automatic Testing Results by Insight-Journal Dashboard on Fri Oct 5 06:06:09 2007 for revision #1
starstarstarstarstar expertise: 5 sensitivity: 5

Reviews
minus Excellent contribution, merge to ITK now by Dan Mueller on 2008-09-19 00:34:51 for revision #5
starstarstarstarstar expertise: 3 sensitivity: 4.7
yellow
Summary:

This paper clearly highlights the current deficiences of Gaussian derivative operator support in ITK, and then delivers solutions to fill the existing gaps. The main contribution is an N-D, N-order Gaussian derivative operator. From this other (extremely useful) filters are derived.

Hypothesis:

Discrete Gaussian derivatives can be computed in one of two ways: analytical or convolution. The author's hypothesis is that the analytical approach has increased accuracy and speed for large sigma. However the kernel in the analytical approach takes longer to set up.

Evidence:

Figure 2 (c)-(d) shows that for large sigma (sigma=5.0) the convolution approach becomes unstable. There are no results supporting the speed claims. A batch file is included with the source to generate the coefficients given in the figures. Running the batch file on Windows XP, source compiled with ITK 3.8, CMake 2.4.7 causes a number of "Debug Assertion Failures" for the following:


GaussianDerivativeOperatorCoefficients GaussianOp_O5_s2_0_err0_005.txt 5 2.0 0 0.005


GaussianDerivativeOperatorCoefficients GaussianOp_O5_s2_0_err0_02.txt 5 2.0 0 0.02


GaussianDerivativeOperatorCoefficients GaussianOp_O5_s5_0_err0_005.txt 5 5.0 0 0.005


GaussianDerivativeOperatorCoefficients GaussianOp_O5_s5_0_err0_02.txt 5 5.0 0 0.02


Despite these errors, the coefficients used in the figures seem to have been generated as reported.

Open Science:

The source code, tests, base-line images, and batch files to generate coefficients given in the figures are all provided. The author makes it very easy to reproduce the work.

Reproducibility:

I downloaded, compiled and ran the code. I obtained many of the results given in the paper. I did some free-form experimentation with some of the filters derived from the base itk::GaussianDerivativeOperator (mainly the itk::DiscreteHessianGaussianImageFunction). As previously described, I had some troubles running the batch files to generate the coefficients, however ignoring them seemed to produce the reported results.

Interest:

The n-D Hessian image function will be of great interest to a wide variety of image processing specialists, especially medical imaging specialists using Hessian-based vesselness filters. As such, the source code should be included in ITK post-haste.

Free comment :

Clear and concise, high quality contribution. I want it in ITK!

Add a comment
minus Accurate and efficient computation of derivatives by Xabier Artaechevarria on 04-11-2008 for revision #5
starstarstarstarstar expertise: 3 sensitivity: 3.7
yellow

Summary:

The author addresses the problem of locally calculating Gaussian derivatives of order N. A separable discrete Gaussian derivative kernel is used to compute the derivatives. Compared to the available filters in ITK, the proposed filters do not require the whole input image to compute the derivatives at a certain point.

Hypothesis:
"Non Applicable"


Evidence:

Figures are shown in which Gaussian derivative kernels calculated analytically and by convolution are compared, for different values of s and maximum error.

Gaussian derivatives up to order 5 of the 2D Gaussian function are also shown.

Open Science:

The work adheres to the concept of Open Science. Images to reproduce the results, as well as the code, are available.

Reproducibility:

I reproduced only part of the work. I had a problem compiling but it is due to a bug in ITK, which is solved in the current CVS version. It can be solved by changing the line

this->ConvertPointToContinuousIndex( point, cindex );

to

this->ConvertPointToContinousIndex( point, cindex );

in itkDiscreteHessianGaussianImageFunction.txx

 

Use of Open Source Software:


The author makes use of ITK. It mentions the advantages and disadvantages of the methods to compute derivatives.

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. The examples could be commented in more detail.

How long did it take you to use that code?

One day.


Code Quality:
If the authors provided their source code: Was the code easy to read?

Yes

Did they use a modern coding style?

Yes

Was it suitable for multiple-platforms?

Yes


Applicability to other problems:
[Do you find that the authors methods can be applied to other image analysis problems? Suggest other disciplines or even other specific projects that could take advantage of this work]

The computation of eigenvalues of the hessian matrix has multiple applications in medical image analysis.

Suggestions for future work:

Some example in which the eigenvalue computation is applied to the extraction of vessels or fissures in the lungs would be interesting (method by Rafael Wienker et al.)

.
Requests for additional information from authors:

Additional Comments:
I find this contribution very useful because it allows for the computation of the hessian of an image at certain voxel with limited memory requirement, compared to the class available now in ITK.

 

Add a comment
Add a new review

Global rating: starstarstarstarstar
Review rating: starstarstarstarstar [review]
Code rating: starstarstarstarstar
Views: 2610
Downloads: 865

Paper Id: 179
Keywords: Gaussian derivatives, scale-space, kernel,
Toolkit: ITK, CMake
Revision: 5 (03-26-2008)
Status: Open for public review


Full download: .zip
Paper: view, .pdf


Share:
Facebook Digg del.icio.us StumbleUpon description Furl Ma.gnolia Technorati Reddit

Send a message to the author
main_flat
main_bottom
Powered by Midas