# Difference between revisions of "Projects:RegistrationImprovement"

Home < Projects:RegistrationImprovement

# Registration Improvements

This page will describe registration improvements made within Slicer3 to improve the usability and robustness of registration algorithms so they may be used in an interactive clinical setting.

# Key Contributors

• Kitware: Casey Goodlett with consultation from Will Schroeder and Stephen Aylward
• BWH: Ron Kikinis, Dominik Meier, Andriy Fedorov

# RegisterImages Algorithm

A user should typically one of the Pipeline methods (PipelineRigid, PipelineAffine, PipelineBspline) as these will run Initalization -> Rigid -> Affine -> Bspline to the specified level. These are run in order to convergence or maximum # of iterations. Within each pipeline step there is a two stage optimization. First the evolution optmizer is run to stochastically chose a starting location for optimization. After this the FRPR optimizer is used. Currently multi-resolution optimization is only used in the bspline level.

## Improvement Ideas

• Use multi-resolution at all stages
• Both multi-resolution and the sequence of calls with increasing DOF could be implemented as a single recursive scheme. The caller provides an array of DOF and a matching array of resolution levels, which is processed by recursive calls with the first/last element taken from the list. A simulation Matlab program and example is here: Projects:RegistrationImprovement:RecursiveScheme
• The GUI can list the many combination as a single list of checkboxes for increasing DOF. The full list would be 3,6,7,9,12,b . The checked boxes provide the input string for the recursive call. Media:DOFHierarchy_GUI.jpg‎
• The prestage to affine maybe should be similarity not rigid (based on assumption that its hard to optimize rotation without scale change).
• Learn from FSL flirt to make an extensive test of a grid of possible rotations to get a good initialization for rotations.
• Ability to specify masks that are used to limit were samples are drawn (this should ultimately be both a label image or a user drawn box)

# Timeline of contributions

## September 22, 2009

Committed ability to use a label image to act as a mask for drawing samples for image match calculation.

## September 11, 2009

Merge two new modules that present a simplified view of RegisterImages into Slicer3 to show up in Modules Menu hierarchy Menu hierarchy screenshot

## September 9, 2009

Sync default parameters between GUI and command line version of RegisterImages

## August 18, 2009

• Link landmark initalization with fiducials framework in Slicer3