Ultrasound Calibration

Calibrates multiple ultrasound sweeps.

Input

The algorithm requires an even number of ultrasound sweeps, i.e. pairs of sweeps. The sweeps must to be recorded in the same reference coordinate system, should cover the same area of interest in the real world, and be roughly initialized. It is recommended to use a rigid calibration phantom in a water bath, so that the phantom is guaranteed not to move between acquisitions.

Output

The optimized calibration, which is set of all input sweeps.

Description

The algorithm optimizes the calibration matrix C of ultrasound sweeps. Refer to Sweep Properties for a detailed description of ultrasound registration and calibration matrices. Similar to Ultrasound Registration, this algorithm runs an optimiztion loop that tries to maximize an image similarity metric between the sweep pairs by modifying the calibration parameters.

When launched, the algorithm opens a) the algorithm controller, b) an additional 2D view, c) an optimization dialog, and d) a sweep properties dialog for all input sweeps. For a quick start, click Run in the optimization dialog.

Algorithm Controller

In the algorithm controller (left panel), the user has the following options:

  • Init will try to estimate a calibration matrix based on the sweep trajectories. Use with care! This might not yield a correct initialization based on the specific probe movement in your setting.
  • Reset will undo any changes to the calibration.
  • Evaluate runs the similarity metric evaluation once.
  • Mask: Check if empty parts of the ultrasound frames should be masked out.
  • Similarity: By default, normalized cross-correlation (NCC) is sufficient for calibration.
  • Frames: Defines the amount of frames that should be mapped against for each sweep.
  • Frames: Toggles the additional 2D view.

Additional 2D View

This view can be used to visually inspect the current calibration. It is updated live during the optimization.

For best results, select Blending/Color Blending from its context menu, and then select a pair of sweeps in the data widget. You should see something like this (after calibration, the red and blue parts align nicely):

../../_images/Ultrasound Calibration.png

Optimization dialog

This dialog is the default dialog also used e.g. for image registration. Parameters are already predefined to usual needs, i.e. only the translation and rotation parameters of C are selected for optimization, but not the temporal calibration parameter and the image size - the latter is usually known from the system.

Depending on the used calibration phantom and the quality of the initialization, it may be advisable to change the step size in the Settings tab.

Otherwise, just click on Run to start the calibration procedure.

Sweep Properties dialog

Please refer to Sweep Properties for a detailed description on this dialog. Use it to initialize the calibration to be within the capture range of optimizer - manual changes are directly applied to all selected sweeps - and (repeated) optimization runs will update the matrix parameters in the dialog.

Use the Copy button to retrieve the final calibration with full accuracy to copy it into a workspace file or Python script.

References

The algorithm is based on the following article: W. Wein, A. Khamene. Image-Based Method for In-Vivo Freehand Ultrasound Calibration. SPIE Medical Imaging 2008.