论文笔记 - :MonoLSS: Learnable Sample Selection For Monocular 3D Detection

news2024/12/23 19:07:59

论文笔记✍MonoLSS: Learnable Sample Selection For Monocular 3D Detection

📜 Abstract


🔨 主流做法+限制 :

以前的工作以启发式的方式使用特征来学习 3D 属性,没有考虑到不适当的特征可能会产生不利影响。

🔨 本文做法:

本文引入了样本选择,即只训练合适的样本来回归 3D 属性。

  • 为了自适应地选择样本,我们提出了可学习样本选择(LSS)模块,该模块基于 Gumbel-Softmax 和相对距离样本划分器。 LSS 模块在预热策略下工作,从而提高训练稳定性。

  • 此外,由于专用于3D属性样本选择的LSS模块依赖于对象级特征,因此我们进一步开发了一种名为MixUp3D的数据增强方法来丰富3D属性样本,该方法符合成像原理而不引入歧义。

  • 作为两种正交方法,LSS 模块和 MixUp3D 可以独立使用,也可以结合使用。足够的实验表明,它们的组合使用可以产生协同效应,产生的改进超越了它们单独应用的简单总和。

🔨 结果 :

利用 LSS 模块和 MixUp3D,在没有任何额外数据的情况下,我们名为 MonoLSS 的方法在 KITTI 3D 对象检测基准测试的所有三个类别(汽车、骑行者和行人)中排名第一,并且在 Waymo 数据集和 KITTI 上都取得了有竞争力的结果 - nuScenes 跨数据集评估。该代码包含在补充材料中,并将发布以促进相关学术和工业研究。

🔨问题前置 :

问题: 看完摘要有以下几点问题,带着这些问题看论文。

  • 作者说不适当的特征指的是什么?

解答:遮挡问题导致b物体特征点在A物体上面。导致预测B物体的特征不合适。

  • 针对作者的motivation,作者是如何解决问题的?为什么提出的方案是有效地?

解答:从问题出发,选择合适的特征。进而引入了怎么选择合适的特征,采样+数据增强。

  • 根据什么条件来制定可学习样本挑选策略?

  • 如何进行数据增强mixup3D?怎么代码实现的?

  • 如何联合使用保证效果最优?

✨ 一、Introduction


🔨 1.1 Motivation :

  1. 为了实现准确的 3D 属性估计,许多方法将 3D 属性预测分支添加到 2D 检测器中 [43, 61]。利用特征进行3D属性输出。

设计动机来自于2D检测的标签分配。人们很少需要IOU小于0.3的anchor作为目标检测的正样本(在anchor free方法中,这意味着远离目标中心)。使用不当可能会导致歧义,甚至产生不利影响。我们将这些知识转移到 3D 属性学习中。

SMOKE [32]仅使用位于对象3D中心的尺寸为1 * 1 * C的一个固定位置特征来回归3D属性。
当发生遮挡时,该特征可能位于另一个对象上。尽管感受野不限于特征的位置,但网络可能无法接收最佳信息作为输入。

由于受到前景和背景干扰等无用信息的影响,这种方法仍然存在问题

2. 在这项工作中,我们引入样本选择来识别有利于学习 3D 属性的特征并将其作为正样本,而忽略其余特征并将其视为负样本。 挑战在于如何划分它们。一种直观的方法是关注目标对象本身的特征(图1(c)),但这些方法需要引入额外的数据,例如深度图[40]或分割标签,并且仍然无法在不同的样本中选择合适的样本。物体的内部组件,例如轮子、灯光或身体。

  • 为了解决 3D 属性样本选择问题,我们提出了一种新颖的可学习样本选择(LSS)模块。 LSS 模块使用 Gumbel-Softmax [13] 实现概率采样。

  • 此外,采用top-k GumbelSoftmax [22]来实现多样本采样,将抽取的样本数量从1扩展到k。

  • 此外,为了取代所有对象使用相同的k值,我们开发了一种基于相对距离的无超参数样本划分器,实现了每个对象采样值的自适应确定。

  • 此外,受 HTL 方法 [34] 的启发,LSS 模块采用预热策略来稳定训练过程。

    采样->每个物体自适应采样->HTL方法稳定训练过程

3. 此外,专用于 3D 属性样本选择的 LSS 模块依赖于对象级特征。然而,训练数据中的对象数量总是有限的。同时,大多数3D单目数据增强方法,例如随机裁剪扩展、随机翻转、复制粘贴等,都不会改变物体本身的特征。其中一些甚至由于违反成像原理而引入模糊的特征。

