GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose 论文阅读

论文信息

题目:GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose
作者:Zhichao Yin and Jianping Shi
来源:CVPR
时间:2018

Abstract

我们提出了 GeoNet,这是一种联合无监督学习框架,用于视频中的单目深度、光流和自我运动估计。

这三个组件通过 3D 场景几何的性质耦合在一起,由我们的框架以端到端的方式共同学习。具体来说,根据各个模块的预测提取几何关系,然后将其组合为图像重建损失,分别对静态和动态场景部分进行推理。

此外,我们提出了一种自适应几何一致性损失,以提高对异常值和非朗伯区域的鲁棒性,从而有效地解决遮挡和纹理模糊问题。

Introduction

在本文中,我们提出了一种无监督学习框架 GeoNet,用于联合估计视频中的单眼深度、光流和相机运动。我们的方法的基础建立在 3D 场景几何的性质之上(详细信息请参见第 3.1 节)。

直观的解释是,大多数自然场景都是由刚性静态表面组成,即道路、房屋、树木等。它们在视频帧之间投影的二维图像运动可以完全由深度结构和相机运动决定。同时,此类场景中普遍存在行人和汽车等动态物体,通常具有位移大、排列混乱的特点。

因此,我们使用深度卷积网络抓住了上述原则。具体来说,我们的范例采用了分而治之的策略。设计了一种由两个阶段组成的新颖的级联架构来自适应地解决场景刚体流和目标运动。因此,全局运动场能够逐步细化,使我们的完整学习流程变得分解且更易于学习。这种融合运动场引导的视图合成损失导致无监督学习的自然正则化。预测示例如图 1 所示。
在这里插入图片描述
作为第二个贡献,我们引入了一种新颖的自适应几何一致性损失,以克服纯视图合成目标中未包含的因素,例如遮挡处理和照片不一致问题。通过模仿传统的前后(或左右)一致性检查,我们的方法自动过滤掉可能的异常值和遮挡。在非遮挡区域中的不同视图之间强制执行预测一致性,而错误的预测会被平滑,尤其是在遮挡区域中。

Related Work

场景流估计是与我们的工作密切相关的另一个主题,它从立体图像序列中解决场景的密集 3D 运动场 [49]。 KITTI 基准上排名靠前的方法通常涉及几何、刚性运动和分割的联合推理 [3, 51]。 MRF [27] 被广泛采用来将这些因素建模为离散标记问题。然而,由于存在大量需要优化的变量,这些现成的方法在实际使用中通常太慢。另一方面,最近的几种方法强调了通用场景流中的严格规律。 Taniai 等人[46]提出使用二元掩模从刚性场景中分割出移动物体。 Sevilla-Lara 等人[41]根据语义分割定义了不同的图像运动模型。

Method

在本节中,我们从 3D 场景几何的本质开始。然后我们概述了 GeoNet。它由两个组件组成:分别是刚性结构重建器和非刚性运动定位器。

最后,我们提出了几何一致性执行,这是 GeoNet 的核心。

Nature of 3D Scene Geometry

视频或图像是 3D 空间投影到特定维度的屏幕截图。 3D 场景自然由静态背景和移动对象组成。视频中静态部分的运动完全是由摄像机运动和深度结构引起的。而动态物体的运动则更为复杂,由均匀的相机运动和特定物体运动共同作用。

与完整的场景理解相比,理解均匀的相机运动相对容易,因为大部分区域都受到其约束。

为了从本质上分解 3D 场景理解问题,我们希望分别学习由相机运动控制的场景级一致运动,即刚性流和具体的物体运动。

为了对严格限制的刚性流进行建模,我们通过帧 i 的深度图 D i D_i Di 的集合以及从目标帧到源帧的相对相机运动 T t → s T_{t→s} Tts 来定义静态场景几何形状。从目标图像 I t I_t It到源图像 I s I_s Is的相对二维刚性流可以表示为:
在这里插入图片描述
另一方面,我们将无约束的物体运动建模为经典光流概念,即二维位移矢量。

我们学习残差流 f t → s r e s f^{res}_{t→s} ftsres 而不是非刚性情况的完整表示。

GeoNet OverViwe

我们提出的 GeoNet 以无人监督的方式感知 3D 场景几何的本质。

