草庐IT

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

住在代码的家 2023-08-30 原文

前言

一.资料下载

1.代码下载

2.数据集下载

二.环境配置

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

2.虚拟环境配置

三.训练部分

1.分类训练部分

2.分割的训练部分

四.预测部分

1.分类结果展示

2.分割结果可视化


前言

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

一.资料下载

1.代码下载

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

http://链接:https://pan.baidu.com/s/1w_tJU3UlPish9bQLYEzE2g 提取码:zfquhttp://链接:https://pan.baidu.com/s/1w_tJU3UlPish9bQLYEzE2g 提取码:zfqu

下载完代码如下:

2.数据集下载

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

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

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

​​​​​​​

二.环境配置

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)训练过程如下图:

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

2.分割的训练部分

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

python train_segmentation.py --dataset shapenetcore_partanno_segmentation_benchmark_v0

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

(2)训练过程如下图:

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

四.预测部分

1.分类结果展示

输入以下代码进行预测:

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

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

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

2.分割结果可视化

输入以下代码进行预测:

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

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

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

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

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

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

可视化结果如下:

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

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

  1. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  2. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  3. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  4. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  5. [Vuforia]二.3D物体识别 - 2

    之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能够使用这个扫描程序可以从高通官网上进行下载,是一个安卓程序。点到Tools往下滑,找到VuforiaObjectScanner下载后解压数据线连接手机,将apk文件拷入手机安装然后刚才解压文件中的Media文件夹打开,两个PDF图打印第一张A4-ObjectScanningTarget.pdf,主要是用来辅助扫描的。好了,接下来就是扫描三维物体。将瓶

  6. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  7. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  8. ruby-on-rails - (Ruby,Rails) 基于角色的身份验证和用户管理...? - 2

    我正在寻找用于Rails的优质管理插件。似乎大多数现有的插件/gem(例如“restful_authentication”、“acts_as_authenticated”)都围绕着self注册等展开。但是,我正在寻找一种功能齐全的基于管理/管理角色的解决方案——但不是简单地附加到另一个非基于角色的解决方案。如果我找不到,我想我会自己动手......只是不想重新发明轮子。 最佳答案 RyanBates最近做了两个关于授权的railscast(注意身份验证和授权之间的区别;身份验证检查用户是否如她所说的那样,授权检查用户是否有权访问资源

  9. python - Ruby 或 Python 的 3d 游戏引擎? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?

  10. ruby - 在 Rakefile 中动态生成 Rake 测试任务(基于现有的测试文件) - 2

    我正在根据Rakefile中的现有测试文件动态生成测试任务。假设您有各种以模式命名的单元测试文件test_.rb.所以我正在做的是创建一个以“测试”命名空间内的文件名命名的任务。使用下面的代码,我可以用raketest:调用所有测试require'rake/testtask'task:default=>'test:all'namespace:testdodesc"Runalltests"Rake::TestTask.new(:all)do|t|t.test_files=FileList['test_*.rb']endFileList['test_*.rb'].eachdo|task|n

随机推荐