이 repo는 Pytorch의 PointNet 및 PointNet ++의 구현입니다.
2021/03/27 :
(1) PointNet ++가 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 pytorch 여기에서 Alignment Modelnet을 다운로드하고 data/modelnet40_normal_resampled/ 저장하십시오.
다음 코드로 다른 모드를 실행할 수 있습니다.
--process_data 사용할 수 있습니다. 여기에서 사전 프로세스 데이터를 다운로드하여 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 |
| Pointnet (정상없는 Pytorch) | 90.6 |
| Pointnet (정상적인 pytorch) | 91.4 |
| pointnet2_ssg (정상없는 pytorch) | 92.2 |
| pointnet2_ssg (정상적인 pytorch) | 92.4 |
| pointnet2_msg (정상적인 pytorch) | 92.8 |
여기에서 정렬 셰이프 페넷을 다운로드하고 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 |
| Pointnet (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 | 검문소 |
|---|---|---|---|
| Pointnet (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/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}
}