飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!
11年前的「阿凡达」让少年的我们第一次戴上3D眼镜,声势浩大的瀑布奔流而下,星罗棋布飘浮在空中的群山,无一不体现着对生命的敬意,妥妥的坐稳了2010年北美、海外、中国和全球票房No.1的宝座,「3D」正式进入了大众的视线。
图片来自网络
11年过去了,出走半生,我们依旧少年,「阿凡达2」依旧没有如约上映,但3D应用却在此期间得到了蓬勃的发展。这一方面得益于3D传感器技术的飞速发展,用户可以更加便捷地获取到三维图像数据;另一方面随着机器人、无人驾驶、AR&VR等业务的日趋成熟,需要快速处理和理解海量的3D数据,以便精确感知周边物体的空间信息,3D数据的深度学习需求应运而生。随着2020年中国新基建政策的发布,相信未来3D视觉技术将会有更广阔的应用空间。
3D深度学习需要什么格式的数据输入?
2D图像可以天然的表示成二维矩阵,但3D数据却非常复杂,它有很多种表达形式,如:点云、体积像素、多边形网格和多视图。在3D深度学习领域中,点云数据应用最为广泛。这是因为点云数据非常接近原始的传感器数据,采用这种形式,可以更好的挖掘原始数据中的信息,使用较少的数据即可表征较多的细节的特性。此外点云的表达形式非常简单,模型训练时,对GPU性能没有太高的要求。
但是点云是不规则的数据,在空间中可以任意分布。传统情况下,可以先将点云数据转化成体积像素表示方式,再复用2D图像的CNN模型,但是代价会非常高。原因是体积像素在空间中的稀疏性使得3D CNN训练对显存要求极高,模型难以收敛。
那么,是否有方法可以直接在点云上数据上实现特征学习呢?
飞桨开源框架1.7版本发布了用于3D点云分类、分割和检测的PointNet++和PointRCNN模型。支持ShapeNet,ModelNet,KITTI等多种点云数据集,在ModelNet40数据集上,PointNet++分类精度可达90%,在 KITTI(Car)的Easy数据子集上,PointRCNN检测精度可达86.66%,持平世界领先水平。开发者在飞桨框架基础上可快速完成任务,实现工业应用。3D模型体验请戳如下链接:
https://github.com/PaddlePaddle/models/tree/release/1.7/PaddleCV/3d_vision
PointNet++原理和实验表现
PointNet++核心是通过多级点集特征学习提取点云数据的特征,然后将提取的特征分别输入到分类和分割网络,进行3D数据的图像分类和语义分割,PointNet++网络结构下图所示。
多级点集特征学习(Hierarchical point set feature learning)
集合抽象层是多级点集特征学习的基本模块,由如下三个关键部分组成:
采样层:使用最远点采样(FPS)的方法,从输入点中选择一组点,定义局部区域的中心。
分组层:根据中心点进行分组,将云点数据划分成若干个局部区域。
特征提取:通过PointNet++ 对各个局部区域进行特征提取,获得局部特征。
通过下面的动态图,可以帮助大家更好的理解多级点集特征学习的实现。
图中将Paddle首字母“P”做一个局部坐标,通过PointNet++提取特征,得到一个新的点。重复这个操作,会得到另一个小区域的点。经过一系列操作之后,会得到一组新的点。这组点在数量上少于输入的点,但每个点都代表了周围区域的几何特征。
分类任务(Classification)
类似于传统的图像分类,模型将全局特征送入全连接网络中,最终得到预测的类别概率。
分割任务(Segmentation)
对于语义分割任务,需要从低分辨率特征中上采样还原高分辨率的特征。对于CNN模型,一般是使用2D图像插值的方式实现。PointNet++模型采用提取最近的3个近邻点,并通过这三个点加权平均的方式插值获得上采样点。
此外,PointNet++还因其对输入数据顺序置换的不变性、轻量级结构、对数据丢失非常鲁棒等特征,非常适合工业领域应用。
实验结论
PointNet++模型测试精度如下:
PointRCNN原理和实验表现
3D目标检测模型PointRCNN借鉴了PointNet++和RCNN的思想,提出了自底向上的生成和调整候选检测区域的算法,网络结构如下图所示:
PointRCNN的网络结构分为两个阶段:第一阶段自底向上生成3D候选预测框;第二阶段在规范坐标中对候选预测框进行搜索和微调,得到更为精确的预测框作为检测结果。
第一阶段:对3D点云数据进行语义分割和前背景划分,生成候选预测框,有如下三个关键步骤:
点云特征提取:通过PointNet++对点云数据进行编码和解码,提取点云特征向量。
前景点分割:根据提取的点云特征向量,使用focal loss区分前景点和背景点。focal loss能有效地平衡前景点和背景点比例失衡问题,从而得到更为准确的分类效果。
生成候选框:采用候选框箱模型(bin)的方法,将前背景点分割信息生成预测候选框。
举例来说,将候选框定义为参数(x,y,z,h,w,l,θ)表征的空间中的箱体,其中(x,y,z)为箱体中心坐标,( h,w,l)为箱体在中心坐标方向上的大小,θ为鸟瞰视角上(y方向从上往下看)箱体在x-z平面的角度。
bin的执行方式为:先根据前景点的分割信息粗分其所属的箱体;再在箱体内部对其做回归,得到箱体参数作为预测框;最后对预测框做NMS(Non-Max Suppress,非极大值抑制),得到最终预测候选框。
第二阶段:在规范坐标中微调候选预测框,获得最终的检测结果,有如下五个关键部分:
区域池化:对候选框内每个点的特征进行池化。
坐标转化:为了更好地获取局部信息,需要将多个候选区域中的前景点坐标(同一个坐标系)转化为局域坐标系中的规范坐标(以预测框为中心点的多个坐标系),如下图所示:
特征编码:将规范坐标时丢失的深度信息、规范后的坐标信息、前后背景语义信息等经过多层感知机提取特征,作为每个点的编码特征。
微调预测框:经过上一步编码后的特征,经PointNet++网络进行特征提取,最后回归得到局部坐标系下的3D预测框。
实验结论
目前发布的KITTI数据集下Car检测精度如下:
以上就是飞桨1.7发布的PointNet++和PointRCNN模型,基于飞桨框架,开发者可快速实现3D图像的分类、语义分割和目标检测任务,模型精度持平世界一流水平。欢迎感兴趣的伙伴在PaddleCV的模型库中,在文末的Github地址中获取相关数据集和代码,尝试实现自己的3D应用。(3D模型存在自定义OP,需要在GPU+Linux平台实现)
如果您加入官方QQ群,您将遇上大批志同道合的深度学习同学。官方QQ群:703252161。
如果您想详细了解更多飞桨的相关内容,请参阅以下文档:
官网地址:
https://www.paddlepaddle.org.cn
3D模型体验:
https://github.com/PaddlePaddle/models/tree/release/1.7/PaddleCV/3d_vision
飞桨开源框架项目地址:
https://github.com/PaddlePaddle/
Gitee:
https://gitee.com/paddlepaddle/Paddle
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!相关推荐
- PaddlePaddle飞桨论文复现营——3D Residual Networks for Action Recognition学习笔记
PaddlePaddle飞桨论文复现营--3D Residual Networks for Action Recognition学习笔记 1 背景知识 1.1 C3D C3D是一种3D卷积提取视频特征 ...
- PaddlePaddle飞桨OCR文本检测——检测模型训练(二)
上一篇安装https://blog.csdn.net/weixin_42845306/article/details/112688405 飞桨的OCR模型分为检测.识别和分类,先看检测. 检测就是将( ...
- 飞桨企业版重磅发布智能边缘控制台 5分钟零代码自动化模型部署
12月12日,由深度学习技术及应用国家工程实验室主办的WAVE SUMMIT+ 2021深度学习开发者峰会在上海召开.此次峰会,最让开发者惊艳的是飞桨开源框架v2.2的重磅发布.百度深度学习技术平台部 ...
- 飞桨助力OPPO上线3.5亿用户规模分布式推荐系统,训练效率提升8倍!
随着技术的完善与门槛的降低,深度学习正在加大往各行业渗透落地的力度.5月20日,由深度学习技术及应用国家工程实验室与百度联合主办的"WAVE SUMMIT"2020深度学习开发者峰 ...
- 精度45.9%,推理速度72.9FPS,百度飞桨推出工业级目标检测模型 PP-YOLO
允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 工业视觉.自动驾驶.安防.新零售等我们身边熟知的各行各业都需要目标检测技术,由于其很好的平衡了标注成本.检测精度和速度等,成为当前智能制造产 ...
- 飞桨框架2.0RC新增模型保存、加载方案,与用户场景完美匹配,更全面、更易用
通过一段时间系统的课程学习,算法攻城狮张同学对于飞桨框架的使用越来越顺手,于是他打算在企业内尝试使用飞桨进行AI产业落地. 但是AI产业落地并不是分秒钟的事情,除了专业技能过硬,熟悉飞桨的使用外,在落 ...
- PaddlePaddle飞桨OCR文本检测——识别模型训练(三)
上一篇检测模型训练https://blog.csdn.net/weixin_42845306/article/details/112689152 飞桨的OCR模型分为检测.识别和分类,今天讨论识别. ...
- 强烈推荐 | 基于飞桨的五大目标检测模型实战详解
机器视觉领域的核心问题之一就是目标检测(object detection),它的任务是找出图像当中所有感兴趣的目标(物体),确定其位置和大小.对于人类来说,目标检测是一个非常简单的任务.然而,计算机能 ...
- 基于飞桨复现ICML顶会模型SGC,可实现超快速网络收敛
点击左上方蓝字关注我们 [飞桨开发者说]尹梓琦,北京理工大学在读本科生,关注图深度学习,图挖掘算法和谱图理论 随着深度学习在欧几里得空间的成功应用,例如CNN,RNN等极大的提高了图像分类,序列预测等 ...
最新文章
- 新冠研究数据哪里找?科研工作者必看(附链接)
- MyBatis知多少(14)分散的数据库系统
- mllib java怎么调用_如何准备mllib中的训练数据
- JVM从入门到精通(七):GC常用参数,Method Area,JVM调优案例分析
- 使用Adaptive cards来构建Teams app的界面
- Encapsulate Downcast(封装向下转型)
- wordpress-Sakurairo美化主题模板
- 拼多多再添新瓜!15 岁上浙大、22 岁获世界冠军的天才黑客 Flanker 疑因拒绝违法攻击被强制开除...
- Visdom:Python可视化神器
- mysql 创建表格time类型_第十九天MySQL数据库入门(mysql数据类型)
- POJ_3740 Easy Finding ——精确覆盖问题,DLX模版
- STM32入门开发: 介绍IIC总线、读写AT24C02(EEPROM)(采用模拟时序)
- webservice的接口测试工具
- 语音关键词检索实验小结
- matlab 判断大小写,【万大暗】matlab字符串不分字母大小写按字母表排序问题
- winrar破解注册
- Python爬取百度翻译及有道翻译
- pytorch 预测手写体数字_深度学习之PyTorch实战(3)——实战手写数字识别
- iOS 即时聊天 音频格式转NSData
- 4h上手C++版Opencv
热门文章
- 校友诗选_母校百年 同学聚会(来稿刊登)
- 你既言而无信,我即出尔反尔
- 后天就是七夕节,你准备好了吗?送上几个七夕代码,展示你技能的时候到了!
- 中科大计算机博士毕业条件,惊呆!中科大博士毕业6年后再考医学专科,他这样回应……...
- 毒盘解析[JIE版]百毒网盘在线解析
- euv光刻机有什么用_EUV到底是什么东西?光刻机上为何频频提到EUV
- 80后,我们难忘的电视剧
- 苹果退款_苹果如何退款
- SqlServer 如何插入图片和导出图片数据
- Transformer课程 第8课 NER案例模型训练及预测