单目深度估计之图像重构原理解析

一、参考资料

浅析自监督深度估计中的光度损失(Photometric Loss)

二、图像重构原理

设输入位姿估计网络的3帧连续单目序列为 < I t − 1 , I t , I t + 1 > <I_{t-1},I_{t},I_{t+1}> <It1,It,It+1>,其中 t t t 为时间索引, t > 0 t>0 t>0 I t I_{t} It 是目标帧,而其余2帧是源视图 I s = < I t − 1 , I t + 1 > I_{s}=<I_{t-1},I_{t+1}> Is=<It1,It+1>。假设 p t p_{t} pt 为目标图像 I t I_{t} It 上某像素的齐次坐标, p t = [ u t ν t 1 ] T p_t=[u_t\quad\nu_t\quad1]^T pt=[utνt1]T。结合深度图像 D t {D}_t Dt 和相机位姿变换矩阵 T t → s T_{t\to s} Tts,可以将该像素还原为三维空间点,同时计算出在源图像时刻的相机坐标系下,该空间点的齐次坐标 p s c p_{sc} psc
p s c = [ x s c y s c z s c 1 ] = T t → s D t ( p t ) K − 1 p t p_{sc}=\begin{bmatrix}x_{sc}\\y_{sc}\\z_{sc}\\1\end{bmatrix}=T_{t\to s}D_t(p_t)K^{-1}p_t psc= xscysczsc1 =TtsDt(pt)K1pt
然后将该点投影回二维平面,得到该像素在源图像 I s I_s Is 上的齐次坐标 p s p_s ps
p s = [ u s v s 1 ] = 1 z s c K p s c p_s=\begin{bmatrix}u_s\\v_s\\1\end{bmatrix}=\frac{1}{z_{sc}}Kp_{sc} ps= usvs1 =zsc1Kpsc
根据上述两个公式,可以建立 I t I_t It 的像素 p t p_t pt I s I_s Is 的像素 p s p_s ps 的转换关系:
p s ∼ K T t → s D t ( p t ) K − 1 p t p_{s}\sim KT_{t\to s}D_{t}\left(p_{t}\right.)K^{-1}p_{t} psKTtsDt(pt)K1pt

p t p_{t} pt p s p_s ps 间的差异来源于相机自身的运动,因此可得刚体运动光流 F t → s r F_{t\rightarrow s}^r Ftsr
F t → s r ( p t ) = [ Δ u Δ v ] = [ u s − u t v s − v t ] F_{t\to s}^r(p_t)=\begin{bmatrix}\Delta u\\\Delta v\end{bmatrix}=\begin{bmatrix}u_s-u_t\\v_s-v_t\end{bmatrix} Ftsr(pt)=[ΔuΔv]=[usutvsvt]
继而可以基于此光流和源图像 I s I_s Is ,重构目标图像 I ^ t \hat{I}_t I^t I ^ t \hat{I}_t I^t 的像素值均可以从 I s I_s Is 中近似:
I ^ t ( p t ) = I s ( p s ) = I s ( p t + F t → s r ( p t ) ) \hat{I}_t(p_t)=I_s(p_s)=I_s(p_t+F_{t\to s}^r(p_t)) I^t(pt)=Is(ps)=Is(pt+Ftsr(pt))
重构图像的过程中,坐标 p s p_s ps 极有可能是所示的浮点数,此时 I s ( p s ) I_s(p_s) Is(ps) 需要由最邻近的四个像素近的四个像素 I s ( p s l t ) 、 I s ( p s r t ) 、 I s ( p s l b ) 和 I s ( p s r b ) I_{s}(p_{s}^{lt})、I_{s}(p_{s}^{rt})、I_{s}(p_{s}^{lb})\text{和}I_{s}(p_{s}^{rb}) Is(pslt)Is(psrt)Is(pslb)Is(psrb) 双线性插值[2]求得。
在这里插入图片描述

三、自监督单目深度估计原理

zhou等人[1]提出利用视图合成作为监督信号,通过当前时刻捕获的视图(目标帧),并利用深度、位姿信息作为中间量对图像进行重建,通过网络的不断迭代,最终得到准确的深度和位姿信息。视图合成的原理是通过几何映射,把当前时刻捕获的图像映射到另一相邻时刻的图像对其进行重建。该方法的思路来自于视觉里程计中的直接法。

既然是自监督,那么就意味着输入的图像是没有深度标签的,所以我们就无法利用ground truth这个"标准答案”对输出的深度图进行优化。于是,我们利用联合训练的方法,通过输入相邻帧图像,对相对位姿网络进行训练,从而经过投影变换得到重建帧,以目标帧与重建帧的差值作为训练信号,达到自监督的效果。

几乎所有的自监督任务是利用深度估计相机姿态估计两个模块联合进行的,如下图所示:
在这里插入图片描述

