Ultrasound Sweep

The Ultrasound Sweep is a core data structure in the US module. It relates 2D ultrasound images with tracking information.

../_images/ussweep.png

Visualization of an Ultrasound Sweep with 16 images and their respective poses shown as wireframes of the image fan geometry.

Structure

In general, an Ultrasound Sweep contains:

  • A set of 2D images (all of the same size and resolution)

  • Optionally, a timestamp for each image \(ti_i\)

  • At least one Tracking Stream, each of which in turn contains:

    • A set of 4x4 matrices \(T_j\) with the pose data as for example obtained from a tracking system from one of the tracking targets.
    • The spatial calibration matrix \(C\) which describes the tranformation from the US image coordinate system to the tracking coordinate system, e.g. the transformation from the US image to the tracking target.
    • The registration matrix \(R\) that describes the placement of the overall sweep in the world coordinate system. This matrix is typically changed when the sweep is registered to another sweep or to a volume.
    • The temporal calibration offset \(t_{off}\)
    • Optionally, a timestamp for each matrix \(tt_j\)
    • Optionally, a quality indicator for each matrix
    • Optionally, a button status for each matrix
    • Optionally, another Tracking Stream to be relative to, and the flag relativeToFirst

    Note

    In case there are multiple Tracking Streams, one has to be defined to be the main one. If you have, for instance, two tracking targets for the US transducer and a reference tracker on the patient, the one Tracking Stream containing the pose data for the US transducer is set as the main Tracking Stream, and its relative Tracking Stream is set to the other one.

  • The useTimestamps flag. It is adviced to set it to true if timestamp information is available.

  • A Frame Geometry defining where the US information is located within the image (linear, convex, sector scan)

  • Various meta data, e.g. probe type, frequency, etc.

  • This all is represented as an image series (‘SharedImageSet’) in the ImFusion framework, together with an optional selection of frames.

Note

All Tracking Stream matrices, and thus pose matrices of Ultrasound Sweep images, are expressed from image to world coordinate system, i.e. \(x_{world} = M \cdot x_{img}\) for any matrix \(M\).

Many of these items can be modified in the Sweep Properties dialog.

Image Pose Look-up

Resolving which matrix of which Tracking Stream is associated with a particular image is dependent on a few options.

  1. In general, the main tracking stream is used for look-up.

    1. Without timestamps (useTimestamps is off), a 1:1 look-up is used, i.e. US frame i is associated with tracking matrix \(T_i\) directly.
    2. With timestamps (useTimestamps is on), the framework does the following:
      • Considering the temporal offset, the image timestamp \(ti_i-t_{off}\) is used to find the matrix with the closest timestamp.
      • If that timestamp lies before the first or after last timestamp of the Tracking Stream, the first or last matrix is used, respectively.
      • Otherwise, the matrix is interpolated (using quaternions for the rotation) between the two closest pose matrices.
  2. The registration is pre- and the calibration post-multiplied to obtain the final pose \(P\) for a given frame:

    \(P = R \cdot T \cdot C\)

  3. If there’s a relative Tracking Stream with matrices \(R'\), \(T_j'\), \(C'\), the term becomes:

    \[P_i &= R \cdot \left( R' \cdot T'_j \cdot C' \right)^{-1} \cdot T_i \cdot C &= R \cdot C'^{-1} \cdot T'_j^{-1} \cdot R'^{-1} \cdot T_i \cdot C\]

    The matrix \(T'_j\) is determined as in step 2, except when the flag relativeToFirst is on, in which case it’s simply the first matrix \(T'_0\).

    Tip

    it is advised to only have calibration and registration matrices in the main Tracking Stream.

Visualization

Ultrasound Sweeps can be visualized in 2D views, MPR views, and 3D views.

../_images/ussweep.png

In the 2D view (left), the current focus frame is rendered, alongside with a ruler and a side indicator (orange triangle) based on the Frame Geometry. The MPR views (red, blue, and green on the right) render an on-the-fly reconstruction in the desired planes. The 3D view (bottom right) shows every US frame at its respective position. In MPR and 3D views, the current selection is considered. For more details, refer to Advanced Sweep Visualization.

The visualization is controlled via the Sweep Display Data Controller, which opens up its own toolbar once a sweep is loaded:

../_images/sweepdispdatactrl.png

It allows to:

  1. Show or hide the sweep in the 3D view.

Note

Once a sweep compounding is performed, the sweep is automatically hidden, since showing the same information twice (sweep and reconstructed volume) would be confusing. Select the sweep in the Data panel, or click the eye symbol to show it again.

  1. Link the MPR views to the currently selected frame. 2D view and the red MPR will then show exactly the same content.
  2. Modify 3D visualization options, see Advanced Sweep Visualization.
  3. Show or hide the ruler in the 2D view.
  4. Center the 3D view interaction to the center of the sweep, and move there.
  5. Snap the toolbar to the side panel instead.