Dear Imfusion Support Team,
I’m encountering difficulties while using the Imfusion SDK. My task involves aligning a set of ultrasound DICOM files with a set of CT DICOM files. Registration tests performed in the Imfusion Suite yielded expected results, but I’m facing issues when using the API:
- Runtime Crash: The
ImageRegistration
object fails to initialize during runtime. - Compute() Failure: The
UltrasoundRegistrationAlgorithm
crashes when callingcompute()
. - Suboptimal Results: While
FeatureMapsRegistrationAlgorithm
runs without errors, the transformation effect on the CT images is unsatisfactory. - config failed:The
UltrasoundDISARegistrationAlgorithm
andDescriptorsRegistrationAlgorithm
error in extracting descriptors
Could you please assist in diagnosing these issues? Thanks a lot for the support!
Best regards,
YuanW
attachments
//The following is the outline of the code
std::vector<std::unique_ptr<SharedImageSet>> images = dicomLoader.loadImages();
SharedImageSet sweep = *images[0].get();
sweep->setModality(Data::ULTRASOUND);
SharedImageSet sisct = *images[1].get();
UltrasoundRegistrationAlgorithm ur(sweep, sisct);
FeatureMapsRegistrationAlgorithm fr(sweep, sisct);
UltrasoundDISARegistrationAlgorithm udr(sweep, sisct);
DescriptorsRegistrationAlgorithm dr(sweep, sisct);
//ImageRegistration I(&sweep, &sisct);
//ur.compute();
fr.compute();
//udr.compute();
//dr.compute();
//***** The following is the FeatureMapsRegistrationAlgorithm terminal output
Intensity range [0..2435], scaling with 26
Intensity range [0..2666], scaling with 24
Couldn't read OpenCL buffer (-5)
Couldn't write to OpenCL buffer (-5)
Couldn't read OpenCL buffer (-5)
Couldn't write to OpenCL buffer (-5)
Couldn't read OpenCL buffer (-5)
Couldn't write to OpenCL buffer (-5)
Couldn't read OpenCL buffer (-5)
Couldn't write to OpenCL buffer (-5)
Couldn't read OpenCL buffer (-5)
5 evaluations in 0.0798547 seconds, success
-80 -80 -80 -40 -40 -40 -> 0 (-640.279)
Optimization terminated at boundary conditions for parameters 0 1 2 3 4 5
//***** The following is the UltrasoundDISARegistrationAlgorithm terminal output
Intensity range [0..2435], scaling with 26
Intensity range [0..2666], scaling with 24
[DescriptorsRegistrationAlgorithm] Fixed volume preprocessing: 16.607 ms
[DISAFeaturesAlgorithm] Preset model 'DISA-LC2' cannot be used since neither ONNX or Torch engine is available
[DescriptorsRegistrationAlgorithm] DISA Algorithm failed.
[DescriptorsRegistrationAlgorithm] Error in extracting descriptors
//***** The following is the DescriptorsRegistrationAlgorithm terminal output
Intensity range [0..63310]
Intensity range [0..63984]
[DescriptorsRegistrationAlgorithm] Fixed volume preprocessing: 70.434 ms
[ML.ModelConfiguration] Loading config file Models/DISA/Features/volume-Torch.yaml
[ML.Engine] torch is not a registered engine - registered engines are: []. If you are targeting a C++ engine, make sure the corresponding plugin has been loaded. If you are targeting a Python engine, make sure that your Python environment has the relevant framework (pytorch, onnxruntime, openvino, etc.) installed.
[ML.MachineLearningModel] Could not create engine 'torch'.
[DISAFeaturesAlgorithm] Error in running model 'Models/DISA/Features/volume-Torch.yaml'. Could not create engine 'torch'.
[DescriptorsRegistrationAlgorithm] DISA Algorithm failed.
[DescriptorsRegistrationAlgorithm] Error in extracting descriptors