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} Tt→s 来定义静态场景几何形状。从目标图像 I t I_t It到源图像 I s I_s Is的相对二维刚性流可以表示为:
另一方面,我们将无约束的物体运动建模为经典光流概念,即二维位移矢量。
我们学习残差流 f t → s r e s f^{res}_{t→s} ft→sres 而不是非刚性情况的完整表示。
GeoNet OverViwe
我们提出的 GeoNet 以无人监督的方式感知 3D 场景几何的本质。
特别是,
- 我们使用单独的组件分别通过刚性结构重建器和非刚性运动定位器来学习刚性流和物体运动。
- 采用图像外观相似度来指导无监督学习,可以推广到无限数量的视频序列,而无需任何标记成本。
我们的 GeoNet 的概述如图 2 所示。
它包含两个阶段,刚性结构推理阶段和非刚性运动细化阶段。
推断场景布局的第一阶段由两个子网络组成,即 DepthNet 和 PoseNet。深度图和相机位姿分别回归并融合以产生刚性流。
第二阶段由 ResFlowNet 完成以处理动态对象。 ResFlowNet 学习到的残余非刚性流与刚性流相结合,得出我们最终的流预测。由于我们的每个子网络都针对特定的子任务,因此复杂的场景几何理解目标被分解为一些更简单的目标。不同阶段的视图合成是我们无监督学习范式的基本监督。
最后但并非最不重要的一点是,我们在训练期间进行几何一致性检查,这显着增强了我们预测的一致性并取得了令人印象深刻的性能
Rigid Structure Reconstructor
我们的第一阶段旨在重建刚性场景结构,并对非刚性和异常值具有鲁棒性。
训练示例是具有已知相机内在特性的时间连续帧 I i ( i = 1 ∼ n ) I_i(i = 1 ∼ n) Ii(i=1∼n)。通常,目标帧 I t I_t It被指定为参考视图,而其他帧是源帧 I s I_s Is。
DepthNet 将单一视图作为输入,并利用累积的场景先验进行深度预测。在训练期间,整个序列被视为独立图像的小批量并输入到 DepthNet 中。
相反,为了更好地利用不同视图之间的特征对应关系,我们的 PoseNet 将沿通道维度连接的整个序列作为输入,一次性回归所有相对 6DoF 相机姿势 T t → s T_{t→s} Tt→s。
基于这些基本预测,我们能够根据方程(1) 推导出全局刚性流。 我们可以立即合成任意一对目标帧和源帧之间的另一个视图。
我们将 I ~ s r i g \tilde{I}^{rig}_s I~srig 表示为基于 f t → s r i g f^{rig}_{t→s} ft→srig 从 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} ft→sres 。最终的全流预测 f t → s f u l l f^{full}_{t→s} ft→sfull 由 f t → s r i g + f t → s r e s f^{rig}_{t→s} + f^{res}_{t→s} ft→srig+ft→sres 构成。
如图 3 所示,我们的第一阶段,刚性结构重建器,在大多数刚性场景中产生高质量的重建,这为我们的第二阶段奠定了良好的起点。因此,我们的运动定位器中的 ResFlowNet 仅关注其他非刚性残基。请注意,ResFlowNet 不仅可以纠正动态对象中的错误预测,而且由于我们的端到端学习协议,还可以改进第一阶段可能由高饱和度和极端照明条件引起的不完美结果。
同样,我们可以简单修改一下把第一阶段扩展到第二阶段。具体来说,按照完整流程 f t → s f u l l f^{full}_{t→s} ft→sfull ,我们再次在任意一对目标帧和源帧之间执行图像扭曲。将等式(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)] 像素加权。
相关文章:

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,这是一种联合无监督学习框架&a…...

蓝桥杯官网填空题(振兴中华)
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示࿱…...
node基础之七:Mongodb 数据库
下载地址:https://www.mongodb.com/try/download/community v:5.0.20 platform:window package:zip 复制到 c 盘/Programs Files c 盘创建 data/db 文件夹 默认存放数据地址 在 bin 目录下启动数据库 mongod, 客户端连接数据库…...

基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)
一、项目简介 本项目是一套基于Python和mysql开发的智慧校园答题考试系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都…...

OPPO/真我手机ColorOS13系统解账户锁-移除手机密码图案锁方法
在搞机之前,请确定自己的手机不是非法获取,本文只讲叙ColorOS13系统解锁方法,仅为个人测试研究出来的经验,未对官方系统进行任何修改。只推荐专业维修师傅从维修的角度进行解锁,不推荐个人用户对非自己的手机进行非法破…...

阿里云大数据实战记录9:MaxCompute RAM 用户与授权
文章目录 问题来源:maxcompute 管理员无法访问敏感列?主线问题:如何提高用户等级衍生问题1:怎么知道自己的等级和表单的等级衍生问题2:为什么 dataworks 空间管理员也没有设置等级的权限?衍生问题3…...

