作者丨疯子_ZhangFrustum PointNets for 3D Object Detection from RGB-D Data
编辑丨3D视觉开发者社区
?如果觉得文章内容不错,别忘了三连支持下哦~
(有代码,级联的方法)
文章目录
- 简要说明
- 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网络模型实现分割和目标检测;分割是实现的实例分割,回归网络来估计目标的三维框的位置;
由于投影矩阵是已知的,这样就可以从二维图像区域得到三维截锥了;
文章图片
包含三个模块:
1)锥形建议区域;
2)3D实例分割;
3)3D模态目标估计;
锥形建议区域:
文章图片
由于现在的3维的传感器相对于2维图像传感器效果较差,因此选用图像进行目标的识别和二维目标区域定位;
已知一个投影矩阵,二维的区域就可以变换为平头锥形的三维区域;该区域内所有的点视为平头锥点云;由于锥形会朝向不同的方向.
blog.csdnimg.cn/e7cb4e48db734b6d84c774b40613efc9.png)
因此本文将其变换到垂直于图像的平面,对这些椎体进行标准归一化,作者说有助于提升目标的旋转不变性(原因简单:多种目标旋转过来的进行学习,测试过程中能够检测来自多个方向)。
文章图片
2维目标检测模型在ImageNet上和MS-COCO上进行了预训练,然后在KITTI 2D 上进行微调;
三维实例分割 有了2D目标检测区域和锥形的目标区域如何得到目标对应的3D点云?
考虑到目标在3D的自然状态下是自然分离的,使用3维的实例分割,得到粗略的目标3D点云;
本文方法一个锥形体只分割出一个点云对象,被完全遮挡的点云视为背景;
从深度图中直接估计3D目标;3D bounding box;
考虑到目标在3D的自然状态下是自然分离的,3D点云分割是比图像上的更加容易和更加自然的;基于这种事实,本文使用3D的实例分割;这也就是为什么要使用3维的实例分割。类似于mask-RCNN分割(是不是目标);通过3D实例分割可以得到粗略属于该目标的点云;
文章图片
使用一种基于PointNet的网络进行实例分割,在得到这些分割的目标点后,我们进一步对其坐标进行归一化,以提高算法的平移不变性。我们下一步在Amodal 3D Box Estimation中进一步计算中心位置;
Amodal 3D Box Estimation: 分割出的掩模中心坐标可能距离真实框比较远, 因此,使用轻量级回归PointNet(T-Net)来估计整个目标的真实中心,使预测的中心更加准确。
文章图片
通过T-Net进行基于学习的3D对齐,即使我们根据质心位置对齐了分割的对象点,我们发现掩模坐标框架的原点(图4(c))可能距离模块框还很远。 因此,使用轻量级回归PointNet(T-Net)来估计整个物体的真实中心,然后变换坐标,使预测的中心成为原点图4(d)。
文章图片
最后的输出参数
center (cx, cy, cz)
size (h, w, l)*4
heading angle (theta)*2
(3个位置,2个航向,4个尺度的大小;)
多任务损失:
文章图片
依次为:实例分割损失、中心估计损失两个(c1是对于T-Net的,c2是box中心回归损失)、航向角预测和回归两个、尺度预测和回归两个,一个角损失(定义的如下);
引入新的正则化损失(Corner Loss):定义8个角和Ground truth的距离偏差之和;
文章图片
带**的P是 翻转的ground truth;
实验 分为三个部分:
1对比其他方法
数据集:KITTI,SUN-RGBD;
2Ablation Study
锥形建议区域旋转归一化、目标点云中心归一化 Corner loss 等组件的影响
3主观实验结果
主观结果分析和Open Problem
1.对比其他方法 KITTI的结果
测试集上的3D的目标检测性能;
文章图片
测试集上的鸟瞰图上定位准确度;
文章图片
验证集上的结果
(左是3D检测,右是鸟瞰图定位)
文章图片
文章图片
文章图片
在SUN-RGBD上的结果
文章图片
2. In-depth分析验证所提方法 与三维检测的替代方法相比
点云归一化的影响
回归损失公式和角落损失的影响
文章图片
文章图片
3.定性实验 这是为了说明在有遮挡的时候还能呈现出较好的结果。
另外,抛出了open的问题:
1)大小和方向估计不准确;
2)一个锥形体有两个同一类的目标(本文是单类别的方法,无法处理)
代码学习 请参阅如下博文:
https://blog.csdn.net/ShuqiaoS/article/details/82754126
版权声明:本文为作者授权转载,由3D视觉开发者社区编辑整理发布,仅做学术分享,未经授权请勿二次传播,版权归原作者所有,若涉及侵权内容请联系删文。3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。
点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~
也可移步微信关注官方公众号 3D视觉开发者社区 ,获取更多干货知识哦!
推荐阅读
- 开发者|2022中国工业视觉市场研究报告【免费下载】
- 开发者|ALITA(用于自动驾驶的大规模增量数据集)
- 开发者|2022中国人工智能芯片行业研究报告【免费下载】
- 开发者|torchvision 中 deform_conv2d 操作的经验性解析
- 深度学习|计算机视觉(七)(卷积神经网络(CNN))
- 目标检测|NCNN+Int8+YOLOv4量化模型和实时推理
- 项目实训|山东大学项目实训二——python+opencv实现人脸识别
- 人脸识别|面向佩戴口罩的人脸识别系统【4】-人脸识别
- CV|opencv:彩色图像到灰度图像的转换与保存