SPH3D-GCN 开源项目使用教程
1. 项目介绍
SPH3D-GCN(Spherical Kernel for Efficient Graph Convolution on 3D Point Clouds)是由Huan Lei、Naveed Akhtar和Ajmal Mian共同开发的开源项目。该项目提出了一种全新的球形核,用于3D点云的图形卷积,旨在通过系统量化局部3D空间,识别数据中的独特几何关系。这种新型核类似于常规CNN中的卷积核,保持了平移不变性和不对称性,使模型能共享相似局部结构的权重,并精细化学习几何特性。更重要的是,它无需依赖边的滤波器生成,从而提高了在大规模点云上计算的效率。该方法已成功应用于点云分类和语义分割,包括ModelNet、ShapeNet、RueMonge2014、ScanNet和S3DIS等主要数据集。
2. 项目快速启动
2.1 环境配置
首先,确保你已经安装了Python 3.5和Tensorflow 1.12.0。此外,需要安装Cuda 9.0和Cudnn 7.1.4。以下是安装步骤:
# 安装Python 3.5
sudo apt-get install python3.5
# 安装Tensorflow 1.12.0
pip install tensorflow-gpu==1.12.0
# 安装Cuda 9.0和Cudnn 7.1.4
# 请参考NVIDIA官方文档进行安装
2.2 克隆项目
使用Git克隆项目到本地:
git clone https://github.com/EnyaHermite/SPH3D-GCN.git
cd SPH3D-GCN
2.3 编译自定义操作
项目中包含一些自定义的Tensorflow操作,需要编译:
cd tf_ops
./compile.sh
2.4 数据准备
使用Matlab预处理数据集,并将其转换为tfrecord格式:
# 预处理数据集
matlab -nodisplay -r "run preprocessing/shapenet_removeSingularPoints.m"
# 转换为tfrecord格式
cd io
python make_tfrecord_modelnet.py
python make_tfrecord_shapenet.py
2.5 训练模型
以ModelNet数据集为例,训练分类模型:
cd modelnet40_cls
python train_modelnet.py
2.6 测试模型
训练完成后,可以使用以下命令测试模型:
python evaluate_modelnet.py --num_votes=12
3. 应用案例和最佳实践
3.1 点云分类
SPH3D-GCN在ModelNet40数据集上的分类表现优异。通过训练和测试,可以得到高精度的分类结果。
3.2 语义分割
在ShapeNet和ScanNet数据集上,SPH3D-GCN能够有效地进行语义分割,适用于复杂物体的部件分割和室内环境的扫描数据分割。
3.3 最佳实践
- 数据预处理:确保数据集经过适当的预处理,转换为tfrecord格式,以提高数据加载效率。
- 超参数调整:根据具体任务调整学习率、批量大小等超参数,以获得最佳性能。
- 模型评估:使用多个投票(num_votes)进行模型评估,以提高评估的稳定性。
4. 典型生态项目
4.1 3D点云处理工具包
- Open3D:一个开源的3D数据处理库,支持点云、网格和体积数据的高效处理。
- PCL(Point Cloud Library):一个功能强大的点云处理库,支持多种点云操作和算法。
4.2 深度学习框架
- TensorFlow:SPH3D-GCN基于TensorFlow实现,TensorFlow是一个广泛使用的深度学习框架。
- PyTorch:另一个流行的深度学习框架,支持动态计算图,适合快速原型设计和研究。
通过结合这些生态项目,可以进一步扩展SPH3D-GCN的功能和应用场景。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



