Empty instrument name in TrackingSequence

Hello,

I’m generating ultrasound sweeps recordings with ImFusion Suite 3.11.21 and an NDI Vega.

When I post-process these files using the Python SDK I get an empty instrument_name for the TrackingSequences, even though the instruments have a name in the NDI Tracking controller.

I also have imf files for sweeps generated in 2022 using ImFusion Suite 2.37.18, and these have an instrument_name set as expected when reading them with the Python SDK.

Here is the workspace file I’m using, expecting to have instruments named “DeskiTopFace” and “DeskiReferencePatientA”.

<?xml version="1.0" encoding="utf-8"?>
<propertyfile version="1.1" name="" comment="Written by imfusion-configuration">
    <param name="workspaceVersion">26</param>
    <property name="Datasets">
    </property>
    <property name="Interface">
        <param name="outputUids">"tracking_stream" "ultrasound_stream"</param>
        <param name="inputUids"></param>
    </property>
    <property name="Algorithms">
        <property name="VideoForLinux.VideoForLinux.Stream">
            <param name="name"/>
            <param name="path">/dev/video4</param>
            <param name="format">842093913</param>
            <param name="grayscale">0</param>
            <param name="resolution">1600 2560 </param>
            <param name="execute">1</param>
            <param name="keepControllerOpen">1</param>
            <param name="inputUids"/>
            <param name="outputUids">"scrcpy_stream" </param>
        </property>
        <property name="LiveUS.ProcessUltrasoundStream">
            <param name="execute">1</param>
            <param name="keepControllerOpen">1</param>
            <param name="inputUids">"scrcpy_stream" </param>
            <param name="outputUids">"ultrasound_stream" </param>
            <property name="processing">
                <property name="parameters">
                    <param name="applyCrop">1</param>
                    <param name="applyMask">1</param>
                    <param name="applyDepth">1</param>
                    <param name="depth">150</param>
                    <param name="removeColorThreshold">0</param>
                    <param name="inpaint">0</param>
                    <param name="extraCrop">50 50 0 0 </param>
                    <param name="extraCropAbsolute">1</param>
                    <property name="frameGeometry">
                        <property name="FrameGeometrySector">
                            <param name="offset">799.5 152.006134969325 </param>
                            <param name="isTopDown">1</param>
                            <param name="indicatorPosition">0</param>
                            <param name="coordinateSystem">0</param>
                            <param name="shortRadius">13.2407656571757</param>
                            <param name="longRadius">1552.37797036251</param>
                            <param name="openingAngle">39.3945104659087</param>
                            <param name="bottomCurvature">0.898944057728181</param>
                            <property name="imgDesc">
                                <param name="type">5121</param>
                                <param name="width">1600</param>
                                <param name="height">2560</param>
                                <param name="slices">1</param>
                                <param name="channels">3</param>
                                <param name="shift">0</param>
                                <param name="scale">1</param>
                                <param name="spacing">1 1 1 </param>
                                <param name="metric">0</param>
                            </property>
                        </property>
                    </property>
                </property>
            </property>
        </property>
        <property name="NDITracking.PolarisAuroraTrackingStream">
            <param name="systemType">1</param>
            <param name="measurementRate">5</param>
            <param name="maxRange">0</param>
            <param name="selectedDevice">0</param>
            <param name="startAfterInit">0</param>
            <param name="blockingInit">0</param>
            <param name="connectionType">0</param>
            <param name="hardwareDevice">169.254.6.51</param>
            <param name="hardwarePort">8765</param>
            <param name="binaryQueryMode">1</param>
            <param name="connect">1</param>
            <param name="execute">1</param>
            <param name="start">1</param>
            <param name="keepControllerOpen">1</param>
            <param name="inputUids"></param>
            <param name="outputUids">"tracking_stream" </param>
            <property name="TrackingTargets">
                <property name="DeskiTopFace">
                    <param name="Path">/home/hugo/Downloads/ImFusion/imfusion-configuration/definition_files/deski_polaris_rigid_body_3.rom</param>
                    <param name="Port">0</param>
                </property>
                <property name="DeskiReferencePatientA">
                    <param name="Path">/home/hugo/Downloads/ImFusion/imfusion-configuration/definition_files/radix_parasternal_or_apical_patient.rom</param>
                    <param name="Port">0</param>
                </property>
            </property>
        </property>
        <property name="LiveUS.SweepRecorder">
            <param name="useDeviceTracking">0</param>
            <param name="useDeviceImages">0</param>
            <param name="savePath">/home/hugo/Downloads/ImFusionSave/20241112-110314</param>
            <param name="saveToFile">1</param>
            <param name="saveAsDicom">0</param>
            <param name="numberOfDataToKeep">1</param>
            <param name="compress">0</param>
            <param name="autoSave">1</param>
            <param name="timeLimit">0</param>
            <param name="systemMemLimit">0</param>
            <param name="imageSamplesLimit">0</param>
            <param name="trackingSamplesLimit">0</param>
            <param name="recordedBytesLimit">0</param>
            <param name="dataCombinationMode">1</param>
            <param name="trackingQualityThreshold">0.2</param>
            <param name="stopOnImageSizeChanged">1</param>
            <param name="stopOnDeviceListChanged">1</param>
            <param name="recordBothTimestamps">1</param>
            <param name="relativeTracking">0</param>
            <param name="relativeTrackingID"></param>
            <param name="liveStreamRecording">0</param>
            <param name="inputUids">"ultrasound_stream" "tracking_stream" </param>
            <param name="outputUids"></param>
            <property name="CalibrationData">
                <param name="forceEmptyProbe">0</param>
                <property name="Calibration">
                    <param name="depth">150</param>
                    <param name="mat">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</param>
                    <property name="ProbeTracker">
                        <param name="probe"/>
                        <param name="trackerID">DeskiTopFace</param>
                    </property>
                </property>
            </property>
        </property>
    </property>
</propertyfile>

Is there something I should change to make it work, or an alternative way to identify the tracking sequences in my python code ?

Thanks

1 Like

Dear Florent,
do you have the option to update to a Suite Version >=3.12. There was a larger change in terms of tracker identification using a new TrackerID with a unique identifier. Please refer to the Changelog for version 3.12 from 2024-10-02 for more details. It would be interesting to know if this solves your problem already or not.

In case that you still have the problem of an empty instrument name with the updated version, we can look into this in more detail and I can also try to reproduce it on our side with an NDI tracking system. But I recommend to update first to not debug a problem that might be solved already.

Best regards,
Christian

Hi Christian,

I tried with the version 3.12.16 that Oliver sent us and the issue is indeed fixed.

Thanks !