[Insight-developers] GaussianFilter::NormalizeAcrossScale not good for scale space analysis
Luis Ibanez
luis.ibanez at kitware.com
Tue Nov 23 10:55:37 EST 2010
Brad,
On Fri, Nov 19, 2010 at 10:44 AM, Bradley Lowekamp
<blowekamp at mail.nih.gov>wrote:
> 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
> <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.
>
>
When the filter is applying derivatives,
it must take spacing into account.
Can you please point to the line of code
that you think is performing an incorrect
computation ?
> 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/20101123/6931a901/attachment-0001.htm>
More information about the Insight-developers
mailing list