论文链接:https://arxiv.org/abs/2302.01334
代码链接:https://github.com/ucaszyp/STEPS
01. 简介
近年来,基于图像的自监督深度估计方法不仅所需的硬件成本低,而且不需要真值的标注,因此受到了广泛的关注。该类方法本质上依赖于相邻帧光度一致性的假设,通过合成图和目标图的光度误差进行模型的训练。
然而在夜间环境下,图像中包含了大量的欠曝和过曝区域,它们在相邻帧之间有较明显的差异,同时掩盖了对应区域的有效信息,如图1(a)的第一行所示。我们在nuScenes数据集的测试集上评测了基线方法RNW预测的深度值和真值的均方根误差值(RMSE),同时我们人工挑选了其中100多个过曝和欠曝的场景,做了如图1(b)所示的统计结果。可以看出,在这两种特殊场景下,RNW的表现要低于平均水平,可视化效果如图1(a)的第二行所示。
图1 夜间深度估计的挑战。(a)第一行,nuScenes数据集中过曝和欠曝的场景;第二行,RNW预测的深度图;第三行,STEPS预测的深度图。(b)过曝(Overexposed),欠曝(Underexposed)和测试集平均(Avg)的RMSE。
针对欠曝的区域,前人提出了先进行图像增强再做深度估计的方法。虽然他们提出了各种有监督的夜间图像增强方法,但在具有挑战性的驾驶场景中的泛化性能并不令人满意,而且需要一定量的人工标注。针对过曝区域对深度估计的影响的研究还较少。为此,我们提出了STEPS,第一个自监督联合学习夜间图像增强和深度估计的方法,同时不使用任何ground truth。
此外,针对欠曝和过曝区域,我们提出了不确定像素掩膜策略。它基于图像增强的中间产物来过滤影响深度估计的图像区域,从而将两个自监督任务紧密地结合在一起。对比图1(a)的第二行和第三行可以明显发现,受益于我们的框架和策略,STEPS在欠曝和过曝区域的表现要优于基线方法。最后,我们还提出了CARLA-EPE,一个基于CARLA仿真器的增强到现实风格的夜间数据集。它具有密集的深度图的标注,且更接近现实的图像风格,为深度估计任务带来更多的可能性。
方法
模型架构
如前所述,夜间图像增强可以提高输入图像的质量,以帮助进行深度估计。但是有监督的夜间图像增强在本质上受到数据集自身分布的限制。因此,我们提出了一个以自监督的方式联合训练深度估计和图像增强的框架,如图2所示。它包含自监督图像增强模块(SIE),夜间自监督深度估计模块,由目标帧(\( I_t \))经过SIE生成的光照图(\( x_t \))将两个模块联系在一起。
自监督图像增强模块
根据Retinex理论,给定一个低光图像 ,可以通过
\( I^{\prime}=I \oslash x, \qquad (1) \)
得到增强图像,其中 是光照图,图像增强最重要的部分, 是反射图,也被认为是得到的增强图像。一个不准确的照明估计可能会导致过度增强的结果。为了提高性能稳定性和减少计算负担,我们采用SCI的自校准模块结构进行阶段级照明估计。
如图2底部所示,给定输入的图像,如 I_t,增强过程可以表示为:
\( I_t^{n+1} = \mathscr{C}(\mathscr{E}(I_t^{n})) {,} \qquad (2) \)
其中n(0<n<3)为级数, 和 分别表示光照估计模块和校准模块。 对于第n级, 和 是通过以下步骤实现的:
\( \mathscr{E}(I_t^{n}) = \left\{ \begin{array}{lr} x_t^{n} = \Phi_E (I_t^{n}) & \\ I_{t}^{'n} = I_{t}^{n} \oslash x^{n}_{t},\\ \end{array} \right. \qquad (3) \)
\( \mathscr{C}(I_t^{'n}) = \left\{ \begin{array}{lr} {\rm {res}}^{n}_{t} = {\Phi}_C (I'^{n}_t{}) & \\ I_t^{n+1} = I_t^{n} \oplus {\rm {res}}_t^{n}, \\ \end{array} \right. \qquad (4) \)
其中,\( \Phi_E \) 和\( \Phi_C \) 是可训练网络,分别用于估计光照图\( x_n^t \) 和生成校准残差图 \( res^n_t \)。校正模块重新生成伪夜间图像,使SIE可以分几个级应用,经验校正带来更快的收敛速度和更好的增强效果。
训练时,我们使用与SCI相同的损失函数,即保真度损失和平滑损失。保真度损失的原理是对于夜间图像,光照分量在很大程度上与输入图像相似损失,它可以表示为:
\( \mathcal{L}_f = \frac{1}{|I_t|} \sum_{I_t} \sum_{n} \vert \vert x_t^{n} - I_t^{n} \vert \vert_2 {,} \qquad (5) \)
平滑度损失是一种一致性正则化损失,可以表示为:
\( \mathcal{L}_{es} = \frac{1}{|I_t|} \sum_{I_t} \sum_{n} \sum_{i} {\sum_{j \in {W}(i)} {\kappa_{i,j}\vert x_t^{n}(i) - x_t^{n}(j) \vert}} {,} \qquad (6) \)
其中\( \kappa_{i,j} \) 高斯核的权重, 是以像素 i 为中心的 大小的窗口, 表示光照图 x 在像素 i 处的值。
夜间自监督深度估计模块
自监督深度估计首先由Sfm-learner提出,它的关键思想是从给定源帧()根据几何约束重建目标帧()。 具体来说,给定已知的摄像机内参矩阵 、可训练网络 \( \Phi_{d}: \mathbb{R}^{H\times W\times 3} \rightarrow\mathbb{R}^{H\times W} \)预测 的深度图 和可训练网络 \( \Phi_{p}: \mathbb{R}^{H\times W\times 6} \rightarrow\mathbb{R}^{4\times4} \) 预测的 与 之间的相对位姿 \( P_{t \to s} \in\mathbb{R}^{4\times4} \) , 中的每一个点 都可以投影到 中的 上,投影公式表示为:
\( p_s \sim KP_{t \to s}D_t(p_t)K^{-1}p_t {,} \qquad (7) \)
其中, 表示齐次等价。此时,我们可以利用下面的公式从 中重建出目标帧,重建的目标帧记作 \( \hat{I_t} \)
\( \hat{I}_{t}=I_{s}\left\langle\text{proj}\left(D_{t}, P_{t \rightarrow s}, K\right)\right\rangle, \qquad (8) \)
其中, 是STN提出的可微双线性插值, 表示公式 (7)。
自监督训练的损失函数是 与重建帧 l 之间的光度误差。我们采用MonoDepth2的方法,将L1损失和SSIM损失函数合并为光度损失函数 ,其定义为:
\( \mathcal{L}_p(I_t, \hat I_t) =\alpha \frac{(1-\rm SSIM(I_t,\, \hat I_t))}{2}+(1-\alpha) \vert I_t-,\hat I_t \vert_1 {,} \qquad (9) \)
其中 是超参数,通常设置为0.85。另外,我们遵循MonoDepth2,通过加强预测深度图的平滑性来避免深度歧义,即
\( \mathcal{L}_{ds}(D_t, I_t)= |\partial_x D_t|e^{-|\partial_x I_t|}+ |\partial_y D_t|e^{-|\partial_y I_t|} {.} \qquad (10) \)
由于夜间图像质量较差,公式 (9) 的梯度带有从噪声。为了缓解这种情况,我们在RNW的基础上引入了一个预训练的白天深度估计模型 \( \Phi^D_{d} \) ,并通过一种对抗的方式指导夜间模型的训练。构造夜间深度估计网络 \( \Phi^N_{d} \) 作为生成器,通过训练使其预测值 与 \( \Phi^D_{d} \) 的输出值 不可区分。 基于Patch-GAN的鉴别器 是一个可训练的网络,它来区分 和 。\( \Phi^N_{d} \) 和 是通过最小化对抗式损失函数来训练的,该函数表示为
\( \mathcal{L}_{\rm{Dis}} = \frac{1}{2|I_d|}\sum_{D_d}(\Phi_A(D_d)-1)^{2} + \frac{1}{2|I_t|}\sum_{D_t}(\Phi_A(D_t))^{2} {,} \qquad (11) \)
\( \mathcal{L}_{\rm{Gen}} = \frac{1}{2|I_t|}\sum_{D_t}(\Phi_A(D_t)-1)^{2} {,} \qquad (12) \)
联合训练
两个模块联合训练的过程如图2所示,SIE的第一级的输出的增强结果 和 作为深度估计模块的输入。公式 (8),, 和 (11) 中,目标帧 和重建帧 分别被增强的目标帧和增强源帧 重建后图像 \( \hat{I'_t} \) 所取代。
基于统计的光照不确定性mask
如文章开头所描述,夜间图像通常包含欠曝和过曝的区域,这些区域会丢失重要的细节信息,导致估计的深度值不准确。而且,过曝区域往往与汽车的运动(如车灯)相关联,这也违反了自监督深度估计中的光照一致性假设。因此,我们需要设计某种机制来滤除这些区域去训练的影响。经研究发现,SIE 可以预测一个光照图 x_t,以确定每个像素的颜色的增强比。如图3所示,欠曝区域的比值较大,过曝区域的比值较小。如果我们用这个来衡量每个像素在光度损失中的重要性,则可以最大可能减小这两个区域对训练的影响。
注意,我们给不确定区域每个像素点一个置信度,希望它们能参与到训练中,而非直接强硬地全部遮盖掉。
具体来说,我们定义了一个不确定映射 \( M_{uc} \in \mathbb{R}^{H\times W} \),它在欠曝和过曝区域中给出了低置信度,在合理区域中给出了高置信度。 表示为:
\( M_{uc} = \left\{ \begin{array}{lr} {\frac{1}{1 + p^2(x - a)^2}} , & x_{min} \leq x \le a \\ 1, & a \leq x \leq b \\ {\frac{1}{1 + q^2(x - a)^2}} , & b \le x \leq x_{max} \\ \end{array} \right. \qquad (13) \)
其中 和 b 是基于统计的光照值处于合理区域的上下界, 和 q 是衰减系数。如图3所示,直观地看,这个函数看起来像一个桥,它利用光照图生成不确定mask。
这个建模源于我们对两个夜间数据集光度图的统计,它可以遮掩过曝和欠曝区域的像素,又不会过多遮掩过对训练有帮助的像素点。
图3 的原理。 (a)光照图 。 (b) 函数,该函数可以柔和地屏蔽过曝和弱曝区域。 (C) 不确定mask的可视化
实验
数据集
我们在nuScence数据集和RobotCar数据集上和其他方法做了比较。此外,针对真实数据集成本高、深度图稀疏以及仿真器数据域与现实数据域差异大的痛点,我们提出了增强到现实风格的仿真数据集CARLA-EPE。
nuScenes-Night
nuScenes是一个大规模的自动驾驶数据集。它包含多种天气环境下复杂的道路场景,十分具有挑战性。
RobotCar-Night
RobotCar数据来源于RobotCar团队一年的时间内在各种天气下频繁地穿越牛津市中心的同一条路线时的驾驶记录,包括车辆上的6个摄像头数据以及激光雷达、GPS和INS数据。
CARLA-EPE
上述两个数据集的真实深度均来自激光雷达,然而,激光雷达数据的采集是昂贵的,并且只能提供稀疏的深度图。为此,我们将目光放在了仿真数据上。RGB图像和相应的密集深度图可以很容易地在仿真器(例如CARLA)中收集,但仿真图像和真实图像之间的分布差异极大地影响了训练模型在真实场景中的应用。因此,我们提出了一个基于CARLA和增强图片真实感的网络EPE的夜间深度估计数据集CARLA-EPE,它可以提供密集的深度真值和迁移到真实风格的图像,如图4所示。
图4 EPE增强后的图像(CRALA-EPE)与增强前(CRALA)的对比。
实验结果
如表1所示,我们在nuScenes数据集和RobotCar数据集上均达到了SOTA,在准确率和误差上均有显著的提升。在更具挑战性的nuScenes数据集上,我们的a1相较于baseline提升了16.2%,abs_rel相较于baseline降低了10.4%。
表1 nuScenes数据集和Oxford数据集的定量结果。
可视化结果
如图5所示,蓝色方框展示了基线方法受到过曝的影响,预测了错误的深度。 红色方框还表明基线方法在欠曝区域错误地估计物体深度。由于我们的方法提出了新的框架和自适应掩膜的策略,因此可以使模型在这两种区域中预测出更合理的深度。
图5 可视化结果。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