6.3. Point-Based Registration
6.3.1. Examples
Here’s an example of how markers are used for point-based registration in neurosurgery, from the Mayfield Brain & Spine YouTube channel:
and another example from CASCination in abdominal surgery, on the ECALS 2014 channel <https://youtu.be/i8akai5SCZk>:
The CASCination system uses a long pointer, picking 4 points on the liver - see supplementary material in [Conrad2016], namely left/middle hepatic vein drainage, main portcal vein drainage, insertion of fulsiform ligament, insertion of gallbladder dome. Also see [Prevost2019].
6.3.2. Papers
The point-based alignment algorithm, often called the Orthogonal Procrustes Algorithm, can be solved in a variety of manners. In the research literature, most people reference:
[Arun1987], using SVD
[Horn1987], using quaternions
and [Eggert1998] suggests there is not much difference between them.
The above papers all assume isotropic, independent fiducial localisation error. There is a body of work looking at error propagation in cased where this is not valid, e.g. [Batchelor2000], [Wiles2008], [Moghari2009], [Danilchenko2010], [Thompson2013].
6.3.3. Algorithm
Please see the above papers for the maths. The method from [Arun1987] can best seen in code in SciKit-Surgery.
6.3.4. Fiducial marker types
Accuracy is determined by the fiducial marker type, and the ability to accurately measure fiducial location in the OR.
Bone implanted screws, detachable heads. See [Maurer1998].
Stick on markers, seen in Mock OR, in Workshop 1, and the above video from the Mayfield Brain & Spine YouTube channel.
Bite-blocks [Edwards2000].
6.3.5. Typical Performance
Pros:
Easy to implement for rigid
Robust. Need 3+ points. Algorithm won’t randomly “fail” as such
Easy to validate, on a phantom, and get approved, as the method transfers well from phantom to clinical cases
With a clear protocol, less user dependent than manual registration
Cons:
Not suitable for non-rigid alignment
Need rigid landmarks, so most suitable for neurosurgery or orthopedics
Surgery is often draped, might be difficult to use markers in practice
Needs case by case analysis of registration errors, as errors are very shape dependent
Accuracy:
Neurosurgery: 0.5-1mm on Fiducials, 0.5-4mm on Targets, e.g. [Edwards2000].
Neurosurgery: Similar range of errors, and a good explanation of FLE, FRE, TRE etc. [Shamir2009].
Liver surgery: Time was median 8:50 min. Accuracy (FRE), 14.0mm to 9.2mm, mean 12.8mm [Prevost2019].
6.3.6. Notebooks
Have a play with the provided Jupyter Notebooks.
6.3.7. Python Implementation
SciKit-Surgery provides the main algorithms:
# Note that the scikit-surgery libraries provide point-based registration using Arun's method and matrix utilities.
import sksurgerycore.algorithms.procrustes as pbr
import sksurgerycore.transforms.matrix as mu
so Arun’s algorithm is here
and can be installed with:
pip install scikit-surgerycore