CUDA accelerated iterative closest point (ICP).
| scripts | ||
| static | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| icp.py | ||
| LICENSE | ||
| README.md | ||
cuicp
CUDA accelerated iterative closest point algorithm.
Environment
Major dependencies:
cupyfor GPU accelerated linear algebra.cumlfor GPU accelerated nearest neighbor.tqdmfor progress bar.
Conda
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
docker build -t cuicp -f Dockerfile .
docker run --rm -it \
--shm-size=1g \
--ulimit memlock=-1 \
-v $(pwd):/workspace \
cuicp \
python ...
Running
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.
Example
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).
License
MIT license.
