Home

Awesome

计图点云库

已经实现的模型

ModelClassificationSegmentation
PointNet
PointNet ++
PointCNN
DGCNN
PointConv
KPConv

使用方法

安装依赖

sudo apt install python3.7-dev libomp-dev
sudo python3.7 -m pip install git+https://github.com/Jittor/jittor.git
python3.7 -m pip install sklearn lmdb msgpack_numpy

安装点云库

git clone https://github.com/Jittor/PointCloudLib.git # 将库下载的本地
# 您需要将 ModelNet40 和 ShapeNet 数据集下载到 data_util/data/ 里面
ModelNet40 数据集链接 : https://shapenet.cs.stanford.edu/media/modelnet40_normal_resampled.zip 
ShapeNet 数据集链接 : https://shapenet.cs.stanford.edu/media/shapenet_part_seg_hdf5_data.zip 

sh run_cls.sh # 点云分类的训练和测试(以PointNet为例) 
sh run_seg.sh # 点云分割的训练和测试(以PointNet为例)

# 对于kpconv,需要额外执行脚本再开始训练
cd cpp_wrappers
bash compile_wrappers.sh
cd ..
python train_cls.py --model kpconv # kpconv训练
python train_cls.py --model kpconv --eval # 修改train_cls.py中的chkp_path指定模型进行测试

所依赖的库

Python 3.7
Jittor 
Numpy
sklearn
lmdb
msgpack_numpy
...

实验结果

分类训练效果测试

ModelInputoverall accuracy
PointNet1024 xyz87.2
PointNet ++4096 xyz + normal92.3
PointCNN1024 xyz92.6
DGCNN1024 xyz92.9
PointConv1024 xyz + normal92.4
KPConvxyz + neighbors + pools + lengths + features92.5

分类训练时间测试

ModelSpeed up ratio (Compare with Pytorch)
PointNet1.22
PointNet ++2.72
PointCNN2.41
DGCNN1.22
PointConv
KPConv

分割训练效果测试

ModelInputpIoU
PointNet2048 xyz + cls label83.5
PointNet ++2048 xyz + cls label + normal85.0
PointCNN2048 xyz + normal86.0
DGCNN2048 xyz + cls label85.1
PointConv2048 xyz85.4

分割训练时间测试

ModelSpeed up ratio (Compare with Pytorch)
PointNet1.06
PointNet ++1.85
PointCNNNone (No pytorch implementation)
DGCNN1.05
PointConvNone (No pytorch implementation)

目录结构

.
├── data_utils                   # 数据相关工具
│   ├── data                     # 数据存放路径
│   ├── modelnet40_loader.py
│   └── shapenet_loader.py
├── misc
│   ├── layers.py
│   ├── ops.py
│   ├── pointconv_utils.py
│   └── utils.py
├── networks
│   ├── cls
│   │   ├── dgcnn.py
│   │   ├── pointcnn.py
│   │   ├── pointconv.py
│   │   ├── pointnet2.py
│   │   └── pointnet.py
│   └── seg
│       ├── dgcnn_partseg.py
│       ├── pointcnn_partseg.py
│       ├── pointconv_partseg.py
│       ├── pointnet2_partseg.py
│       └── pointnet_partseg.py

├── README.md
├── run_cls.sh
├── run_partseg.sh
├── train_cls.py
└── train_partseg.py

其他点云开源工作: PCT: https://github.com/MenghaoGuo/PCT

非常欢迎您使用计图的点云库进行相关的研究,如在使用中有问题,欢迎提交 issues。

Reference code :

https://github.com/AnTao97/dgcnn.pytorch