CUDA accelerated iterative closest point algorithm.
Major dependencies:
cupy
for GPU accelerated linear algebra.cuml
for GPU accelerated nearest neighbor.tqdm
for progress bar.
conda create -n cuicp -c rapidsai -c conda-forge -c nvidia \
cuml=22.10 python=3.9 cudatoolkit=11.5 cupy=11.3 tqdm
conda activate cuicp
docker build -t cuicp -f Dockerfile .
docker run --rm -it \
--shm-size=1g \
--ulimit memlock=-1 \
-v $(pwd):/workspace \
cuicp \
python ...
python icp.py \
--source /path/to/source.xyz \
--target /path/to/target.xyz \
--output /path/to/output.xyz
For detailed usage, please refer to icp.py
.
The example data can be found here. Please download the tar and extract to ./data/cal
. Use the script scripts/run_icp.sh
to align the example point clouds placed in data/cal
and save to data/out
. Then visualize the original and aligned point clouds in MeshLab (the original point clouds on the left and the aligned ones on the right). Each iteration takes about 0.28s on NVIDIA RTX3090 (with Intel i9-12900K).
MIT license.