概述
近年来,立体匹配的领域泛化能力受到了越来越多的关注,但是现有的方法往往忽略了模型在不同训练阶段的泛化性能变化。如图1所示。现有的工作常使用带有标签的目标域样本来测试模型的泛化性能,而现实世界里,目标域数据集的标签是难以获取的。本文基于掩码表征学习和多任务学习的思想,提出了一种简单有效的掩码表征方法,用于提升立体匹配的领域泛化性能。具体地,将掩码后的左视图和完整的右视图作为模型的输入,然后利用一个轻量级的解码器和一个特征提取模块来重建完整的左视图。使用立体匹配误差和图像重建误差作为损失函数,来训练模型学习结构特征和增强泛化能力。在CFNet和LacGwcNet上添加了我们设计的模块,在多个数据集上的实验结果表明:(1)该方法可以方便地嵌入到现有的各种立体匹配模型中,用于提高模型的领域泛化能力。(2)该方法可以降低模型在不同训练阶段的泛化性能波动。
模型架构
参照MAE的做法,使用一个均匀分布确定遮挡的大小与比例来随机将左视图的像素mask,如图3所示:
继而将掩码后的左视图与未掩码的右视图送入特征提取网络来获取左右视图对应的特征。同时引入一个轻量化的网络从掩码后的左视图预测原图像,只在mask区域计算重建损失。
损失函数
图像重建损失(MSE 损失):
L r = 1 N ∑ i = 1 N ( I o ( i ) − I r ( i ) ) 2 , (1) \mathcal{L}r=\frac1N\sum{i=1}^N(I_o(i)-I_r(i))^2,\tag{1} Lr=N1i=1∑N(Io(i)−Ir(i))2,(1)
其中 N N N 为mask像素的个数, i i i 为被mask的像素。
总损失:
L = L r + L m . (2) \mathcal{L}=\mathcal{L}_r+\mathcal{L}_m.\tag{2} L=Lr+Lm.(2)
其中 L m \mathcal{L}_m Lm 为立体匹配损失。
实验结果