所以呢,为了提高3D属性样本的丰富度,我们提出MixUp3D,它在传统2D MixUp [57]的基础上添加物理约束来模拟物理世界中的空间重叠。空间重叠不会改变对象的 3D 属性,例如汽车重叠自行车,但我们仍然可以判断它们的深度、尺寸和方向。

  • 作为空间重叠的模拟,MixUp3D 使物体能够符合成像原理,而不会引入模糊性。

  • 可以丰富训练样本,缓解过拟合。此外,MixUp3D 可以用作任何单目 3D 检测方法中的基本数据增强方法。

🔨 1.2 本文方法+贡献 :

总而言之,这项工作的主要贡献如下:

• 我们强调并非所有特征对于学习 3D 属性都同样有效,并首先将其重新表述为样本选择问题。相应地,开发了一种新颖的可学习样本选择(LSS)模块,可以自适应地选择样本。

• 为了丰富3D 属性样本,我们设计了MixUp3D 数据增强,它可以模拟空间重叠并显着提高3D 检测性能。

  • SOTA

通过阅读Introduction,作者首先从3D属性预测特征问题出发,认为特征没选好;其次,提出了解决方案,第一,自适应的选择样本,进行特征提取,更加适应于属性预测;第二,数据增强来丰富样本。最后,大量实验验证设计思路的有效性。

🔁 二、Related Work


🔨 2.1 常见做法:

1 Monocular 3D Object Detection

根据是否使用额外数据,单目 3D 目标检测算法可主要分为两类。

  • 第一种方法仅使用单个图像作为输入,没有任何额外信息

  • 第二种方法使用额外的数据,例如深度图、LIDAR点云和CAD模型,来获取附加信息并增强检测。

由于信息的增加,利用额外数据的方法总是表现出卓越的性能。然而,复杂的传感器配置和计算开销限制了它们在工业中的实际应用。

2 Sample Selection in 2D/3D Detection.

3 Data Augmentation in Monocular 3D Detection.

由于违反几何约束,随机水平翻转 [5, 28, 63] 和光度畸变 [3, 50] 是单目 3D 检测中唯一最常使用的两种数据增强方法。

一些方法[40](DID-M3D) 使用随机裁剪和扩展来模拟深度的比例变化。然而,根据成像原理,一幅图像上的所有深度具有相同的比例变化是不切实际的。

一些方法 [29, 53] 使用额外的深度图来模拟相机沿 z 轴的前后移动。

然而,由于视差和深度图误差,该方法引入了大量噪声和扭曲的外观特征。

实例级复制粘贴[29]也被用作3D数据增强方法,但受限于复杂的手动处理逻辑,仍然不够现实。 [Exploring Geometric Consistency for Monocular 3D Object Detection]

💻 三、Approach


🔨 3.1 FrameWork:

单目 3D 对象检测从单个 RGB 图像中提取特征,估计图像中每个对象的类别和 3D 边界框。 3D 边界框可以进一步分为 3D 中心位置(x、y、z)、尺寸(h、w、l)和方向(偏航角)θ。物体的横滚角和俯仰角设置为 0。

在这项工作中,我们提出了一种新颖的可学习样本选择(LSS)模块来优化单目 3D 对象检测过程。 MonoLS的整体架构如图2所示,主要包括2D检测器、ROI-Align、3D检测头和LSS模块

2D检测

2D检测细节

与仅根据对象特征预测单个 3D 边界框的其他方法不同,我们的方法使用对象特征中的每个样本点来预测 3D 边界框对数概率。(每个对象会经过采样,每个采样点都用来预测)
在这里插入图片描述

此外,我们遵循多仓设计来预测方向并预测深度的不确定性,这与 GUPNet [34] 相同。
在这里插入图片描述

基于网络预测的logit图,LSS模块可以在训练时自适应地选择3D属性的正样本。

在推理过程中,LSS模块根据logit图中的最高对数概率选择最佳3D属性。

Learnable Sample Selection (LSS)

假设U ∼ U niform(0, 1),那么我们可以使用逆变换采样,通过计算 G = −log(−log(U )) 来生成 Gumbel 分布 G。通过用 Gumbel 分布独立扰动对数概率并使用 argmax 函数找到最大元素,Gumbel-Max 技巧 [10] 实现了无需随机选择的概率采样。基于这项工作,Gumbel-Softmax [13]使用softmax函数作为argmax的连续、可微的近似,并借助重新参数化实现整体可微性。 GumbelTop-k [22]通过无放回地绘制大小为 k 的有序采样,将样本点的数量从 Top-1 扩展到 Top-k,其中 k 是超参数。

  • 然而,相同的 k 并不适合所有对象,例如,被遮挡的对象应该比正常对象具有更少的正样本。

  • 为此,我们设计了一个基于无超参数相对距离的模块来自适应地划分样本

  • 总之,我们提出了一个可学习样本选择(LSS)模块来解决 3D 属性学习中的样本选择问题,该模块由 Gumbel-Softmax 和相对距离样本划分器组成。

    通过U–>G = −log(−log(U ))–>ˆ Φ = (G + Φ) -->softmax -->S

    depth uncertainty U logit map Φ

    Gumbel distribution G

    Gumbel-distributed logit ˆ Φ

    soft map S
    在这里插入图片描述

