[Insight-users] parameters for a 1+1 evolutionary optimizer

Denis Nikitenko dnikiten at uoguelph.ca
Tue Jun 1 18:11:53 EDT 2004


Greetings,

I am developing working on a mammogram registration program - after the initial
rigid registration, the images are subdivided, the subimages are registered and
then interpolated using TSP. I use Mattes' mutual information as the metric and
1+1 evoluinary oprimizer as, well, the optimizer.

The initial rigid registration works very well. I've run a series of test on
images translated by a know set of (x,y) and the optimizer found the global
minimum to within one pixel in the vast majority of the cases. However, when i
try to register the subimages, I run into a problem.

Once the subimages get small (say, 64x40 pixels) in many cases the evolutionary
optimizer does not converge and instead throws an exception ("Too many samples
map outside moving image buffer..."). Once the images become smaller (~32x20
pixels), this exception is thrown for every single subimage. This makes higher
levels of subdivision virtually useless.

If I use a gradient descent optimizer for smaller subimages instead, this
problem does not occur and the overall registration results are uniformly better
(though not significantly). However, I have my misgivings about using gradient
descent optimizer. When I used it for global rigid registration, in all the
cases it performed much more poorly than the evolutionary optimizer as it was
much more prone to falling into local minima.

Therefore I'd like to tune the evolutionary optimizer to work with smaller
images. The set of parameters that worked the best for large images was
(radius=10, grow=-1, shrink=-1, 200 iterations), mentioned in the documentation.
However, this set works poorly for smaller images. I have attempted to change
it, but it either resulted in premature (and poor) convergence, or simply did
not make any difference - the exceptions kept popping up as often as before.

Has anyone else encountered this problem? Does anyone have any suggestions ( a
range of parameters I should try, other optimizers that might work, etc.)? Any
help would be greatly appreciated.

Dennis


More information about the Insight-users mailing list