Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching
研究背景
随着深度学习的快速发展,立体匹配在计算机视觉领域取得了显著进展,尤其在自动驾驶和虚拟现实等应用中扮演着重要角色。传统的立体匹配方法在处理光照变化和弱纹理区域时存在可靠性差的问题,而基于学习的方法在这些复杂场景中表现出色。然而,现有的基于深度学习的立体匹配方法大多采用L1损失函数进行训练,这种方式缺乏对代价体积(cost volume)的直接监督,容易导致过拟合和边缘过平滑等问题。另一种方法是使用交叉熵损失函数,将立体匹配视为分类任务,但现有工作通常假设地面真值分布是单峰的,这忽略了边缘像素通常具有多峰分布的事实。
研究意义
本研究提出了一种自适应多峰交叉熵损失函数(Adaptive Multi-Modal Cross-Entropy Loss, ADL),旨在指导网络学习每个像素的不同分布模式,并优化视差估计器以进一步减轻推理过程中的边缘出血或错位伪影。该方法能够显著提升经典立体匹配网络的性能,并在跨域泛化能力上表现出色,对稀疏真值监督也具有较高的鲁棒性。
文献综述
深度立体匹配:从DispNet到GANet,深度立体匹配网络经历了从构建相关体积到代价体积,再到采用3D卷积和半全局与局部信息引导的聚合层的发展过程。
损失函数和视差估计器:L1损失函数和交叉熵损失函数是立体匹配中常用的损失函数,但各自存在局限性。现有的视差估计器如SME和CDN等在处理多峰输出时存在不足。
跨域泛化:为了提升网络的跨域泛化能力,DSMNet、CFNet等方法提出了域归一化层、可学习非局部图滤波层等技术。
具体方法
自适应多峰概率建模:
对于每个标记了地面真值视差的像素,在其局部窗口内应用DBScan聚类算法将视差值分为多个簇,每个簇对应一个潜在的深度。
为每个簇生成一个拉普拉斯分布,并通过权重参数将这些分布融合为一个混合拉普拉斯分布,以建模地面真值的多峰分布。
主导模态视差估计器:
针对交叉熵损失鼓励网络生成多峰输出的问题,提出了一种主导模态视差估计器(DME),通过计算每个模态的累积概率来选择主导模态,从而提高视差估计的准确性。
损失函数优化:
将自适应多峰交叉熵损失函数集成到立体匹配网络的训练中,通过直接监督代价体积来指导网络学习明确的分布模式。
图1
描述:
- 比较了不同方法重建的点云结果。
- (a) PSMNet方法重建的点云,存在过平滑(over-smoothing)伪影。
- (b) 使用SME(单模态估计器)的PSMNet方法重建的点云,存在错位(misalignment)伪影。
- (c) 使用本文提出的自适应多模态交叉熵损失(ADL)的PSMNet方法重建的点云,有效缓解了过平滑和错位伪影。
意义:
- 展示了本文方法在提高立体匹配精度和减少伪影方面的优势,这对于下游任务(如3D物体检测)的性能至关重要。
图2
描述:
- 展示了在SceneFlow数据集上训练时,单模态交叉熵损失的训练趋势。
- 边缘像素的训练损失显著高于非边缘像素,表明边缘像素的学习难度更大。
意义:
- 说明了简单地将立体匹配的真实分布建模为单模态分布是不合适的,尤其是对于边缘像素。这激发了本文提出自适应多模态交叉熵损失的动机。
公式1用于计算最终的视差估计值^d。其中,D是最大视差搜索范围,d是视差候选值,p(d)是视差为d的概率。通过对所有视差候选值的加权求和(权重即为对应的概率),得到最终的视差估计。
公式2定义了L1损失函数,用于计算预测视差^d与真实视差dgt之间的损失。当预测误差小于1时,使用平方误差;否则,使用绝对误差减去0.5。
公式3定义了交叉熵损失函数,用于计算预测分布p与真实分布pgt之间的损失。其中,D是最大视差搜索范围,pgt(d)是真实视差为d的概率,p(d)是预测视差为d的概率。
图3
描述:
- 说明了本文提出的自适应多模态概率建模方法。
- 对于每个待建模的像素,在其局部窗口内的视差被分为K个簇,每个簇对应一个潜在的深度,并形成一个拉普拉斯分布。
- 最终的自适应多模态分布是这些拉普拉斯分布的加权和。
意义:
- 通过为边缘像素建模多模态分布,本文方法能够更准确地反映像素的真实深度分布,从而提高立体匹配的精度。
公式4定义了自适应多模态拉普拉斯分布,用于对真实视差分布进行建模。其中,K是模态的数量,wk是第k个模态的权重,uk和bk分别是第k个模态的均值和尺度参数,Laplacian(uk, bk)(d)表示以uk为均值、bk为尺度的拉普拉斯分布在视差d处的概率密度。
公式5用于计算每个模态的权重wk。其中,α是中心像素的固定权重(确保真实模态的主导地位),|Ohmk|是第k个模态中像素的数量,mn是局部窗口内像素的总数。权重根据模态内像素的数量(即局部结构)进行分配,数量越多的模态权重越大。
图4
描述:
- 展示了模态选择策略在推理过程中的比较。
- (a) SME方法选择概率密度最大的模态作为主导模态。
- (b) 本文提出的DME方法选择累积概率最大的模态作为主导模态。
意义:
- 说明了DME方法通过考虑模态的累积概率,能够更稳健地选择正确的模态,从而减少错位伪影。
公式6用于标准化主导模态的概率分布。在选定了主导模态(其范围从d_l到d_r)后,将该范围内的概率重新归一化,以确保总概率为1。
表1:损失函数和视差估计器在SceneFlow数据集上的消融研究
- 基线方法:使用L1损失函数训练的PSMNet。
- 对比方法:PSMNet + UM(单峰交叉熵损失) + SME(单模态视差估计器)PSMNet + MM(多峰交叉熵损失,即本文提出的方法) + DME(主导模态视差估计器)
- 结果:使用多峰交叉熵损失(MM)和主导模态视差估计器(DME)的PSMNet在EPE、1px误差和3px误差上均表现出显著的性能提升,相较于基线和单峰交叉熵损失的方法。
表2:窗口形状和大小在SceneFlow数据集上的消融研究
- 研究内容:探索不同窗口形状和大小对性能的影响。
- 结果:水平1D形状的窗口通常优于其他形状,其中1×9窗口取得最佳性能。这归因于立体匹配的本质是一个沿水平方向的1D匹配任务。
表3:不同方法下PSMNet在SceneFlow数据集上输出分布模式的统计
- 统计内容:每个像素输出分布中的模态数量及其对应的异常值(outliers)比例。
- 结果:使用单峰交叉熵损失的PSMNet在边缘区域产生了更多的多峰分布,但其中一部分是不正确的,导致较大的异常值比例。使用多峰交叉熵损失的PSMNet在边缘区域产生了更多且更容易区分的多峰分布,同时降低了异常值比例。
图5
描述:
- 可视化了PSMNet、使用单模态交叉熵损失和SME的PSMNet、以及使用本文方法的PSMNet在边缘像素处的输出分布。
- 展示了不同方法在处理边缘像素时的分布模式差异。
意义:
- 通过可视化比较,直观地展示了本文方法在处理边缘像素时的优势,即能够输出更易于区分的多模态分布,从而提高视差估计的准确性。
表4:不同方法在SceneFlow测试集上的定量结果
- 对比方法:包括PSMNet、GwcNet、GANet等基线方法及其与本文方法结合后的性能。
- 结果:结合了本文提出的多峰交叉熵损失和主导模态视差估计器的基线方法(如PSMNet+Ours、GwcNet+Ours、GANet+Ours)在EPE、1px误差和3px误差上均取得了显著提升,GANet+Ours在1px和3px误差上达到了最优性能。
图6:SceneFlow数据集上的定性比较
- 内容:该图展示了在SceneFlow数据集上,不同方法生成的视差图(disparity map)的定性比较。从左到右依次是:输入图像、PSMNet方法的结果、PSMNet+Uni-modal Cross-Entropy Loss的结果、以及PSMNet+我们提出的方法(Adaptive Multi-Modal Cross-Entropy Loss)的结果。
- 解释:通过比较可以看出,我们的方法(PSMNet+Ours)能够恢复出更准确的物体结构,特别是在边缘处减少了不希望的缺陷(如过平滑和错位)。这证明了我们的自适应多模态交叉熵损失在指导网络学习清晰分布模式方面的有效性。
表5:不同方法在KITTI2015和KITTI2012基准测试集上的定量结果
- 对比方法:包括PDSNet、PSMNet、GwcNet等基线方法及其与各种技术的结合。
- 结果:结合了本文方法的基线网络(如PSMNet+Ours、GwcNet+Ours、GANet+Ours)在KITTI2015和KITTI2012基准测试集上均取得了显著的性能提升,GANet+Ours在两个基准测试集上均达到了最优性能。相较于其他包含单峰交叉熵损失项或多峰建模的方法,本文方法也表现出了更优的性能。
图7:KITTI2015数据集上的定性比较
- 内容:该图展示了在KITTI2015数据集上,不同方法生成的视差图、误差图(error map)以及由此重建的点云(point cloud)的定性比较。从上到下依次是:左图像、视差图、误差图、以及重建的点云。图中还使用椭圆和矩形框标出了部分过平滑和错位伪影。
- 解释:通过比较可以看出,我们的方法(PSMNet+Ours)显著减少了过平滑伪影,并能够获得具有精确边缘结构的点云。更准确的点云对于下游任务(如基于伪激光雷达的3D物体检测)非常有益。
表6:跨域泛化性能比较
- 描述:表6比较了不同方法在四个真实世界数据集(KITTI2015、KITTI2012、Middlebury和ETH3D)上的跨域泛化性能。所有方法仅在SceneFlow数据集上进行训练,并在其他四个数据集上进行测试。
- 关键发现:使用本文提出的自适应多模态交叉熵损失(ADL)的方法在所有四个数据集上均表现出色,显著优于基线方法(PSMNet、GwcNet、GANet)以及其他专注于跨域泛化的方法(如DSMNet、CFNet、ITSA-CFNet等)。这表明ADL通过引导网络学习显式的多模态模式,能够更好地适应不同领域的数据,从而提高跨域泛化性能。
图8:跨域泛化性能的定性比较
- 内容:该图展示了在四个不同的真实世界数据集(KITTI2015、KITTI2012、Middlebury、ETH3D)上,PSMNet方法和我们的方法(PSMNet+Ours)的定性比较。
- 解释:通过比较可以看出,我们的方法在所有这些数据集上都表现出了更好的泛化性能,证明了通过引导网络学习显式多模态模式,我们的方法能够更好地适应不同的域和数据集。
表7:稀疏真实值的影响
- 描述:表7分析了不同密度的真实值(ground-truth)对PSMNet和使用ADL的PSMNet在KITTI2015验证集上性能的影响。
- 关键发现:随着真实值密度的降低,两种方法的性能均有所下降,但使用ADL的方法受影响较小。当真实值密度仅为20%时,使用ADL的PSMNet的D1指标仍优于PSMNet在100%真实值密度下的表现。这表明ADL对稀疏监督具有更高的鲁棒性,有潜力降低收集密集真实值的成本。