特别是,

  1. 我们使用单独的组件分别通过刚性结构重建器和非刚性运动定位器来学习刚性流和物体运动。
  2. 采用图像外观相似度来指导无监督学习,可以推广到无限数量的视频序列,而无需任何标记成本。

我们的 GeoNet 的概述如图 2 所示。
在这里插入图片描述

它包含两个阶段,刚性结构推理阶段和非刚性运动细化阶段。

推断场景布局的第一阶段由两个子网络组成,即 DepthNet 和 PoseNet。深度图和相机位姿分别回归并融合以产生刚性流。

第二阶段由 ResFlowNet 完成以处理动态对象。 ResFlowNet 学习到的残余非刚性流与刚性流相结合,得出我们最终的流预测。由于我们的每个子网络都针对特定的子任务,因此复杂的场景几何理解目标被分解为一些更简单的目标。不同阶段的视图合成是我们无监督学习范式的基本监督。

最后但并非最不重要的一点是,我们在训练期间进行几何一致性检查,这显着增强了我们预测的一致性并取得了令人印象深刻的性能

Rigid Structure Reconstructor

我们的第一阶段旨在重建刚性场景结构,并对非刚性和异常值具有鲁棒性。

训练示例是具有已知相机内在特性的时间连续帧 I i ( i = 1 ∼ n ) I_i(i = 1 ∼ n) Ii(i=1n)。通常,目标帧 I t I_t It被指定为参考视图,而其他帧是源帧 I s I_s Is
DepthNet 将单一视图作为输入,并利用累积的场景先验进行深度预测。在训练期间,整个序列被视为独立图像的小批量并输入到 DepthNet 中。

相反,为了更好地利用不同视图之间的特征对应关系,我们的 PoseNet 将沿通道维度连接的整个序列作为输入,一次性回归所有相对 6DoF 相机姿势 T t → s T_{t→s} Tts

基于这些基本预测,我们能够根据方程(1) 推导出全局刚性流。 我们可以立即合成任意一对目标帧和源帧之间的另一个视图。

我们将 I ~ s r i g \tilde{I}^{rig}_s I~srig 表示为基于 f t → s r i g f^{rig}_{t→s} ftsrig I s I_s Is 到目标图像平面的逆扭曲图像。

因此,我们当前阶段的监督信号自然以最小化合成视图 I ~ s r i g \tilde{I}^{rig}_s I~srig 和原始帧 I t I_t It 之间的差异(或相反)的形式出现。

但需要指出的是,刚性流仅主导非遮挡刚性区域的运动,而在非刚性区域则失效。尽管这种负面影响在相当短的序列中略有减轻,但我们对光度损失采用了鲁棒的图像相似性测量[15],它保持了适当的感知相似性评估和异常值的适度弹性之间的平衡,并且本质上是可微分的如下:
在这里插入图片描述

Non-rigid Motion Localizer

第一阶段为我们提供了刚性场景布局的立体感知,却忽略了动态物体的普遍存在。因此,我们提出了第二个组件,即 ResFlowNet 来定位非刚性运动。

直观上,通用光流可以直接对无约束运动进行建模,这在现成的深度模型中通常采用[8, 18]。但它们并没有充分利用刚性区域的良好约束特性,而我们实际上已经在第一阶段做到了这一点。

我们制定 ResFlowNet 来学习残余非刚性流,即仅由相对于世界平面的对象运动引起的移动。具体来说,我们按照[18]推荐的方式在第一阶段之后级联 ResFlowNet。对于任何给定的帧对,ResFlowNet 利用刚性结构重建器的输出,并预测相应的残差信号 f t → s r e s f^{res}_{t→s} ftsres 。最终的全流预测 f t → s f u l l f^{full}_{t→s} ftsfull f t → s r i g + f t → s r e s f^{rig}_{t→s} + f^{res}_{t→s} ftsrig+ftsres 构成。
在这里插入图片描述

如图 3 所示,我们的第一阶段,刚性结构重建器,在大多数刚性场景中产生高质量的重建,这为我们的第二阶段奠定了良好的起点。因此,我们的运动定位器中的 ResFlowNet 仅关注其他非刚性残基。请注意,ResFlowNet 不仅可以纠正动态对象中的错误预测,而且由于我们的端到端学习协议,还可以改进第一阶段可能由高饱和度和极端照明条件引起的不完美结果。

