[Insight-users] Bug in itkPowellOptimizer.cxx line-search routine

Tom Vercauteren tom.vercauteren at m4x.org
Tue Apr 10 09:26:14 EDT 2007


Hi all,

I have successfully been using the FRPR optimizer for my registration
problems for a while now.

The FRPROptimizer class depends on PowellOptimizer.

Since the replacement in itkPowellOptimizer.cxx of the code from
numerical recipes by an open-source implementation, I am having
problems.

Specifically, the line search procedure does not always optimize the
metric anymore.

Below is an example of the evolution of the metric (minus correlation
coefficient squared) I observe on an 2D rigid body registration
problem. I show the iteration number, the current metric and the
current position. Note that with the old code (from ITK 2.2 to ITK
3.0.1), an IterationEvent was invoked for each line iteration, so that
one iteration appears several time.

Old Code (from ITK 2.2 to ITK 3.0.1):
==========================
0   -0.769804   [-0.0168971, 25.7384, 15.1015]
0   -0.769804   [-0.0168971, 25.7384, 15.1015]
0   -0.770011   [-0.0140876, 25.6878, 15.0462]
0   -0.770057   [-0.0143894, 25.6933, 15.0521]
0   -0.770059   [-0.015085, 25.7058, 15.0658]
0   -0.770059   [-0.015085, 25.7058, 15.0658]
0   -0.770059   [-0.015085, 25.7058, 15.0658]
0   -0.770059   [-0.015085, 25.7058, 15.0658]
0   -0.770059   [-0.015085, 25.7058, 15.0658]
0   -0.77006   [-0.015186, 25.7076, 15.0678]
0   -0.77006   [-0.015186, 25.7076, 15.0678]
0   -0.77006   [-0.015186, 25.7076, 15.0678]
0   -0.77006   [-0.015186, 25.7076, 15.0678]
0   -0.77006   [-0.0151956, 25.7078, 15.068]
0   -0.77006   [-0.0151972, 25.7078, 15.068]
0   -0.77006   [-0.0151972, 25.7078, 15.068]
1   -0.77091   [-0.0195981, 26.3341, 15.7091]
1   -0.77091   [-0.0195981, 26.3341, 15.7091]
1   -0.770982   [-0.0188923, 26.2337, 15.6063]
1   -0.770982   [-0.0188923, 26.2337, 15.6063]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
1   -0.770989   [-0.0190474, 26.2558, 15.6289]
2   -0.772777   [-0.0142605, 27.2713, 16.7834]
2   -0.773462   [-0.0160889, 26.8834, 16.3424]
2   -0.773559   [-0.0159783, 26.9069, 16.3691]
2   -0.773559   [-0.0159783, 26.9069, 16.3691]
2   -0.773581   [-0.0157697, 26.9512, 16.4194]
2   -0.773588   [-0.0158524, 26.9336, 16.3995]
2   -0.773634   [-0.0158404, 26.9362, 16.4024]
2   -0.773641   [-0.0158119, 26.9422, 16.4092]
2   -0.773645   [-0.0157958, 26.9456, 16.4131]
2   -0.773645   [-0.0157958, 26.9456, 16.4131]
2   -0.773645   [-0.0157958, 26.9456, 16.4131]
2   -0.773646   [-0.015792, 26.9464, 16.414]
2   -0.773647   [-0.0157896, 26.9469, 16.4146]
2   -0.773647   [-0.0157896, 26.9469, 16.4146]
3   -0.773647   [-0.0157896, 26.9469, 16.4146]
3   -0.773898   [-0.0129291, 26.8306, 16.361]
3   -0.773976   [-0.0137756, 26.865, 16.3769]
3   -0.774031   [-0.013866, 26.8687, 16.3786]
3   -0.774031   [-0.013866, 26.8687, 16.3786]
3   -0.774031   [-0.013866, 26.8687, 16.3786]
3   -0.774031   [-0.013866, 26.8687, 16.3786]
3   -0.774031   [-0.013866, 26.8687, 16.3786]
3   -0.774032   [-0.0138554, 26.8683, 16.3784]
3   -0.774032   [-0.0138554, 26.8683, 16.3784]
3   -0.774032   [-0.0138554, 26.8683, 16.3784]
3   -0.774032   [-0.0138554, 26.8683, 16.3784]
3   -0.774032   [-0.0138554, 26.8683, 16.3784]
3   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138554, 26.8683, 16.3784]
4   -0.774032   [-0.0138544, 26.8683, 16.3784]
4   -0.774032   [-0.0138544, 26.8683, 16.3784]
4   -0.774032   [-0.0138544, 26.8683, 16.3784]
4   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
5   -0.774032   [-0.0138544, 26.8683, 16.3784]
6   -0.774032   [-0.0138544, 26.8683, 16.3784]
6   -0.774032   [-0.0138544, 26.8683, 16.3784]
6   -0.774032   [-0.0138544, 26.8683, 16.3784]
6   -0.774032   [-0.0138544, 26.8683, 16.3784]
6   -0.774293   [-0.0137035, 26.332, 16.3866]
6   -0.774407   [-0.0137361, 26.4477, 16.3848]
6   -0.774441   [-0.0137594, 26.5307, 16.3835]
6   -0.774441   [-0.0137594, 26.5307, 16.3835]
6   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774441   [-0.0137594, 26.5307, 16.3835]
7   -0.774444   [-0.0137552, 26.5418, 16.3835]
7   -0.774448   [-0.0137527, 26.5487, 16.3835]
7   -0.77445   [-0.0137511, 26.553, 16.3835]
7   -0.774451   [-0.0137497, 26.5565, 16.3835]
7   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137497, 26.5565, 16.3835]
8   -0.774451   [-0.0137434, 26.5573, 16.3836]
8   -0.774451   [-0.0137396, 26.5578, 16.3837]
8   -0.774452   [-0.0137372, 26.5581, 16.3838]
8   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
9   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
10   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]
11   -0.774452   [-0.0137372, 26.5581, 16.3838]


