简介
PointNet是点云深度学习具有划时代意义的方法,值得学习。
毕设还是要添加一些网络之类的学习方法,现在快学学基础。
网络结构
代码验证
- 参考文章1、参考文章2
源码下载:github
数据集下载:Shapenet、Modelnet40
1、验证过程
python包下载:
#切换到python环境和项目根目录
python -e .
2、代码修改:主要位于utils文件里
- 训练文件:train_xxx
修改相关路径
。
调换scheduler.step()
和optimizer.step()
顺序,要不pytotrch1.1之后的版本都会报错。
修改cuda,判断是cpu/gpu版本。
添加main函数
,要不然会报多线程错误。
以分割为例:
...
sys.path.append('E:\workingrealm\python_for_pcl\PointNet-master')
...
if __name__ == '__main__':
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
...
classifier.to(device)
...
optimizer.step()
scheduler.step()
points, target = points.to(device), target.to(device)# 相关的都换成这样。
- 测试文件:
show_xxx
分类部分:
分割部分:需要重新编译render_balls_so.dll
文件
这是一个动态链接库,需要使用Visual Studio 20xx重新编译。(详细编译网上找找)
render_balls_so.cpp
的内容放xxx.h
文件,在render_ball()函数前添加__declspec(dllexport)为了作为导出库被python调用。
xxx.cpp
里边儿写个主函数生成解决方案。替换掉dll文件。
3、相关命令
- 分类
# 训练train_xxx
python .\utils\train_classification.py --dataset=c:\dataset\shapenetcore_partanno_segmentation_benchmark_v0 --nepoch=4 --dataset_type=shapenet
# 测试show_xxx
python .\utils\show_cls.py --model=C:\PointCloud\PointNet-master\cls\cls_model_0.pth
- 分割
# 训练train_xxx
python .\utils\train_segmentation.py --dataset=shapenetcore_partanno_segmentation_benchmark_v0 --nepoch=5
--class_choice=Chair
# 测试show_xxx
python .\utils\show_seg.py --model=c:\PointCloud\PointNet-master\seg\seg_model_Chair_3.pth --class_choice=Chair --idx=0
具体遇到什么问题就在网上查查,应该不难,稳住,不可急火攻心。