Fast Globally Optimal ICP - A CUDA Implementation of Go-ICP
University of Pennsylvania, CIS 5650: GPU Programming and Architecture, Final Project
- Authors: Mufeng Xu & Zhaojin Sun
- Tested on:
- Windows 11/Ubuntu 24.04, i9-13900H @ 2.6GHz 32GB, RTX 4080 Laptop 12GB (Personal Computer)
This project implements CUDA acceleration for ICP: the classic point cloud registration algorithm, and its globally optimal improvement, Go-ICP. The project also provides tools for visualization and performance measurement in this repo.
The key algorithm in the globally optimal ICP problem is Branch-and-Bound (BnB),
global minimum is searched in the
Instead of directly searching over
Our CUDA acceleration focus on:
- Procrustes analysis in the ICP algorithm
- Nearest neighbor searfch
- Upper/Lower bounds (registration error) computation
- Jiaolong Yang, Hongdong Li, Dylan Campbell and Yunde Jia. Go-ICP: A Globally Optimal Solution to 3D ICP Point-Set Registration. IEEE Transactions on Pattern Analysis and Machine Intelligence (T-PAMI), 2016.
- Jiaolong Yang, Hongdong Li and Yude Jia. Go-ICP: Solving 3D Registration Efficiently and Globally Optimally. International Conference on Computer Vision (ICCV), 2013.
- Go-ICP (GitHub)