Это репо является реализацией для PointNet и PointNet ++ в Pytorch.
2021/03/27:
(1) Выпустить предварительно обученные модели для семантической сегментации, где PointNet ++ может достичь 53,5% Miou.
(2) Выпустить предварительно обученные модели для классификации и сегментации деталей в log/ .
2021/03/20: коды обновления для классификации, включая:
(1) Добавьте коды для обучения набора данных ModelNet10 . Используя настройку --num_category 10 .
(2) Добавьте коды для работы только на процессоре. Использование настройки --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 pytorch Загрузите выравнивание 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| Модель | Точность |
|---|---|
| Pointnet (официальный) | 89,2 |
| Pointnet2 (официальный) | 91.9 |
| PointNet (Pytorch без нормального) | 90.6 |
| PointNet (Pytorch с нормальным) | 91.4 |
| Pointnet2_ssg (pytorch без нормального) | 92.2 |
| Pointnet2_ssg (pytorch с нормальным) | 92.4 |
| Pointnet2_msg (pytorch с нормальным) | 92,8 |
Загрузите выравнивание 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
| Модель | Инсация avg iou | Класс Avg iou |
|---|---|---|
| Pointnet (официальный) | 83,7 | 80.4 |
| Pointnet2 (официальный) | 85,1 | 81.9 |
| PointNet (Pytorch) | 84.3 | 81.1 |
| Pointnet2_ssg (pytorch) | 84,9 | 81.8 |
| Pointnet2_msg (pytorch) | 85,4 | 82,5 |
Загрузите 3D DATSET SACATING INSERSING ( 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/ и вы можете визуализировать этот файл .obj от Meshlab.
| Модель | Общий акк | Класс Avg iou | Контрольная точка |
|---|---|---|---|
| PointNet (Pytorch) | 78.9 | 43,7 | 40,7 МБ |
| Pointnet2_ssg (pytorch) | 83,0 | 53,5 | 11,2 МБ |
## build C++ code for visualization
cd visualizer
bash build.sh
## run one example
python show3d_balls.py


halimacc/pointnet3
fxia22/pointnet.pytorch
charlesq34/pointnet
charlesq34/pointnet ++
Если вы обнаружите, что это репо полезным в своем исследовании, пожалуйста, рассмотрите возможность ссылаться на его и другие работы:
@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}
}