之后,采用相对距离样本分配器代替Gumbel-Top-k中的固定k,实现自适应样本分配。我们使用软映射的元素之间的最大间隔来区分正样本和负样本。一般用绝对距离(Abs dis = |a − b|)来表示间隔。但由于softmax函数的放大效应,使用绝对距离来划分样本可能会导致正样本数量不足。我们利用相对距离(Rel dis = a b )来增加正样本的数量。例如,如果softmax函数的输入向量为[20, 18, 17, 7],则输出将为[0.84, 0.12, 0.04, 0],使用绝对距离将仅分配一个正样本,而相对距离将分配三

首先,我们将软映射S展平为一维向量Sof t S,并对其进行排序,得到排序向量Sort S。其次,我们通过以下公式计算向量Sort S的相邻元素之间的相对距离:

在这里插入图片描述

其中,f()表示Sort S到Sof t S的映射关系。假设Dis Si为Dis S中的最大值,由于指数函数是单调递增函数,因此 ˆ φf(i) − ˆ φf(i+ 1) 是 ˆ Φ 中的最大间隔。本质上,我们正在寻找 Gumbel 分布 logit 中最具辨别力的值来区分正样本和负样本。我们选择Dis Si对应的Sort Si作为阈值来过滤负样本。具体地,将软映射S中小于Sort Si的值设置为0,得到最终的采样映射Sample S。

2. Loss Function and Training Strategy

整体损失L由2D损失L2d和3D损失L3d组成,其中2D损失L2d遵循CenterNet[61]中的设计,3D损失L3d采用基于LSS模块的多任务损失函数来监督3D损失的学习特性.
在这里插入图片描述

在计算出每个属性的损失后,我们将深度、方向和维度属性的损失图乘以LSS的最终采样图Sample S,以防止负样本的损失反向传播。

采用 HTL [34] 训练策略来减少不稳定性(出自 GUPNet)。此外,由于3D属性损失的不稳定性会干扰正样本点的选择,因此我们在训练LSS模块时使用预热策略。具体来说,在训练的早期阶段,所有样本都将用于学习3D属性,直到深度损失稳定。我们认为深度损失稳定是启动 LSS 模块的必要条件,因为深度是影响 3D 边界框精度的最重要属性 [29, 36]。

3. MixUp3D for Spatial Overlap Simulation

由于LSS模块专注于对象级特征,因此不修改对象本身特征的方法对于LSS模块来说预计不会足够有效.

由于 MixUp [57, 58] 的优点,可以增强对象的像素级特征。**我们提出了 MixUp3D,它为 2D MixUp 添加了物理约束,**使得新生成的图像本质上是空间重叠的合理成像。具体来说,MixUp3D 仅违反物理世界中物体的碰撞约束,同时确保生成的图像遵循成像原理,从而避免任何歧义。

🔤在本文中,我们对 MixUp 图像施加严格的约束,以确保它们具有相同的焦距、主点、分辨率和相机视图(俯仰角和滚动角)。🔤

🔤一般来说,焦距相同的图像总是意味着**它们的主点和分辨率也相同**🔤

🔤因此,MixUp3D只需要考虑保证图像焦距相同即可。🔤

在这里插入图片描述

其中 n, m ∈ [1, N ] 且 n ̸= m。 λ表示混合比例。

所提出的MixUp3D可以在不引入歧义的情况下丰富训练样本,并有效缓解过拟合问题。作为一种重要的数据增强方法,它可以方便地应用于任何单目 3D 检测任务。

    mixup3D:遵循mixup2D,先找出相同的焦距的图片进行分组,然后组内进行mixup。保证了成像原理。

💻 四、Experiments


🔨 4.1 Implementation details:

Waymo 根据 3D 框中存在的 LiDAR 点的数量,在两个级别评估对象:级别 1 和级别 2。评估在三个距离进行:[0, 30)、[30, 50) 和 [50, ∞) 米。 Waymo 利用 AP H3D 百分比指标(其中包含 AP3D 中的航向信息)作为评估基准。

