6.4. Surface-Based Registration
Watch videos:
6.4.1. Examples - Surface Registration with Medtronic Stealthstation ENT
6.4.2. Examples - Surface Registration with Pathfinder
6.4.3. Examples - Surface Registration with Brainlab Z-touch
Surface Reconstruction Methods:
Dragging a pointer
Laser-Pointer like Brainlab Z-touch
Laser pointer [Fusaglia2016]
Stereo vision, surface reconstruction, stitching [Thompson2015]
6.4.4. Key Papers
ICP Algorithm. [BeslMcKay1992].
Variations for anisotropic noise, e.g. [LenaMaierHein2011]
Extensions to global alignment, e.g. [Yang2015]
6.4.5. Algorithm - Iterative Closest Point (ICP)
From section IV (A) in [BeslMcKay1992], they define:
Data ( with points ) == Moving
Model ( with points ) == Fixed
The algorithm incrementally updates a moving point set, performing the following steps 1-4 in a loop. is the iteration counter.
Create Transformed Moving point set == Moving.
For each point in Transformed Moving point set, compute closest point in Fixed point set.
Compute Point-Based registration, mapping Original Moving to Fixed,
Apply transform to Original Moving to generate a new Transformed Moving
Terminate iteration when change in mean squared error < threshold
i.e.
Set
Compute
Compute
Apply
Stop if , else go to 1
Works for points, line segments, curves, anything that can be converted to be compatible with the concept of having a “closest point”.
6.4.6. Failure Modes
Mainly a discussion:
Where can this go wrong?
What are obvious failure modes?
6.4.7. Optimisations
Worse case performance, finding the closest point is .
Line minimisations, see [BeslMcKay1992]
Parallelism (OpenMP)
Faster point search - additional_resources:Algorithm - K-D Tree, mentioned in [Zhang1994] who also proposed ICP.