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

企业动态
飞桨开源框架 1.7 版本发布了用于 3D 点云分类、分割和检测的 PointNet++ 和 PointRCNN 模型。

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

[[324035]]

 

图片来自网络

 

 

11 年过去了,出走半生,我们依旧少年,「阿凡达 2」依旧没有如约上映,但 3D 应用却在此期间得到了蓬勃的发展。

 

 

这一方面得益于 3D 传感器技术的飞速发展,用户可以更加便捷地获取到三维图像数据;另一方面随着机器人、无人驾驶、AR&VR 等业务的日趋成熟,需要快速处理和理解海量的 3D 数据,以便精确感知周边物体的空间信息,3D 数据的深度学习需求应运而生。

 

随着 2020 年中国新基建政策的发布,相信未来 3D 视觉技术将会有更广阔的应用空间。
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

No.1

3D 深度学习需要什么格式的数据输入呢?

 

2D 图像可以天然的表示成二维矩阵,但 3D 数据却非常复杂,它有很多种表达形式,如:点云、体积像素、多边形网格和多视图。

 

 

在 3D 深度学习领域中,点云数据应用最为广泛。这是因为点云数据非常接近原始的传感器数据,采用这种形式,可以更好的挖掘原始数据中的信息,使用较少的数据即可表征较多的细节的特性。

 

此外点云的表达形式非常简单,模型训练时,对 GPU 性能没有太高的要求。
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

 

但是点云是不规则的数据,在空间中可以任意分布。传统情况下,可以先将点云数据转化成体积像素表示方式,再复用 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 

 

No.2

PointNet++ 原理和实验表现

PointNet++ 核心是通过多级点集特征学习提取点云数据的特征,然后将提取的特征分别输入到分类和分割网络,进行 3D 数据的图像分类和语义分割,PointNet++ 网络结构下图所示。

 

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

①多级点集特征学习(Hierarchical point set feature learning)

 

 

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

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

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

  • 特征提取:通过 PointNet++ 对各个局部区域进行特征提取,获得局部特征。

 

通过下面的动态图,可以帮助大家更好的理解多级点集特征学习的实现。
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

 

图中将 Paddle 首字母“P”做一个局部坐标,通过 PointNet++ 提取特征,得到一个新的点。重复这个操作,会得到另一个小区域的点。

 

 

经过一系列操作之后,会得到一组新的点。这组点在数量上少于输入的点,但每个点都代表了周围区域的几何特征。

②分类任务(Classification)

 

 

类似于传统的图像分类,模型将全局特征送入全连接网络中,最终得到预测的类别概率。

③分割任务(Segmentation)

 

 

对于语义分割任务,需要从低分辨率特征中上采样还原高分辨率的特征。对于 CNN 模型,一般是使用 2D 图像插值的方式实现。

 

 

PointNet++ 模型采用提取最近的 3 个近邻点,并通过这三个点加权平均的方式插值获得上采样点。

 

 

此外,PointNet++ 还因其对输入数据顺序置换的不变性、轻量级结构、对数据丢失非常鲁棒等特征,非常适合工业领域应用。

 

实验结论

PointNet++ 模型测试精度如下:
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

No.3

PointRCNN 原理和实验表现

3D 目标检测模型 PointRCNN 借鉴了 PointNet++ 和 RCNN 的思想,提出了自底向上的生成和调整候选检测区域的算法,网络结构如下图所示。
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

 

PointRCNN 的网络结构分为两个阶段:第一阶段自底向上生成 3D 候选预测框;第二阶段在规范坐标中对候选预测框进行搜索和微调,得到更为精确的预测框作为检测结果。

 

 

第一阶段:对 3D 点云数据进行语义分割和前背景划分,生成候选预测框,有如下三个关键部。

①点云特征提取:通过 PointNet++ 对点云数据进行编码和解码,提取点云特征向量。

 

 

②前景点分割:根据提取的点云特征向量,使用 focal loss 区分前景点和背景点。focal loss 能有效地平衡前景点和背景点比例失衡问题,从而得到更为准确的分类效果。

 

 

③生成候选框:采用候选框箱模型(bin)的方法,将前背景点分割信息生成预测候选框。

 

举例来说,将候选框定义为参数(x,y,z,h,w,l,θ)表征的空间中的箱体,其中(x,y,z)为箱体中心坐标,( h,w,l)为箱体在中心坐标方向上的大小,θ 为鸟瞰视角上(y 方向从上往下看)箱体在 x-z 平面的角度。
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

 

bin 的执行方式为:先根据前景点的分割信息粗分其所属的箱体;再在箱体内部对其做回归,得到箱体参数作为预测框;最后对预测框做 NMS(Non-Max Suppress,非极大值抑制),得到最终预测候选框。

 

 

第二阶段:在规范坐标中微调候选预测框,获得最终的检测结果,有如下五个关键部分。

①区域池化:对候选框内每个点的特征进行池化。

 

②坐标转化:为了更好地获取局部信息,需要将多个候选区域中的前景点坐标(同一个坐标系)转化为局域坐标系中的规范坐标(以预测框为中心点的多个坐标系),如下图所示。
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

 

③特征编码:将规范坐标时丢失的深度信息、规范后的坐标信息、前后背景语义信息等经过多层感知机提取特征,作为每个点的编码特征。

 

 

④微调预测框:经过上一步编码后的特征,经 PointNet++ 网络进行特征提取,最后回归得到局部坐标系下的 3D 预测框。

 

实验结论

目前发布的 KITTI 数据集下 Car 检测精度如下:
飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!

 

以上就是飞桨 1.7 发布的 PointNet++ 和 PointRCNN 模型,基于飞桨框架,开发者可快速实现 3D 图像的分类、语义分割和目标检测任务,模型精度持平世界一流水平。

 

 

欢迎感兴趣的伙伴在 PaddleCV 的模型库中,获取相关数据集和代码,尝试实现自己的 3D 应用。(3D 模型存在自定义 OP,需要在 GPU+Linux 平台实现)

 

 

如果您加入官方 QQ 群,您将遇上大批志同道合的深度学习同学。官方 QQ 群:703252161。

 

 

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

官网地址:https://www.paddlepaddle.org.cn

 

 

飞桨开源框架项目地址:

  • GitHub: https://github.com/PaddlePaddle/models/tree/release/1.7/PaddleCV/3d_vision 

  • Gitee: https://gitee.com/paddlepaddle/Paddle

 

 

3D 模型体验请戳如下链接:

  • https://github.com/PaddlePaddle/models/tree/release/1.7/PaddleCV/3d_vision

 

 

责任编辑:张燕妮 来源: 51CTO技术栈
相关推荐

2013-02-28 09:22:49

MWC移动互联网通信网络

2020-08-26 10:37:21

阿里3D

2023-08-18 08:00:00

游戏开发3D模型

2021-09-14 10:11:46

谷歌3D舞蹈生成模型FACT

2016-08-12 10:37:38

阿里云人工智能ET

2015-02-03 16:06:37

2012-11-26 12:51:44

木材3D打

2024-03-20 15:51:00

AI数据

2019-11-18 10:22:01

深度学习编程人工智能

2011-10-06 13:30:45

宏碁投影仪

2017-06-21 17:52:56

存储

2023-12-11 09:00:00

人工智能3D模型

2023-10-09 12:45:09

数据训练

2011-05-26 10:05:07

优派投影机

2019-12-23 15:23:12

人工智能机器学习技术

2023-07-14 09:41:01

3DAI

2011-05-25 16:07:17

2015-11-08 10:21:51

京东双十一

2015-09-09 11:05:52

3d视差引导页
点赞
收藏

51CTO技术栈公众号