当前位置: 代码迷 >> 综合 >> 【论文阅读】Joint Reflection Removal and Depth Estimation From a Single Image
  详细解决方案

【论文阅读】Joint Reflection Removal and Depth Estimation From a Single Image

热度:67   发布时间:2024-03-06 19:16:29.0

论文:Joint Reflection Removal and Depth Estimation From a Single Image
作者:Yakun Chang
期刊:IEEE TRANSACTIONS ON CYBERNETICS
年份:2020年

目录

  • 介绍
    • 主要贡献
    • 反射特性(具体描述见论文)
    • 深度估计和图像恢复(具体描述见论文)
  • 方法
    • A. Network Architecture
    • B. Loss Function
    • C. Training Details
  • 实验(略)
  • 结果

本文提出对单个图像进行联合反射去除和深度估计,使用由四个模块组成的协作神经网络共同执行反射去除(恢复t)和深度估计:1) encoder for feature extraction; 2)reflection removal subnetwork(RRN); 3) depth estimation subnetwork (DEN); 4) depth refinement guided by the transmission layer。 通过将DEN的 intermediate features与RRN串联在一起,实现了反射消除和深度估计之间的协作。 由于恢复的 t 层包含玻璃后面物??体的准确边缘,因此本文通过引导图像??滤波在其指导下完善估计深度。 实验结果表明,所提出的方法即使对于具有主要反射的图像也能实现反射去除和深度估计。

介绍

拍摄的图像 I 由两层叠加:玻璃后面的场景生成透射层 T ,反射的场景生成反射层 R 。 在过去的几十年中,大多数研究都基于以下假设:I是T和R的线性组合:I = T +R。而且从多个图像中去除反射不切实际,因为玻璃后面的场景通常包含移动的物体。 因此从单个图像去除反射更为合适。

本文提出了一个多模型网络,该网络使用深度信息进行反射去除。原因是当相机和玻璃之间的距离较远时,深度信息不受可见反射的影响。 因此,无反射深度的结构能够引导层分离。 但是,当将一块玻璃放在红外(IR)摄像机(例如Kinect)附近时,深度信息会大大降低。 因为 Kinect 需要收集反射到玻璃后面物??体上的IR信号。 然而,玻璃还会反射红外信号,这使得 Kinect 难以收集有关深度的正确信息。 图1显示了 Kinect 2.0 拍摄的四个图像。 如图1(c)所示,如果在摄像头前面有一个玻璃平面,由于玻璃引起的反射,Kinect无法获得深度图。 本文尝试从相机捕获的单个图像中实现联合反射去除和深度估计。
在这里插入图片描述

图2显示了Alhashim和Wonka 模型估计的两组错误结果。在图2(e)的边界框中,由于可见 R 的影响,深度被错误预测。

在这里插入图片描述

去除反射后,获得准确的深度是非常可行的,因此,共同的利益促进了反射去除和深度估计之间的联合工作。 所提出的模型基于 autoencoder–autodecoder (AE),其中编码器学习高维特征,反射去除子网(RRN)和深度估计子网(DEN)的两个解码器分别生成清晰的彩色图像和深度图。 本文通过与 RRN 共享 DEN 部分功能来实现协作,原因是 DEN 和 RRN 的功能应该不受反射的影响。 因为RRN的特性包含了许多在深度图中不可避免被消除的纹理,,因此它们不与DEN串联。

主要贡献

1)建立了一个协作神经网络,同时消除反射并估计单个图像的深度。 这与仅进行 t 恢复或深度估计的常规方法是不同的。

2)通过将 DEN 的中间特征与 RRN 进行级联来实现反射消除和深度估计之间的协作。

3)在损失函数中结合了均方误差(MSE)和结构相似性(SSIM),以生成清晰的深度边缘。

反射特性(具体描述见论文)

  1. Ghosting Model

  2. Blurry Artifacts and Relative Intensity:相机通常聚焦在玻璃后面的场景上,这使 t 层的边界更加清晰。 此外,人们可以扩大相机的光圈并模糊反射。一些研究集中在这种模糊的玻璃图像上。 另一方面, 反射光对人眼或相机的实际可见性取决于从背景场景传输的光的相对强度。 因此,仅通过线性组合来合成玻璃图像是不合理的。

深度估计和图像恢复(具体描述见论文)

图像中的深度估计方法大致分为两类:
1)仅用于深度估计的单任务方法;
2)与图像恢复有关的多任务方法。 深度估计的经典方法通常对场景几何有很强的假设。

由于光线不足,有雾的天气和水下环境,环境条件并不总是理想的。 深度信息还为其他computer vision提供了帮助,例如 semantic segmentation ,defogging , and shake removal 。 对于那些低质量的图像,需要更强大的方法(方法略)。

方法

A. Network Architecture

传输深度DT [图1(d)]包含传输层T的准确结构信息。因此,DT提供了去除反射的线索。 但是,当摄像机前面有玻璃平面时,我们无法获得精确的DT [图1(c)]。 对于深度估计,事先进行反射去除是合理的。

本文认为I是T和R的组合:
在这里插入图片描述

?是一种非线性组合。 但是,当构建一个将双层分开的网络时,将其简化为输出透射层O和获得的反射层R的线性组合:
在这里插入图片描述