nuScenes 包含从前置摄像头捕获的 28,130 个训练图像和 6,019 个验证图像。我们使用验证分割进行跨数据集评估。

Implementation details.。我们提出的 MonoLSS 在 4 个 Tesla V100 GPU 上进行训练,批量大小为 16。在没有 MixUp3D 的情况下,我们将模型训练 150 个周期,之后发生过拟合。使用 MixUp3D 时,模型可以训练 600 个 epoch,而不会出现过拟合。我们使用 Adam [19] 作为优化器,初始学习率为 1e − 3。学习调度器在前 5 个时期具有线性预热策略。按照[40],ROI-Align 大小 d × d 设置为 7 × 7。LSS 在 0.3 × 总历次(实验参数)后开始进行预热。

🔨 4.2 Results quantitative(定量)

在这里插入图片描述

🔨 4.3 Ablation Study:

在这里插入图片描述

LSS 模块的有效性

如表 5 前 4 行所示,LSS 模块可以显着改善 AP。**而作用于方向和尺寸属性时,改进相对较小。这是因为深度估计误差是单目 3D 检测中最关键的限制因素,**这一点已在 GeoAug [29] 和 MonoDLE [36] 中得到证实。因此,为了便于比较,在下面的消融实验中,LSS模块仅作用于深度属性。

Warm-up的必要性:

表 5 前 3 行的结果显示了预热策略的重要性。如果没有预热(第2行),LSS将在训练开始时开始随机采样,导致真正的负样本可能被迫学习属性,而真正的正样本则被丢弃,这会显着降低性能(简单级别为 21.72 至 17.03)。

由于3D属性损失的不稳定性会干扰正样本点的选择,因此我们在训练LSS模块时使用预热策略。具体来说,在训练的早期阶段,所有样本都将用于学习3D属性,直到深度损失稳定。(前边介绍的)

LSS 和 MixUp3D 之间的协同效应

样本选择策略的比较:

我们将LSS模块与其他样本分配策略进行对比,结果如表6所示。LSS模块根据对象特征自适应地选择正样本,使得AP相对于将固定位置样本点视为正样本的方法有显着改进那些。此外,我们的方法还优于使用额外的深度或分割图来选择正样本的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

🔨 4.4 实验-好词好句:

“Specifically, compared with MonoDDE [28] which is the recent top1-ranked image-only method, MonoLSS gains significant improvement of 4.73%/11.73%/12.19% in AP3D and 3.90%/10.61%/10.90% in APBEV relatively on the easy, moderate, and hard levels while IOU = 0.7.

问题解答

根据 3.1节,进行样本点选择;
对原始数据集进行分组。随机整合;
预热训练的方式,保证两者发挥最大的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1559842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全面概述Gitee和GitHub生成/添加SSH公钥

前言 现如今将代码开源已经成为软件开发行业的一种趋势,而现在比较有名的代码托管平台有GItHub、Gitee、Gitlab等相关平台。而我们在使用代码托管平台最为常见的就是如何将自己本地的代码推送到远程托管平台中的仓库中,现如今各大托管平台基本上都提供了…

鸿蒙手机cordova-plugin-camera不能拍照和图片不显示问题

鸿蒙手机cordova-plugin-camera不能拍照和图片不显示问题 一、运行环境 1、硬件 手机型号:NOVA 7 系统:HarmonyOS版本 4.0.0 2、软件 android SDK platforms:14.0(API Level 34)、13.0(API Level 33) SDK Build-T…

jvm类加载机制概述

、什么是jvm的类加载机制 类加载机制是指我们将类的字节码文件所包含的数据读入内存,同时我们会生成数据的访问入口的一种 特殊机制。那么我们可以得知,类加载的最终产品是数据访问入口。 加载类文件(即.class文件)的方式有以下几…

一些基本类上实用的注解及例子

文章目录 一些基本类上实用的注解及例子一、Data二、Accessors三、AllArgsConstructor四、NoArgsConstructor五、EqualsAndHashCode六、后面在补充!先这样吧,哈哈!总结 一些基本类上实用的注解及例子 一、Data Data 注解是一个组合注解&…

Django源码之路由的本质(上)——逐步剖析底层执行流程

目录 1. 前言 2. 路由定义 3. 路由定义整体源码分析 3.1 partial实现path函数调用 3.2 图解_path函数 3.3 最终 4.URLPattern和Pattern的简单解析 5. 小结 1. 前言 在学习Django框架的时候,我们大多时候都只会使用如何去开发项目,对其实现流程并…

linux 软中断入门

