Skip to content

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

Code of conduct

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages