论文阅读笔记 之 GS3D

论文:GS3D An Efficient 3D Object Detection Framework for Autonomous Driving
GS3D

解决问题

① 经典的3D目标检测(例如16年的Mono3D)在3D空间进行滑窗的方式会非常耗费时间与计算资源。
② 3d bounding box estimation using deep learning and geometry等依赖2D检测框与3D检测框之间的几何约束的方法会导致边框边界不明确问题,如下图:
在这里插入图片描述
一个2D检测框可能会对应多个不同姿态、大小的3D检测框,造成一对多问题,这必然会导致检测准确率下降

文章主要贡献

① 基于单目视觉生成初步的粗糙但具有一定可信度的3D检测框,称为Guidance,为进一步精确化(refine)提供指导
② 基于Guidance,利用2D图像中目标的可视表面特征解决边框边界模糊(不明确)问题
③ 研究了几种refine方法,提出了quality aware loss,并且得到结论:基于quality aware loss离散区间进行分类的效果要比直接在大范围内回归更好

问题定义

定义一个3D目标检测框B为(ω, h, l, x, y, z,θ,Φ,ψ),分别为:边框的尺寸(长宽高)、底面的中心的坐标(x, y, z),边框的偏航角、俯仰角与翻滚角。(都是基于相机坐标系的),在KITTI数据集中不存在俯仰与翻滚,所以只考虑偏航角。
定义2D目标检测框B2d为(x2d, y2d, ω2d, h2d),对应边框的中心坐标以及宽高。
已有条件:RGB图像,相机的内参矩阵K,数据集中各类目标的平均尺寸

总体流程

①首先使用CNN预测出2D检测框与目标的偏转角
②利用预测的结果与先验知识生成粗糙的3D框,称为guidance
③将guidance投影到2D图像上提取目标的可视表面
④利用可视表面的特征对guidance进行微调
在这里插入图片描述

具体内容

一、2D边框检测与方向预测(2D+O subnet)

本模块基于faster R-CNN实现,是在Faster R-CNN基础上增加了新的方向(orientation)预测分支
在这里插入图片描述
与3d bounding box estimation using deep learning and geometry等文章相似,本文在预测角度时也是预测的相对偏航角α,而不是直接预测偏航角θ,(因为目标的偏航角不变时,其图像随着目标与相机的相对位置不同而变化,这就会导致多对一的问题)如下图所示:
在这里插入图片描述
预测出α后可以通过右侧的公式来计算偏航角θ,(在3D Bounding Box Estimation Using Deep Learning and Geometry中这里γ通过图像中目标中心偏离图像中线的角度来计算),本文中是通过arctan(x/z),x, z就是后续预测的目标底面中心的坐标

疑问:这两者之间有何不同,误差会大吗,图像畸变可能会导致通过图像计算 γ 存在误差,但是通过arctan(x/z)计算时由于x和z都是预测值,也存在误差,那种方法更准确?

二、Guidance生成

数学表示定义:
在这里插入图片描述

2.1 Guidance尺寸估计

这里文中提到因为自动驾驶数据集中各类目标的尺寸分布方差都较小,所以为了简便起见直接令Guidance的尺寸等于平均尺寸,即
在这里插入图片描述

2.2 Guidance 坐标估计

如最开始所说,这里的坐标估计是估计3D框的底面中心坐标(在相机坐标系中)。
这里文章采用了不同于以前文章的几何约束:3Dbox 的顶面中心距离2D边框上侧边的中心是非常近的,可以直接视二者重合。作者提到这是因为数据采集时的摄像头是安装在采集车的顶部的,而目标大多与其高度相似。
在这里插入图片描述
因此有顶面与底面的中心在2D图像中的坐标:
在这里插入图片描述
然后通过相机的内参矩阵将2D坐标转为标准化的3D坐标(不是最终3D坐标,还需要乘以深度,不清楚的话可以查阅相机/世界/目标坐标系转换的相关理论):
在这里插入图片描述

问题:这里文中对于底面中心的2D坐标也使用了相同的方式进行计算,个人认为底面坐标并不满足上面的几何约束,虽然作者在转换为3D坐标时增加了底面中心坐标的移动(shift)参数λ,但感觉这样会对精度有所影响

通过上述过程可以得到上下面中心的归一化坐标,那么可以得到归一化后的目标高度:
在这里插入图片描述
则根据已知的目标类平均高度,可以计算深度:
在这里插入图片描述
这里有
在这里插入图片描述

2.3 Guidance 角度估计

如第一节中所述,此时已经知道了目标底面中心的坐标,所以可以轻松地计算出目标的偏航角θ

三、表面特征抽取

前文提到仅依靠2D边框与3D边框的几何约束进行3D边框预测会导致边框边界不明确现象,因此作者在本论文中提出:基于Guidance提取2D图像中目标的可视表面,并对各个面提取特征,为3D边框的进一步调整提供信息。
在这里插入图片描述
抽取步骤
由Guidance可以得到目标每个可视表面的四个顶点,但是直接对这种的斜四边形卷积提取特征的话会导致过多的冗余信息,因此首先通过映射变换将每个面转换为规则的图像(例如5×5),其映射矩阵可以通过变换前后的角点对应来计算。之后对得到的规则图像进行特征提取,最后与2D bbox的特征进行concat一起用于refine。
在这里插入图片描述

四、Refine

4.1 Classification Formulation

作者将残差定义为如下形式:
在这里插入图片描述
为什么要这样定义?

论文中指出:大范围回归的效果通常不如离散分类的效果,所以本文的偏差预测也采用离散分类的形式。
对于 (ω, h, l, x, y, z,θ,Φ,ψ)中的每一个参数都计算在训练数据集上的偏差的标准差σ,并将0,±1σ,±2σ, …, ±N*σ作为离散区间的中心,每个区间宽度为σ,N根据所有偏差的最大范围来确定

4.2 Classification after shift

Classification Formulation是输入特征,分类器预测其偏差可能位于的范围。
文中还提出了另一种在Classification Formulation的基础上改进的方法:针对每一个偏差区间,产生其对应的特征(即先根据偏差区间对Guidance进行移动,然后再生成特征用于判别)

问题:那这边的分类器的输出是什么?对每一个特征的评估分数?


4.3 Quality Aware Loss

因为Ap是通过对候选框依据其置信度排序进行计算的,但是一般的0/1便签使得在计算损失的时候忽略了候选框的质量不同这一特点,因此作者设定了Quality Aware Loss:
在这里插入图片描述

五、实验结果

最终检测结果对比如下:
在这里插入图片描述
仅用Guidance(无refine)的召回率与Mono3D的对比:
在这里插入图片描述
guidance的偏差范围如下:
在这里插入图片描述
论文方法的消融实验:对比了baseline,添加surface feature(范围回归),添加离散区间分类代替范围回归,添加quality aware loss损失函数。
可以看出,离散区间分类确实比直接范围回归性能提高不少
在这里插入图片描述
部分的可视化检测结果:
在这里插入图片描述
可以看出还是会有方向错误等等各种问题,精度也并不高,单目检测还需要更高的提升啊


文中如有错误之处,还请指正,欢迎交流

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值