InsightSoftwareConsortium / itk-dreg

A framework for distributed large-scale image registration
http://itk-dreg.readthedocs.io/
Apache License 2.0
5 stars 2 forks source link

Streamline multistage registration setup #22

Open tbirdso opened 9 months ago

tbirdso commented 9 months ago

Current Behavior

A single call to register_images reflects a single registration stage with the following map/reduce approach:

  1. Subdivide fixed image into subimage tasks
  2. In each task, fetch fixed and moving subimages, then register them together
  3. Reduce registration results into a single descriptive transform

Note that one call to register_images reflects distributed registration for a single set of input parameters, such as the fixed image resolution, moving image resolution, and initial transform. A subimage registration may perform registration with multiple successive transforms. For instance, ITKElastix could register a set of rigid -> affine -> deformable transforms between two subimages in a single distributed registration stage.

It can be tedious to set up multiple registration stages with multiple calls to register_images. We should explore how the interface may be streamlined to improve the user experience without sacrificing the granularity of the present itk-dreg interface.

Proposed resolution

  1. Create a new submodule itk_dreg.multistage
  2. Define a multistage registration configuration object or schema that provides parameters for each register_images call:
    • The fixed image source (with what resolution)
    • The moving image source (with what resolution)
    • The registration method to use
    • The reduction method to use
    • Overlap factors
    • Chunk size
  3. Define a register_multistage method that receives a registration configuration and successively calls register_images. On each call, provide a new itk.CompositeTransform initial transform that composes the ordered transform results of previous stages.
  4. Add unit tests and create an example notebook demonstrating the streamlined interface.