Advertisement

Yolo-6D(Real-Time Seamless Single Shot 6D Object Pose Prediction)理解

阅读量:

本文提出了一种基于深度学习的6D位姿估计方法(Deep3Dbox),通过直接预测目标物体的射影顶点位置并结合PnP算法求解其三维位姿。与现有方法相比,该方法无需多阶段推理、无需精确的目标纹理模型和后处理步骤,并且在运行时间和目标数量关系上表现更优。然而,该方法依赖于先验的3D模型知识。网络结构基于YOLOv2框架,在13x13特征图上提取高分辨率特征并预测9个关键点的位置和置信度。实验表明该方法在保持较高精度的同时具有稳定的运行性能,并在不同输入尺寸下表现出良好的鲁棒性。

文章目录

本文的主要创新点在于其在数据处理方面的突破性改进。
该研究中所引用的理想来源具有重要的学术参考价值。
该研究中所采用的方法具有显著的创新性特征。
算法的具体流程包括以下几个关键步骤:
具体而言,
网络架构设计采用了多模态融合的技术方案。
在三维框置信度的计算方法中,
通过引入深度学习模型实现了较高的准确性。
三维框锚定框的选择策略基于以下几点考虑:
首先,
各关键点之间的几何关系被充分建模;
其次,
通过迭代优化算法提升了定位精度;
最后,
利用改进后的损失函数降低了收敛难度。

  • 实验
  • 性能
  • 参考文献

文中所有灰色引用部分都是在阅读文章时的思考,阅读时可直接跳过灰色部分,不会影响内容

本文创新点

基于单个RGB图像推导其6D姿态估计是本研究的核心内容。该方法具备以下显著特点:无需分阶段处理或验证多种假设;无需依赖精确的目标纹理模型;该方法具备足够的精度水平且无需后续处理步骤以获得最终结果。
提出了一种创新性的基于卷积神经网络的新架构——"改进型深度置信网络"(Innovative Deep Confidence Network),该架构能够直接推导出目标射影顶点在二维图像中的位置坐标;通过应用PnP算法计算出目标在三维空间中的姿态参数。

相比之下其他的算法

  1. 运行速度随着检测物体的数量呈现显著提升,在此情况下作者的方法运行时间与目标数量之间的关系较为稳定。
  2. 当前的一些算法在处理结果时需要进行调整以适应实际情况,在这种情况下每个物体的检测时间超出了预期范围;然而作者的方法无需进行类似的调整却能够实现更快的速度

但是
作者的方法需要先验3D模型知识

作者Ideal来源

ta mu gong, o mu zi a

作者方法

没什么很新的方法,就把方法和训练写一起了

核心思想

用深度学习模型估计3D包围盒角落在图像中的投影位置。具体来说,这需要估计比仅针对二维包围盒回归更多的二维点。通过获取这些二维投影点,并结合先验的三维关键点信息,直接应用PnP算法即可计算出物体的6自由度(6DOF)位姿。

Deep3Dbox仅利用了少量关键点来构建三维盒子模型。这是否暗示着所预测物体的核心位置?此外,在此之外的位置上

算法流程

点的信息

通过采用9个控制点对每个目标进行3D模型参数化处理,在实际应用中这类人造物体具有明确的意义。这些参数能够适用于各种形状和拓扑结构的刚体对象,并将这9个关键点映射至二维图像较为便捷。同时,在实际应用中这类人造物体具有明确的意义。

为何要使用如此多的数量?八个是否足够?中心点又有什么作用?
例如,并不一定非要采用9个点来表示;还可以根据具体情况采用不同的方法。
在这些关键位置中选取一个紧凑且能全面反映物体形状特征的8个顶点来进行三维模型拟合。
第九个位置设为形心。
确定了形心之后是否更容易判断物体的方向?

网络结构

用全卷积加工输入的2D图片,如Figure 1 (a)

在这里插入图片描述

Figure\ 1\ (a)
采用了基于YOLOv2的设计框架。该网络架构包含总共23个卷积层和5个最大池化层。网络在设计时选择了S=13。此外,在网络架构设计中,在高层部分加入了转移层以利用精细粒度特征。该模型能够从维度为26\times 26 \times 512的中间结果提取出相应的特征,并通过卷积操作将这些特征转换为尺寸为13\times 13 \times 256的空间分辨率表示。随后将其与来自维度为13\times 13 \times 1024的高分辨率特征图进行融合处理。

旨在提取更精细的特征?类似于残差网络,在提升小尺寸物体检测精度方面具有显著效果。其目的是什么?

在这里插入图片描述

当使用带有32因子的下采样的网络架构时,在该架构中选择具有32倍率分辨率值并进行筛选以提高模型对不同尺寸物体检测能力的能力

然后将图片分到2D规则网格S\times S中去。

在这里插入图片描述

Figure\ 1\ (c)

上图中的每一个单元格都包含一个(9\times 2 + 1 + C)长度的特征向量。它存储了以下信息:首先是有9个关键点(总计18个数据点),其次记录了目标分类的概率(C代表这一概率),最后标注了整体判断的置信度(以1表示)。这些信息如上图所示展示

在这里插入图片描述

Figure\ 1\ (e)

3D框置信度计算

