[Insight-users] regularStepGradientDescent problem

Christos Panagiotou C.Panagiotou at cs.ucl.ac.uk
Wed, 28 Apr 2004 20:16:00 +0100


Dear Luis

I have succeeded to register an optical tomography volume (100x120x136) against an MRI volume (256x256x138) using the gradient descent optimizer, the MIimage2image metric and a multi resolution pyramid scheme.

I am trying now to optimize what results would i get by using the regular step gradient descent optimizer.

However until now, the results i am getting are totaly inaccurate. The moving volume is distorted vastly and I get matrices such as the following:

Final parameters: [3.61106, -0.433306, 0.583373, 1.82901, 1.01833, -0.833603, 0.664394, -0.187408, 2.08654, 0.00177591, -0.000700402, 0.00196778]
Overall transform matrix:
0.664394 -0.187408 2.08654
-3.61106 0.433306 -0.583373
1.82901 1.01833 -0.833603

Overall transform offset:
-152.155  504.039  -238.269

i ve tried various step lengths such as 0.01 - 0.2, 0.5 - 10 (my voxel spacing is 1.0 so the ideal would be 0.5-10 (according to the min=1/2 max= 10x rule)

the optimizer->GetValue() in the observer returns almost always descending values which is wrong as I am trying to maximize the MI metric.

In addition the application just runs for 10 - 15 iterations and the terminates either because of //GradientMagnitudeTolerance// or //StepTooSmall// 

i am not sure if by altering the step sizes (min max) at run time would help (and if it would how do i do this?)

some results:

step 0.1 - 2
Optimizer Stop due to condition:  1

0.0926519
0.177582
0.0988912
0.079914
0.0488402
0.0477253
0.0776582
0.0281974]
0.0926519
0.177683
0.0988989
0.0799157
0.048839
0.0477213
0.0776582
0.0281464
0.0926519
0.177683
0.0988989
0.0799157
0.048839
0.0477213
0.0776582
0.0281464
0.0926519
0.105355
0.0762144
0.00489387


Overall transform matrix:
0.664394 -0.187408 2.08654
-3.61106 0.433306 -0.583373
1.82901 1.01833 -0.833603

Overall transform offset:
-152.155  504.039  -238.269

----------------------------

step 0.02 - 0.4
Optimizer Stop due to condition:  2


0.0926519
0.177582
0.0988912
0.079914
0.0488402
0.0477253
0.0776582
0.0281974

Overall transform matrix:
-0.177125 0.0773208 0.895595
-1.08434 -0.237067 0.12067
0.201707 1.05051 0.0713326

Overall transform offset:
1.77245  219.833  -95.9724
Generating output ...



i dont have any idea why my results come out so bad..
i use the same translation scale i used in the gradientdescent optimizer which gave me good results

1.0 / 10*sqrt( x^2+y^2+z^2 )

any suggestions?
thanks
christos