同样,我们可以简单修改一下把第一阶段扩展到第二阶段。具体来说,按照完整流程 f t → s f u l l f^{full}_{t→s} ftsfull ,我们再次在任意一对目标帧和源帧之间执行图像扭曲。将等式(2) 中的 I ~ s r i g \tilde{I}^{rig}_s I~srig 替换为 I ~ s f u l l \tilde{I}^{full}_s I~sfull得到完整变形损失 L f w L_{fw} Lfw。类似地,我们扩展了方程(3) 中二维光流场的平滑度损失,我们将其表示为 L f s L_{fs} Lfs

Geometric Consistency Enforcement

我们的 GeoNet 采用刚性结构重建器用于静态场景,采用非刚性运动定位器作为动态物体的补偿。两个阶段都利用视图合成目标作为监督,并隐含地假设光度一致性。尽管我们采用了强大的图像相似性评估,例如等式 (2)。

遮挡和非朗伯曲面在实践中仍然无法完美处理。

为了进一步减轻这些影响,我们在学习框架中应用了前向后向一致性检查,而不改变网络架构。 Godard 等人 [15] 的工作将类似的想法融入到他们的具有左右一致性损失的深度学习方案中。然而,我们认为这种一致性约束以及扭曲损失不应该强加在遮挡区域(参见第 4.3 节)。相反,我们优化了最终运动场的自适应一致性损失。

具体来说,我们的几何一致性强制是通过优化以下目标来实现的
在这里插入图片描述
由于这些区域违反了照片一致性以及几何一致性假设,因此我们仅使用平滑度损失 L f s L_{fs} Lfs 来处理它们。因此,我们的全流扭曲损失 L f w L_{fw} Lfw 和几何一致性损失 L g c L_{gc} Lgc 均按 [ δ ( p t ) ] [δ(pt)] [δ(pt)] 像素加权。
在这里插入图片描述

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

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

相关文章

vim常用操作

一、Esc键 & 命令模式 1.撤销:u 恢复撤销:Ctrl r 2.定位 行首:0 行尾:$ 第7行:7G 3.编辑 下行开始插入: o 删除行:dd 复制3行并粘贴:3yy ---> p 复制单词并粘贴&#…

蓝桥杯官网练习题(玩具蛇)

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝有一条玩具蛇,一共有 16 节,上面标着数字 1 至 16。每一节都是一个正方形的形状。相邻的两节可以成直线或者成 90 度角。 小蓝还有一个…

时序预测 | MATLAB实现ELM极限学习机时间序列预测未来

时序预测 | MATLAB实现ELM极限学习机时间序列预测未来 目录 时序预测 | MATLAB实现ELM极限学习机时间序列预测未来预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现ELM极限学习机时间序列预测未来; 2.运行环境Matlab2018及以上,data为数…

【漏洞复现】H3C路由器信息泄露任意用户登录

漏洞描述 通过访问特地址得到密码可进行登录。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中…

CASAIM与南京航空航天大学在自动化叶片曲面分析系统开展合作,推动航空航天发动机零部件自动化3D检测进程

近期,CASAIM与南京航空航天大学在自动化叶片曲面分析系统展开深入合作,充分发挥双方在航空航天和智能检测领域优势,共同推动航空航天发动机零部件自动化3D检测进程。 南京航空航天大学创建于1952年10月,是新中国自己创办的第一批…

pyCharm远程DEBUG