在2D框的预测过程中,会基于object_confidence分数与IoU进行筛选;而在3D框预测时虽然同样需要采取这一措施但因为3D场景中计算IoU的过程相对繁琐所以作者采用了以下公式来进行置信度评估:

yolo v2的 confidence=P(object) *IOU

在这里插入图片描述

这个图中的公式不对,应如下:

在这里插入图片描述

c(x)是置信度函数值
D_T(x)是预测的2D点到真实点之间的欧式距离

所以是全部的点吗?可能是
答:就是全部的点,然后计算平均值

3D框Anchor的选择

改写说明

IoU大于0.5就认为检测是正确的。

该2D框是否为yolov2的预测结果?确实让人感到疑惑的是其为何仅显示单个方框而非多个方框群集的现象。此外,在模型输出中明确包含九个关键点坐标的基础上,请问您是如何将这些关键点进行平面化处理后与真实标注进行对比分析的呢?

即使存在相邻较近的情况,并不会全部标记出来;相反地, 系统会选择IoU值最高的那个进行展示. 此时该网络输出的结果为13\times 13\times (9\times 2+1+C)\times5

九个关键点的计算

在这里插入图片描述

Figure 1 (e)

在9对预测的2D坐标系中(即每个预测结果对应一个单元格),中心点相对于该单元格左上角的位置有偏移量(c_x,c_y)。为了提高模型精度,在计算时将每个坐标的取值限定于区间(0,1)内(即0 < c_x < 10 < c_y < 1)。除了中心点之外的所有顶点都不考虑其坐标值,并不会位于对应的单元格内部。这种设计确保了网络能够首先确定物体的大致所在单元格(即找到与之最接近的cell),随后逐步优化该单元格周围的八个顶点坐标。

根据这句话可知:其他八个点不在cell内时就无需进行sigmoid操作;明白了这一点之后就不可能不会理解了

中心点的计算
g_x = f(x) + c_x\\ g_y = f(y) + c_y

f()在形心位置表现为一个1维sigmoid函数,在其八个角点处呈现单元响应。

这是什么神奇算法?是八个点的sigmoid加在一块就是中心点了?
答:不是的,这里理解不好是翻译问题:
where f(·) is chosen to be a 1D sigmoid function in case of the centroid and the identity function in case of the eight corner points.
f()在形心的情况下是一个1D sigmoid 函数,在八个角点的情况下的单元函数

特殊情况
对于较大的物体,在两个cell的交界处(半径是否存在??offset值为1??这确实是一个值得注意的现象)。

您如何处理这种情况呢?
请问:是否应分别考察这两个cell的置信度值?
或者说这两个cell都不会提供置信度数值?
因此都应该给出,并选择其中较大的那个数值。
答:对于具有最高置信度的那个cell,在其周围选取包含3\times 3个单元格的区域。
然后对每个单元格的所有角点执行加权平均计算。
其中其权重由各自的confidence值决定。
最后找出所有这些加权后的得分中最大的那个?
或者说,在这种计算方式下,每个角落都会得到一个加权后的得分吗?

PnP

基于预测的3D包围盒投影点与真实三维模型包围盒点,该算法能够估计出物体的姿态。

这还得提前知道3D模型才行,好像挺难拜托预知3D模型的限制

loss计算

整个训练网络的loss:
L = \lambda_{pt}L_{pt} + \lambda_{conf}L_{conf}+\lambda_{id}L_{id}

对于坐标和置信度损失用的L_2损失函数,分类用的交叉熵。

一种提升模型稳定性的方法是通过加权衰减处理confidence值实现的,在cell内检测到物体时将权重系数λ_conf设定为5.0,在cell无物体的情况下则将其设为0。

实验

基于ImageNet预训练的backbone架构采用了一种策略,在预训练阶段通过将λ_conf初始化为零值进行无监督学习。随后根据不同场景设置对应的λ_conf权重以实现分类任务中的目标优化。

最初阶段为什么要把置信度设置为零?
答:在预训练初期阶段由于位置坐标的预测效果非常差甚至完全不准确的情况下讨论置信度是没有意义的。当位置坐标的预测精度有所提升后就可以开始对置信度进行训练。

参数设置
将指数的\alpha参数设置成了2,距离阈值设置成了30像素。

学习率设置为 learning\ rate = 0.001 , 并在每完成 1 \times 1e^{2} 个epoch后对其递减十倍。

在评估物体3D网格顶点在使用重投影误差后的2D投影与地面真实位姿之间的平均距离时(即)当该平均距离低于5像素时(我们)认为该方法能够实现正确的姿态估计

现在看好像不重要,怎么度量直接看比赛的度量方法就行。

在训练过程中,在训练集的基础上应用mask标注技术,在图像中识别并分离出目标物体,并将其替换成新的背景

这样的调整是否能带来更好的训练效果及更高的识别率?但这种情况下鲁棒性是否会受到影响呢?或者是否由于更换了背景导致相关联程度减小而导致系统的鲁棒性能得到显著提升?同时为了确保模型的安全性需注意以避免神经网络误将背景特征与物体特性混淆。

性能

在这里插入图片描述

不同size的输入

在这里插入图片描述

速度与目标数量的关系

在这里插入图片描述

训练结果展示

参考文献

知乎文章

全部评论 (0)

还没有任何评论哟~