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

  • 是由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).

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java调摄像头和人脸比对

我需要做一个功能,就是网站页面调用摄像头截图。现在由于要用java,就得研究用java怎么调用摄像头。顺带玩了一下人脸比对,资料有点少。 效果 采用javacv实现,先加Maven引用,后面把下载的包再独立引用不用Maven了 …

UI自动化测试篇 :webdriver+ant+jenkins自动化测试实践

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

OpenCV笔记2:鼠标事件实现绘制直线、矩阵、曲线

OpenCV 鼠标事件 创建窗口设置窗口大小鼠标事件监听 判断事件更新起始点和终点绘制线显示图片 打开背景图 """ 鼠标事件 down up move """ import cv2 import numpy as npWINNAME DRAWBOARD st_point (-1, -1) end_point (-1, -1)def draw…

【Unity】管道流动模拟Shader

【Unity】管道流动模拟Shader 抽象模拟管道介质流动的效果,使用顶点片元着色器。可以调整管线光泽,颜色,流动方向,透明度,流动体粗细,流动速度和横断面。 实现效果 Demo效果 Demo下载地址 管线光泽调整 …

proteus8.15图文安装教程

proteus8.15版本可以用STM32系列单片机来进行仿真设计,比7.8版本方便多了,有需要的朋友们可以在公众号后台回复 proteus8.15 获取软件包。 1、下载好软件包,解压如下,右键proteus8.15.sp1以管理员身份运行。 2、第一次安装&#x…

【蓝桥杯单片机入门记录】独立按键

目录 一、键盘、微动开关概述 二、按键工作原理 (1)按键构成 (2)(蓝桥杯开发板)独立按键电路图(非实际,参考理解) (3)独立按键工作原理 三、…

【J1939】一、概述,协议基础

文章目录 1. 背景2. 要点3. J1939帧细节3.1 协议数据单元(Protocol Data Unit,PDU)3.2 参数组编号(PGN)3.3 可疑参数编号(Suspect Parameter Number,SPN)参考1. 背景 J1939是一种用于商用车辆的通信协议,它定义了一套车辆电子控制单元之间进行数据通信的规范。J1939协议…

OpenAI 发布文生视频模型 Sora,普通人应该怎么做才能利益最大化?

原文链接: OpenAI 发布文生视频模型 Sora,普通人应该怎么做才能利益最大化? 自从 2022 年 11 月 30 日 ChatGPT 发布之后,每次 OpenAI 再发布新功能都跟过年一样,那叫一个热闹。 包括 GPT 4.0,GPT Store&…

滚雪球学Java(65):深入理解Java中的Map接口:实现原理剖析

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

2024年单服务器部署Mongodb三节点副本集自动化部署脚本

该脚本是为了方便自己学习和工作中部署服务器从而节省时间进行编写,目前能正常部署,创建集群,管理员用户,以及连接都没问题,但是没有开启验证,后续找时间补充。 完整的教程请参考一下我写的技术文章。 20…

十六进制数

1.做一个收电费程序,要求输入使用的电的度数(整数)以及电费单价(实数),输出总的用电费用。 2.提示并输入一个小写字母数据,输出其对应的ASCII值,以及该小写字母对应的大写字母。 3.提…

软件测试工程师linux学习之系统层面相关命令总结

1 linux系统重启和关机的命令 重启命令:reboot 关机命令:shutdown 这两个命令一般很少用到,我们了解即可。 2 查看日志信息命令 什么是日志,日志就是一个一个普通的文本文件,文件里面记录的是软件运行过程中的信息…

市场复盘总结 20240221

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 33% 最常用…

搜维尔科技:用于运动科学的 OptiTrack,范围标记、步态捕捉!

OptiTrack 系统提供世界领先的测量精度和简单易用的工作流程,为研究人员和生物力学师的研究提供理想的 3D 跟踪数据。 对所有主要数字测力台、EMG 和模拟设备的本机即插即用支持为研究人员提供了在 Visual3D、MotionMonitor、MATLAB 和其他第三方生物力学软件包中进…

MySQL数据库基础(十二):子查询(三步走)

文章目录 子查询(三步走) 一、子查询(嵌套查询)的介绍 二、子查询的使用 三、总结 子查询(三步走) 一、子查询(嵌套查询)的介绍 在一个 select 语句中,嵌入了另外一个 select …

如何使用Coded UI Test对Webpage进行自动化测试

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

2024 年了,如何 0 基础开始学习 Vue ?

最近 5 个月,我都在忙着构建我的第一开源项目 HexoPress,这个项目是使用 Electron Vue 3 TypeScript 等技术实现的,一方面,我真的很需要一款合自己心意的博客编辑器,另一方面,我也是真心想学习 Electron …

App Inventor 2 Activity启动器技巧:如何查看并启动其他App

App包名和类名的查看 由 App Inventor 2 创建的应用要弄清包名和类名,可通过下载其应用程序的源代码,然后使用文件资源管理器或解压缩程序解压 .aia源文件(文件的扩展名修改成.zip 或.rar,然后解压),在解压…

Redis面试题及核心知识点讲解

redis是单线程还是多线程? redis是单线程的,主要是指网络I/O线程。Redis的持久化,集群同步等操作,则由另外的线程来执行。 2 . redis是单线程,为什么处理这么快? Redis的大部分操作都是在内存中完成。单线…

电脑进水无法开机怎么办 电脑进水开不了机的解决方法

意外总是会不定时打破你的计划,电脑这类电器最怕遇到的除了火还有水,设备进水会导致数据丢失,那么我们遇到电脑进水怎么办?进水之后不正确处理也会引起很多不必要的麻烦. 解决办法 第一步:关机 如果您的电脑是在开…