在 linux 中,任务执行的载体有很多,包括线程,中断,软中断,tasklet,定时器等。但是从本质上来划分的话,任务执行的载体只有两个:线程和中断。软中断和 tasklet 的执行可能在中断中&am…

云服务器8核32G配置报价大全,腾讯云、阿里云和京东云

8核32G云服务器租用优惠价格表,云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价,腾讯云和京东云是轻量应用服务器,阿里云是云服务器ECS: 阿里云8核32G服务器 阿里云8核32G服务器价格…

9.动态规划——2.最大序列和

例题——最大序列和 找状态 思路一() 定义一个状态 d p [ i ] dp[i] dp[i],计为前i个数构成子序列和的最大值 此法状态转移比较困难,即若 d p [ i ] dp[i] dp[i]与 d p [ i − 1 ] dp[i-1] dp[i−1]没有明确的关系,有…

获取电商数据的几种方法分享

在数字化时代,电商数据已经成为企业决策的重要依据。无论是市场趋势的洞察、用户行为的分析,还是产品优化和营销策略的制定,都离不开电商数据的支持。本文将分享几种获取电商数据的有效方法,力求在干货满满的同时,也不…

PyCharm中出现Microsoft Defender配置建议

原因 Windows安全中心的病毒和威胁防护会自动扫描电脑中的文件夹,我们的项目文件夹和IDE文件夹也会被扫描,而PyCharm认为这会降低IDE性能。 解决方法 直接点击提示框里的自动。 或是手动给扫描添加排除项,步骤如下: 1、先打开…

Sui原生功能如何改变链上游戏体验

从zkLogin到可编程交易区块(PTB),Sui的原生功能为游戏开发人员提供了工具,最终利用了Web3的力量,给玩家带来了新的体验和参与度。之前的区块链在支持链上游戏方面存在技术上的局限,但是Sui提供了开发人员所…

受益于边缘计算的三个关键应用

边缘计算和 5G 网络正在改变物联网,增强跨多个领域的广泛应用的功能,并催生大量新兴应用。我们通过研究三个突出的用例来说明边缘计算的强大功能。 工业4.0智能工厂 工业 4.0 为制造商提供了基于灵活的工业环境提高生产力和盈利能力的愿景,…

AR-Net网络(图像篡改检测)

AR-Net网络 摘要AbstractAR-Net1. 文献摘要2. 研究背景3. 创新点4. AR-Net 网络架构5. 实验6. 结论总结 摘要 AR-Net使用自适应注意力机制来融合位置和通道维度的特征,使网络能够充分利用不同维度的被篡改特征,此外,AR-Net 改进了预测掩模&a…

牛客NC92 最长公共子序列(二)【中等 动态规划 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/6d29638c85bb4ffd80c020fe244baf11 思路 https://blog.csdn.net/qq_36544411/article/details/120021203 思路 动态规划法, 我们以dp[i][j]表示在s1中以第i个元素结尾,s2中以第j个元素结…

【JavaSE】初识线程,线程与进程的区别

文章目录 ✍线程是什么?✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么? ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…

常见微服务的组件?

注册中心:就是一个服务注册的地方,我们可以把拆分的服务注册到注册中心,这样注册中心就能管理这些服务,服务之间的调用就会很方便,通过服务名就能相互调用。 负载均衡:被调用放的负载均衡,比如…

人工智能产业应用--具身智能

五、下一个浪潮 (一) 跳出缸中脑——虚实结合 在探索人工智能的边界时,“跳出缸中脑——虚实结合”这一概念提出了一个引人深思的视角,尤其是在具身智能的领域。具身智能是一种思想,强调智能体通过与其环境的直接物理互动来实现智能行为。然…

[MSSQL]理解SQL Server AlwaysOn AG的备份

AG提供了以下几种备份策略 下面来看看各项的解释 Prefer Secondary(首选辅助副本) 应在辅助副本上执行此可用性组的自动备份。如果没有可用的辅助副本,将在主副本上执行备份。 这个选项只是概念上的选项。基本上,用户可以从任何复制节点上执行备份命令。 我们可以在主副本…

Django DRF视图

文章目录 一、DRF类视图介绍APIViewGenericAPIView类ViewSet类ModelViewSet类重写方法 二、Request与ResponseRequestResponse 参考 一、DRF类视图介绍 在DRF框架中提供了众多的通用视图基类与扩展类,以简化视图的编写。 • View:Django默认的视图基类&…

数据结构堆

前言: 在前面我们已经学习了数据结构的基础操作:顺序表和链表及其相关内容,今天我们来学一点有些难度的知识——数据结构中的二叉树,今天我们先来学习二叉树中堆的知识,这部分内容还是非常有意思的,下面我们…