论文阅读:How Do Neural Networks See Depth in Single Images?

news2024/11/6 7:53:07
  • 是由Technische Universiteit Delft(代尔夫特理工大学)发表于ICCV,2019。
  • 这篇文章的研究内容很有趣,没有关注如何提升深度网络的性能,而是关注单目深度估计的工作机理。

What they find?

  • 所有的网络都忽略了物体的实际大小,而关注他们的垂直位置。而使用这些垂直位置需要知道相机的位姿。
  • 然而我们发现网络只部分识别了相机俯仰角(pitch)和滚动角(roll)的变化。小的俯仰角变化都会干扰估计出的深度。
  • 使用垂直图像位置允许网络估计对任意障碍物的深度-甚至是没有出现在训练集中的物体。

Introduction

  • 当只有一张图像可用时,很难应用Epipolar Geometry, 算法需要依靠图像线索(Pictorial cues):纹理梯度和已知物体的面积。
  • 人类感知深度只要依靠的线索可以总结为:
    • 在图像中位置:遥远的物体趋向于位于地平线。
    • 遮挡:遮挡提供了深度的顺序,但不提供距离信息。
    • 纹理密度:距离较远的纹理表面在图像中看起来更细粒度。
    • 线性预测:物理世界中的直线、平行线似乎在图像中汇合。
    • 目标的面积:越远的目标越小。
    • 阴影和光照:当表面正常指向光源时,表面显得更亮。光通常被认为是来自于上面的光。阴影通常提供关于表面内深度变化的信息。
    • 焦点模糊:在焦平面前或后的物体会变模糊。
    • 空中视角(天空):非常远的物体(公里)的对比度较小,呈现出蓝色。
  • 论文认为只有在图像中的位置和目标的面积会影响KITTI单目深度估计。

Position vs. apparent size

在这里插入图片描述

  • 给定目标的真实世界尺寸和在图像中的尺寸h,距离可以计算为:
    在这里插入图片描述
  • 在Kitti数据集中每一种类的高度可以认为是固定的。所以网络有可能是用目标的表观大小估计其距离。
  • 同时,网络也可以利用物体与地面的接触点位置y估计深度。给定相机距离地面的高度Y,距离可以估计为:
  • 这个方法不需要目标的真实高度H,需要网络学习 ( Y , y h ) (Y,y_h) (Y,yh)

在这里插入图片描述

在这里插入图片描述

  • 从试验结果看,网络对于距离的判断是由目标的垂直位置决定了。
  • 而且当把图像进行垂直方向上的裁剪,估计出的深度也被明显改变了。所以网络并不是在找地平线而是在找垂直图像位置。而表观尺寸的变化有可能并不影响深度估计。
  • 所有四个网络都表现出相似的行为,这也表明这是一个一般的属性,并不强烈依赖于网络架构或训练机制(半监督,双目,视频监督)

Camera Pose: constant or estimated?

  • 对于使用垂直位置作为深度估计的线索,基本假设是知道相机的位姿。
  • 有两种方式确定相机位姿:1.寻找地平线或者消失点。2.或者假设其恒定。
  • 如果是第二种假设,则在一个相机上训练的深度网络就不能直接迁移到另一个相机。
  • 论文中的实验证明(图5,图6):所有的网络都能够检测到摄像机俯仰角的变化,但地平线的改变被轻视了。 总结一下就是改变相机俯仰角和地平线位置对深度估计有影响但是影响不大。
    在这里插入图片描述
    在这里插入图片描述

Camera roll

  • 所有网络都能够检测相机的翻滚角,但是被严重低估了。
    在这里插入图片描述

Obstacle recogition

  • 正确估计目标的深度,网络要做的是:1).对于训练集中出现的物体进行记忆(车辆)。2).寻找目标与地面的接触点。3).寻找目标的轮廓并填充区域。

Color and Texture

  • 目标的颜色并不强烈影响深度估计,但如果纹理被移除,性能会大减。梯度纹理对深度估计的影响更大。

在这里插入图片描述

Shape and contrast在这里插入图片描述

  • (图12)目标不需要一个相同的形状和纹理被网络识别。

Reference

[1] Dijk, T. V., & Croon, G. D. (2019). How do neural networks see depth in single images?. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 2183-2191).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1463415.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全球最强开源大模型一夜易主!谷歌Gemma 7B碾压Llama 2 13B,今夜重燃开源之战

一声炸雷深夜炸响,谷歌居然也开源LLM了?! 这次,重磅开源的Gemma有2B和7B两种规模,并且采用了与Gemini相同的研究和技术构建。 有了Gemini同源技术的加持,Gemma不仅在相同的规模下实现SOTA的性能。 而且更令…

嵌入式学习-qt-Day3

嵌入式学习-qt-Day3 一、思维导图 二、作业 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳…

Transformer 架构—Encoder-Decoder

文章目录 前言 一、Encoder 家族 1. BERT 2. DistilBERT 3. RoBERTa 4. XML 5. XML-RoBERTa 6. ALBERT 7. ELECTRA 8. DeBERTa 二、Decoder 家族 1. GPT 2. GPT-2 3. CTRL 4. GPT-3 5. GPT-Neo / GPT-J-6B 三、Encoder-Decoder 家族 1. T5 2. BART 3. M2M-100 4. BigBird 前言 …

SpringBoot---集成MybatisPlus

介绍 使用SpringBoot集成MybatisPlus框架。 第一步&#xff1a;添加MybatisPlus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4</version> </dependenc…

MIT6.S081学习——一、环境搭建、资料搜集

