单目3D检测入门!从图像角度分析3D目标检测场景:MonoDLE

简介: 这篇文章的价值就在于简单,对单目检测这个任务进行了拆解分析,对于刚接触这一领域的工作者十分友好,可以对单目检测建立一个初步的认识。并且,他的加强版模型MonoCon去年也曾拿过一段时间的KITTY榜首,证明了这套方法的有效性。

1简介



MonoDLE是2021年发在CVPR上的一篇单目3D目标检测(以下简称单目检测)方向的文献。


单目检测现在更多的成果还是以模仿激光雷达(DD3D)或者引入激光雷达辅助学习(CMKD,当前SOTA)的流派为主。而MonoDLE则显得更加“老派”,沿袭了SMOKE的纯视觉角度对场景进行分析,并反驳了SMOKE提出的2D检测对3D检测没有帮助的论点。当然了,说完全不靠激光雷达也不准确,毕竟3D标签还是靠人家点云标的。

这篇文章的价值就在于简单,对单目检测这个任务进行了拆解分析,对于刚接触这一领域的工作者十分友好,可以对单目检测建立一个初步的认识。并且,他的加强版模型MonoCon去年也曾拿过一段时间的KITTY榜首,证明了这套方法的有效性。


2场景分析



这篇文章很有意思的地方就在这里,作者设计了一系列诊断实验,来分析每一个子任务对模型整体表现影响的大小。具体方式就是,依次用真值代替每一个子任务的预测结果然后观察模型的最终表现。

640.png


很明显能看出来,当3D框中心点坐标的预测值采用真值代替时,模型的表现几乎赶得上激光雷达了,同时深度估计也是一个很大的影响因素。


基于这个核心观察,作者做了三个方面的主要工作:

  1. 重新分析了2D检测框中心点和3D框中心点投影之间的偏移,并且在模型的head上做出了适应性设计。


640.png

  1. 作者认为现在的技术还不足以支持远距离目标的精确估计,作者在后面的内容中给出了论证,距离越远,单个像素误差对应的实际偏移就会越大。而强行将远距离样本纳入训练集,会对模型造成得不偿失的影响,所以作者干脆删掉了60米以外的训练样本。事实证明学明白了近端的模型,在远距离上表现得还凑合。
  2. 作者设计了一个新的针对尺寸估计的损失函数,避免尺寸估计受到定位精度的影响。


作者还专门声明了保留2D检测任务的意义,认为从2D中心点和宽高的学习中获得的共享特征,可以帮助到3D任务。针对这一论点,虽然没有做严格的对照实验,不过这俩模型用的都是DLA-34,其他没有什么重大的设计上的差别,最后的提升也足够明显,还是挺有说服力的。当然任务扩展肯定要带来时间消耗,总体比SMOKE慢了10ms,不过从工程方面讲可以兼容一些原来开发的基于2D检测的任务,也能接受。


3Baseline以及优化方案



作者采用了CenterNet的基础架构作为Baseline,在保留了2D检测任务的基础上添加了一系列3D检测的子任务,最终达到3D检测的目的。这里顺便说一句,CenterNet这个模型虽然知名度不低,但是作为工程工具始终被Yolo落下好远。不过到了3D场景下,因为其简单直接易扩展的特性,经常被拿来魔改,不光是单目3D目标检测,很多多模态融合检测的场景也会拿它来做Baseline,所以还是有一定学习价值的。


模型的backbone还是选用了发挥稳定的DLA-34,比较可惜的是CenterFusion中提出的加了DCN的DLA因为工程化困难一直没有被广泛使用,否则是一个不错的涨点trick。关于DLA的优化大家可以去看一下SMOKE的论文,解读很多就不细说了,还是有很多不错的优化细节的。


在backbone之后,一共有7个检测头,统一规格都是一个3×3卷积层加一个1×1卷积层。7个头分别用来预测

  • 像素坐标系下的粗估中心c的坐标(u,v)
  • 2D框中心ci相对于c的偏移量oi(Δui,Δvi)
  • 2D框宽高w2D、h2D
  • 3D框中心在像素坐标系下的投影cw相对于c的偏移量ow(Δuw,Δvw)
  • 3D框中心点深度z
  • 3D框长宽高l、w、h
  • 航向角γ

640.png


这里针对其中几个任务的细节做一下说明:


1. 粗估中心


粗估中心的监督标签用的是3D中心的投影,也就是cw的真值,毕竟是主要任务嘛,需要一些偏向。文章中说以前的一些文献用的是2D框中心点真值做监督,这个不重要。


2. 3D中心点坐标


