论文阅读-Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching

文章目录

  • [1 问题描述](#1 问题描述)
  • [2 模块](#2 模块)
    • [2.1 自适应多模态概率模型](#2.1 自适应多模态概率模型)
    • [2.2 主模态视差估计器](#2.2 主模态视差估计器)
  • [3 效果](#3 效果)
  • 参考资料

1 问题描述

本文要解决的问题是物体边缘区域的深度值预测问题

给定校准的立体图像对,立体匹配的目的是为左图像中的每个像素找到右图像中对应的像素。目前不管是基于相关体还是成本体的网络,最终都会输出大小为 D × H × W D×H×W D×H×W 的分布体,其中 D D D 是视差搜索的最大范围, H H H 和 W W W 分别是输入图像的高度和宽度。然后沿着视差维度应用 Softmax 算子来标准化每个像素的概率分布 p ( ⋅ ) p(·) p(⋅)。最后,通过加权求和操作来估计得到的视差 d ^ \hat{d} d^ ,这种过程的视差估计器被称为soft-argmax,可以用式1-1表示。
d ^ = ∑ d = 0 D − 1 d ⋅ p ( d ) (1-1) \hat{d} = \sum^{D-1}_{d=0} d \cdot p(d) \tag{1-1} d^=d=0∑D−1d⋅p(d)(1-1)

对于上述流程的深度估计网络,有两种主流的计算损失的方式。
(1)平滑L1损失

平滑L1损失直接作用在soft-argmax之后的视差估计上,如下式1-2所示。
L r e g ( d ^ , d g t ) = { 0.5 ( d ^ − d g t ) 2 , i f ∣ d ^ − d g t ∣ < 1 , ∣ d ^ − d g t ∣ − 0.5 , o t h e r w i s e (1-2) L_{reg}(\hat{d}, d_{gt}) = \begin{cases} 0.5(\hat{d} - d_{gt})^2, &if\ |\hat{d} - d_{gt}| < 1,\\ |\hat{d} - d_{gt}| - 0.5, &otherwise \end{cases} \tag{1-2} Lreg(d^,dgt)={0.5(d^−dgt)2,∣d^−dgt∣−0.5,if ∣d^−dgt∣<1,otherwise(1-2)

其中, d g t d_{gt} dgt 是视差真值。

这种监督方式没有对分布体进行直接监督,只监督了分布体加权求和后的结果。这种方式的第一个弊端是,同样一个 d ^ \hat{d} d^,可以通过无数种加权求和的方式得到,这样的监督没有明确告诉网络分布体需要如何预测。

第二个弊端,soft-argmax假设输出分布是单峰的,并且以真实值为中心,这并不总是正确的,特别是对于具有模糊深度的边缘像素。如图 1-1a 所示,边缘像素上的 soft-argmax 存在严重的过度平滑问题,导致边缘出现渗色伪影。

举个例子,假设预测的像素是物体和背景的交界处,物体的视差值为100,背景的视差值为10,那么实际的分布体会在100附近和10附近各有一个模态(峰值),这个时候通过加权求和得到的结果会是在55左右,这显然是错误的,我们希望这个像素点要么预测100,要么预测10,不要预测一个两者皆非的结果,这会导致边缘处有许多类似瀑布的噪点。


图1-1 不同方法点云重建效果对比

(2)交叉熵损失

交叉熵损失直接作用在分布体上,没有了平滑L1损失的第一个弊端,其表示如下式1-3所示。

L c e ( p , p g t ) = − ∑ d = 0 D − 1 p g t ( d ) ⋅ l o g p ( d ) (1-3) L_{ce} (p, p_{gt}) = - \sum_{d=0}^{D-1} p_{gt}(d) \cdot log p(d) \tag{1-3} Lce(p,pgt)=−d=0∑D−1pgt(d)⋅logp(d)(1-3)

新问题是式1-3中的真实分布 p g t ( ⋅ ) p_{gt}(·) pgt(⋅) 不存在。现有的工作简单地将 p g t ( ⋅ ) p_{gt}(·) pgt(⋅) 建模为以 d g t d_{gt} dgt 为中心的单峰拉普拉斯或高斯分布。然而,这些简单的模型似乎无法对不同的图像区域(尤其是边缘)施加足够的监督。如图1-2所示,边缘像素的训练损失仍然远大于非边缘像素,表明这些区域的学习难度。

图1-2 单模态在Sceneflow数据集训练损失趋势

对所得输出分布体的进一步统计(表1-1)表明,超过一半的边缘和部分非边缘像素实际上分配了多个模态,这与伪真值的单模态假设相冲突。这些不需要的多模态输出直接导致对象边缘上的未对准伪影和非边缘区域上的异常值,如图1-1b所示。因此,作者认为问题的根源在于对所有领域的真实情况的单模态建模不恰当。事实上,边缘像素聚合了来自不同深度的多个物体的光度信息,这意味着边缘像素的强度本质上是不明确的。在整个图像上施加单峰分布模式不仅会导致边缘像素的学习困难,而且还会混淆非边缘像素的学习。

表1-1 统计SceneFlow上PSMNet变体的像素模态数及其对应的异常值数量

2 模块

2.1 自适应多模态概率模型

作者致力于探索更好的交叉熵损失的真实概率模型。作者认为边缘像素的概率分布应该由多个模态组成,每个模态对应于特定的深度/视差。为此,提出了一种自适应多模态GT建模方法。作者的想法是为边缘像素上的每个潜在深度生成单独的拉普拉斯分布,然后将它们融合在一起以构造拉普拉斯混合。我们在进行双目深度估计的时候,输入模型的图片分辨率往往小于原始图片的大小,因此会将原始图片resize到输入模型的图片尺寸,而边缘处的像素,在这个resize的过程中,更有可能变成多模态了。

作者参考每个像素的邻域来完成任务,如2-1所示。

图2-1 自适应多模态概率模型示意图

对于标有真实视差的每个像素,考虑以它为中心的 m × n m×n m×n 局部窗口。然后,通过 DBScan 聚类算法将窗口内的整组视差值分为 K ( K ≥ 1 ) K(K≥1) K(K≥1) 个不相交子集 { Ω 1 , Ω 2 , . . . , Ω K } \{Ω_1, Ω_2, ..., Ω_K\} {Ω1,Ω2,...,ΩK} ,每个簇对应不同的潜在深度。在 DBScan 中,手动设置距离阈值 ε ε ε 和密度阈值 m i n P t s minP_{ts} minPts 以调整生成的聚类数量。这种聚类方法具有以下优点:

(1)不需要预先定义聚类的数量

(2)K=1可以视为无边缘的指标

(3)对于具有连续但变化深度的倾斜平面是鲁棒的

然后可以将每个像素的真实分布建模为拉普拉斯算子的混合。
p g t ( d ) = ∑ k = 1 K w k ⋅ L a p l a c i a n μ k , b k ( d ) = ∑ k = 1 K w k ⋅ e − ∣ d − μ k ∣ b k ∑ d i = 0 D − 1 e − ∣ d − μ k ∣ b k (2-1) p_{gt}(d) = \sum_{k=1}^K w_k \cdot Laplacian_{\mu_k, b_k}(d) = \sum_{k=1}^K w_k \cdot \frac{e^{\frac{-|d - \mu_k|}{b_k}}}{\sum_{d_i = 0}^{D-1} e^{\frac{-|d - \mu_k|}{b_k}}} \tag{2-1} pgt(d)=k=1∑Kwk⋅Laplacianμk,bk(d)=k=1∑Kwk⋅∑di=0D−1ebk−∣d−μk∣ebk−∣d−μk∣(2-1)

其中,拉普拉斯算子在视差候选 d ∈ { 0 , 1 , . . . , D − 1 } d∈\{0, 1, ..., D−1\} d∈{0,1,...,D−1} 上进行离散化和归一化, μ k μ_k μk 、 b k b_k bk 和 w k w_k wk 分别是第 k 个拉普拉斯分布的平均值、尺度和权重参数。 μ k μ_k μk 设置为簇 Ω k Ω_k Ωk 内视差的平均值。定义 Ω 1 Ω_1 Ω1 包含要建模的中心像素, μ 1 μ_1 μ1 被中心像素的ground-truth替代,以确保监督的准确性。权重 w k w_k wk 旨在调整获得的多个模态的相对比例,并且可以基于窗口内的局部结构来分配。将 Ω k Ω_k Ωk 的基数作为局部结构的指标,例如较小的 ∣ Ω k ∣ |Ω_k| ∣Ωk∣ 对应于更薄的结构,其权重相应地应该更小。最后, w k w_k wk 定义为:
w k = { α + ( ∣ Ω k ∣ − 1 ) ⋅ 1 − α m n − 1 , k = 1 ∣ Ω k ∣ ⋅ 1 − α m n − 1 , k ≠ 1 (2-2) w_k = \begin{cases} \alpha + (|\Omega_k| - 1) \cdot \frac{1 - \alpha}{mn - 1}, &k=1\\ |\Omega_k| \cdot \frac{1 - \alpha}{mn - 1}, &k \neq 1 \end{cases} \tag{2-2} wk={α+(∣Ωk∣−1)⋅mn−11−α,∣Ωk∣⋅mn−11−α,k=1k=1(2-2)

其中, α α α 是中心像素的固定权重。作者设置 α ≥ 0.5 α≥0.5 α≥0.5 以确保ground-truth模态的主导地位。其余 ( 1 − α ) (1 − α) (1−α) 权重平均分配给其余 ( m n − 1 ) (mn − 1) (mn−1) 个相邻像素。对于像 KITTI 这样具有稀疏真实值的数据集,仅计算本地窗口内的有效视差,并在式2-2中的 m n mn mn 替换为 ∑ k = 1 K ∣ Ω k ∣ \sum^K_{k=1}|Ω_k| ∑k=1K∣Ωk∣ 。对于窗口内只有一个簇的非边缘像素, w 1 w_1 w1 等于1,式2-1退化为单峰拉普拉斯分布。

2.2 主模态视差估计器

通过交叉熵损失训练的立体网络通常会产生比L1损失更多的多模态输出,因此需要更好的视差估计器。SME 通过仅在"最有可能"模态内聚合视差来缓解过度平滑问题,但仍然受到由错误模态选择引起的失调伪影的影响。与单模态损失相比,本文的新损失鼓励网络在边缘处产生更多的多模态模式。因此,一个增强的视差估计器成为必须的,以解决本文的方法引入的复杂性。

SME首先以最大概率密度定位视差候选,然后分别向左和向右遍历,直到概率停止下降,从而确定视差估计的主导模态 [ d l , d r ] [d_l , d_r] [dl,dr] 的范围。然而,这种像素级 的赢者通吃策略对输出分布中能产生尖锐和狭窄模态的噪声非常敏感。

作者提出了DME来解决这个问题,如图2-2所示。

图2-2 模态选择策略示意图

具体来说,从多模态输出中分离出每个模态,并分别计算它们的累积概率。每个模态对应一个具有特定深度的潜在匹配对象,模态的累积概率反映了该对象的匹配可能性。因此,采用对象级 的赢者通吃策略,即选择累积概率最大的模态作为主导模态。然后将所选模态归一化为:
p ˉ ( d ) = { p ( d ) ∑ d i = d l d r p ( d i ) , i f d l ≤ d ≤ d r 0 , o t h e r w i s e (2-3) \bar{p}(d) = \begin{cases} \frac{p(d)}{\sum_{d_i = d_l}^{d_r}p(d_i)}, &if \ d_l \leq d \leq d_r \\ 0, &otherwise \end{cases} \tag{2-3} pˉ(d)=⎩ ⎨ ⎧∑di=dldrp(di)p(d),0,if dl≤d≤drotherwise(2-3)

最后,式1-1用 p ˉ ( d ) \bar{p}(d) pˉ(d) 代替 p ( d ) p(d) p(d) 来估计视差。

3 效果

在PSMNet上,使用本文的方法的消融实验如下表3-1所示。

表3-1 PSMNet上的消融实验表

在SceneFlow测试集不同SOTA模型的效果可见表3-2。

表3-2 SceneFlow数据集SOTA模型对比表

在SceneFlow数据集的可视化效果可见图3-1。

图3-1 SceneFlow数据集的可视化效果

参考资料

1\] \[2\] [Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching](https://arxiv.org/abs/2306.15612)

相关推荐
铮铭4 小时前
【论文阅读】AutoDrive-R^2: 激励自动驾驶VLA模型的推理与自我反思能力
论文阅读·人工智能·自动驾驶
jie*4 小时前
小杰机器学习(seven)——贝叶斯分类
人工智能·python·深度学习·神经网络·机器学习·分类·scikit-learn
喜爱编程5 小时前
推荐 6 个本周 yyds 的 GitHub 项目。
人工智能·学习·游戏·计算机视觉·开源·github·项目
java1234_小锋5 小时前
[免费]基于Python的深度学习音乐推荐系统(后端Django)【论文+源码+SQL脚本】
python·深度学习·django·音乐推荐·python音乐推荐
让我看看好学吗6 小时前
AI产品经理项目实战:BERT语义分析识别重复信息
人工智能·深度学习·aigc·bert·产品经理
北京地铁1号线7 小时前
深度学习笔试选择题:题组1
人工智能·深度学习
北京地铁1号线7 小时前
计算机视觉笔试选择题:题组2
人工智能·计算机视觉
强化学习与机器人控制仿真8 小时前
LeRobot 入门教程(九)使用 Android、iOS 手机控制机械臂
开发语言·人工智能·stm32·深度学习·神经网络·算法·机器人
listhi5208 小时前
自适应全变分模型的图像平滑去噪与边缘保留算法
图像处理·算法·计算机视觉