论文题目:Learning the Distribution of Errors in Stereo Matching for Joint Disparity and Uncertainty Estimation
作者:Liyan Chen ;Weihan Wang; Philippos Mordohai;
作者机构:Stevens Institute of Technology(斯蒂文斯理工学院)
论文链接:
项目代码:(论文中提到的开源代码,用的是Pytorch框架)
在公众号「3D视觉工坊」后台回复「原论文」,可获取对应论文pdf文件。
本文提出了一种新的深度立体匹配中用于联合视差和不确定性估计的损失函数。在神经网络中加入KL散度项,要求不确定性分布匹配视差误差分布,以实现精确的不确定性估计。使用可微的软直方图技术来近似分布,并在损失函数中使用。该方法在大型数据集上获得了显着的改进。作为cvpr2023最新的文章,非常值得阅读一下。
本文提出了SEDNet,一种用于视差和基础不确定性联合估计的深度网络。SEDNet包括一个新颖的、轻量级的不确定性估计子网络,将不确定度的分布与视差误差的分布相匹配。为了生成这个新的损失函数的输入,作者使用可微的软直方图技术以可微分的方式近似分布。在具有真实值的大型数据集上对SEDNet的视差估计和不确定度预测的性能进行了广泛的实验验证。SEDNet优于具有相似架构但没有提出的损失函数的基线。
主要贡献是:
立体匹配网络在一种称为成本体积(cost volume)的体积上运行,该体积在每个像素处汇聚每个可能视差处的二维特征,并可以通过相关或串联来构建。DispNetC、iResNet和SegStereo等基于相关的网络生成两个视图中提取的特征的单通道相关地图,在各视差层中,利用有效的计算流程牺牲结构和语义信息在特征表示中。GCNet、PSMNet和GANet等基于串联的网络在成本体积的对应元素所指定的视差处组装两个视图的特征。这有助于学习上下文特征,但需要更多的参数以及一个后续的聚合网络。在置信度估计方面,将置信度和不确定度区分开来,包括置信度CNN、PBCP、EFN、LFN和MMC等方法,以及ConfNet、LGC和LAF等利用图像和视差图作为输入的方法。KL散度用于测量变分推断估计的网络参数分布的近似和精确后验分布之间的距离。(需要注意的是,在分配离散度误差的分布上,作者使用了KL散度来实现完全不同的目的。)
本文旨在联合估计视差和不确定性,通过最小化预测不确定性和实际视差误差之间的差异来训练网络。其中,预测模型的损失函数为KL散度损失,用于匹配误差分布和不确定性分布。立体匹配网络通过学习联合公式预测比单独的视差估计器更准确的视差。
为了预测不确定性并降低噪声的影响,Kendall和Gal通过最小化模型输出的负对数似然来实现像素级的预测。模型假设输出服从高斯分布。Ilg等人的后续工作表明,预测的分布可以分别模拟为拉普拉斯分布或高斯分布,具体取决于是对视差估计采用L1损失还是L2损失。由于作者采用的是前者,因此可以将预测模型表示为:
为了模拟算法不确定性,Kendall和Gal引入了像素特定的噪声参数σ(i)。作者采用了Ilg等人在构建拉普拉斯模型时使用的方法,并获得了以下像素级损失函数:
该式可以被视为鲁棒损失函数,其中像素的残差损失受其不确定性的影响而减弱,而第二项则作为正则化项。训练网络来预测观测噪声标量的对数s,以保证数值稳定性。
这部分作者讨论了调整不确定性分布以匹配误差分布的问题。采用KL散度作为衡量二者之间差异的度量,但直接最小化KL散度需要两个分布的归纳公式。为此作者使用直方图来表示分布,同时采用软直方图使其可微分。对于每个批次训练,基于误差值的统计量创建一个直方图。作者对独立的不确定性采用相同的直方图参数,并使用反比例权重的softmax函数来计算每个误差值或不确定性贡献的直方图值。最后,该直方图的KL损失用于网络的训练。
SEDNet是一个包括视差估计和不确定性估计子网络的网络体系结构。其中视差估计子网络采用GwcNet,GwcNet子网络使用类似ResNet的特征提取器从图像中提取特征,生成代价体积,并使用soft-argmax运算符为像素分配视差。视差预测器的输出模块在不同分辨率下生成K个视差图。不确定性估计子网络学习预测每个像素的观测噪声标量的对数误差。为了计算不确定性图像,作者提出了使用像素对差分向量(PDV)的多分辨率视差预测的新方法。视差估计器输出的视差图首先进行上采样处理,然后进行成对差分以形成PVD。其中,PVD表示像素对之间的视差差异。
本文所使用的损失函数由两部分组成:对数似然损失和KL散度损失。其中对数似然损失用于优化误差和不确定性,KL散度损失用于匹配不确定性分布和误差。总损失将所有视差和不确定性图像考虑在内,上采样到最高分辨率,并通过每个分辨率级别的系数对不同分辨率级别的对数似然损失和KL散度损失进行加权计算。
这部分作者介绍了多个用于立体图像深度估计的数据集和评估指标。其中SceneFlow、Virtual KITTI 2和DrivingStereo是当前被广泛使用的三个数据集。作者使用端点误差(EPE)和异常值百分数(D1)来评估视差估计的准确度,并使用密度-EPE ROC曲线和曲线下的面积(AUC)来评估不确定性估计。本文还比较了SEDNet和三个基线:原始GwcNet、LAF-Net和仅使用对数似然损失的SEDNet。
作者在PyTorch中实现了所有网络,并对所有实验使用了Adam优化器,其中β1 = 0.9,β2 = 0.999。在所有模型过拟合之前停止训练。
在VK2数据集上的实验是在两个NVIDIA RTX A6000 GPU上执行的,每个GPU都带有48GB的RAM。对于此数据集,使用初始学习率为0.0001从头训练了所有模型,在每10个epoch后降低了5个。在训练过程中,从图像中随机裁剪了512×256的补丁。在测试期间,在VK2的完整分辨率上评估。
发表评论