US probe tracking with ArUco marker

Hello,

We want to track an ultrasound probe using an ArUco marker because we need to determine the probe’s position and orientation to perform 3D reconstruction of ultrasound images.

More specifically, our goal is to perform image-to-probe calibration so that we can accurately align the ultrasound images with the tracked probe position. I’ve seen similar workflows implemented using PLUS and 3D Slicer, but even after reading articles and manuals, I’m still quite lost.

I’m not very experienced in this area, and the setup seems quite complex.

In short, we have a Telemed ultrasound probe and an MMF-compatible webcam, and we would like guidance on how to set up a working tracking and image-to-probe calibration pipeline using ArUco markers.

Any help, documentation, or step-by-step instructions would be greatly appreciated.

You can find detailed description on how to set up this tracking here. If you have any specific questions then let us know.

Note, however, that error of ArUco marker tracking using a single webcam is about a magnitude larger than all other tracking solutions that are commonly used for ultrasound probe tracking. You can use a webcam for tracking in demos or student homework projects, but if the goal is to rely on a position tracker for ultrasound volume reconstruction then I would recommend not to waste your time with a webcam but get an inexpensive tracker, such as an OptiTrack Duo (costs about $3000).

Thank you. Is there any manual or source for using FCal application with only ArUco marker based tracking ?

FCal application performs the calibration in two main steps: landmark registration and probe calibration. Since the error of landmark registration would be very high if you use a single webcam, the subsequent probe calibration step would most likely fail.

If you want to set up a demo using ArUco marker tracking with a webcam, I would not recommend to use FCal. Instead, you can get the scale factors by scanning an object of known size and then use the transform sliders in Slicer to get a reasonable translation and rotation.