[Insight-users] about BSpline registration

Luis Ibanez luis.ibanez at kitware.com
Fri Dec 24 15:39:09 EST 2004


Hi Yixun,

Please look at the example:


    Insight/Examples/Registration/
              DeformableRegistration8.cxx


It does deformable registration in 3D, using

      - MattesMutualInformation
      - LBFGSBOptimizer
      - BSplineDeformableTransform



Note the parameter setting:

>   OptimizerType::BoundSelectionType boundSelect( transform->GetNumberOfParameters() );
>   OptimizerType::BoundValueType upperBound( transform->GetNumberOfParameters() );
>   OptimizerType::BoundValueType lowerBound( transform->GetNumberOfParameters() );
> 
>   boundSelect.Fill( 0 );
>   upperBound.Fill( 0.0 );
>   lowerBound.Fill( 0.0 );
> 
>   optimizer->SetBoundSelection( boundSelect );
>   optimizer->SetUpperBound( upperBound );
>   optimizer->SetLowerBound( lowerBound );
> 
>   optimizer->SetCostFunctionConvergenceFactor( 1e+7 );
>   optimizer->SetProjectedGradientTolerance( 1e-4 );
>   optimizer->SetMaximumNumberOfIterations( 500 );
>   optimizer->SetMaximumNumberOfEvaluations( 500 );
>   optimizer->SetMaximumNumberOfCorrections( 12 );



Regards,



     Luis



------------------
Yixun Liu wrote:
> Hi,
> I use the BSpline after the CenterAffine transform. The result of the CenterAffine is better excepe for some difference on the boundary, so I use the BSpline to non-rigid them. I even change the parameter to:
> 
> optimizer->SetGradientConvergenceTolerance( 0.001);
> 
>>>  optimizer->SetLineSearchAccuracy( 0.01 );
>>>  optimizer->SetDefaultStepLength( 0.5 );
>>>  optimizer->TraceOn();
>>>  optimizer->SetMaximumNumberOfFunctionEvaluations( 5000 );
> 
>  but it stop quickly also. 
> 
> 
> 
> 
> ----- Original Message ----- 
> From: "Luis Ibanez" <luis.ibanez at kitware.com>
> To: "Yixun Liu" <yxliu at fudan.edu.cn>
> Cc: <insight-users at itk.org>
> Sent: Friday, December 24, 2004 10:40 PM
> Subject: Re: [Insight-users] about BSpline registration
> 
> 
> 
>>Hi Yixun,
>>
>>The optimizer is definitely stopping too early.
>>
>>Did you happen to feed the registration algorithm
>>with two identical input images  ?
>>
>>
>>Please let us know
>>
>>
>>   Thanks
>>
>>
>>       Luis
>>
>>
>>-----------------
>>Yixun Liu wrote:
>>
>>
>>> Hi,
>>> 
>>> I use BSpline transform to non-rigid registe two 3D images.   Both are 
>>>256*256*46, unsigned char.
>>> 
>>>  Metric is MattesMI and Optimizer is LBFG. I set the parameter as below.
>>> 
>>>  optimizer->SetGradientConvergenceTolerance( 0.05 );
>>>  optimizer->SetLineSearchAccuracy( 0.9 );
>>>  optimizer->SetDefaultStepLength( 1.5 );
>>>  optimizer->TraceOn();
>>>  optimizer->SetMaximumNumberOfFunctionEvaluations( 1000 );
>>>the output is :
>>> 
>>>F = -0.376733, GNORM = 0.00103313
>>>*************************************************
>>>   I   NFN    FUNC        GNORM       STEPLENGTH
>>>   1    3        -0.388       0.001    4839.674
>>> THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS.
>>> 
>>>the steplength is so large, so I do not know if the result is correct.
>>>
>>>
>>>------------------------------------------------------------------------
>>>
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>
>>
>>
> 
> 






More information about the Insight-users mailing list