MIT6.S081学习——一、环境搭建、资料搜集 1、环境准备2、资料搜集2、环境搭建2.1 Linux环境准备2.2 环境搭建2.2.1 根据官网指导代码进行相关工具的安装2.2.2 下载并且编译QEMU 3、VSCode远程连接Ubuntu3.1 安装remote-ssh3.1.1 安装插件3.1.2 配置config文件 3.2 Ubuntu安装S…

springcloud:2.OpenFeign 详细讲解

OpenFeign 是一个基于 Netflix 的 Feign 库进行扩展的工具,它简化了开发人员在微服务架构中进行服务间通信的流程,使得编写和维护 RESTful API 客户端变得更加简单和高效。作为一种声明式的 HTTP 客户端,OpenFeign 提供了直观的注解驱动方式,使得开发人员可以轻松定义和调用…

Redis突现拒绝连接问题处理总结

一、问题回顾 项目突然报异常 [INFO] 2024-02-20 10:09:43.116 i.l.core.protocol.ConnectionWatchdog [171]: Reconnecting, last destination was 192.168.0.231:6379 [WARN] 2024-02-20 10:09:43.120 i.l.core.protocol.ConnectionWatchdog [151]: Cannot reconnect…

win32 汇编读文件

做了2个小程序&#xff0c;没有读成功&#xff1b;文件打开了&#xff1b; .386.model flat, stdcalloption casemap :noneinclude windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.lib include Comdlg32.inc includelib …

Pormise---如何解决javascript中回调的信任问题?【详解】

如果阅读有疑问的话&#xff0c;欢迎评论或私信&#xff01;&#xff01; 本人会很热心的阐述自己的想法&#xff01;谢谢&#xff01;&#xff01;&#xff01; 文章目录 回调中的信任问题回调给我们带来的烦恼&#xff1f;调用过早调用过晚调用的次数太少或太多调用回调时未能…

数据结构之链表经典算法QJ题目

目录 单链表经典算法题目1. 单链表相关经典算法OJ题&#xff1a;移除链表元素思路一&#xff1a;思路二&#xff1a; 2. 单链表相关经典算法QI题&#xff1a;链表的中间节点思路一思路二 3. 单链表相关经典算法QJ题&#xff1a;反转链表思路一思路二 4. 单链表相关经典算法QJ题…

pytest 框架自动化测试

随笔记录 目录 1. 安装 2. 安装pytest 相关插件 2.1 准备阶段 2.2 安装 2.3 验证安装成功 3. pytest测试用例的运行方式 3.1 主函数模式 3.1.1 主函数执行指定文件 3.1.2 主函数执行指定模块 3.1.3 主函数执行某个文件中的某个类、方法、函数 3.1.4 主函数执行生…

学习鸿蒙背后的价值?星河版开放如何学习?

现在是2024年&#xff0c;华为在1月18开展了鸿蒙千帆起仪式发布会。宣布了鸿蒙星河版&#xff0c;并对开发者开放申请&#xff0c;此次发布会主要是说明了&#xff0c;鸿蒙已经是全栈自研底座&#xff0c;鸿蒙星河版本的编程语言改为ArkTS/仓颉&#xff0c;内核改为鸿蒙原生内核…

操作系统虚拟内存(上)

一、虚拟内存简要 1.为什么需要虚拟内存? 如果第一个程序在 2000 的位置写入一个新的值&#xff0c;将会擦掉第二个程序存放在相同位置上的所有内容&#xff0c;所以同时运行两个程序是根本行不通的&#xff0c;这两个程序会立刻崩溃&#xff0c;所以想要在这种情况下&#…

SQL 练习题目(入门级)

今天发现了一个练习SQL的网站--牛客网。里面题目挺多的&#xff0c;按照入门、简单、中等、困难进行了分类&#xff0c;可以直接在线输入SQL语句验证是否正确&#xff0c;并且提供了测试表的创建语句&#xff0c;也可以方便自己拓展练习&#xff0c;感觉还是很不错的一个网站&a…

OpenAI 的 GPTs 提示词泄露攻击与防护实战:防御卷(一)

前面的OpenAI DevDay活动上&#xff0c;GPTs技术的亮相引起了广泛关注。随着GPTs的创建权限开放给Plus用户&#xff0c;社区里迅速涌现了各种有趣的GPT应用&#xff0c;这些都是利用了Prompt提示词的灵活性。这不仅展示了技术的创新潜力&#xff0c;也让人们开始思考如何获取他…

Java 面向对象进阶 15 接口(黑马)

案例&#xff1a; 代码&#xff1a; Animal类代码&#xff1a; public abstract class Animal {private String name;private int age;public Animal() {}public Animal(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public…

揭秘H5与小程序的测试奥秘!

最近接触了较多关于H5页面的测试&#xff0c;H5页面的测试除了业务逻辑功能测试外&#xff0c;其他部分的测试方法基本是可以通用的&#xff0c;在此对H5页面和小程序的一些通用测试方法进行总结分享给大家。 H5优势 H5可以跨平台&#xff0c;开发成本相对较低&#xff1b; H…

洛谷p1002过河卒

[NOIP2002 普及组] 过河卒 题目描述 棋盘上 A A A 点有一个过河卒&#xff0c;需要走到目标 B B B 点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上 C C C 点有一个对方的马&#xff0c;该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为…

having子句

目录 having子句 having和where的区别 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 现在要求查询出每个职位的名称&#xff0c;职位的平均工资&#xff0c;但是要求显示平均工资高于 200 的职位 按照职位先进行分组&#xff0c;同…

2000-2022年各省城乡收入差距泰尔指数数据(原始数据+计算过程+结果)

2000-2022年各省城乡收入差距泰尔指数数据&#xff08;原始数据计算过程结果&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;地区、居民可支配收入&#xff08;元&#xff09;、农村家庭可支配&#xff08;元&#xff09;、城市家庭可支配&#xff08;元&a…