![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/US/UltrasoundConeCalibrationAlgorithm.h>
Algorithm that automatically computes ultrasound calibration using two or more ultrasound sweeps covering a cone phantom. More...
Algorithm that automatically computes ultrasound calibration using two or more ultrasound sweeps covering a cone phantom.
The sweeps must be taken with a "Cone Phantom" as described in the paper "PRO-TIP: Phantom for RObust automatic ultrasound calibration by TIP detection" (Ronchetti et al. 2022).
The algorithm proceeds in the following steps:
Classes | |
| class | TrackedCone |
| Represents a cone detected in an ultrasound sweep across multiple frames. More... | |
| struct | Tip |
| Represents a detected cone tip. More... | |
| struct | EstimatedCalibration |
| Represents an estimated calibration result. More... | |
| struct | Fiducials |
| Represents fiducial points used for calibration. More... | |
| struct | Matches |
| Represents matches between cone tips from different sweeps. More... | |
Public Member Functions | |
| UltrasoundConeCalibrationAlgorithm (std::vector< UltrasoundSweep * > sweeps) | |
| void | compute () override |
| Execute the algorithm. | |
| mat4 | originalCalibration () const |
| Returns the original calibration matrix. | |
| int | detectTips (int sweepIndex) |
| Detects cone tips in a given sweep. | |
| std::vector< TrackedCone > | detectCones (SharedImageSet *segmentation, int sweepIndex) |
| Given a segmentation, detects cones and merges the detections into tracks. | |
| bool | setSegmentations (std::vector< SharedImageSet * > segmentations) |
| Sets segmentations to be used instead of the ones produced by the ML model. | |
| Public Member Functions inherited from ImFusion::Algorithm | |
| Algorithm () | |
| Default constructor will registers a single "compute" action that calls compute() and returns status(). | |
| virtual OwningDataList | takeOutput () |
| Return any new Data that was created by the Algorithm during the last call to compute(). | |
| virtual void | setProgress (Progress *progress) |
| Sets a Progress interface the algorithm can use to notify observers about its computing progress. | |
| Progress * | progress () const |
| Returns the progress interface if set. | |
| virtual int | status () const |
| Indicates the status of the last call to compute(). | |
| virtual bool | survivesDataDeletion (const Data *) const |
| Indicates whether the algorithm can handle (partial) deletion of the specified data, by default this checks whether the data is in the input list. | |
| const FactoryInfo & | factoryInfo () const |
| Returns the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| void | setFactoryInfo (const FactoryInfo &value) |
| Sets the record describing how this Algorithm was instantiated by the AlgorithmFactory. | |
| Status | runAction (const std::string &id) |
| Run the action with name id if it exists. | |
| const std::vector< Action > & | actions () |
| Get a mapping from Action id to Action as registered in this algorithm. | |
| Public Member Functions inherited from ImFusion::Configurable | |
| virtual void | configure (const Properties *p) |
| Configure this object instance by de-serializing the given Properties. | |
| virtual void | configuration (Properties *p) const |
| Serialize the current object configuration into the given Properties object. | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Static Public Member Functions | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
| Static Public Member Functions inherited from ImFusion::Algorithm | |
| static bool | createCompatible (const DataList &data, Algorithm **a=nullptr) |
| Factory function to check algorithm compatibility with input data and optionally instantiate it. | |
Public Attributes | |
| std::vector< Tip > | m_tips |
| Detected tips from ultrasound sweeps. | |
| std::vector< TrackedCone > | m_cones |
| Tracked cones detected across multiple frames. | |
| std::vector< EstimatedCalibration > | m_calibrations |
| Calibrations estimated by RANSAC. | |
| Matches | m_matches |
| Matches between cone tips from different sweeps. | |
| std::unordered_map< std::string, std::unordered_map< std::string, Fiducials > > | m_fiducials |
| Parameter< std::string > | p_modelPath = {"modelPath", "Models/ConesCalibration.yaml", *this} |
| Path to the ML model. | |
| Parameter< double > | p_phantomScale = {"phantomScale", 1.0, *this} |
| Relative scale of the physical phantom compared the default model. | |
| Parameter< double > | p_heightEps = {"heightEps", 3.0, *this} |
| Maximum height difference for matching tips in mm. | |
| Parameter< int > | p_imageFrames = {"imageFrames", 30, *this} |
| Number of frames used for image-based refinement. | |
| Parameter< int > | p_imageBasedRepeats = {"imageBasedRepeats", 2, *this} |
| Number of times the image-based refinement is repeated. | |
| Parameter< int > | p_smoothing = {"smoothing", 5, *this} |
| Smoothing parameter for tip detection. | |
| Parameter< int > | p_minFrames = {"minFrames", 10, *this} |
| Minimum number of frames for accepting a cone track. | |
| Parameter< double > | p_eps = {"eps", 10.0, *this} |
| RANSAC epsilon parameter. | |
| Parameter< int > | p_ransacIterations = {"ransacIterations", 50000, *this} |
| Number of RANSAC iterations. | |
| Parameter< int > | p_ransacKeepBest = {"ransacKeepBest", 5, *this} |
| Number of best candidates to keep in RANSAC. | |
| Parameter< double > | p_optimizationThreshold = {"optimizationThreshold", 10, *this} |
| Threshold for early discard in RANSAC. | |
| Parameter< bool > | p_debugMode = {"debugMode", false, *this} |
| Debug mode flag. | |
| Public Attributes inherited from ImFusion::Algorithm | |
| Signal | signalOutputChanged |
| Signal should be emitted by Algorithms when their output/result has changed. | |
| Signal | signalParametersChanged |
| Signal should be emitted by Algorithms when their parameter configuration has changed. | |
| Public Attributes inherited from ImFusion::Configurable | |
| Signal | signalParametersChanged |
| Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Additional Inherited Members | |
| Public Types inherited from ImFusion::Algorithm | |
| enum | Status { Unknown = -1 , Success = 0 , Error = 1 , InvalidInput , IncompleteInput , OutOfMemoryHost , OutOfMemoryGPU , UnsupportedGPU , UnknownAction , AbortedByUser , User = 1000 } |
| Status codes. More... | |
| Protected Member Functions inherited from ImFusion::Algorithm | |
| void | loadDefaults () |
| void | registerAction (const std::string &id, const std::string &guiName, const std::function< Algorithm::Status(void)> &action) |
| Register an action to be run via runAction. | |
| template<typename D> | |
| void | registerAction (const std::string &id, const std::string &guiName, Algorithm::Status(D::*action)(void)) |
| Template version of runAction that can be used with a pointer to a member function. | |
| void | registerAction (const Action &action) |
| Register an action. | |
| Protected Attributes inherited from ImFusion::Algorithm | |
| std::string | m_name |
| Algorithm name. | |
| Progress * | m_progress = nullptr |
| Non-owing pointer to a progress interface. May be a nullptr. | |
| FactoryInfo | m_factoryInfo = {} |
| Record describing how this algorithm was instantiated by the AlgorithmFactory. | |
| int | m_status = Status::Unknown |
| Algorithm status after last call to compute(). | |
| std::vector< Action > | m_actions |
| Map of key given by the id of the action, of the available actions of this algorithm. | |
| Protected Attributes inherited from ImFusion::Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
overridevirtual |
Execute the algorithm.
Implements ImFusion::Algorithm.
| int ImFusion::US::UltrasoundConeCalibrationAlgorithm::detectTips | ( | int | sweepIndex | ) |
Detects cone tips in a given sweep.
| sweepIndex | Index of the sweep. |
| std::vector< TrackedCone > ImFusion::US::UltrasoundConeCalibrationAlgorithm::detectCones | ( | SharedImageSet * | segmentation, |
| int | sweepIndex ) |
Given a segmentation, detects cones and merges the detections into tracks.
| segmentation | Segmentation image set. |
| sweepIndex | Index of the sweep. |
| bool ImFusion::US::UltrasoundConeCalibrationAlgorithm::setSegmentations | ( | std::vector< SharedImageSet * > | segmentations | ) |
Sets segmentations to be used instead of the ones produced by the ML model.
| segmentations | List of segmentations. |