从任务分配就可以看出,3D中心点在相机坐标系下的三维坐标(xw,yw,zw)是分两个头实现的,通过预测3D中心在像素坐标系下的投影坐标cw,结合相机内参可以获得中心点在图像物理坐标系下的坐标(x,y,z)。再通过预测深度zw,获得zw/z这个比例系数,就能求出xw,yw。由此可见,深度估计对整体定位精度的影响还是很大的。


3. 深度估计


本文对于深度估计的设计,整体还是端到端的思路,不过在输出上做了一个不确定性建模,在预测深度d的基础上同时预测标准差σ。对于σ的分布,文中做了拉普拉斯分布和高斯分布


640.png640.png


两种假设并进行了实验验证,最终证明拉普拉斯分布下的约束方式效果更好。不过从误差分析的结果上来看,30米外的目标就有1.5米的误差,即便是做了优化,深度估计这块儿仍然是任重道远。

640.png


4. 尺寸估计


以往的尺寸估计,应用的损失函数都是通过计算和真值框之间的交并比来约束优化方向。这样带来的问题就是,由于中心点的预测误差导致的损失偏大,会给尺寸估计带来不必要的负担。所以作者单独拎出了尺寸估计并专门设计了损失函数,只针对尺寸的预测误差对这个分支进行优化。并且根据长宽高对于IOU影响的比例不同,对参数优化的权重也按比例进行了设置。这一部分虽然作为一个单独的贡献进行了说明,不过在整个项目中的提升并不算大,就不展开说了。


5. 航向角估计


航向角用的是multi-bin loss,没有什么特殊优化,论文链接在这里https://arxiv.org/abs/1711.08488


4结语



总体看下来这篇文章还是挺优秀的,确实有新东西,也分析清楚了很多问题。看完之后也能明白为什么深度估计能作为一个单独的方向发展这么久了,其实大部分单目检测方法的主要区别就是针对这个问题做出了不同选择,要么继续尝试从图像角度去优化这个病态问题,要么就干脆去仿激光雷达,或者通过硬件比如深度相机去规避(不过这个好像也不算真正意义上的单目了)。怎么处理深度信息的预测问题也是看大多数单目检测论文的一个不错的切入点。


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
7月前
|
机器学习/深度学习 算法 测试技术
低照度增强算法(图像增强+目标检测+代码)
低照度增强算法(图像增强+目标检测+代码)
|
7月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
7月前
|
机器学习/深度学习 算法 计算机视觉
yolov8人脸识别-脸部关键点检测(代码+原理)
yolov8人脸识别-脸部关键点检测(代码+原理)
|
机器学习/深度学习 传感器 算法
单目3D目标检测 方法综述——直接回归方法、基于深度信息方法、基于点云信息方法
本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~ 直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE等。 基于深度信息的方法 涉及到模型包括:MF3D、MonoGRNet、D4LCN、MonoPSR等。 基于点云信息的方法 涉及到模型包括:Pseudo lidar、DD3D、CaDDN、LPCG等。
1267 2
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
6月前
|
机器学习/深度学习 人工智能 监控
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
|
7月前
|
编解码 算法 自动驾驶
【计算机视觉】基于光流特征的目标跟踪算法LK光流法的讲解(图文解释 超详细)
【计算机视觉】基于光流特征的目标跟踪算法LK光流法的讲解(图文解释 超详细)
464 0
|
文字识别 算法 计算机视觉
计算机视觉图像常用基本算法(阈值化、形态学变化、模糊)
计算机视觉图像常用基本算法(阈值化、形态学变化、模糊)
200 0
|
机器学习/深度学习 传感器 算法
基于深度学习的目标姿态检测方法_kaic
伴随着人工智能技术的发展,物体探测和辨识技术已被广泛用于各个领域,而作为物体探测的一个重要分支,物体姿态探测在机器人控制、自动驾驶等领域中扮演着重要角色。本文的目的在于探究基于单目相机的目标三维姿态检测方法,以实现对目标物体的快速、精确的三维姿态检测和识别,提高目标检测的准确率和效率,并为人工智能技术的发展提供新的思路和方法。 本文系统地介绍了基于单目相机的三维目标检测技术,并详细讨论了基于深度学习的单阶段目标检测算法,即YOLOv5算法。具体来说,本文采用YOLOv5算法搭建神经网络模型,在KITTI数据集构建训练集后对模型进行训练,再采集部分环境照片以及KITTI数据的部分照片构建测试集.
|
传感器 机器学习/深度学习 存储
利用BEV辅助的立体匹配,助力3D语义场景补全
利用BEV辅助的立体匹配,助力3D语义场景补全
296 0