Skip to main content

It supports feature based registration and can be used along with the FPFH remote module. The class itkRANSAC is the main driver that takes an object of class itkLandmarkRegistrationEstimator as argument. Please refer to the documentation for a detailed description and sample usage: https://github.com/InsightSoftwareConsortium/ITKRANSAC.

Project description

ITKRANSAC

Overview

This is the source code for a C++ templated implementation of the RANSAC algorithm and associated Python wrapping. The implementation is multi-threaded. This repository is only for pointset registratation and differs slightly from the original generic implementation due to optimization.

For implementation related to plane and sphere estimation please refer https://github.com/midas-journal/midas-journal-769 and the associated Insight Journal article.

The code is "in the style of ITK". That is, it is very similar to the official ITK style but does not follow all of the required conventions.

Manifest:

  1. RANSAC {h,txx} - Multi-threaded implementation of the generic RANSAC algorithm.
  2. ParametersEstimator.{h,hxx} - Super class of all parameter estimation objects that can be used with the RANSAC algorithm. This is an abstract class that defines an interface.
  3. itkLandmarkRegistrationEstimator.{h,hxx} - Estimation code for landmark based pointset registration.
  4. Testing/*.cxx - Test for the PointSet registration using landmark points.

Python wrapping installation:

pip install itk-ransac



Sample Usage in Python for 3D PointSet is shown here:

data = itk.vector[itk.Point[itk.D, 6]]()
agreeData = itk.vector[itk.Point[itk.D, 6]]()
GenerateData(data, agreeData)

transformParameters = itk.vector.D()

TransformType = itk.Similarity3DTransform.D

maximumDistance = inlier_value
RegistrationEstimatorType = itk.Ransac.LandmarkRegistrationEstimator[6, TransformType]
registrationEstimator = RegistrationEstimatorType.New()
registrationEstimator.SetMinimalForEstimate(number_of_ransac_points)
registrationEstimator.SetAgreeData(agreeData)
registrationEstimator.SetDelta(maximumDistance)
registrationEstimator.LeastSquaresEstimate(data, transformParameters)

desiredProbabilityForNoOutliers = 0.99
RANSACType = itk.RANSAC[itk.Point[itk.D, 6], itk.D, TransformType]
ransacEstimator = RANSACType.New()
ransacEstimator.SetData(data)
ransacEstimator.SetAgreeData(agreeData)
ransacEstimator.SetMaxIteration(number_of_iterations)
ransacEstimator.SetNumberOfThreads(8)
ransacEstimator.SetParametersEstimator(registrationEstimator)

percentageOfDataUsed = ransacEstimator.Compute( transformParameters, desiredProbabilityForNoOutliers )
for i in transformParameters:
  print(i)



Landmarks can be obtained by performing feature matching.

For this one can use the ITKFPFH library.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

itk_ransac-0.2.1-cp311-abi3-win_amd64.whl (545.1 kB view hashes)

Uploaded CPython 3.11+ Windows x86-64

itk_ransac-0.2.1-cp311-abi3-manylinux_2_28_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.11+ manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.1-cp311-abi3-manylinux_2_28_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.11+ manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.1-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.11+ manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.1-cp311-abi3-manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.11+

itk_ransac-0.2.1-cp311-abi3-macosx_11_0_arm64.whl (1.2 MB view hashes)

Uploaded CPython 3.11+ macOS 11.0+ ARM64

itk_ransac-0.2.1-cp311-abi3-macosx_10_9_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.11+ macOS 10.9+ x86-64

itk_ransac-0.2.1-cp310-cp310-win_amd64.whl (545.1 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

itk_ransac-0.2.1-cp310-cp310-manylinux_2_28_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.1-cp310-cp310-manylinux_2_28_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.1-cp310-cp310-manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.10

itk_ransac-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

itk_ransac-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

itk_ransac-0.2.1-cp39-cp39-win_amd64.whl (545.7 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

itk_ransac-0.2.1-cp39-cp39-manylinux_2_28_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.1-cp39-cp39-manylinux_2_28_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.1-cp39-cp39-manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.9

itk_ransac-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (1.2 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

itk_ransac-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

itk_ransac-0.2.1-cp38-cp38-win_amd64.whl (572.2 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

itk_ransac-0.2.1-cp38-cp38-manylinux_2_28_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

itk_ransac-0.2.1-cp38-cp38-manylinux_2_28_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

itk_ransac-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

itk_ransac-0.2.1-cp38-cp38-manylinux2014_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.8

itk_ransac-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl (1.6 MB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page