小三角:O 和ground truth T 之间的距离。应该距离最小化,以使输出更接近目标。 图4是本文提出的网络的总体架构。

在这里插入图片描述

给定输入图像I,希望得到恢复图像O,从而获得反射层R。 同时获得另一个子网的DT。

对于网络设计,由于多尺度结构对于反射去除非常有效,因此本文选择编码器-解码器结构, 它具有选择适合于计算机视觉问题的不变特征(例如反射去除和深度估计)的固有能力。

编码器(E):通过一系列卷积和池化层学习高维特征,直到出现bottleneck(瓶颈)为止,这表明逆过程开始出现。

解码器(D):在bottleneck(瓶颈)处连接到E,并将高维特征反向映射到自然图像。

本文使用AE架构来构建网络。通过设计 two-stream collaborative networks 来实现:
1)深度(DT)估计子网(DEN)
2)RRN
这两个子网是共享同一编码器的不同解码器,并有助于进行高维特征表示。 使用VGG-19的前四个块作为编码器。 DEN使用多尺度特征估计DT,并提供反射去除的线索。DEN与RRN共享一些功能(图4中RRN和DEN之间的蓝色虚线箭头)。

DEN:
1) 越低的层上包含越多的结构信息,因此使用了 skip connections。 图4的下部示出了由四个块组成的DEN。 对于每个块,首先使用 scale 2 的双线性上采样层。下一个上采样层通过7×7卷积层连接,通道减少一半。 然后,将此卷积层的输出与编码器的相应功能连接起来(图4中的绿色虚线箭头)。
2)使用1×1卷积层将编码器的特征尺寸减半。 串联后,使用5×5卷积层并将通道减少一半。
3)所有卷积层都与 instance normalization 连接,以实现更好的收敛性。 除最后一层,DEN中的归一化层由Leaky Relu以参数0.1激活, 最后,通过tanh功能激活DEN。

RRN:
1)尽管学习残留反射图更容易优化,但结果却受到反射层边缘产生的伪影的影响。 因此,RRN直接恢复传输层,而不是残留反射图。 RRN还包括四个块,并且在每个块中,特征的尺度通过双双线性上采样进行放大。
2)除了将DEN与RRN concatenating features 外,还向RRN共享一些功能编码器。 因为反射去除比深度估计更具挑战性,因此反射去除需要RRN的结构更深,更密集( 如表I)。
3)RNN还包含一些 residual connections。 residual and dense connections在避免梯度消失中都起着至关重要的作用。 除最后一层外,RRN中的所有其他卷积层都通过批量归一化连接,并由Leaky Relu以0.05的参数激活。 最终的卷积层由tanh函数激活。

tanh的输出范围是[-1,1]。
将ground truth 的动态范围归一化为[0,1]。
当训练网络时,在tanh之后乘以0.5并给出0.5的shift 是不合适的,因为这会导致在低水平和高水平上消失梯度。 在训练过程中,将范围保持为[-1,1],在测试过程中执行 clip operation以调整动态范围。

Depth Refinement: Depth Refinement(翻译的是深度细化)与损失功能无关,它由恢复的传输层O引导。DT的平滑区域中存在一些噪音峰值。 尽管这些像素的数量很少,但它们会引起深度失真。 因此要通过使用O作为引导平滑它们并保留深度边缘。 本文使用引导式图像滤波(在许多 refinement 任务中性能不错),如下所示:

在这里插入图片描述

rDT:精确的深度图,
G:大小为5的引导滤波器

在这里插入图片描述
表1:与 DenseNet 相似,Relu2_1的要素三次连接到后续层。

B. Loss Function

用于 joint reflection removal and depth estimation 大致分为三类:1)逐像素损失,例如MSE; 2)感知损失; 3)结构损失,例如SSIM 。
因为特征损失是通过将图像通过预先训练的网络传递来计算,比较耗时。 逐像素损失和结构损失具有较低的计算成本。 因此,本文采用MSE和SSIM作为损失函数。

MSE损失的计算公式如下:
在这里插入图片描述

SSIM由三部分组成:1)亮度l; 2)对比c; 3)结构s

在这里插入图片描述
MSE损失没有考虑结构信息,通常会产生模糊的预测。 SSIM尽管有利于结构的保存,但它可能会导致亮度变化和颜色偏移,从而使最终结果降低。 因此,MSE和SSIM的组合能够补充其优势,结构损失定义如下:
在这里插入图片描述
DEN中的损失函数
在这里插入图片描述
D ? T:地面真实深度图。

RRN中的损失函数
在这里插入图片描述

总损失
在这里插入图片描述
其中α,β,γ和θ是权衡参数,值取决于MSE和SSIM项的 scale ,通常,MSE大小约为SSIM的scalede 10倍,本文分别将其设置为10、1、10和1。

C. Training Details

batch size is 8.
1)使用L DT损失函数训练DEN,初始学习率为10?4。
2) 在25个epochs之后,使用L O损失函数训练RRN,初始学习率为10-2,训练 epochs 也为25。
3)用(15)训练所有参数,初始学习率为10?5,epochs 为15。

在这三个步骤中,学习率呈指数衰减。 本文中使用的优化器是Adam,使用两个NVIDIA 1080i graphics cards 训练。

实验(略)

结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  相关解决方案