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

6.4.5. Algorithm - Iterative Closest Point (ICP)

From section IV (A) in [BeslMcKay1992], they define:

  • Data ( P with N_p points ) == Moving

  • Model ( X with N_x points ) == Fixed

The algorithm incrementally updates a moving point set, performing the following steps 1-4 in a loop. k is the iteration counter.

  1. Create Transformed Moving point set == Moving.

  2. For each point in Transformed Moving point set, compute closest point in Fixed point set.

  3. Compute Point-Based registration, mapping Original Moving to Fixed,

  4. Apply transform to Original Moving to generate a new Transformed Moving

  5. Terminate iteration when change in mean squared error < threshold

i.e.

  1. Set P_0 = P

  2. Compute Y_k = C(P_k, X)

  3. Compute (q_k, d_k) = Q(P_0, Y_k)

  4. Apply P_{k+1} = q_k(P_0)

  5. Stop if d_{k} - d_{k+1} < \tau, 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 O(N_p * N_x).

  • Line minimisations, see [BeslMcKay1992]

  • Parallelism (OpenMP)

  • Faster point search - additional_resources:Algorithm - K-D Tree, mentioned in [Zhang1994] who also proposed ICP.