Single-Image Depth Perception in the Wild 论文笔记

1. 摘要

这篇论文研究的是在无约束条件下从自然场景中的图片中恢复深度。Chen 等人提出了一种新的数据集 “Depth in the Wild”(DIW),其中包含了 495K 张图片,每张图片标注了一对随机的采样点以及它们的相对深度关系。同时,作者还提出了一种新的估计相对深度的算法(摘要中作者写的是估计绝对深度 metric depth,但我在看完论文后感觉应该是相对深度,因为估计的深度并不是实际深度,只能反映相对关系,可能对于 metric depth 的理解不一样)。该算法获得了当前最佳的性能。通过实验,作者还发现将该算法与现有的 RGB-D 数据集以及新提出的 DIW 数据集结合,能显著提升对于自然场景图像深度的估计精度。
在这里插入图片描述


2. 介绍

从 RGB 图像中估计深度是计算机视觉中一个非常重要的问题,最近几年在这方面也有了长足的发展,特别是基于 RGB-D 数据集训练的方法。但是现有的 RGB-D 数据集是由深度传感器获取得到的,往往受限于拍摄场景的范围以及图像分辨率,并且在镜面以及透明的物体上测得的数据是易出错的。而在 Flickr 网站上又找不到 RGB-D 图片,研究者只能自己去拍摄图片,成本较高。目前已有的深度数据集中 NYU 包含大部分不存在人的室内图片,KITTI 是从车上拍摄的道路图片,Make3D 大多是 Stanford 校园中拍摄的室外场景图片。这些数据集都存在一定限制,不能很好的应用于自然场景图片中深度的估计。
在这里插入图片描述
作者认为仅从一张图片中估计出绝对深度是非常有难度的,而相对深度相较而言则易于判断,因此作者第一个贡献就是提出了 DIW 数据集,并利用该数据集来训练,后面详细描述获取数据集的方式。

作者的第二个贡献是提出了一种能够预测一张自然场景图片相对深度的算法。该算法包含两个主要因素:(1)能够预测图像中每个像素点深度的多尺度网络;(2)利用相对深度信息定义的损失函数。


3. 数据集构建

作者数据集中的图片都来源于 Flickr 网站,为了获取相对深度的标注,作者在 Amazon Mechanical Turk(AMT)平台上发布众包任务,给 crowd worker 一张图片以及两个高亮点并提出问题:“which point is closer, point 1, point 2, or hard to tell?”
在这里插入图片描述

How Many Pairs? 作者认为每张图片上询问一对采样点能最大限度利用采样点的相对深度信息。在一张图中询问多对采样点不如在多张图中每张图询问一对采样点。

Which Pairs? 对于采样点的选取作者尝试了三种方法。(1)最简单的方式是在二维图像平面随机采样两点,但这样会造成一个问题:如果算法最终学到两点中靠近下方的点相比上方的点离我们更近,那算法与人类判断结果有 85.8% 的一致性,这就导致了严重的 bias,因为算法并不是根据像素点的图像信息而是位置信息来判断的深度关系,因此作为 benchmark,有效性是难以保证的;
在这里插入图片描述
(2)在一条随机水平线上均匀的采样两个点,但这会导致另一种 bias,因为靠近图像中心的点往往离我们更近。(3)在第二种方式的基础上保证采样的两点关于中心对称,这种方式几乎消除了 bias,左点比右点近的比例为 50.3%。最终的数据集包含两部分,一部分是不受约束的采样点对,另一部分是采用第三种方式的采样点对,各占 50%,维持了自然场景统计以及实验效果之间的平衡。

下面给出几个标注的示例图。
在这里插入图片描述


4. 学习相对深度

网络设计: 作者使用的具体网络结构是一个之前在人体位姿估计中获得最好性能的网络,如下所示。
在这里插入图片描述
作者认为网络结构的选取并不关键,不同网络的设计也仅仅在于信息传递方式的不同,但是对于当前深度预测任务都是 OK 的。

损失函数: 设计损失函数的目标是使得输出的深度预测图能够满足真实的前后顺序关系。考虑一张训练图片 I I I K K K 个查询项 R = ( i k , j k , r k ) ,   k = 1 , . . . , K R={(i_k,j_k,r_k)},\ k=1,...,K R=(ik,jk,rk), k=1,...,K,其中 i k i_k ik 是第 k k k 次查询的第一个点, j k j_k jk 是第 k k k 次查询的第二个点, r k r_k rk 反映 i k i_k ik 对比 j k j_k jk 的真实相对深度关系:更近(+1),更远(-1),相等(0)。下面用 z z z 代表估计的深度图, z i k , z j k z_{ik}, z_{jk} zik,zjk 代表 i k , j k i_k, j_k ik,jk 的深度。损失函数定义如下。
L ( I , R , z ) = ∑ k = 1 K ψ k ( I , i k , j k , r , z ) L(I,R,z)=\sum^K_{k=1}\psi_k(I,i_k,j_k,r,z) L(I,R,z)=k=1Kψk(I,ik,jk,r,z)
其中 ψ k ( I , i k , j k , z ) \psi_k(I,i_k,j_k,z) ψk(I,ik,jk,z) 代表第 k k k 次查询的 ranking loss。。
ψ k ( I , i k , j k , z ) = { l o g ( 1 + e x p ( − z i k + z j k ) ) , r k = + 1 l o g ( 1 + e x p ( z i k + z j k ) ) , r k = − 1 ( z i k − z j k ) 2 , r k = 0 \psi_k(I,i_k,j_k,z)= \begin{cases} log(1+exp(-z_{ik}+z_{jk})), & r_k=+1 \\ log(1+exp(z_{ik}+z_{jk})), & r_k=-1 \\ (z_{ik}-z_{jk})^2, & r_k=0 \end{cases} ψk(I,ik,jk,z)=log(1+exp(zik+zjk)),log(1+exp(zik+zjk)),(zikzjk)2,rk=+1rk=1rk=0

上式基于像素点深度估计的 ranking loss 是作者首次提出。


5. 实验

具体相关实验就不详述了,感兴趣可以看看论文,我这里仅将论文中的部分图贴出来用于定性的分析。
在这里插入图片描述
在这里插入图片描述
从图中我们可以看到作者提出的方法在最终显示效果上确实优于之前方法。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值