All Projects → Gregjksmith → Iterative-Closest-Point

Gregjksmith / Iterative-Closest-Point

Licence: MIT License
Implementation of the iterative closest point algorithm. A point cloud is transformed such that it best matches a reference point cloud.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Iterative-Closest-Point

sp segmenter
Superpixel-based semantic segmentation, with object pose estimation and tracking. Provided as a ROS package.
Stars: ✭ 33 (-67.33%)
Mutual labels:  point-cloud
graspnet-baseline
Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020)
Stars: ✭ 146 (+44.55%)
Mutual labels:  point-cloud
OpencvInstallation
shell script for openCV installation and configuration in linux based system. Most easy way to configue openCV, you only need to run opencv.sh shell file.
Stars: ✭ 16 (-84.16%)
Mutual labels:  machine-vision
lepcc
Point Cloud Compression used in i3s Scene Layer Format
Stars: ✭ 22 (-78.22%)
Mutual labels:  point-cloud
SimpleView
Official Code for ICML 2021 paper "Revisiting Point Cloud Shape Classification with a Simple and Effective Baseline"
Stars: ✭ 95 (-5.94%)
Mutual labels:  point-cloud
self-sample
Single shape Deep Point Cloud Consolidation [TOG 2021]
Stars: ✭ 33 (-67.33%)
Mutual labels:  point-cloud
mp2p icp
Multi primitive-to-primitive (MP2P) ICP algorithms in C++
Stars: ✭ 84 (-16.83%)
Mutual labels:  icp
velocity
Structure From Motion (SFM) for vehicle speed
Stars: ✭ 30 (-70.3%)
Mutual labels:  machine-vision
urban road filter
Real-time LIDAR-based Urban Road and Sidewalk detection for Autonomous Vehicles 🚗
Stars: ✭ 134 (+32.67%)
Mutual labels:  point-cloud
lowshot-shapebias
Learning low-shot object classification with explicit shape bias learned from point clouds
Stars: ✭ 37 (-63.37%)
Mutual labels:  point-cloud
CurveNet
Official implementation of "Walk in the Cloud: Learning Curves for Point Clouds Shape Analysis", ICCV 2021
Stars: ✭ 94 (-6.93%)
Mutual labels:  point-cloud
volumentations
Augmentation package for 3d data based on albumentaitons
Stars: ✭ 26 (-74.26%)
Mutual labels:  point-cloud
awesome-lidar
😎 Awesome LIDAR list. The list includes LIDAR manufacturers, datasets, point cloud-processing algorithms, point cloud frameworks and simulators.
Stars: ✭ 217 (+114.85%)
Mutual labels:  point-cloud
cloud to map
Algorithm that converts point cloud data into an occupancy grid
Stars: ✭ 26 (-74.26%)
Mutual labels:  point-cloud
BtcDet
Behind the Curtain: Learning Occluded Shapes for 3D Object Detection
Stars: ✭ 104 (+2.97%)
Mutual labels:  point-cloud
cpnet
Learning Video Representations from Correspondence Proposals (CVPR 2019 Oral)
Stars: ✭ 93 (-7.92%)
Mutual labels:  point-cloud
ruledesigner
Rule Designer is the Eclipse-based development environment for ODM developers.
Stars: ✭ 14 (-86.14%)
Mutual labels:  icp
TensorPy
Easy Image Classification with TensorFlow
Stars: ✭ 44 (-56.44%)
Mutual labels:  machine-vision
pointnet2-pytorch
A clean PointNet++ segmentation model implementation. Support batch of samples with different number of points.
Stars: ✭ 45 (-55.45%)
Mutual labels:  point-cloud
lvr2
Las Vegas Reconstruction 2.0
Stars: ✭ 39 (-61.39%)
Mutual labels:  point-cloud

Iterative-Closest-Point

Implementation of the iterative closest point algorithm. Algorithm is based on the work outlined in [1]. A point cloud is transformed such that it best "matches" a reference point cloud.

For each point in the dynamic point cloud, we search for its closest point in the static point cloud. We solve for an affine transform which minimized the distance between these point pairs. The dynamic point are updated with this affine transform and the process is repeated until a stopping condition is met.

Transforms are solved using SVD decomposition and searching is performed using kd-tree NN search.

API

class Point
{
	float pos[3];	// x,y,z coordinates of a point in space.
}

ICP.h:

void icp(std::vector<Point*> &dynamicPointCloud, std::vector<Point*> &staticPointCloud);

Install

build the following located in /src :

  • ICP.cpp
  • ICP.h
  • KdTree.cpp
  • KdTree.h
  • svd.cpp
  • svd.h
  • defs_and_types.h

Results

iteration 0: Instant Radiosity

iteration 20: Instant Radiosity

iteration 40: Instant Radiosity

iteration 100: Instant Radiosity

iteration 400: Instant Radiosity

[1] Arun, K. Somani, Thomas S. Huang, and Steven D. Blostein. "Least-squares fitting of two 3-D point sets." IEEE Transactions on pattern analysis and machine intelligence 5 (1987): 698-700.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].