2020CVPR
主要贡献:
揭示了目前无监督域适应问题的限制(2个)。
提出了ARC模组解决上述问题。
用了大量实验证明ARC合理,并且具有很高的可解释性。
限制
Low-level vs. high-level domain adaptation.
无监督生成的数据在颜色和纹理(low-level)上可以修改,但是对于物体(high-level)不能解决。如下图,在风格转换后,毛巾依然在图片上,而在深度估计中,这区域的深度和前面同一深度对任务表现更好。这种情况的发生会使得在毛巾区域估计出偏置较大的深度。

Input vs. output domain adaptation.
目前很多训练都采用少量有标签的训练数据和大量合成数据。作者在训练中发现,这种训练方式和只用少量训练数据的差异不大。和分类任务不同,深度估计的输出是连续的变量。分类任务不会很在意在原图上的修改,而深度估计任务原图的改变会对标签产生很大的影响。我在合成数据时,只能在low-level做改变,否则对标签会变偏差很大。这种做法和augmentation差不了多少,对提高训练的意义不大。
ARC模组(attend, remove and complete)
以上的两种问题存在的原因是真实图片和合成图片直接存在的间隙(domain gap between real image and synthetic image)。一个肯定的答案是:合成数据实际上可以提高深度估计的精度,但是需要以一种与众不同的方式参与训练。即要考虑到在现实世界中存在的复杂物体,而在合成图像中没有出现。

这里的技术细节不讨论,从上图可以看出作者的训练思路。T将真实域的图片转换为合成域(T),这个过程可以将low-level的细节转换为同一分布。(A)是一个attention机制,将多余的(那些干扰预测的)物体mask掉。对于mask掉的区域使用(I)对其补全。最终模型在真实域对应的合成域上做深度预测,并且该合成域的图片剔除掉了干扰的物体和纹理。
训练策略
以上的的各个模组如果同时训练难度是很大的,需要单个模组训练,然后将其组合。
第一步,训练D在真实域和合成域,作为预训练。
第二步,以cyclegan的形式训练T。
第三步,将T,A,D同时训练,固定T,D的参数,值选了A的参数。此后我们假设A已经学到了我们预期的知识,即需要remove的区域。
第四步,I作为一个单独的模组训练。
第五部,以上所有模块组合到一起训练,训练策略如下。

性能表现
对于那些容易估计错误的物体,确实有理改善。

总结
这种域适应的策略将问题转换:从输入真实图转为输入合成图。这样的好处是排除掉了真实图片中的噪声。但是这是在有效去除噪声的前提下。我认为作者的训练策略存在有效去除噪声的合理性。
作者从问题出发,提出解决问题的方法,整理思路研究。提出的方法也是有效的,训练策略我认为也是一个亮点。我还是比较喜欢这篇文章。