一、前言
paper:Self-supervised Monocular Depth Estimation for All Day Images using Domain Separation
code:https://github.com/LINA-lln/ADDS-DepthNet
目前大多数自监督单目深度估计只能单独处理白天或夜间图像。这篇文章提出了一个域分离网络ADDS-DepthNet,用于全天的自监督深度估计。
文章主要贡献如下:
- 将昼夜图像对的信息划为两个互补的子空间:私有域(private domain)和不变域(invariant domain)。私有域包含昼夜图像特有的信息(如光照),不变域包含重要的共享信息(如纹理),这样减轻了深度估计中干扰项的影响。
- 为了保证白天和夜晚图像包含相同的信息,域分离网络将白天图像和对应的夜间图像(使用GAN方法生成)作为输入,通过正交性和相似损失学习私有域和不变域的特征提取,从而减小域差距,获得更好的深度图。最后,利用重建和光度损失对互补信息和深度图进行有效地深度估计。
二、网络架构
1.结构简介
架构主要分为三部分:白天私有网络(上方黄色部分)、夜间私有网络(下方绿色部分)和共享权重网络(中间红色部分)。
从架构图可以看出,输入是真实的白天图像和对应生成的虚假夜间图像。白天和夜间图像是共享权重的深度网络的输入,该网络首先提取不变特征,然后估计相应的深度图。同时,白天私有特征提取器和夜间私有特征提器(蓝色区域)分别提取白天和夜晚的私有特征,这些私有特征受到正交性损失的约束,以获得互补特征。并且添加私有和不变特征来重建具有重建损失的原始输入图像。
2.损失函数
网络以自监督的方式,并利用图像的私有和不变特征估计深度信息。损失函数在这里扮演了重要角色,网络的总训练损失为:
下面介绍总训练损失中几种不同的损失函数:重建损失(Reconstruction Loss)、相似性损失(Similarity Loss)、正交性损失(Orthogonality Loss)和光度损失(Photometric Loss)。
2.1 重建损失
私有和不变特征是可用于重建原始RGB图像的补充信息。因此,我们使用重建损失来细化域分离框架,其定义为:
2.2 相似性损失
由于输入是真实的白天图像和对应生成的虚假夜间图像,那么一个昼夜图像对的深度图应该一致。在直觉上,白天的深度估计会比夜间精确,所以我们期望夜间深度估计尽可能接近白天,即利用白天图像的深度作为一个伪标签来限制夜间的深度估计。相似性损失定义如下:
2.3 正交性损失
我们知道,图像的私有特征和不变特征是互补且完全不同的。也就是说,私有和不变特征是相对独立的。因此,这里使用两种类型的正交性损失。
2.4 光度损失
与Monodepth2一样,光度损失被用于自监督深度估计中:
三、实验结果
KITTI 和 Cityscapes 数据集广泛用于深度估计任务。但这些数据集中仅包含白天图像,无法满足全天深度估计的要求。因此,作者选择 Oxford RobotCar 数据集 作为训练和测试数据集。它是一个大型户外驾驶数据集,包含一年中不同时间拍摄的图像,包括白天和黑夜。作者选取了RobotCar数据集中的“2014-12-09-13-21-02”和“2014-12-16-18-44-24”分别用于白天和夜间训练。实验结果如下:
可以看出,在当时取得了SOTA效果。下面是消融实验的结果:
四、总结
这篇文章解决了之前单目深度估计只能应用于白天或夜间的局限,可以适应昼夜图像的估计任务。
文章提出了一个基于域分离的自监督单目深度估计网络,它将图像分成两个特征级别的互补子空间,包括私有域和不变域。利用不变性(纹理等)特征进行深度估计,可以缓解图像中可见度低、光照不均匀等干扰项的影响,获得有效的深度信息。同时,利用正交性、相似性和重建损失对私有特征和不变特征进行有效分离和约束,从而获得更好的深度估计结果。
参考文献
1.【论文解读】ADDS-DepthNet:基于域分离的全天图像自监督单目深度估计:https://aistudio.baidu.com/aistudio/projectdetail/5387023
2. 基于域分离的全天图像自监督单目深度估计:https://blog.csdn.net/SHS_JAVA/article/details/123040527