[Insight-developers] Re: Replication of Validation Study
Hans Johnson
hans-johnson@uiowa.edu
Tue, 01 Apr 2003 14:03:08 -0600
Lydia,
Thank you for your comments. I have done some refactoring of your code
to break it's dependance on the IBSR data set. I believe that this code
is much more useful to the general public, because it does not depend on
the inputs having specific names and directory structures. I would
like to contribute this to ITK, but I don't know where to put it, or how
to properly give credit to you for the work.
Do you have any suggestions?
Thanks,
Hans
Lydia Ng wrote:
> Hi Hans,
>
>
>>---------------------------------------------------------------------
>>1) What does the ReinitializeLevelSetImageFilter<RealImageType> do?
>>(m_AtlasLabelImage-->Threasholder-->ReinitializeLevelSetImageFilter--
>>
>>>Warper)
>>
>
> Instead of warping the binary image directly, I warp a signed distance
> map of the distance away from the edges of the labeled structure. The
> method was recommended to me as you get a better more stable warping. A
> similar method is used in [6] for shape based interpolation.
>
>
>>2) Do you have any suggestions on how to get around this problem?
>>
>
>
> How about breaking up the pipeline? For example, do an update after the
> reinitilaizer, keep a point to the signed distance image and clean up
> all upstream filters and intermediate images?
>
> You could also try if ProcessObject::ReleaseDataFlagOn() does what is
> suppose to? :-)
>
> Cheers,
> Lydia
>
>
>>-----Original Message-----
>>From: Hans Johnson [mailto:hjohnson@mail.psychiatry.uiowa.edu]
>>Sent: Monday, March 31, 2003 9:29 AM
>>To: Lydia Ng
>>Subject: Replication of Validation Study
>>
>>Lydia,
>>
>>I am attempting to run a test parallel to your excellent "Validation
>>Study: Atlas-based Brain Volume Segmentation from MRI Images". I have
>>refactored your BrainStripValidationApp to read from read from
>
> arbitrary
>
>> locations, and everything must be explicitly defined on the command
>>line, but I have made no algorithmic changes.
>>
>>The data that I am attempting to match are T1 weighted images that
>
> have
>
>>approximately the same characteristics as your dataset, but they are
>>320x320x384 voxel volumes.
>>
>>The problem that I have is that my data sets are quite large, and I
>
> run
>
>>out of memory (3GB+512 swap ~ 3.5GB) during the Atlas labeler stage.
>
> In
>
>>particular, the memory explodes during this filter:
>>
>>typedef ReinitializeLevelSetImageFilter<RealImageType> DistanceType;
>>typename DistanceType::Pointer distance = DistanceType::New();
>>
>>distance->SetInput( inputThresholder->GetOutput() );
>>distance->NarrowBandingOn();
>>distance->Update();
>>std::cout << " ---Atlas Distancemapper Done" << std::endl;
>>
>>
>>Approximate memory usage:
>>start: 0MB
>>registration: ~800MB-1000MB
>>atlas label: > 3000MB
>>
>>---------------------------------------------------------------------
>>1) What does the ReinitializeLevelSetImageFilter<RealImageType> do?
>>(m_AtlasLabelImage-->Threasholder-->ReinitializeLevelSetImageFilter--
>>
>>>Warper)
>>
>>2) Do you have any suggestions on how to get around this problem?
>>
>>----------------------------------------------------------------------
>>Any help would be greatly appreciated.
>>
>>Hans
>>--
>>===================================================================
>>Hans J. Johnson W294 GH
>>hans-johnson@uiowa.edu Dept. of Psychiatry
>>http://www.psychiatry.uiowa.edu/~hjohnson The University of Iowa
>>(319) 353-8587 Iowa City, IA 52242
>>===================================================================
>>
>
--
===================================================================
Hans J. Johnson W294 GH
hans-johnson@uiowa.edu Dept. of Psychiatry
http://www.psychiatry.uiowa.edu/~hjohnson The University of Iowa
(319) 353-8587 Iowa City, IA 52242
===================================================================