This is a Python implementation of the Approximate Intrinsic Voxel Structure (AIVS) algorithm proposed in the paper titled "Approximate Intrinsic Voxel Structure for Point Cloud Simplification", published in TIP-2021. The original code implementation can be found at https://github.com/vvvwo/AIVS-project.
AIVS is a method for simplifying point clouds by approximating their intrinsic voxel structure. This implementation supports batch computation based on AIVS, with the entire process divided into the following 4 steps:
- Preprocessing: Voxelization of point clouds
- Grouping and parallel sampling of the first set of point clouds
- Grouping and parallel sampling of the second set of point clouds
- Post-processing: Removal of redundant points
-
It's worth noting that in the original paper, octree downsampling is used first to uniformize the point cloud. Here, for convenience, I directly use farthest point sampling to accomplish this.
-
Due to limitations in the Python language, the sampling process for individual point clouds has been minimized as much as possible.
-
AIVS sampling on a point cloud with 2600 points now takes less than 0.5 seconds. Feel free to modify it to CUDA code for even faster implementation.
-
Since knn_cuda cannot be installed on Windows, it's recommended to use this program on Ubuntu for optimal performance.
To install AIVS, clone this repository and install the required dependencies using pip:
git clone https://github.com/your_username/AIVS-python.git
cd AIVS-python
pip install -r requirements.txt
As the number of points decreases, the results sampled by AIVS retain the essential structural features of the original point cloud remarkably well. This superiority over FPS highlights its effectiveness.