New Code (from ITK 3.2):
==================
0   -0.769804   [-0.0168971, 25.7384, 15.1015]
1   -0.769837   [-0.0167342, 25.7253, 15.0865]
2   -0.771157   [-0.0119474, 25.8603, 15.2465]
3   -0.772384   [-0.00949709, 26.199, 15.716]
4   -0.773165   [-0.00986638, 26.5148, 16.4328]
5   -0.773165   [-0.00986638, 26.5148, 16.4328]
6   -0.773165   [-0.00986638, 26.5148, 16.4328]
7   -0.773169   [-0.0098776, 26.5201, 16.4522]
8   -0.773317   [-0.0101162, 26.4585, 16.2409]
9   -0.77335   [-0.0105894, 26.5696, 16.8105]
10   -0.773414   [-0.0106002, 26.5713, 16.8194]
11   -0.774268   [-0.013778, 26.5061, 16.6986]
12   -0.774325   [-0.0137774, 26.5069, 16.672]
13   -0.774364   [-0.0133232, 26.5137, 16.5445]
14   -0.774395   [-0.013719, 26.5101, 16.6186]
15   -0.774426   [-0.0138309, 26.5132, 16.5643]
16   -0.774426   [-0.0138309, 26.5132, 16.5643]
17   -0.774426   [-0.0138309, 26.5132, 16.5643]
18   -0.774426   [-0.0138309, 26.5132, 16.5643]
19   -0.0404348   [-0.14626, 148.764, 129.749]
20   -0.0501792   [-0.127289, 134.878, 116.987]
21   -0.0521457   [-0.128033, 139.064, 120.873]
22   -0.0608914   [-0.0356036, 143.264, 126.153]
23   -0.0610972   [-0.023946, 143.146, 126.355]
24   -0.0611195   [-0.0241748, 143.15, 126.352]
25   -0.0611195   [-0.0241748, 143.15, 126.352]
26   -0.0618224   [0.00164232, 142.13, 126.99]
27   -0.0618529   [-0.000840117, 142.214, 126.937]
28   -0.061793   [-0.0090229, 142.361, 126.84]
29   -0.0622588   [-0.0189155, 142.549, 126.691]
30   -0.0622588   [-0.0189189, 142.55, 126.691]
31   -0.0624076   [-0.000970234, 141.906, 127.156]
32   -0.0626338   [-0.0138566, 142.314, 126.866]
33   -0.0626375   [-0.0141352, 142.32, 126.862]
34   -0.0626376   [-0.0141538, 142.32, 126.861]
35   -0.0626439   [-0.0138298, 142.309, 126.871]
36   -0.0626439   [-0.0138298, 142.309, 126.871]
37   -0.0626439   [-0.0138298, 142.309, 126.871]
38   -0.0713286   [0.00488931, 133.753, 127.396]
39   -0.0713313   [0.00484949, 133.775, 127.395]
40   -0.0713314   [0.00485464, 133.776, 127.396]
41   -0.0713315   [0.00490002, 133.776, 127.398]
42   -0.0713315   [0.00490114, 133.776, 127.398]
43   -0.0713315   [0.00490114, 133.776, 127.398]
44   -0.0160748   [-0.193237, 257.032, 117.469]
45   -0.0808865   [-0.0480491, 213.052, 119.576]
46   -0.0875697   [-0.0139101, 205.018, 120.018]
47   -0.0889239   [-0.0171101, 206.342, 120]
48   -0.157121   [0.223701, 216.295, 124.404]
49   -0.164172   [0.232336, 212.851, 114.938]
50   -0.164213   [0.232305, 212.836, 114.894]
51   -0.165212   [0.2276, 212.64, 114.229]
52   -0.165285   [0.227216, 212.617, 114.251]
53   -0.165519   [0.223366, 212.497, 114.091]
54   -0.16557   [0.223824, 212.503, 114.118]
55   -0.16557   [0.223824, 212.503, 114.118]
56   -0.165639   [0.224715, 212.584, 114.246]
57   -0.165697   [0.224897, 212.601, 114.273]
58   -0.165698   [0.224891, 212.601, 114.272]
59   -0.165698   [0.224889, 212.601, 114.272]
60   -0.165698   [0.224889, 212.601, 114.272]
61   -0.165702   [0.225115, 212.744, 114.285]
62   -0.165702   [0.225113, 212.743, 114.284]
63   -0.165842   [0.222427, 212.661, 114.147]
64   -0.165846   [0.222191, 212.659, 114.137]
65   -0.165846   [0.222191, 212.659, 114.137]
66   -0.165846   [0.222191, 212.659, 114.137]
67   -0.165846   [0.222191, 212.659, 114.137]


I have filed a bug report for this.

Best,
Tom Vercauteren


More information about the Insight-users mailing list