【论文解读】单目3D目标检测 MonoFlex(CVPR 2021)

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 本文分享单目3D目标检测,MonoFlex 模型的论文解读,了解它的设计思路,论文核心观点,模型结构,以及效果和性能。

 本文分享单目3D目标检测,MonoFlex 模型的论文解读,了解它的设计思路,论文核心观点,模型结构,以及效果和性能。

image.gif


一、MonoFlex 简介

MonoFlex是一种端到端单阶段的单目3D目标检测方法,它基于CenterNet框架结合几何约束,回归方式输出3D框信息。

它优化了被截断物体的3D检测,同时优化了中心点的深度估计,检测速度也比较快。

开源地址:https://github.com/zhangyp15/MonoFlex

论文地址:Objects are Different: Flexible Monocular 3D Object Detection


二、论文核心观点

论文核心观点,主要有3点组成:

    • 1、有截断的物体正常的物体分开处理,提出了截断目标预测的解耦方法。主要体现在:截断的中心点选取差异。
    • 2、深度估计中同时考虑:关键点估计的几何深度直接回归深度,然后两者做加权结合。
    • 3、边缘特征提取和融合,单独把边沿的像素拿出来做注意力特征提取,提高offset和heat map的精度。


    三、模型框架

    MonoFlex是一个单阶段的框架,实现单目3d检测的模型结构如下:

    Backbone:DLA34

    Neck:FPN

    Head:由四部分组成

    第一部分,预测2D框中心点。

      • 通过输出heatmap,预测所有类别的中心点(默认类别为3)。
      • 这部分加入了Edge Fusion,增强边缘的中心点预测。

      第二部分,预测中心点的偏差。

        • 对于正常物体,预测2D框中心点与3D框投影坐标之间的偏差。
        • 对于截断物体,预测2D框中心,和3D框中心投影点与图像边沿之间交点的偏差。(下面详细讲)

        第三部分,预测常规的信息。

          • 2D框宽高。
          • 3D方向。
          • 3D尺寸。

          第四部分,预测深度信息。

            • 深度信息1:模型直接归回的深度信息。
            • 深度信息2:通过关键点和几何约束,计算出来的深度信息。估计一共10个关键点:3D框8个顶点和上框面、下框面在图片中的投影到x_r的offset;然后通过相机模型计算深度。
            • 深度信息融合,把几何深度直接回归深度,然后两者做加权结合。

            模型结构如下图所示:

            image.gif


            补充一下Edge Fusion模块:

            为了提高截断物体的中心点检测,提出了边缘特征提取和融合,单独把边沿的像素拿出来做注意力特征提取,提高offset和heat map的精度。

              • 模块首先提取特征映射的四个边界,将其连接到边缘特征向量中。
              • 然后由两个1*1 conv处理,以学习截断对象的唯一特征。
              • 最后,将处理的向量重新映射到四个边界,并添加到输入特征图。

              在热图预测中,边缘特征可以专门用于预测外部对象的边缘热图,从而使内部对象的位置不被混淆。




              四、损失函数

              MonoFlex 的损失由6部分组成:

                • 2D框中心点损失,通过输出heatmap,预测所有类别的中心点;使用 Focal Loss 函数。
                • 2D框尺寸损失,使用 L1 Loss 函数。
                • 3D框中心点与2D框中心点的偏差损失,使用 L1 Loss 函数。
                • 3D朝向角损失,使用MultiBin 函数。
                • 3D尺寸损失,使用 L1 Loss 函数。
                • 深度信息损失,包括直接回归损失和关键点损失。

                补充一下heatmap的损失,它是采用带惩罚因子的Facal Loss。

                image.gif

                偏差损失计算公式:

                image.gif

                关键带你采用L1 loss进行回归:

                image.gif



                五、核心观点——截断的物体正常的物体分开处理

                预测3D框中心点的偏差中早期是使用2D框中心,作为3D框在图像的中心;直接预测2D框中心点的偏差

                现有的大部分单目3D检测方法是预测2D框中心点与3D框投影坐标之间的偏差。原理可以看MonoDLE

                作者做了实验,分析截断的物体正常的物体的中心点偏差分布。根据物体的投影3D中心在图像内部还是外部,将物体分为两组,内部对象(Inside Objects)和外部对象(Outside Objects)在从2D中心到投影3D中心过程中,呈现完全不同的偏差分布。

                image.gif

                考虑到两组偏移量相差大,联合学习会产生长尾偏移,因此作者将内外对象的表示和偏移学习进行解耦。

                于是在MonoFlex提出了:有截断的物体和正常的物体要分开处理。主要体现在:截断的中心点选取差异。

                下面分析中心点选取的差异:

                  • 对于正常物体,预测2D框中心点与3D框投影坐标之间的偏差。
                  • 对于截断物体,预测2D框中心,和3D框中心投影点与图像边沿之间交点的偏差。

                  下面图中,Xb是2D框中心、Xc是3D框投影在图像中的中心、Xl是预测2D框中心和3D框中心投影点,在图像边沿之间交点。

                  正常物体,预测3D框中心偏差时,使用Xc与Xb之间的距离作为标签。即:δc=Xc−Xb。

                  截断物体,预测3D框中心偏差时,使用Xl与Xb之间的距离作为标签。

                  image.gif

                  image.gif

                  上图右侧看一下截断物体,中心点在图像边缘的heatmap情况。

                  为了提高截断物体的中心点检测,提出了边缘特征提取和融合,单独把边沿的像素拿出来做注意力特征提取,提高offset和heat map的精度。

                  下面是对比图像边沿交点Xl(浅蓝色),与2D框中心Xb(绿色)

                  image.gifimage.gif

                  下面是是对比实验:

                  image.gif



                  六、核心观点——深度估计同时考虑几何深度直接回归深度

                  在深度估计中,同时考虑关键点估计的几何深度直接回归深度,然后两者做加权结合。

                  一、直接回归深度

                  image.gif


                  关键点估计的几何深度

                  采取10个关键点:8个顶点+1个顶面中心+1个底面中心。通过10个关键点和相机投影模型,可以计算出深度信息z。

                  image.gif

                  使用目标的2D高度和3D高度之间的相对比例来计算目标深度,投影公式:

                  image.gif编辑

                  从高度求解深度不仅与orientation估计无关,而且受dimension估计误差的影响较小。

                  即:3D 边界框支撑线的深度可以通过对象高度和线的像素高度来计算。将十个关键点分为三组,每组都可以独立产生中心深度。

                  image.gif


                  【三、深度信息加权合并】

                  利用M+1个深度估计值和不确定性,进行加权求解平均值:

                  image.gif

                  该方式可以为那些高置信度的估计器分配更高的权重,同时对潜在的不准确具有鲁棒性。



                  七、实验对比与模型效果

                  在KITTI 验证/测试集上的实验,选择Car类别。模型精度高,实时性好。


                  模型检测效果:

                  image.gif

                  在截断物体的检测效果:

                  image.gif



                  分享完成~

                  相关文章
                  |
                  机器学习/深度学习 人工智能 自然语言处理
                  视觉 注意力机制——通道注意力、空间注意力、自注意力
                  本文介绍注意力机制的概念和基本原理,并站在计算机视觉CV角度,进一步介绍通道注意力、空间注意力、混合注意力、自注意力等。
                  15920 58
                  |
                  编解码 算法 数据可视化
                  源码解读 | 单目相机实现3D目标检测—CaDDN
                  源码解读 | 单目相机实现3D目标检测—CaDDN
                  917 0
                  |
                  存储 数据采集 传感器
                  一文多图搞懂KITTI数据集下载及解析
                  一文多图搞懂KITTI数据集下载及解析
                  17033 3
                  一文多图搞懂KITTI数据集下载及解析
                  |
                  机器学习/深度学习 传感器 算法
                  单目3D目标检测 方法综述——直接回归方法、基于深度信息方法、基于点云信息方法
                  本文综合整理单目3D目标检测的方法模型,包括:基于几何约束的直接回归方法,基于深度信息的方法,基于点云信息的方法。万字长文,慢慢阅读~ 直接回归方法 涉及到模型包括:MonoCon、MonoDLE、MonoFlex、CUPNet、SMOKE等。 基于深度信息的方法 涉及到模型包括:MF3D、MonoGRNet、D4LCN、MonoPSR等。 基于点云信息的方法 涉及到模型包括:Pseudo lidar、DD3D、CaDDN、LPCG等。
                  3374 2
                  |
                  人工智能 编解码 自动驾驶
                  RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
                  RF-DETR是首个在COCO数据集上突破60 mAP的实时检测模型,结合Transformer架构与DINOv2主干网络,支持多分辨率灵活切换,为安防、自动驾驶等场景提供高精度实时检测方案。
                  3450 6
                  RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
                  |
                  机器学习/深度学习 编解码 JSON
                  Qwen2.5-VL!Qwen2.5-VL!!Qwen2.5-VL!!!
                  Qwen2.5-VL!Qwen2.5-VL!!Qwen2.5-VL!!!
                  |
                  存储 传感器 数据可视化
                  3D目标检测数据集 KITTI(标签格式解析、3D框可视化、点云转图像、BEV鸟瞰图)
                  本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、3D框可视化、点云转图像、画BEV鸟瞰图等,并配有实现代码。
                  5770 1
                  |
                  传感器 机器学习/深度学习 人工智能
                  史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
                  近年来,自动驾驶因其减轻驾驶员负担、提高行车安全的潜力而受到越来越多的关注。在现代自动驾驶系统中,感知系统是不可或缺的组成部分,旨在准确估计周围环境的状态,并为预测和规划提供可靠的观察结果。3D目标检测可以智能地预测自动驾驶车辆附近关键3D目标的位置、大小和类别,是感知系统的重要组成部分。本文回顾了应用于自动驾驶领域的3D目标检测的进展。
                  史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
                  |
                  传感器 机器学习/深度学习 人工智能
                  超全汇总 | 基于Camera的3D目标检测算法综述!(单目/双目/伪激光雷达)
                  目前3D目标检测领域方案主要包括基于单目、双目、激光雷达点云、多模态数据融合等方式,本文主要介绍基于单目、双目和伪激光雷达数据的相关算法,下面展开讨论下~
                  超全汇总 | 基于Camera的3D目标检测算法综述!(单目/双目/伪激光雷达)
                  |
                  机器学习/深度学习 并行计算 PyTorch
                  从零开始下载torch+cu(无痛版)
                  这篇文章提供了一个详细的无痛版教程,指导如何从零开始下载并配置支持CUDA的PyTorch GPU版本,包括查看Cuda版本、在官网检索下载包名、下载指定的torch、torchvision、torchaudio库,并在深度学习环境中安装和测试是否成功。
                  从零开始下载torch+cu(无痛版)