《Unsupervised Monocular Depth Learning in Dynamic Scenes》论文笔记
参考代码:depth_and_motion_learning
1. 概述
导读:这篇文章是在(Depth from Videos in the Wild)的基础上进行改进得到的,在之前的文章中运动区域/物体通过mask标注或是bounding box标注的形式确定,但是这样或多或少会存在对外依赖的问题。对此,文章从 刚性物体运动 在相机前运动的特性进行分析得出如下两个特性:
1)其在整幅图像中的占比是较少的,毕竟一般情况下不会运动的背景占据了较大的比例;
2)刚性运动的物体其内部运动特性是分段的常量值,也就是对应的梯度变化很小;
正是基于上述两点观察,文章在之前文章的基础上对运动物体区域构建了一个约束,从而减少了运动物体会深度估计带来的影响。
文章的方式是通过隐式约束的形式对刚性物体运动区域进行约束,从而避免了显示地对运动区域标注,因而文章的方法可以在输入2帧图像的情况下实现深度预测和物体运动感知,如下图所示:
2. 方法设计
2.1 网络结构
文章的网络结构如下图所示:
整体上这里网络结构与之前文章(Depth from Videos in the Wild)的网络结构类似,只是在一些细节上有所区别。这里深度估计网络的编解码结构是一致的,主要的不同点在相机位姿和内参估计网络上,在原本两帧图像输入基础上添加了深度估计结果作为输入。
2.2 损失函数
深度图平滑损失:
这部分损失是为了给深度估计结果带来平滑作用,减少噪声的产生,其损失函数描述为:
Lreg,dep=αdep∬(∣∂ud(u,v)e−∂uI(u,v)+∂vd(u,v)e−∂vI(u,v)∣dudvL_{reg,dep}=\alpha_{dep}\iint(|\partial_ud(u,v)e^{-\partial_uI(u,v)}+\partial_vd(u,v)e^{-\partial_vI(u,v)}|d_ud_vLreg,dep=αdep∬(∣∂ud(u,v)e−∂uI(u,v)+∂vd(u,v)e−∂vI(u,v)∣dudv
循环一致性损失:
首先是变换矩阵的循环一致性约束,其描述为:
Lcyc=αcyc∣∣RRinv−1∣∣2∣∣R−1∣∣2+∣∣Rinv−1∣∣2+βcyc∬∣∣RinvT(u,v)+Tinv(uwarp,vwarp)∣∣2∣∣T(u,v)∣∣2+∣∣Tinv(uwarp,vwarp)∣∣2dudvL_{cyc}=\alpha_{cyc}\frac{||RR_{inv}-\mathbf{1}||^2}{||R-\mathbf{1}||^2+||R_{inv}-\mathbf{1}||^2}+\beta_{cyc}\iint\frac{||R_{inv}T(u,v)+T_{inv}(u_{warp},v_{warp})||^2}{||T(u,v)||^2+||T_{inv}(u_{warp},v_{warp})||^2}d_ud_vLcyc=αcyc∣∣R−1∣∣2+∣∣Rinv−1∣∣2∣∣RRinv−1∣∣2+βcyc∬∣∣T(u,v)∣∣2+∣∣Tinv(uwarp,vwarp)∣∣2∣∣RinvT(u,v)+Tinv(uwarp,vwarp)∣∣2dudv
图像域的循环一致性约束,描述为:
Lrgb=αrgb∬∣I(u,v)−Iwarp(u,v)∣1Du,v>Dwarp(u,v)dudv+βrgb1−SSIM(I,Iwarp)2L_{rgb}=\alpha_{rgb}\iint|I(u,v)-I_{warp}(u,v)|\mathbf{1}_{D_{u,v}\gt D_{warp}(u,v)}d_ud_v+\beta_{rgb}\frac{1-\mathcal{SSIM(I,I_{warp})}}{2}Lrgb=αrgb∬∣I(u,v)−Iwarp(u,v)∣1Du,v>Dwarp(u,v)dudv+βrgb21−SSIM(I,Iwarp)
物体移动约束损失:
这部分损失主要是完成下面的两个作用:
- 1)根据上文提到的稀疏特性,对运动场做稀疏化约束,这里使用的L12L{\frac{1}{2}}L21,文章指出该函数具有更好的稀疏特性;
- 2)基于刚性物体运动的分析,对刚性物体运动场施加梯度损失,使其在分布呈现分段的常量值特性;
首先对于常量值特性,添加梯度约束:
Lg1[T(u,v)]=∑i∈{x,y,z}∬(∂uTi(u,v))2+(∂vTi(u,v))2dudvL_{g1}[T(u,v)]=\sum_{i\in \{x,y,z\}}\iint \sqrt{(\partial_uT_i(u,v))^2+(\partial_vT_i(u,v))^2}d_ud_vLg1[T(u,v)]=i∈{x,y,z}∑∬(∂uTi(u,v))2+(∂vTi(u,v))2dudv
接下来对稀疏化添加约束:
L12[T(u,v)]=2∑i∈{x,y,z}⟨∣Ti∣⟩∬(1+∣Ti(u,v)∣⟨∣Ti∣⟩dudvL_{\frac{1}{2}}[T(u,v)]=2\sum_{i\in \{x,y,z\}}\langle|T_i|\rangle\iint \sqrt{(1+\frac{|T_i(u,v)|}{\langle|T_i|\rangle}}d_ud_vL21[T(u,v)]=2i∈{x,y,z}∑⟨∣Ti∣⟩∬(1+⟨∣Ti∣⟩∣Ti(u,v)∣dudv
则这部分整体的损失函数描述为:
Lreg,motαmotLg1[Tobj(u,v)]+βmotL12[Tobj(u,v)]L_{reg,mot}\alpha_{mot}L_{g1}[T_{obj}(u,v)]+\beta_{mot}L_{\frac{1}{2}}[T_{obj}(u,v)]Lreg,motαmotLg1[Tobj(u,v)]+βmotL21[Tobj(u,v)]
则对应的损失函数实现可以参考:
# losses/loss_aggregator.py#L283
normalized_trans = regularizers.normalize_motion_map(residual_translation, translation)
self._losses['motion_smoothing'] += scale_w * regularizers.l1smoothness( # 对应公式2,分段常量值约束normalized_trans, self._weights.motion_drift == 0)
self._losses['motion_drift'] += scale_w * regularizers.sqrt_sparsity( # 对应公式3,稀疏性约束normalized_trans)
上面提到的几点约束的消融实验结果:
3. 实验结果
Cityscapes数据集上性能对比:
KITTI数据集上性能对比:
《Unsupervised Monocular Depth Learning in Dynamic Scenes》论文笔记相关推荐
- 论文笔记之Understanding and Diagnosing Visual Tracking Systems
Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...
- 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...
- 论文笔记Understanding and Diagnosing Visual Tracking Systems
最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...
- 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems
Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...
- 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)
追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...
- ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...
- Understanding and Diagnosing Visual Tracking Systems
文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...
- CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...
- ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...
- CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...
最新文章
- 常见问题_空指针异常
- 面对女人的喋喋不休时,男人内心的真实想法
- raspberry pi 家族
- Leetcode--128. 最长连续序列
- emacs shell插件_Windows 下 Emacs 中的 zsh shell 使用方法
- RDL(C) Report Design Step by Step 3: Mail Label
- Android Studio(五):修改Android Studio项目包名
- Atitit pagging翻页与按需加载图像 vue lazyload懒加载目录1.1. 翻最好就是不翻页直接加载一千数据咯 11.2. 使用VueLazyload 11.3. 五.更加方
- 第八章第二层交换和生成树协议(STP)
- blender 上一步 下一步_下一步是模拟宇宙
- Office 2007 SP3 正试版补丁包下载
- python写整数逆位运算_整数逆位运算
- flink 出现反压场景, 异常场景造成Exceeded checkpoint tolerable failure threshold.
- 【主板上各种接口和附属部件科普】
- 精通RPM之--制作篇(上)
- 阿里G2插件——柱状统计图,长变量值显示设置
- 【C语言】利用for循环来创建一个金字塔
- 学python推荐的10本豆瓣高分书单,小白到大佬,不看后悔一辈子
- CodeForces - 332B Maximum Absurdity 前缀和
- jeecgboot初学习疑问与总结--2021-05-11
热门文章
- vscode中的maven_在VSCode中使用Maven进行JUnit测试
- Technorati 推出博客广告媒体
- 阿里巴巴服务器泡进“水里”液冷服务器技术
- cass等距离等分线段的命令键_cass线段怎么等分命令是什么
- WiFi模块种类二:单WiFi功能双频WiFi模块
- bitcscs计算机系统,深入理解计算机系统CSAPP-美-布莱恩特
- Android钢琴滑动代码,如何使用Kotlin构建Android旋转旋钮以帮助儿子练习钢琴
- [转]ubuntu常用软件
- 查询昌吉州二中2021年高考成绩,2017新疆、昌吉州文理状元分数出炉!昌吉州这所中学喜摘文理状元桂冠!...
- 【光通信】单模与多模区别