论文地址:https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1603.04992.pdf
摘要
使用一个类似于autocoder网络训练,训练时考虑一对图像,原始图像和目标图像间的微小相机运动。训练encoder卷积网络来预测原始图像的深度图,然后我们使用估计深度和已知的内部变化对目标图像进行变换,对原始图像进行重建,重建的亮度损失是encoder的重建损失。训练数据不需要人为标注以及不用对相机标定
1 介绍
像Imagenet [6]这样的大型人为标注数据集成功解决了大量视觉问题,最初对图像分类任务进行训练,经过微调来解决其他任务,现在,监督训练的CNN用于对象检测[14],每像素图像分类[28],单张图对象的深度和法线估计[22],人体姿势估计[9]等。
本文专门对单张图像进行深度估计,CNN由于具有能够捕获场景深度和相关图像纹理间、图像中场景语义和局部全局内容间的关系的能力。然而这些系统不能很好应用到其他领域,例如【24】训练两个不同网络,一个用于室内(使用NYUv2))、一个用于街道场景(使用KITTI),不能使用其中一个训练的权重应用到另一个。
替代方法是使用图形渲染生成大型的合成或半合成数据集,此类数据集很难适应现实世界图像的变化性。另一种方法使用双目立体图像,使用标准几何方法计算每对图像的视差图(disparity),但是,这样可能会学习估计深度的系统误差,从而“引入”立体算法的计算错误。 诸如传感器眩光,运动模糊,照明变化,阴影等真实存在的误差,并很少由标准立体算法充分处理。
2 方法
训练时,利用了图像对间一致的相机运动。这种数据比标定过的深度图和标注过的图像容易获得,该方法同样适用于在静态场景中从移动SLAM系统获取的数据 使用一个CNN来代替从图像到深度图的非线性转化。训练的损失是源图与变换后图像的光度差,并且是可微的(加速反向传播)
此方法可以使用卷积自动编码器解释。 标准自动编码器的任务是使用一系列非线性操作将输入编码为可捕获足够核心信息的压缩代码,以便解码器以最小的重建误差来重建输入。 本例中,根据预测的深度图和相机的相对位置,用标准的几何图像变换替换了解码器部分。 两点好处:
- 解码器不需要学习;
- 重建损失促进编码器获得正确深度图
图1:一个基于自编码器的双目相机设置:编码器(Part1)具有堆叠的卷积层和池化层(见图2),并且输出左图(I1) 的深度图,解码器(Part2)通过沿着scan-line移动右图(I2)的像素来合成一个反向变换图像(Iw)将编码器的输出转化为视差。通过一个loss用重建的Iw与编码器输入(Part3)进行匹配。为了端到端训练,使用一个视差的平滑度先验来最小化重建损失。
图2:用CNN的Coarse-to-fine立体图像和一个示例:我们采用上采样架构来模拟估计立体图像Coarse-to-fine。 上采样使用双线性插值内核初始化,并且通过将bias和1×1卷积滤波器置为零来初始化相应的池化层。 该图显示了来自CNN(L3)前几层的特征与更精细的分辨率损失函数相结合如何从我们在22×76的较粗预测的双线性上采样初始估计中生成了更好的深度图(44×172)
2.1 自编码器损失
每个训练样本,是矫正过得立体对,立体相机焦距为f,基线为B,假设,左图中像素x的估计深度是,沿着scan-line的像素运动为就是。因此,使用右图以及变换来合成。
我们对和的标准颜色一致性(photometric)最小化处理
光度损失函数在场景均匀区域中是无信息性的。 因此,多个视差会产生好的变换,并且需要先求出视差才能获得唯一的深度图。 我们视差不连续处使用L2正则化作为先验来处理孔洞问题:
正则化函数在估计运动时会过于平滑。由于我们目的是证明所自动编码器的端到端训练是可行的,并且有助于深度预测,因此选择在所有训练实例中最小化最简单的损失总和:γ为正则化使估计深度图平滑的强度
公式3的损失函数与Horn、Schunck的对每帧图像计算的光流cost[17]相似,我们的视差图参数化为一个非线性函数和用来估计图像对间运动的未知权重CNN。此参数共享可大型数据集的深度一致性。自动编码器的重建损失可以看作是[12,11]之类的多帧光流方法的概括。 区别在于,我们的不是在短视频序列中使用预定义的线性子空间对估计运动中的相关性进行建模[11],而是学习(并建模)整个数据集中非线性中一致的有效流。
3. 带有跳跃结构的Coarse-to-fine训练
为了计算cost(公式1)反向传播的梯度,需要使用Taylor 展开对当前估计的视差图进行线性变换:
其中代表当前视差在第n次迭代计算的变换图像的水平梯度。这一线性变换只在值小的情况下有效,从而限制图像中估计的视差的范围,为了保证大运动(小深度)估计的准确性,coarse-to-fine方法以及迭代变换在立体图像以及光流文献中使用,加快了梯度下降的连续优化。
如图2所示,给定一个预测M×N视差的网络,使用双线性上采样滤波器来初始化更大尺寸的视差(2M×2N深度图)并保持其他网络参数固定。 在CNN的先前层中捕获图像详细信息,将这些信息融合起来有助于改善粗糙的CNN预测。 对滤波器和偏置使用1×1卷积,并且都初始化为零,然后将卷积的输出按比例与大尺度深度融合,以进行细化。
4 网络结构
图3的编码器与Alexnet结构一直到C5层都相似,用2048个5*5大小的全卷积层替代了Alexnet的全连接层,减少了参数,并可以接受变化大小的输入。更重要的是,它保留了图像中的空间信息,并允许在图像L7输出之后的层中以阶段的方式对预测进行上采样,这是基于立体视觉的自动编码器的要求。
图3:网络体系结构:块C(红色),P(黄色),L(深蓝色),F(绿色),D(蓝色)分别对应于卷积,池化,局部响应归一化,FCN和上采样层。 FCN块F1和F2是对(L7,L8)层的预测进行上采样,并将其分别与池化层P3和P2的输入
今天的文章Unsupervised CNN for Single View Depth Estimation: Geometry to the Rescue(Grag 2016)[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89550.html