自监督深度估计的具体流程如下:

  1. 将目标帧 I t I_t It 输入深度预测网络 Φ d \Phi_{d} Φd,得到深度图 D t {D}_t Dt
  2. 将目标帧 I t I_t It 和源帧 I s I_s Is 同时输入相对位姿估计网络 Φ d \Phi_{d} Φd,得到相对位姿矩阵 T t → s T_{t\to s} Tts
  3. 利用 p s ∼ K T t → s D t ( p t ) K − 1 p t p_{s}\sim KT_{t\to s}D_{t}\left(p_{t}\right.)K^{-1}p_{t} psKTtsDt(pt)K1pt 这样的转换关系,由 p t p_t pt 计算出 p s p_s ps
  4. 由于 p s p_s ps 不一定为整数,故利用双线性插值算法计算该点的像素值,然后将该点采样到 I ^ t \hat{I}_t I^t 图像上的对应位置,通过借助投影下采样填充,最终实现利用 I s I_s Is 的像素信息重构出来 I ^ t \hat{I}_t I^t
  5. 利用 I t I_t It I ^ t \hat{I}_t I^t 计算图像重构损失。

四、图像重构损失(reprojection loss)

L 1 L_1 L1 S S I M SSIM SSIM 两者组合作为图像重构损失来计算目标帧 I t I_t It 和重构帧 I ^ t \hat{I}_t I^t 之间的差异,即:
L p ( I t , I ^ t ) = α ( 1 − S S I M ( I t , I ^ t ) ) 2 + ( 1 − α ) ∣ I t − , I ^ t ∣ 1 \mathcal{L}_p(I_t,\hat{I}_t)=\alpha\frac{(1-\mathrm{SSIM}(\mathrm{I}_t,\hat{\mathrm{I}}_t))}2+(1-\alpha)|I_t-,\hat{I}_t|_1 Lp(It,I^t)=α2(1SSIM(It,I^t))+(1α)It,I^t1
此函数由两部分相加而成,前面用于计算结构相似度 S S I M SSIM SSIM ,后面用于计算光度损失(photometric loss)。很多论文直接把整个函数叫光度损失(Photometric Loss),严格意义上不那么准确,应该称作图像重构损失(reprojection loss)

五、参考文献

