[Insight-users] I need help on tuning Laplacian Level Set Segmentation (LaplacianSegmentationLevelSetImageFilter.cxx)

John Drozd john.drozd at gmail.com
Thu Feb 3 21:34:21 EST 2011


Hi Dawood,

Thank you very much. Your advice is very helpful.

Take care,
John

On Thursday, February 3, 2011, Dawood Masslawi <masslawi at gmail.com> wrote:
> Hi John,
> I don't think performing the diffusion filter twice would be the
> source of the problem unless if its parameter settings would be
> extremely out of proportion.
> For better convergence it is best to have a good initial estimation
> of the level set as a seed image. Larger number of iterations alone
> does not guarantee the convergence.
> Basically using the diffusion filter improves the quality of the
> segmentation, however over-diffusing the images can cause loss of
> details.
> You can use the
>  resulting image (SpeedImage.mha) to determine that
> to what extent you want to diffuse the input image. Increasing the
> number of diffusion iterations and lower values for the conductance
> will give a more diffused image.
> Propagation weight determines the relative amount emphasis on
> the propagation speed and with higher values results in narrower
> surfaces, opposing to the curvature weight (curvature scaling) which
> with higher values gains smoother surfaces.
> The isovalue I think is best to be assigned as halfway between the
> maximum and minimum values in the seed image.
> Also, Premature elimination might be the result of the low maximum
> allowed
>  RMS.
> As for number of iterations for both diffusion and segmentation after
> couple of tries and assigning different values you should be able to
> find the best fit for your application.
> Best regards,
> Dawood
>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>
> Hi again,
>
>>
>> I have made some progress on my own by randomly selecting an isovalue of
>> 0.5.  Now my level set segmentation is no longer pitted, but it has the same
>> volume in mm^3 as the initially inputted fuzzy connectedness segmentation.
>> It only performed one iteration and the RMS change was 0.0014962.  The
>> maximum RMS error was set to 0.002 and the maximum number of iterations was
>> set to 100. The number of diffusion iterations was set to 10, the diffusion
>> conductance was set to 2.0, the propagation weight was set to 1.0, the
>> initial model isovalue was set to 0.5, and the maximum number of iterations
>> was set to 100.
>>
>> Any further advice is welcome.
>>
>>
> Thanks,
>>
>
>
>> John
>>
>
>
>> On Thu, Feb 3, 2011 at 12:11 PM, John Drozd <john.drozd at gmail.com <http://www.itk.org/mailman/listinfo/insight-users>> wrote:
>>
>>> Hello,
>>> I have performed a reasonable fuzzy connectedness segmentation (that I
>>> modified to use multiple seeds) of lateral human brain ventricles in an MRI
>>> brain image of a mildly cognitive impaired person that I obtained from the
>>> ADNI database.
>>> Prior to performing the fuzzy connectedness segmentation, I smoothed the
>>> noise and enhanced the edges using an Anisotropic Diffusion filter.
>>> I am trying to use this fuzzy connectedness segmentation as my initial
>>> level set for a level set segmentation but when performing a Laplacian Level
>>> Set segmentation, I get a pitted volume.
>>> I think the following are my problems.
>>> 1) When I load the label map from the fuzzy connectedness segmentation
>>> into 3D Slicer to view it, I get Fg: None and Bg: 1 for the segmented
>>> volume, and Fg: None and Bg: 0 for the black area that surrounds the
>>> ventricles.  I think that I am setting my foreground and background values
>>> incorrectly. I feel this is a problem because I need to specify an isovalue
>>> midway between the foreground and background values.  I can send you my
>>> fuzzy connectedness and Laplacian level set segmentation code if this would
>>> help you be able to help me.  Also, the laplacian level set segmentation
>>> performs anisotropic diffusion. Because I perform this prior to my fuzzy
>>> connectedness segmentation, I am essentially performing anisotropic
>>> diffusion twice.  Could this be a problem?
>>> 2) Also, how do you run the level set segmentation to go to convergence.
>>> Do you just input a large maximum number of iterations?
>>> 3) Also how can I use the outputted "speedImage.mha" figure to help me
>>> tune my parameters for "DiffusionIterations", "DiffusionConductance",
>>> "PropagationWeight", "InitialModelIsovalue" and "MaximumIterations".  I can
>>> send you the speed image as well.
>>> 4) Also, the level set segmentation only performs 1 iteration eventhough I
>>> specified a maximum 100 iterations.  Should I use a smaller RMS error than
>>> 0.002?
>>>
>>> Any help would be appreciated.
>>>
>>> Thanks for your time,
>>>
>>> John
>>>
>>> --
>>> John Drozd
>>> Post-Doctoral Fellow, Robarts Research Institute
>>> The University of Western Ontario
>>> London, ON, Canada
>>>
>

-- 
John Drozd
Post-Doctoral Fellow, Robarts Research Institute
The University of Western Ontario
London, ON, Canada


More information about the Insight-users mailing list