JavaScript基础07——变量拓展-数组
哈喽,大家好,我是雷工! 每天打卡学习一点点,今天继续学习JavaScript基础知识,以下是学习笔记。 一、数组的基本介绍 数组 (Array)——一种将一组数据存储在单个变量名下的优雅方式。 数组的作用和变量一样…...

go-zerogo web集成redis实战
前言 上一篇:go-zero&go web集成JWT和cobra命令行工具实战 从零开始基于go-zero搭建go web项目实战-03集成redis实战 源码仓库地址 源码 https://gitee.com/li_zheng/treasure-box golang redis 客户端 Go-Redis 地址: GitHub: https://github.…...

油猴浏览器(安卓)
油猴浏览器页面设计非常简约,在主页上还为小伙伴们推荐了很多的常用书签,像油猴脚本,常用导航,新闻,热搜类的,快递查询等等,可以设置快捷访问,把常用到的一些网站设置在主页上。 浏览…...
Redis 6.0多线程模型比单线程优化在哪里了
推荐阅读 项目实战:AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 史上最全文档AI绘画stablediffusion资料分享 AI绘画关于SD,MJ,GPT,SDXL百科全书 AI绘画 stable…...

[hello,world]这个如何将[ ] 去掉
[hello,world]这个如何将[ ] 去掉? 你可以使用编程语言中的字符串处理函数来去掉方括号。以下是一个示例代码,使用Python的strip()函数去掉方括号: text "[hello,world]" text text.strip("[]") print(text)输出为&a…...

机器学习_个人笔记_周志华(更新中......)
第1章 绪论 1.1 引言 形成优秀的心理表征,自然能成为领域内的专家。 系统1 & 系统2。 机器学习:致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。主要研究计算机从数据中产生model的算法,即“learning algori…...

嵌入式Linux驱动开发(LCD屏幕专题)(二)
一、结合APP分析LCD驱动程序 1、open app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0 -------------------------------------------------------------- kernel:fb_open // fbmem.cstruct fb_info *info;info get_fb_info(fbidx);if (info->fbop…...
React的jsx的用法
React是一个流行的JavaScript库,用于构建用户界面。它使用一种名为JSX的语法扩展来描述组件的结构和样式。JSX是React的核心语言之一,它允许开发人员在JavaScript中编写HTML,从而使代码更加简洁和易于阅读。 JSX是一种语法扩展,它…...

Ei Scopus检索 | 2024年第四届能源与环境工程国际会议(CoEEE 2024)
会议简介 Brief Introduction 2024年第四届能源与环境工程国际会议(CoEEE 2024) 会议时间:2023年5月22日-24日 召开地点:意大利米兰 大会官网:www.coeee.org CoEEE 2024将围绕“能源与环境工程”的最新研究领域而展开,为研究人员、…...

习题练习 C语言(暑期第四弹)
自我小提升! 前言一、数组二、指针运算三、统计每个月兔子的总数四、双指针的应用五、判断指针六、珠玑妙算七、两数之和八、数组下标九、指针十、寻找峰值十一、二级指针十二、大端小端十三、无符号参数十四、数对十五、截取字符串总结 前言 重要的事说三遍&#…...

【docker快速部署微服务若依管理系统(RuoYi-Cloud)】
工作原因,需要一个比较完整的开源项目测试本公司产品。偶然发现RuoYi-Cloud非常适合,它有足够多的中间件,而且官方提供docker安装,但我本人在安装过程中遇到了很多坑,在这里记录一下防止下次会再次遇到。 项目地址 ht…...

面试求职-简历编写技巧
没有高水平简历 只有高匹配的简历 试问一下:如果一个非常牛逼的软件工程的硕士,投递市场营销岗位,结果会是什么样呢? 这位同学大概率没办法通过简历。 不是因为他不够优秀,而是因为简历和岗位不够匹配。 在公司的招…...

云原生安全性:构建可信任的云应用的最佳实践
文章目录 云原生安全性的重要性1. 数据隐私2. 恶意攻击3. 合规性要求4. 业务连续性 构建可信任的云应用的最佳实践1. 安全开发2. 身份验证与授权3. 容器安全性4. 监控与审计5. 持续集成与持续交付(CI/CD)6. 安全培训和教育 未来趋势:服务网格…...

第一章 数据库SQL-Server(及安装管理详细)
❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 21 世纪,人类迈入了“信息爆炸时代”,…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...

aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...

【阅读笔记】MemOS: 大语言模型内存增强生成操作系统
核心速览 研究背景 研究问题:这篇文章要解决的问题是当前大型语言模型(LLMs)在处理内存方面的局限性。LLMs虽然在语言感知和生成方面表现出色,但缺乏统一的、结构化的内存架构。现有的方法如检索增强生成(RA…...

MCP和Function Calling
MCP MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而…...