[Insight-users] itkStreamingImageFilter with itkHessianSmoothed3DToVesselnessMeasureImageFilter
Iván Macía
imacia at vicomtech.org
Tue Nov 4 05:42:47 EST 2008
Dear all,
I have been out of the office the whole month (honeymoon ;) ) so i could not
follow the conversation. This last week I have been in touch with Dan so he
could move the contribution to the Review directory.
I just wanted to know if someone has made any test to see if the problems
with the derivatives and Hessian calculation have been fixed after latest
changes and results are coherent. As I commented to Moti thanks to his
comments I found a bug in the Hessian calculation.
Could someone also test the performance? It is obvious that the recursive
Gaussian should be faster but takes a lot of memory and when calculating
only a few points the discrete approach should be better. Calculation times
depend also considerably on the size of the kernel but this affects also the
precision. A trade-off would be the right choice.
Thanks for your help
Ivan
-----Mensaje original-----
De: Karthik Krishnan [mailto:karthik.krishnan at kitware.com]
Enviado el: lunes, 13 de octubre de 2008 15:07
Para: Dan Mueller
CC: Moti Freiman; insight-users at itk.org; Iván Macía
Asunto: Re: [Insight-users] itkStreamingImageFilter with
itkHessianSmoothed3DToVesselnessMeasureImageFilter
Dan Mueller wrote:
> Hi Karthik, Moti, others,
>
> Out of interest, I am in the process of transferring Ivan's
> contribution to the ITK Review folder: I already have the filters and
> some tests in my local copy, I just have to add a few more tests. I
> expect to commit the files by week's end.
>
Perfect. Thanks a lot Dan. This is very helpful.
Moti: I guess when the filter is in, you could re-run the test code
you've mailed about, testing Ivan's Hessian operator, to verify that the
first two eigen values are indeed equal and negative and the third eigen
value is nearly 0 (for bright cylindrical objects in a dark background).
Thanks again.
--
karthik
> Regards, Dan
>
> 2008/10/12 Karthik Krishnan <karthik.krishnan at kitware.com>:
>
>> Moti:
>>
>> Yes, you can make the hessian filters in ITK streamable. It has been on
>> my TODO list, since I have a need to detect needles in CT in realtime,
>> for which I'd like to do a localized hessian analysis, which I cannot
>> do with the existing framework.
>>
>> The Hessian filter in ITK, uses the RecursiveGaussianFilter to compute
>> scale-space derivatives (see Deriche). This is fast, however its an IIR
>> approximation of the gaussian and cannot be streamed.
>>
>> ITK provides a discrete gaussian operator for smoothing, (approximated
>> from weighted sums of bessel functions). This is used in the
>> DiscreteGaussianImageFilter. These are streamable.
>>
>> Ivan Macia, (see contribution on Insight-journal below [1]) has very
>> nicely provided implementation of operators for
>>
>> * Local gaussian derivatives using the discrete gaussian
>> * Local hessian using the above
>>
>> They are provided both in the form of operators and image functions,
>> which you can quite trivially wrap into filters. These filters should
>> be streamable.
>>
>> Unfortunately, the RecursiveGaussian has been used as the
>> building block for most filters in ITK, so at some point, I would
>> envision having duplicate filters using these.
>>
>> ------
>> [1] http://www.insight-journal.org/browse/publication/179
>> "Generalized Computation of Gaussian Derivatives Using ITK", Ivan
>> Macia, VICOMTech.
>>
>>
>> Thanks
>> --
>> Karthik Krishnan
>> R&D Engineer,
>> Kitware Inc.
>> Ph: 518 371 3971 x119
>> Fax: 518 371 3971
>>
>>
>> On Sun, Oct 12, 2008 at 1:55 AM, Moti Freiman <freiman at cs.huji.ac.il>
wrote:
>>
>>> Hi Luis,
>>> Thanks for your detailed answer.
>>> According to your answer, the Hessian filter itself is not streamable,
>>> However, the main cause for memory insufficient is this filter,
>>> since it produces images that are 6-times (in 3D) larger than the
original
>>> file.
>>> If I'm right, streaming the EigenAnalysisFilter and the vesselness will
not
>>> solve the problem of large files. ?
>>> Moti
>>>
>>> On Mon, Oct 6, 2008 at 3:34 PM, Luis Ibanez <luis.ibanez at kitware.com>
wrote:
>>>
>>>> Hi Moti,
>>>>
>>>> Looking at the code of this filter, the piece that looks suspicious is
>>>> the internal use of the Symmetric Eigen Analysis filter.
>>>>
>>>> Both of these filters should be able to stream data, but, in the way
>>>> they are nested, the EigenAnalysys filter may be trying to update the
>>>> entire image unnecessarily.
>>>>
>>>> Please try the following:
>>>>
>>>> 1) Remove the EigenAnalysisFilter from inside the
>>>> itkHessianSmoothed3DToVesselnessMeasureImageFilter
>>>>
>>>> 2) create a sequential pipeline where you connect:
>>>>
>>>> Hessian --> Symm.EigenAnalysis --> VesselnessFilter
>>>>
>>>> The Hessian filter itself is not streamable, but the
>>>> Symm.EigenAnalysis and the Vesselness ones, are both
>>>> pixel-wise filter, and they should be streamable.
>>>>
>>>>
>>>> Please let us know if you encounter any problem.
>>>>
>>>> BTW: Once we sort this out, it will be great if you
>>>> could add the conclusions of your observations
>>>> as a review to this paper, and if you found it
>>>> useful, we could try moving this contribution
>>>> to the Review directory, in order to include it
>>>> with the upcoming release of ITK 3.10.
>>>>
>>>>
>>>> Regards,
>>>>
>>>>
>>>> Luis
>>>>
>>>>
>>>> ---------------------
>>>> Moti Freiman wrote:
>>>>
>>>>> Hi,
>>>>> I want to compute a vesselness measure on a large CT volume
(512*512*512,
>>>>> 16bit per voxel) using the
>>>>> itkHessianSmoothed3DToVesselnessMeasureImageFilter
>>>>> published in the InsightJournal
>>>>> (http://www.insight-journal.org/browse/publication/163).
>>>>> Since my machine memory is limited I tried to use the
>>>>> itkStreamingImageFilter to divide the computation for several small
parts
>>>>> which do not require so much memory, and then merge them.
>>>>> However it seems that the streaming filter do not divide the
computation
>>>>> using the itkHessianSmoothed3DToVesselnessMeasureImageFilter.
>>>>> Any reason, idea?
>>>>> Thanks,
>>>>> Moti
>>>>> --
>>>>> __
>>>>> Moti Freiman, Ph.D Student.
>>>>> Medical Image Processing and Computer-Assisted Surgery Laboratory.
>>>>> School of Computer Science and Engineering.
>>>>> The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
>>>>> Phone: +(972)-2-658-5371 (laboratory)
>>>>> WWW site: http://www.cs.huji.ac.il/~freiman
>>>>>
>>>>>
>>>>>
------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> Insight-users mailing list
>>>>> Insight-users at itk.org
>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>
>>>
>>> --
>>> __
>>> Moti Freiman, Ph.D Student.
>>> Medical Image Processing and Computer-Assisted Surgery Laboratory.
>>> School of Computer Science and Engineering.
>>> The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
>>> Phone: +(972)-2-658-5371 (laboratory)
>>> WWW site: http://www.cs.huji.ac.il/~freiman
>>>
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>>
>>
>> --
>> Karthik Krishnan
>> R&D Engineer,
>> Kitware Inc.
>> Ph: 518 371 3971 x119
>> Fax: 518 371 3971
>> _______________________________________________
>> Insight-users mailing list
>> Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
--
Karthik Krishnan
R & D Engineer,
Kitware Inc,
Ph: 518 371 3971 x119
Fax: 518 371 3971
More information about the Insight-users
mailing list