[Insight-developers] GaussianFilter::NormalizeAcrossScale not good for scale space analysis
Bradley Lowekamp
blowekamp at mail.nih.gov
Fri Nov 19 10:44:11 EST 2010
Jim,
The bug report I reference below is the one I believe you are referring too:
http://public.kitware.com/Bug/view.php?id=10599
git show 49e7362fc295033e5e6594b1325a5c7997d9bb95 -- Code/BasicFilters/itkHessianRecursiveGaussianImageFilter.txx
The solution just fixed the Hessian filters so that each second order derivative were scaled by t ( sigma^2) not sigma^3. However, this solution just fixed this one filter, and was incomplete because I have also discovered that the Recursive filter incorrectly applies scaling by the pixel spacing also.
I have placed my proposed solution in my github account:
https://github.com/blowekamp/ITK/commit/f455508a90d6ac6bd2b5e6b08d1b5e7f13f56a60
This would make the current code in the Laplacian, Gradient, Gradient magnitude filters correct for normalized scale-space analysis ( and the original code of the Hessian filter ). These are the algorithms which analyze different level of scale-scale to find local extrema.
I spent much of yesterday pushing a pencil computing theoretical values of a Laplacian of a Gaussian convolved with a Gaussian blob over the general n-Dimensions. And with these corrections everything lined up correctly and was happy. That is the value of maximal, was maintained with changing of the size of the blob, and changing of the image spacing, i.e. it was correctly normalized across scale. I intent to create a 1-D example that verifies these solution, as my current test depends on my blob detector.
This is the normalization I am constantly seeing in the literature. I very much would like to know if there is any reasoning for the current normalization, because I can't find it myself.
Brad
On Nov 19, 2010, at 9:16 AM, Jim Miller wrote:
> Luca,
>
> Is this the same bug you mentioned to me in Rotterdam? You had patched something related to scale space and Hessian calculations shortly after our discussion.
>
> Jim
>
>
> On Nov 17, 2010, at 11:19 AM, Bradley Lowekamp wrote:
>
>> Hello,
>>
>> I can not find that rational for the scaling factors applied to the gaussian filter when NormalizeAcrossScale is enabled:
>> http://www.itk.org/Doxygen/html/classitk_1_1RecursiveGaussianImageFilter.html#a042f38140c124e1f4a9b0461ef720982
>>
>> Is there a reference for the logic and motivation for this scaling?
>>
>> I have been working on a multi-scale laplacian blob detector, so this scaling is critical for this to be working correctly. However for a 3D Laplacian, the normalization does not match any know rational I can find. Specifically for the 3D case the laplacian is normalized with sigma^3 not sigma^2. ( Side Note: standard scale space notation of L(x;t) where t=sigma^2, would indicate that the normalized laplacian = t(L_xx+L_yy+L_zz) )
>>
>>
>> From my recent readings there is a "natural coordinates" or "dimensionless spatial units" which are frequently used for this analysis. The conclusion I reach from this analysis is that the correct scaling factor should be sigma^n where n is the order of the differentiating for the separated convolutions. ( Not the current constant sigma ).
>>
>> This issue was also noticed with the Hessian filter:
>> http://public.kitware.com/Bug/view.php?id=10599
>>
>> However the solution was filter specific:
>> git show 49e7362fc295033e5e6594b1325a5c7997d9bb95 -- Code/BasicFilters/itkHessianRecursiveGaussianImageFilter.txx
>>
>> I see two solutions:
>>
>> 1 ) Change RecursiveGaissianImageFilter to scale according to sigma^n. This is my preferred solution as I believe it's correct.
>>
>> 2) Hack the set of Recursive Gaussian Filter to perform the correct scaling for their specific operation and not use RecursiveGaissianImageFilter::NormalizeAcrossScale.
>>
>>
>> Any thoughts on this issue?
>>
>> Brad
>>
>> BTW: I have been reading "Scale-Space Theory in Computer Vision" by Tony Lindeberg as my main reference.
>>
>> ========================================================
>> Bradley Lowekamp
>> Lockheed Martin Contractor for
>> Office of High Performance Computing and Communications
>> National Library of Medicine
>> blowekamp at mail.nih.gov
>>
>>
>
> Jim Miller
> Senior Scientist
> GE Research
> Interventional and Therapy
>
> GE imagination at work
>
========================================================
Bradley Lowekamp
Lockheed Martin Contractor for
Office of High Performance Computing and Communications
National Library of Medicine
blowekamp at mail.nih.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20101119/3a7808bd/attachment.htm>
More information about the Insight-developers
mailing list