基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)

前言

一.资料下载

1.代码下载

2.数据集下载

二.环境配置

1.本文采用设备配置说明

2.虚拟环境配置

三.训练部分

1.分类训练部分

2.分割的训练部分

四.预测部分

1.分类结果展示

2.分割结果可视化


前言

目前,2D的物体检测算法已经非常成熟,算法准确率的上升空间已经遇到瓶颈,而且2D物体检测多受光照、遮挡等外界环境因素影响,已经满足不了时下复杂环境要求。人们开始转向对3D物体世界的研究,3D物体检测掀起了前所未有的浪潮。本文pointnet网络可以说是3D物体检测领域中里程碑性的工作,它也为后续复杂网络奠定了基础,是3D物体检测领域不可不学,不可不复现的经典网络。

一.资料下载

1.代码下载

代码放在百度网盘了,可在如下链接中下载:

http://链接:https://pan.baidu.com/s/1w_tJU3UlPish9bQLYEzE2g 提取码:zfquicon-default.png?t=M5H6http://链接:https://pan.baidu.com/s/1w_tJU3UlPish9bQLYEzE2g 提取码:zfqu

下载完代码如下:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第1张图片

2.数据集下载

https://shapenet.cs.stanford.edu/ericyi/shapenetcore_partanno_segmentation_benchmark_v0.ziphttps://shapenet.cs.stanford.edu/ericyi/shapenetcore_partanno_segmentation_benchmark_v0.zip数据集下载完直接解压即可

如点开网页出现信息如下图:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第2张图片

可点击图片上的 高级 选项 ,然后继续进行下载,如下图黑框中:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第3张图片​​​​​​​

二.环境配置

1.本文采用设备配置说明

            系统:Ubuntu 18.04.6 LTS(window系统也可)

            显卡:RTX3090

            CUDA版本:cuda11.1

2.虚拟环境配置

在anconda中创建python3.6版本的虚拟环境,激活虚拟环境并在其中下载torch:

             torch1.8.0+cu111

             torchvision0.9.0+cu111

以上环境配置出现问题可以查看我上一篇环境配置部分,根据自己电脑配置,配置相对应的cuda及torch版本

三.训练部分

1.分类训练部分

(1)在配置好的虚拟环境中执行:

python train_classification.py --dataset shapenetcore_partanno_segmentation_benchmark_v0

--dataset 是指定需要训练的数据集

(2)训练过程如下图:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第4张图片

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第5张图片

 训练完的权重文件会存放在cls文件夹中

2.分割的训练部分

(1)在配置好的虚拟环境中执行:

python train_segmentation.py --dataset shapenetcore_partanno_segmentation_benchmark_v0

--dataset 是指定需要训练的数据集

(2)训练过程如下图:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第6张图片

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第7张图片

 训练完的权重文件会存放在seg文件夹中

四.预测部分

1.分类结果展示

输入以下代码进行预测:

python show_cls.py --model ./cls/cls_model_4.pth

--model 指定得是训练好的权重文件,结果如下:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第8张图片

可见,准确率大多都在93%以上,检测效果良好

2.分割结果可视化

输入以下代码进行预测:

python show_seg.py --class_choice 'Car' --model ./seg/seg_model_Chair_4.pth

--class_choice 指定要识别的物体类别

--model 指定得是训练好的权重文件,结果如下:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第9张图片

可见,网络已经成功分割出了汽车,这是由3d点云组成的动态汽车图,可滑动鼠标进行查看

还可以分割飞机等其他物体,操作方法是一样的,只需换一下指定的物体类别,如:

python show_seg.py --class_choice 'Airplane' --model ./seg/seg_model_Chair_4.pth

可视化结果如下:

基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)_第10张图片

配置过程中遇到任何问题,可以加关注私聊我,很愿意帮你解决!!!

你可能感兴趣的:(3d,计算机视觉,算法,pytorch,深度学习)