PointNet++(pytorch)

一. Shape Classification

1.1Data

modelnet40分类数据集

链接:https://pan.baidu.com/s/13Ey0trCBY3CNxXzP8ugErQ    提取码:1234 

1.2Train

1)check model 是否在model文件夹下

2)训练命令

python train_cls.py --model pointnet2_cls_msg --normal --log_dir pointnet_cls_msg

--model pointnet2_cls_msg   ##选择pointnet2_cls_msg

--normal ##使用法向量信息

--log_dir pointnet_cls_msg##指定日志文件保存的路径

如果出现显存溢出情况,如:Runtime Rrror: CUDA out of memory. 

python train_cls.py --model pointnet2_cls_msg --normal --log_dir pointnet_cls_msg --batch_size 16

batch_size :即一次训练所抓取的数据样本数量,BATCH_SIZE的大小影响训练速度和模型优化。默认是24。

BATCH_SIZE=m(训练集样本数量);相当于直接抓取整个数据集,训练时间长,但梯度准确。但不适用于大样本训练,比如IMAGENET。只适用于小样本训练,但小样本训练一般会导致过拟合现象,因此不建议如此设置。

若BATCH_SIZE=1;梯度变化波动大,网络不容易收敛。

若BATCH_SIZE设置合适,梯度会变准确。

此时再增加BATCH_SIZE大小,梯度也不会变得更准确。

同时为了达到更高的训练网络精度,应该增大epoch,使训练时间变长。

3)训练结束 

训练完成自动生成log文件夹,保存了日志文件和网络参数

检查是否有保存的模型文件 .pth 文件

\log\classification\pointnet2_cls_msg\checkpoints\best_model.pth

torch.save(model.state_dict(), "my_model.pth")  # 只保存模型的参数
 
torch.save(model, "my_model.pth")  # 保存整个模型

logs文件下的训练日志

\log\classification\pointnet2_cls_msg\logs\pointnet2_cls_msg.txt

1.3Test

1)测试命令

python test_classification.py --log_dir pointnet2_cls_msg

测试后log文件中保存了日志文件

2)测试日志

\log\classification\pointnet2_cls_msg\eval.txt

2023-07-23 11:23:27,599 - Model - INFO - Namespace(batch_size=24, gpu='0', log_dir='pointnet2_cls_msg', num_category=40, num_point=1024, num_votes=3, use_cpu=False, use_normals=False, use_uniform_sample=False)

3)评价指标

平均精度(mean accuracy,MA)和 总 体 精 度(overall accuracy,OA)两个最主要的分类评价指标分析对比不同的分类方法

二. Part Segmentation

2.1Data

shapenetcore_partanno_segmentation_benchmark_v0_normal

链接:https://pan.baidu.com/s/1uRQifmtBpXtQGuZVeZdJMg   提取码:1234 

将数据解压到data\shapenetcore_partanno_segmentation_benchmark_v0_normal

0.0738800.169750-0.1932600.0069870.9996000.0279601.000000
XYZNxNyNz

部件编号

0,1,2

2.2Train

1)训练命令

 python train_partseg.py --model pointnet2_part_seg_msg --normal --log_dir pointnet2_part_seg_msg

2.3Test

1)测试命令

python test_partseg.py --normal --log_dir pointnet2_part_seg_msg

三.Semantic Segmentation

3.1Data

下载3D indoor parsing dataset(S3DIS)数据集Stanford3dDataset_v1.2_Aligned_Version.zip,并解压到data/s3dis/Stanford3dDataset_v1.2_Aligned_Version/         #新建一个s3dis文件夹

-17.19239.1940.062413829
XYZRGB

需要对数据进一步处理,python collect_indoor3d_data.py用于数据的重组,转换为.npy格式文件,比如Area_1_hallway_1.npy(.npy为Numpy专用的二进制格式)

处理后的数据应将被保存在data/stanford_indoor3d/

“data/s3dis/Stanford3dDataset_v1.2_Aligned_Version文件夹下”

cd data_utils
python collect_indoor3d_data.py

注意: 在执行 collect_indoor3d_data.py应该会出现类似于下面的错误:

D:\pointnet\data\Stanford3dDataset_v1.2_Aligned_Version\Area_5/hallway_6/Annotations
D:\pointnet\data\Stanford3dDataset_v1.2_Aligned_Version\Area_5/hallway_6/Annotations ERROR!!

经查找具体位置为:Stanford3dDataset_v1.2_Aligned_Version\Area_5\hallway_6\Annotations\ceiling_1.txt中的第180389行数字185后。windows下建议使用EmEditor打开文件,会自动跳转到该行,数字185后面有一个类似空格的字符,实际上不是空格,删掉然后重新打一个空格就可以了。

3.2Train

1)训练命令

python train_semseg.py --model pointnet2_sem_seg --test_area 5 --log_dir pointnet2_sem_seg

可视化结果保存在log/sem_seg/pointnet2_sem_seg/visual/.ojb文件

2)测试命令

python test_semseg.py --log_dir pointnet2_sem_seg --test_area 5 --visual

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值