このレポは、Pytorchのポイントネットとポイントネット++の実装です。
2021/03/27:
(1)ポイントネット++が53.5% MIOUを達成できるセマンティックセグメンテーションの事前訓練モデルをリリースします。
(2) log/の分類およびパーツセグメンテーションのための事前に訓練されたモデルをリリースします。
2021/03/20:分類のためのコードを更新します。
(1)トレーニングModelNet10データセットのコードを追加します。 --num_category 10の設定を使用します。
(2)CPUでのみ実行するためのコードを追加します。 --use_cpuの設定を使用します。
(3)オフラインデータのコードを追加して、トレーニングを加速してトレーニングを加速します。 --process_dataの設定を使用します。
(4)均一なサンプリングでトレーニング用のコードを追加します。 --use_uniform_sampleの設定を使用します。
2019/11/26:
(1)以前のコードでいくつかのエラーを修正し、データ増強トリックを追加しました。現在、1024ポイントのみ分類が92.8%を達成できます!
(2)分類とセグメンテーション、視覚化によるセマンティックセグメンテーションを含むテストコードを追加しました。
(3)すべてのモデルを./modelsファイルに整理して、簡単に使用しました。
最新のコードは、Ubuntu 16.04、Cuda10.1、Pytorch 1.6およびPython 3.7でテストされています。
conda install pytorch==1.6.0 cudatoolkit=10.1 -c pytorchAlignment ModelNetをこちらからダウンロードし、 data/modelnet40_normal_resampled/を保存します。
次のコードで異なるモードを実行できます。
--process_dataを使用できます。 Pre-ProcessDデータをこちらからダウンロードして、 data/modelnet40_normal_resampled/に保存できます。--num_category 10使用できます。 # ModelNet40
# # Select different models in ./models
# # e.g., pointnet2_ssg without normal features
python train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg
python test_classification.py --log_dir pointnet2_cls_ssg
# # e.g., pointnet2_ssg with normal features
python train_classification.py --model pointnet2_cls_ssg --use_normals --log_dir pointnet2_cls_ssg_normal
python test_classification.py --use_normals --log_dir pointnet2_cls_ssg_normal
# # e.g., pointnet2_ssg with uniform sampling
python train_classification.py --model pointnet2_cls_ssg --use_uniform_sample --log_dir pointnet2_cls_ssg_fps
python test_classification.py --use_uniform_sample --log_dir pointnet2_cls_ssg_fps
# ModelNet10
# # Similar setting like ModelNet40, just using --num_category 10
# # e.g., pointnet2_ssg without normal features
python train_classification.py --model pointnet2_cls_ssg --log_dir pointnet2_cls_ssg --num_category 10
python test_classification.py --log_dir pointnet2_cls_ssg --num_category 10| モデル | 正確さ |
|---|---|
| ポイントネット(公式) | 89.2 |
| PointNet2(公式) | 91.9 |
| ポイントネット(通常のないpytorch) | 90.6 |
| ポイントネット(通常のpytorch) | 91.4 |
| pointnet2_ssg(通常のないpytorch) | 92.2 |
| pointnet2_ssg(通常のpytorch) | 92.4 |
| pointnet2_msg(通常のpytorch) | 92.8 |
Alignment shapenetをこちらからダウンロードして、 data/shapenetcore_partanno_segmentation_benchmark_v0_normal/を保存します。
## Check model in ./models
## e.g., pointnet2_msg
python train_partseg.py --model pointnet2_part_seg_msg --normal --log_dir pointnet2_part_seg_msg
python test_partseg.py --normal --log_dir pointnet2_part_seg_msg
| モデル | Inctance avg iou | クラスAVG IOU |
|---|---|---|
| ポイントネット(公式) | 83.7 | 80.4 |
| PointNet2(公式) | 85.1 | 81.9 |
| ポイントネット(pytorch) | 84.3 | 81.1 |
| Pointnet2_ssg(pytorch) | 84.9 | 81.8 |
| Pointnet2_msg(pytorch) | 85.4 | 82.5 |
3D屋内解析データセット( S3DIS )をこちらからダウンロードして、 data/s3dis/Stanford3dDataset_v1.2_Aligned_Version/を保存します。
cd data_utils
python collect_indoor3d_data.py
処理されたデータはdata/stanford_indoor3d/に保存されます。
## Check model in ./models
## e.g., pointnet2_ssg
python train_semseg.py --model pointnet2_sem_seg --test_area 5 --log_dir pointnet2_sem_seg
python test_semseg.py --log_dir pointnet2_sem_seg --test_area 5 --visual
視覚化の結果はlog/sem_seg/pointnet2_sem_seg/visual/に保存され、meshlabでこれらの.objファイルを視覚化できます。
| モデル | 全体的なACC | クラスAVG IOU | チェックポイント |
|---|---|---|---|
| ポイントネット(pytorch) | 78.9 | 43.7 | 40.7MB |
| Pointnet2_ssg(pytorch) | 83.0 | 53.5 | 11.2MB |
## build C++ code for visualization
cd visualizer
bash build.sh
## run one example
python show3d_balls.py


Halimacc/PointNet3
fxia22/pointnet.pytorch
Charlesq34/ポイントネット
Charlesq34/ポイントネット++
このリポジトリがあなたの研究で役立つと思う場合は、それと他の作品を引用することを検討してください。
@article{Pytorch_Pointnet_Pointnet2,
Author = {Xu Yan},
Title = {Pointnet/Pointnet++ Pytorch},
Journal = {https://github.com/yanx27/Pointnet_Pointnet2_pytorch},
Year = {2019}
}
@InProceedings{yan2020pointasnl,
title={PointASNL: Robust Point Clouds Processing using Nonlocal Neural Networks with Adaptive Sampling},
author={Yan, Xu and Zheng, Chaoda and Li, Zhen and Wang, Sheng and Cui, Shuguang},
journal={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2020}
}
@InProceedings{yan2021sparse,
title={Sparse Single Sweep LiDAR Point Cloud Segmentation via Learning Contextual Shape Priors from Scene Completion},
author={Yan, Xu and Gao, Jiantao and Li, Jie and Zhang, Ruimao, and Li, Zhen and Huang, Rui and Cui, Shuguang},
journal={AAAI Conference on Artificial Intelligence ({AAAI})},
year={2021}
}
@InProceedings{yan20222dpass,
title={2DPASS: 2D Priors Assisted Semantic Segmentation on LiDAR Point Clouds},
author={Xu Yan and Jiantao Gao and Chaoda Zheng and Chao Zheng and Ruimao Zhang and Shuguang Cui and Zhen Li},
year={2022},
journal={ECCV}
}