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

2023-12-08 08:30

本文主要是介绍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. 实验

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

这篇关于Single-Image Depth Perception in the Wild 论文笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/469205

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