Skip to content

InsightSoftwareConsortium/ITKTrimmedPointSetRegistration

Repository files navigation

ITKTrimmedPointSetRegistration

Build Status PyPI Version License

Overview

This is a module for trimmed point set registration.

This module provides a trimmed euclidean point set metric that implements a an adaptive trimming of the point set used during the optimization in the registration process: it provides a decorator to the PointSetMetric that overrides the accumulation of the value and derivative computation to use a trimmed number of points.

The itkTrimmedEuclideanDistancePointSetToPointSetMetricv4 is multithreaded and signficantly improves perfromance with the patch InsightSoftwareConsortium/ITK#1037.

Further performance increase can be achieved by subsampling an approximate derivate through SetSamplingRate.

A Simple Example

Comparing Jensen, Euclidean and trimmed Euclinean metric on 2d toy example

Green - Input target point set

Black - Input source point set

Red - Transformed source point set

Documentation/Figures/jensen.png

Documentation/Figures/euclidean.png

Documentation/Figures/trimmed-euclidean.png

TODO

  • Implement multithreading.
  • Add a real world example.
  • Investigate Jensen unexpected behaviour in simple example.
  • Currently the point set metrics are not symmetric since the iterations is only over one fo the point sets. Consider adding symmetric versions. Or document the assymetric behaviour well.
  • A decorator to the PointSetToPointSetMetricv4 that overrides the accumulation of the value and derivative computation to use a trimmed number of points is in the module as well, but is as of yet not functional. The issue is access to protected members in the base class that I think would need to be fixed in the base class.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •