BrownBiomechanics / SlicerAutoscoperM

This 3D Slicer extension enables users to perform image registration.
https://autoscoperm.slicer.org
MIT License
0 stars 4 forks source link

hierarchical 'marionette' transform application for sequential frames #94

Closed amymmorton closed 3 weeks ago

amymmorton commented 4 months ago

as in https://drive.google.com/file/d/14PLg-VEf0OSe59-nkz8M06VF7HM2N5Bz/view?usp=drive_link DOI: 10.1109/TMI.2005.862151

distal rigid bodies move as an extension of more proximal ones

option to

NicerNewerCar commented 4 months ago

Overview of the pipeline outlined by Marai et al

The first stage of the pipeline is to extract the isosurface of all bones that should be tracked.

This step should be performed on the source image.

Distance field calculations for material boundaries [Air, Soft Tissue, Bone]

Assumes that each voxel is made up of 1 or 2 materials

Each voxel is divided into 8 sub-voxels and sampled using tricubic B-spline interpolation. A histogram is generated from each voxel. This histogram is then fit to the basis function to determine the distance to the desired material boundary. The derivation of the basis function is described in Laidlaw et al.

Figure 2 in Marai et al shows this process well. This is repeated for all three materials and both CT images for a total of 6 distance fields.

Registration

Registration is evaluated by using the quasi-netwon optimizer and the following cost function.

Cost function

Sum of Squared Distances is used

F = \frac{1}{V} \sum^N_{j=1} [D_s(p_j) - D_t(p^{\prime}_j)]^2

Where:

p_j = \text{Point on the isosurface}
p^{\prime}_j = \text{Point of the isosurface, transformed by the current rotation and translation} \\
D_j = \text{Source distance field}
D_t = \text{Target distance field}
V = \text{Number of vertices within } D_t
N = \text{Number of points on the isosurface}

I am unsure if this should be applied across all three pairs of distance fields or if just the bone material distance field should be considered.

Hierarchical Approach

For the initial guess position, a hierarchy of bones is constructed. The root bone of the tree is assumed to have some initial rotation and translation already. The root is then optimized and resulting transform is applied to all child bones. Each tier of the tree can be run in parallel.

See figure 6 in Marai et al for an example hierarchy tree.

Thoughts

As a starting place, I will begin prototyping the hierarchical approach while continuing to use Elastix as the registration method. A custom parameter file using some of the registration methods outlined in the paper will also be constructed for rigid registration.