[1]Zhou T, Brown M, Snavely N, et al. Unsupervised learning of depth and ego-motion from video[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1851-1858.
[2]Godard C, Mac Aodha O, Brostow G J. Unsupervised monocular depth estimation with left-right consistency[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 270-279.

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

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

相关文章

问题 C: 搬寝室(DP)

算法分析&#xff1a; 题目意思为求n个物品&#xff0c;拿k对使得消耗的体力最少&#xff0c; 或者说是这k对物品&#xff0c;每一对中两件物品的质量差平方最小&#xff0c; 所以要使得质量差的平方小&#xff0c;只能排序后取质量相邻两个物品作为一对&#xff1b; 现在设f…

学习Python,为什么可以轻松应对工作大小事?

Python&#xff0c;大名鼎鼎&#xff0c;它在工作中到底能发挥什么样的作用&#xff1f;在现代职场&#xff0c;Python如同一把瑰丽的多功能钥匙&#xff0c;能打开各行各业的大门。无论你是行政助手、财务分析师、电商经营者&#xff0c;还是数据研究员&#xff0c;Python都能…

四、[mysql]索引优化-1

目录 前言一、场景举例1.联合索引第一个字段用范围查询不走索引(分情况&#xff09;2.强制走指定索引3.覆盖索引优化4.in和or在表数据量比较大的情况会走索引&#xff0c;在表记录不多的情况下会选择全表扫描5.like 后% 一般情况都会走索引(索引下推) 二、Mysql如何选择合适的索…

2021年06月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 执行下列代码后,运行结果是? seq=[hello,good,morning] s=*.join(seq

处理固定资产折旧报错 AFAB “根据记帐循环, 您必须接下来对期间 001记帐”

会计在运用进行固定资产折旧时&#xff0c;发现有个报错“根据记帐循环, 您必须接下来对期间 001记帐”&#xff0c; 根据记帐循环, 您必须接下来对期间 001记帐 消息编号 AA683 诊断 不可以在指定的期间过帐折旧&#xff0c;因为此操作会遗漏过帐期间。 系统响应 该期间不能进…

软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)

问题1&#xff1a;请自我介绍下&#xff1f; 核⼼要素&#xff1a;个⼈技能优势⼯作背景经验亮点参考回答&#xff1a; 第一种&#xff1a;基本信息离职理由 ⾯试官您好&#xff0c;我叫张三&#xff0c;来⾃番茄市&#xff0c;在软件测试⾏业有 3 年的⼯作经验。做过 Web/APP…

剑指offer(C++)-JZ5:替换空格(算法-其他)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串s中的每个空格替换成“%20”。 例如&#xff0c;当字符串为We A…

网页2D/3D的开发框架

开发2D和3D网页的框架有很多&#xff0c;具体选择取决于您的项目需求和个人偏好。以下是一些常用的2D和3D网页开发框架&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 2D 网页开发框架&#xff1a; …

uniapp开发app,在ios真机上出现的css样式问题

比如下面的问题&#xff0c;在iphone 13上出现&#xff0c;在iphone xR上正常。 问题一&#xff1a;border:1rpx造成边框显示不全 在iphone13上border边框有一部分不显示&#xff1a; 在iphone xR上显示正常&#xff1a; 解决办法是&#xff1a; 将border边框设置中的1rpx改…

Spring Security 6.1.x 系列(3)—— 基于过滤器的基础原理(二)

四、SecurityFilterChain 在Serlvet中&#xff0c;一组Security Filter组成SecurityFilterChain&#xff0c;SecurityFilterChain的概念就比较好理解&#xff0c;是Spring Security 提供的过滤器链&#xff0c;用于管理本身所有的过滤器&#xff0c;在上面的流程图中已有说明。…

2023年软件测试工具总结 —— 单元测试工具

在应用程序中&#xff0c;单元是具有一个或多个输入和单个输出的软件中最小可测试部分。单元测试是一种测试软件代码单元的方法&#xff0c;通常包括一个或两个输入&#xff0c;产生一个输出。单元测试主要关注独立模块的功能正确性&#xff0c;目的是确保每个单元都按照预期的…

360加固APP后启动崩溃—注意加固前后签名是否一致

如下截图所示&#xff0c;我今天就是遇到了这个问题&#xff0c;这个问题是比较好解决&#xff0c;但如果官网有显眼指引说明会不会对开发者更友好些呢&#xff1f; 首先我们给360的加固包是带有自己的签名的&#xff0c;然后经360加固过后&#xff08;免费的加固服务&#xf…

软件测试简历没有邀约,为什么?8类细节通通告诉你(附赠高薪简历)

求职不顺&#xff0c;没有邀约&#xff0c;大概率是你的简历出现了问题。 本篇文章列出高薪简历应该注意的细节&#xff0c;合计36处&#xff0c;涉及简历的八大组成部分。 现在就讲&#xff1a; 一、简历样式要求&#xff08;3点要求&#xff09; 1、简历格式&#xff0c;…

Ansible的安装及部署

目录 一、ansible的简介 二、ansible的安装 1、下载epel仓库 2、安装ansible 3、全局测试 4、构建Anisble清单 三、Ansible配置文件参数详解 1. 配置文件的分类与优先级 2. 常用配置参数 四、构建用户级Ansible操作环境 一、ansible的简介 1、ansible是新出现的自…

arcpy.describe

描述 根据输入的数据&#xff0c;返回输入数据的属性 arcpy.da.Describe与arcpy.Describe返回的数据是一样的但是返回的的类型不一样&#xff0c;arcpy.da.Describe返回的是字典&#xff0c;arcpy.Describe返回的是string 如果要访问数据对象不存在的属性&#xff0c;将返回…

史上最短苹果发布会;三星、LG、高通联手进军 XR 市场丨 RTE 开发者日报 Vol.74

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

Bayes决策:身高与体重特征进行性别分类

代码与文件请从这里下载&#xff1a;Auorui/Pattern-recognition-programming: 模式识别编程 (github.com) 简述 分别依照身高、体重数据作为特征&#xff0c;在正态分布假设下利用最大似然法估计分布密度参数&#xff0c;建立最小错误率Bayes分类器&#xff0c;写出得到的决…

预安装win11的电脑怎么退回正版win10?

对于新购的笔记本 通常来讲预装的系统是全新安装的&#xff0c;是没有之前Windows10系统文件的&#xff0c;无法回退。 可以打开设置-----系统----恢复-----看下是否有该选项。 ------------------------------------------------------------------------------- 若是在上述…

第五章 I/O管理 七、设备的分配与回收

目录 一、设备分配时应该考虑的因素 1、设备的固有属性 2、设备分配算法 3、设备分配中的安全性 &#xff08;1&#xff09;安全分配方式: 优点: 缺点: &#xff08;2&#xff09;不安全分配方式: 优点: 缺点: 4、静态分配 5、动态分配 二、设备分配管理中的数据结…

深入探究ASEMI肖特基二极管MBR60100PT的材质

编辑-Z 在电子零件领域中&#xff0c;肖特基二极管MBR60100PT因其出色的性能和广泛的应用而显得尤为关键。理解其材质不仅有助于我们深入理解其运作原理&#xff0c;也有助于我们做出更合适的电子设计。那么&#xff0c;肖特基二极管MBR60100PT是什么材质呢? 首先&#xff0c…