第一步,添加一个远程机器的解释器 ssh 远程机器解释器添加, 我本地ssh有配置目标机器。 如果没配置,那就选着new server configuration 新增一个。 interpreter 指定远程机器python, (机器上有多个版本python里尤其要…

红队打靶:ConnectTheDots打靶思路详解(vulnhub)

目录 写在开头 第一步:主机发现和端口扫描 第二步:FTP和NFS渗透(失败) 第三步:web渗透 第四步:jsfuck解码 第五步:再次FTP渗透与莫尔斯电码解码 第六步:vim读取断电swp文件…

批量采集的时间管理与优化

在进行大规模数据采集时,如何合理安排和管理爬取任务的时间成为了每个专业程序员需要面对的挑战。本文将分享一些关于批量采集中时间管理和优化方面的实用技巧,帮助你提升爬虫工作效率。 1. 制定明确目标并设置合适频率 首先要明确自己所需获取数据的范…

Bazzite 发行版 1.0 发布,可让 Linux 游戏机实现 Steam Deck 桌面环境体验

导读近日消息,当下 Steam Deck 掌机的性能已经有所过时,不过许多玩家为了追求原生 SteamOS 体验依然选择购买该掌机,V社此前曾表示,“SteamOS 简化了在手持设备上玩 PC 游戏的过程”,玩家在用 Steam Deck 玩游戏时&…

BCSP-玄子Share-Java框基础_工厂模式/代理模式

三、设计模式 3.1 设计模式简介 软件设计中的三十六计是人们在长期的软件开发中的经验总结是对某些特定问题的经过实践检验的特定解决方法被广泛运用在 Java 框架技术中 3.1.1 设计模式的优点 设计模式是可复用的面向对象软件的基础可以更加简单方便地复用成功的设计和体系…

springcloud-Eureka

1.Eureka注册中心 1.1 简介与依赖导入 1.2 服务注册与发现 启动eureka模块 访问Eureka 将user-service,book-service,borrow-service作为eureka的客户端,先导包。三个导入方式一样。 配置文件,三个模块下都一样配置 然后分别启动三个模块 发现注册…

SpringMvc--CRUD

目录 一.什么是SpringMvc--CRUD 二.前期准备 公共页面跳转(专门用来处理页面跳转) 三.ssm之CRUD后端实现 配置pom.xml 双击mybatis-generator:generate自动生成mapper 编写generatorConfig.xml 项目结构 编写PagerAspect切面类 编写hpjyBiz接口类 编写hpjyBizImpl接…

JavaWeb_LeadNews_Day11-KafkaStream实现实时计算文章分数

JavaWeb_LeadNews_Day11-KafkaStream实现实时计算文章分数 KafkaStream概述案例-统计单词个数SpringBoot集成 实时计算文章分值来源Gitee KafkaStream 概述 Kafka Stream: 提供了对存储与Kafka内的数据进行流式处理和分析的功能特点: Kafka Stream提供了一个非常简单而轻量的…

Pytorch 多卡并行(1)—— 原理简介和 DDP 并行实践

近年来,深度学习模型的规模越来越大,需要处理的数据也越来越多,单卡训练的显存空间和计算效率都越来越难以满足需求。因此,多卡并行训练成为了一个必要的解决方案本文主要介绍使用 Pytorch 的 DistributedDataParallel&#xff08…

合宙Air724UG LuatOS-Air LVGL API控件-表格(Table)

表格(Table) 示例代码 --创建表格Table1 lvgl.table_create(lvgl.scr_act(),nil)--设置表格为4行5列lvgl.table_set_row_cnt(Table1,4)lvgl.table_set_col_cnt(Table1,5)--给每个单元格赋值lvgl.table_set_cell_value(Table1, 0, 0, "选手")l…

Android之RecyclerView仿ViewPage滑动

文章目录 前言一、效果图二、实现步骤1.xml主布局2.所有用到的drawable资源文件3.xml item布局4.adapter适配器5.javabean实体类6.activity使用 总结 前言 我们都知道ViewPageFragment滑动,但是的需求里面已经有了这玩意,但是在Fragment中还要有类似功能…

基于3D扫描和3D打印的产品逆向工程实战【数字仪表】

逆向工程是一种从物理零件创建数字设计的强大方法,并且可以与 3D 扫描和 3D 打印等技术一起成为原型设计工具包中的宝贵工具。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 3D 扫描仪可以非常快速地测量复杂的物体,并且在涉及现实生活参考时可以…

花生壳内网穿透+Windows系统,如何搭建网站?

1. 准备工作 在百度搜索“Win7下安装ApachePHPMySQL”,根据搜到的教程自行安装WAMP环境。 如果在网页上键入http://127.0.0.1/ 出现以下页面表示您的服务器已经建好,下一步就是关键,如何通过花生壳内网穿透,让外网的用户访问到您…

设计模式 - 责任链

一、前言 ​ 相信大家平时或多或少都间接接触过责任链设计模式,只是可能有些同学自己不知道此处用的是该设计模式,比如说 Java Web 中的 Filter 过滤器,就是非常经典的责任链设计模式的例子。 那么什么是责任链设计模式呢? ​ …

大数据课程L6——网站流量项目的SparkStreaming

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解网站流量项目的SparkStreaming概述; ⚪ 掌握网站流量项目的SparkStreaming实现 Wordcount 底层流程; ⚪ 掌握网站流量项目的SparkStreaming实现历史批次的累积处理; ⚪ 掌握网站流…