热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

飞,桨,火力,全开,重磅,上,线,3d,模型,pointnet

11年前的「阿凡达」让少年的我们第一次戴上3D眼镜,声势浩大的瀑布奔流而下,星罗棋布飘浮在空中的群山,无一不体现着对生命的敬意,妥妥的坐稳了2010年北美、海外、中国和全球票房No.1的宝座,「3D」正式进入了大众的视线。

图片来自网络

11年过去了,出走半生,我们依旧少年,「阿凡达2」依旧没有如约上映,但3D应用却在此期间得到了蓬勃的发展。这一方面得益于3D传感器技术的飞速发展,用户可以更加便捷地获取到三维图像数据;另一方面随着机器人、无人驾驶、AR&VR等业务的日趋成熟,需要快速处理和理解海量的3D数据,以便精确感知周边物体的空间信息,3D数据的深度学习需求应运而生。随着2020年中国新基建政策的发布,相信未来3D视觉技术将会有更广阔的应用空间。

下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

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)

集合抽象层是多级点集特征学习的基本模块,由如下三个关键部分组成:

  1. 采样层:使用最远点采样(FPS)的方法,从输入点中选择一组点,定义局部区域的中心。

  2. 分组层:根据中心点进行分组,将云点数据划分成若干个局部区域。

  3. 特征提取:通过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平台实现)

>> 访问 PaddlePaddle 官网,了解更多相关内容 

下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

推荐阅读
  • 产业智能化升级的浪潮并没有因为疫情等原因停滞不前,作为带来人工智能应用井喷式发展的深度学习技术在近几年也可谓是“时代宠儿”,想要尝试应用深度学习技术解决 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 聊聊 中国人工智能科技产业 区域竞争力分析及趋势
    原文链接:聊聊中国人工智能科技产业区域竞争力分析及趋势最近看了一个关于国内AI的报告《中国新一代人工智能科技产业区域竞争力评价指数(2021ÿ ... [详细]
  • 本周AI热点回顾:和欧阳娜娜一起搞研发?强大的神经网络新算子involution,超越卷积、自注意力机制!...
    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍点击左上方蓝字关注我们01我和欧阳娜娜一起搞研发AI新闻播报,开车明星导航,现如今根据文本生成语音的AI技术 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • 早晨七点半。北京初秋的凉风叫醒了住在望京西的你,睁开眼睛,一想到又要为人类的信息化事业贡献满满的正能量,你不禁哼唱起那句“早晨起来 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 使用 Jupyter Notebook 实现 Markdown 编写与代码运行
    Jupyter Notebook 是一个开源的基于网页的应用程序,允许用户在同一文档中编写 Markdown 文本和运行多种编程语言的代码,并实时查看运行结果。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 百度AI的2020
    百度AI的2020-世界的2020,是充满不确定性的变局之年;中国的2020,是团结一心、共克时艰、于变局中开新局的希望之年;百度AI的2020,是坚定信念,拥抱变化,践行“科技为 ... [详细]
  • AI周报 | 字节跳动识别方法刷新sota;百度LinearDesign获新进展
    一、最新论文解读1.Alias-FreeGenerativeAdversarialNetworks目前典型的生成对抗网络的合成过程以不健康的方式依赖于绝对像素坐标。例如 ... [详细]
author-avatar
叶晴琼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有