Skip to content

IFL-CAMP/pose_regularization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Total Variation Regularization of Pose Streams

This repository contains the implementation of the method proposed in

@article{esposito2019total,
  title={Total Variation Regularization of Pose Signals
         with an Application to 3D Freehand Ultrasound},
  author={Esposito, Marco and Hennersperger, Christoph and Göbl, Rüdiger and Demaret, Laurent and Storath, Martin and Navab, Nassir
           and Baust, Maximilian and Weinmann, Andreas},
  journal={IEEE Transactions on Medical Imaging},
  volume={38},
  number={10},
  pages={2245-2258},
  year={2019},
  doi={10.1109/TMI.2019.2898480}, 
  publisher={ IEEE }
}

(PREPRINT available here) for the regularization of 6-degrees-of-freedom pose streams, such as the output of a tracking system. The method has the ability to compensate for significant jitter, while maintaining the features of the original signal (e.g. sudden and sharp variations in the movement direction).

This is achieved by minimizing the following functional:

equation

where the equation term penalizes the deviation of the output signal equation from the original signal equation, and equation penalizes large variations within consecutive poses of the output stream. The joint action of the two functionals, balanced by the coefficient equation, allows to find the desired trade-off between the fidelity to the original signal and the regularity of the output.

This implementation includes first- and second-order regularization for the equation term, and a first-order regularizer for equation. Each regularizer can be combined with an L1, L2 or HUBER penalization.

For further details on the algorithm, the reader is referred to the published paper. Practical instructions to use the algorithm, including a brief description of the action of each parameter, is provided in the documentation of each interface (Doxygen for C++, MATLAB help, Python docstrings).

License

This software is released under the LGPLv3 license. Hence, it can be used and included into proprietary software; however, any modification to the code of the library itself must be released publicly.

Usage

The software is implemented in C++. A MATLAB and a Python interface are also provided.

C++

The library can be built using CMake. There are no external dependencies. C++11 is required.

MATLAB

A compile.m script is provided in the matlab/wrapper folder. This script can be executed to compile a mex extension.

After running the compile script, the matlab directory must be added recursively to your path to use the contained functions.

Alternatively, the mex file can be copied together with the scripts into your path.

More details are available in the respective page.

Python

Coming soon as a PyPI package.

Meanwhile, the Cython extension can be built from source and installed as detailed in the respective instructions.

About

Total Variation Regularization of Pose Streams

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published