点云PointNet学习

title

  • 简介
  • 网络结构
  • 代码验证

简介

PointNet是点云深度学习具有划时代意义的方法,值得学习。
毕设还是要添加一些网络之类的学习方法,现在快学学基础。

网络结构

点云PointNet学习_第1张图片

代码验证

  • 参考文章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
    分类部分:
    点云PointNet学习_第2张图片
    分割部分:需要重新编译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 

具体遇到什么问题就在网上查查,应该不难,稳住,不可急火攻心。

你可能感兴趣的:(点云学习,python,自动驾驶,pytorch)