Skip to content

cserteGT3/RANSAC.jl

Repository files navigation

RANSAC.jl

Lifecycle Build Status Build status codecov.io

This package implements the efficient RANSAC algorithm for point clouds. Paper can be found here.

R. Schnabel, R. Wahl, R. Klein "Efficient RANSAC for Point-Cloud Shape Detection", in Computer Graphics Forum, Vol. 26, No. 2, pages 214-226, Blackwell Publishing, June 2007

WARNING: this implementation seems to be incorrect. It is slow and may not produce correct results. I'm sad, but almost certainly I won't revisit this project soon.

Efficient RANSAC

The efficient RANSAC algorithm is used to segment and fit primitive shapes (sphere, plane, cylinder, torus, cone) to point clouds. Up to my knowledge, this is the first implementation in Julia.

Main features

  • easy-to-use primitive recognition
  • extensible: it's easy to add new primitive shapes
  • fast (work in progress)

Differences from the reference implementation

  • no bitmap
  • separate parameters for each shape
  • no tori

Getting started

Install the package by:

] add https://github.com/cserteGT3/RANSAC.jl

The input of the algorithm is a point cloud with associated surface normals. The output is a set of primitive shapes with corresponding sets of points, and the rest of the points that do not belong to any primitives.

Follow the detailed example in the documentation.

Here's an example with a point cloud and the detected primitives colored according to their type. RANSAC example

Related projects

  • The RANSACVisualizer.jl package implements Makie.jl recipes to visualize results from this package.
  • There are other RANSAC implementations in Julia, for example: