3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)

作者丨疯子_Zhang
编辑丨3D视觉开发者社区
?如果觉得文章内容不错,别忘了三连支持下哦~
Frustum PointNets for 3D Object Detection from RGB-D Data
(有代码,级联的方法)

文章目录
  • 简要说明
  • Contributions(不对应原文)
  • 具体方案
    • 锥形建议区域:
    • 三维实例分割
    • Amodal 3D Box Estimation:
    • 多任务损失:
  • 实验
    • 1.对比其他方法
    • 2. In-depth分析验证所提方法
    • 3.定性实验
  • 代码学习

简要说明 问题:通常的三维目标(用图像获得,3D体素)检测方法忽略了3D目标的自然状态和3D数据的不变性;
方案:直接在raw点云上进行操作;
进入新的问题:如何高效的在较大的尺度的3D点云空间中定位目标物体;
方法:利用有效、成熟的2D目标检测器结果融合到点云空间中实现3D目标检测;
效果:在选取的区域内直接操作点云:效率较高,但对强遮挡的同类目标效果欠佳;
Contributions(不对应原文) ?使用2D目标检测结果,生成3维的锥形建议区域实现3D目标检测,省略直接在大范围的空间中检索,也提升了目标的识别准确度;
?从原始点云中直接分割出3D目标的mask和回归3D bounding box;
?该方法具有较高的检测精度和较高的执行效率;
具体方案 【3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)】降低搜索区域的方法:
1)通过2D目标检测,提取3D的目标锥形点云区域;
2)两个变化的PointNet网络模型实现分割和目标检测;分割是实现的实例分割,回归网络来估计目标的三维框的位置;
由于投影矩阵是已知的,这样就可以从二维图像区域得到三维截锥了;
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

包含三个模块:
1)锥形建议区域;
2)3D实例分割;
3)3D模态目标估计;
锥形建议区域: 3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

由于现在的3维的传感器相对于2维图像传感器效果较差,因此选用图像进行目标的识别和二维目标区域定位;
已知一个投影矩阵,二维的区域就可以变换为平头锥形的三维区域;该区域内所有的点视为平头锥点云;由于锥形会朝向不同的方向.
blog.csdnimg.cn/e7cb4e48db734b6d84c774b40613efc9.png)
因此本文将其变换到垂直于图像的平面,对这些椎体进行标准归一化,作者说有助于提升目标的旋转不变性(原因简单:多种目标旋转过来的进行学习,测试过程中能够检测来自多个方向)。
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

2维目标检测模型在ImageNet上和MS-COCO上进行了预训练,然后在KITTI 2D 上进行微调;
三维实例分割 有了2D目标检测区域和锥形的目标区域如何得到目标对应的3D点云?
考虑到目标在3D的自然状态下是自然分离的,使用3维的实例分割,得到粗略的目标3D点云;
本文方法一个锥形体只分割出一个点云对象,被完全遮挡的点云视为背景;
从深度图中直接估计3D目标;3D bounding box;
考虑到目标在3D的自然状态下是自然分离的,3D点云分割是比图像上的更加容易和更加自然的;基于这种事实,本文使用3D的实例分割;这也就是为什么要使用3维的实例分割。类似于mask-RCNN分割(是不是目标);通过3D实例分割可以得到粗略属于该目标的点云;
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

使用一种基于PointNet的网络进行实例分割,在得到这些分割的目标点后,我们进一步对其坐标进行归一化,以提高算法的平移不变性。我们下一步在Amodal 3D Box Estimation中进一步计算中心位置;
Amodal 3D Box Estimation: 分割出的掩模中心坐标可能距离真实框比较远, 因此,使用轻量级回归PointNet(T-Net)来估计整个目标的真实中心,使预测的中心更加准确。
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

通过T-Net进行基于学习的3D对齐,即使我们根据质心位置对齐了分割的对象点,我们发现掩模坐标框架的原点(图4(c))可能距离模块框还很远。 因此,使用轻量级回归PointNet(T-Net)来估计整个物体的真实中心,然后变换坐标,使预测的中心成为原点图4(d)。
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

最后的输出参数
center (cx, cy, cz)
size (h, w, l)*4
heading angle (theta)*2
(3个位置,2个航向,4个尺度的大小;)
多任务损失: 3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

依次为:实例分割损失、中心估计损失两个(c1是对于T-Net的,c2是box中心回归损失)、航向角预测和回归两个、尺度预测和回归两个,一个角损失(定义的如下);
引入新的正则化损失(Corner Loss):定义8个角和Ground truth的距离偏差之和;
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

带**的P是 翻转的ground truth;
实验 分为三个部分:
1对比其他方法
数据集:KITTI,SUN-RGBD;
2Ablation Study
锥形建议区域旋转归一化、目标点云中心归一化 Corner loss 等组件的影响
3主观实验结果
主观结果分析和Open Problem
1.对比其他方法 KITTI的结果
测试集上的3D的目标检测性能;
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

测试集上的鸟瞰图上定位准确度;
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

验证集上的结果
(左是3D检测,右是鸟瞰图定位)
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

在SUN-RGBD上的结果
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

2. In-depth分析验证所提方法 与三维检测的替代方法相比
点云归一化的影响
回归损失公式和角落损失的影响
3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

3D视觉|三维目标检测(Frustum PointNets for 3D Object Detection from RGB-D Data)
文章图片

3.定性实验 这是为了说明在有遮挡的时候还能呈现出较好的结果。
另外,抛出了open的问题:
1)大小和方向估计不准确;
2)一个锥形体有两个同一类的目标(本文是单类别的方法,无法处理)
代码学习 请参阅如下博文:
https://blog.csdn.net/ShuqiaoS/article/details/82754126
版权声明:本文为作者授权转载,由3D视觉开发者社区编辑整理发布,仅做学术分享,未经授权请勿二次传播,版权归原作者所有,若涉及侵权内容请联系删文。
3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。
点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~
也可移步微信关注官方公众号 3D视觉开发者社区 ,获取更多干货知识哦!

    推荐阅读