主页与代码地址:robust_cvd

1. 概述

导读:这篇文章的目的是为了在视频场景下生成稳定的深度估计结果,其提出的算法可以在一个单目视频中估计出一致的深度图和相机位姿。文章首先会使用MiDas为视频中的单帧图像做初始深度估计(主要用于提供深度scale参数),以及使用Ceres Library上计算相机的初始位姿信息。之后再在输入的视频序列上使用在线finetune形式交替进行深度估计结果与相机位姿优化。在上面的finetune优化中使用到了一个几何优化过程去生成稳定平滑地相机移动轨迹(表征为相机关联的内外参数)与深度细节保存完好且稳定的深度结果。在上面提到的相机位姿优化与最后深度估计生成过程包含两个互补的技术(分别对低频区域和高频区域):
1)使用灵活的变化样条函数去实现图像内低频区域的区块对齐;
2)使用一个几何感知深度滤波器在不同的视频帧上去对齐高频的细节部分。
相比之前的方法(《Consistent Video Depth Estimation》),文章并不需要相机的位姿信息作为输入,在文章算法中对其进行预测。同时文章方法的设计是源自于上面论文的。

2. 方法设计

2.1 算法Pipline

文章的视频深度估计pipeline见下图所示:

从图中可以看到文章的pipeline主要划分为个部分:

  • 1)使用MiDas作为单帧深度估计方法,从而估计得到单帧图像的初始深度信息。使用Ceres Library从视频序列中去计算初始相机位姿;
  • 2)使用finetune训练的形式从输入的视频序列中交替优化深度估计结果与相机位姿信息,在相机位姿估计过程中使用样条差值的形式实现深度对齐,从而使得相机位姿估计的结果稳定;
  • 3)使用几何感知的深度滤波器在多帧之间进行滤波保留和优化深度估计中的高频信息;

2.2 准备工作

输入一个视频序列之后,除了上述中提到会使用MiDas计算一个初始深度和相机位姿之外,还会对视频进行不同间隔的采样得到一个视频帧对(图像对)的集合,其在视频序列上进行采样可以使用下面的式子进行描述:
P={(i,j)∣∣i−j∣=k,imodk=0,k=1,2,4,…}P=\{(i,j)\mid |i-j|=k,i\ mod\ k=0,k=1,2,4,\dots\}P={(i,j)∣∣i−j∣=k,i mod k=0,k=1,2,4,…}
也就是下图表述的间隔采样的形式:

对于一个采样到的图像对(i,j)∈P(i,j)\in P(i,j)∈P文章会在其上使用RAFT计算光流fi→jf_{i\rightarrow j}fi→j​,之后通过前后光流的一致性得到二值掩膜mi→jflowm_{i\rightarrow j}^{flow}mi→jflow​。使用Mask RCNN取出图像中可能存在移动的目标(如行人/车辆等)掩膜midynm_i^{dyn}midyn​。

接下来的过程是在给定视频序列基础上进行finetune(交替优化深度预测与相机位姿估计),从而在视频上得到深度一致的预测结果。其中深度估计和相机位姿式交替进行的,并且在相机位姿估计中增加了深度对齐,增加了稳定性。图3中的(d)是使用SFM预测相机位姿的结果,图3中(c)是使用深度信息去反推相机位姿的结果,没有深度对齐会对相机位姿的准确推断带来很大干扰。对此,文章将finetune中的交替优化过程参见下文。

2.3 深度估计优化

2.3.1 光度构建约束

这里使用sis_isi​表示从MiDas中计算来的scale参数,将一个像素使用齐次坐标的形式表示pˉ=[px,py,1]T\bar{p}=[p_x,p_y,1]^Tpˉ​=[px​,py​,1]T,did_idi​是深度估计模型输出的深度结果。则将其映射到3D的相机坐标可以表示为:
ci(p)=sidi(p)pˉc_i(p)=s_id_i(p)\bar{p}ci​(p)=si​di​(p)pˉ​
之后通过帧间的变换关系进行帧间的变换:
ci→j(p)=KjRjT(RiKi−1ci(p)+ti−tj)c_{i\rightarrow j}(p)=K_jR_j^T(R_iK_i^{-1}c_i(p)+t_i-t_j)ci→j​(p)=Kj​RjT​(Ri​Ki−1​ci​(p)+ti​−tj​)
其中,Ri,RjR_i,R_jRi​,Rj​和ti,tjt_i,t_jti​,tj​是帧(i,j)(i,j)(i,j)的旋转平移参数,Ki,KjK_i,K_jKi​,Kj​是对应的内参。则光度重重建误差可以描述为:
arg min⁡θdepth∑(i,j)∈P∑p∈mi→jflowLi→jrepro,s.t.fixedθcam\argmin_{\theta^{depth}}\sum_{(i,j)\in P}\sum_{p\in m_{i\rightarrow j}^{flow}}L_{i\rightarrow j}^{repro},\ s.t.\ fixed\ \theta^{cam}θdepthargmin​(i,j)∈P∑​p∈mi→jflow​∑​Li→jrepro​, s.t. fixed θcam
其中,相机位姿的参数描述为θcam={Ri,ti,Ki,si}\theta^{cam}=\{R_i,t_i,K_i,s_i\}θcam={Ri​,ti​,Ki​,si​}。上述的损失度量被定义为:
Li→jrepro=Ljsim(ci→j(p),cj(fi→j(p)))L_{i\rightarrow j}^{repro}=L_j^{sim}(c_{i\rightarrow j}(p),c_j(f_{i\rightarrow j}(p)))Li→jrepro​=Ljsim​(ci→j​(p),cj​(fi→j​(p)))
注意上述的计算是在3维空间上做的,也就是(x,y,z)(x,y,z)(x,y,z)上进行的。对于上述损失的度量文章将其取为:
Lsim(a,b)=Lspatial(a,b)+Lratio(a,b)L^{sim}(a,b)=L^{spatial}(a,b)+L^{ratio}(a,b)Lsim(a,b)=Lspatial(a,b)+Lratio(a,b)
其中spatial上的分量被定义为:
Lspatial(a,b)=∣∣axyzz−bxybz∣∣22L^{spatial}(a,b)=||\frac{a_{xy}}{z_z}-\frac{b_{xy}}{b_z}||_2^2Lspatial(a,b)=∣∣zz​axy​​−bz​bxy​​∣∣22​
ratio上的分量定义为:
Lratio(a,b)=max(az,bz)min(az,bz)−1L^{ratio}(a,b)=\frac{max(a_z,b_z)}{min(a_z,b_z)}-1Lratio(a,b)=min(az​,bz​)max(az​,bz​)​−1

2.3.2 相机位姿估计

文章深度估计与相机位姿估计的优化是交替进行的,为了在相机位姿估计的过程中提升其稳定性(否则结果像图3的(d)图),这里对图片中的深度信息进行了对齐,也就是将图像中的深度划分成网格,不同网格给定不同的scale系数siks_i^ksik​,之后通过样条插值的方式得到对齐之后的结果,也就是描述为下面的方式:
φi(p)=∑kbk(p)sik\varphi_i(p)=\sum_kb_k(p)s_i^kφi​(p)=k∑​bk​(p)sik​
其中,bk(p)b_k(p)bk​(p)是插值的系数。经过上面的深度对齐之后相机的位姿估计得到强化,其得到的结果见图3的(e)图所示。

同时为了增加插值区域的平滑特性,这里增加了一个正则函数用于取惩罚相邻区域(grid)中存在较大值上的差异,其约束形式描述为:
Ldeform=∑i∑(k,r)∈N∣∣sik−sir∣∣22max(wik,wir)L^{deform}=\sum_i\sum_{(k,r)\in N}||s_i^k-s_i^r||_2^2\ max(w_i^k,w_i^r)Ldeform=i∑​(k,r)∈N∑​∣∣sik​−sir​∣∣22​ max(wik​,wir​)
其中,NNN代表的是所有水平和垂直方向的临近顶点。为了增加平滑性上述式子中还增加了加权系数,其计算的过成描述为:
wik=λ1+λ2∑pmidyn(p)bk(p)w_i^k=\lambda_1+\lambda_2\sum_pm_i^{dyn}(p)b_k(p)wik​=λ1​+λ2​p∑​midyn​(p)bk​(p)
其中,λ1=0.1,λ2=10\lambda_1=0.1,\lambda_2=10λ1​=0.1,λ2​=10。

2.4 几何感知的深度滤波

为了提升最后深度图上的高频响应特性文章使用相邻的几个视频帧进行滤波,描述为:
difinal=∑q∈N(p)∑j=i−τi+τzj→i(fˉi→j(q))wi→j(q)d_i^{final}=\sum_{q\in N(p)}\sum_{j=i-\tau}^{i+\tau}z_{j\rightarrow i}(\bar{f}_{i\rightarrow j}(q))w_{i\rightarrow j}(q)difinal​=q∈N(p)∑​j=i−τ∑i+τ​zj→i​(fˉ​i→j​(q))wi→j​(q)
其中,NpN_{p}Np​是像素ppp周边的3∗33*33∗3邻域。τ\tauτ是索取的帧范围。zj→iz_{j\rightarrow i}zj→i​是3D坐标cj→ic_{j\rightarrow i}cj→i​中的深度分量。fˉ\bar{f}fˉ​是对应多个帧的光流累积。wi→j(q)w_{i\rightarrow j}(q)wi→j​(q)是一个加权因子,用以保边并且排除深度边界周围值的影响,其定义形式为:
wi→j(q)=exp(−λfLratio(ci(p),cj→i(fˉi→j(q))))w_{i\rightarrow j}(q)=exp(-\lambda_fL^{ratio}(c_i(p),c_{j\rightarrow i}(\bar{f}_{i\rightarrow j}(q))))wi→j​(q)=exp(−λf​Lratio(ci​(p),cj→i​(fˉ​i→j​(q))))
其中,λf=3\lambda_f=3λf​=3。其改进的效果可以参见下图所示:

3. 实验结果

《Robust Consistent Video Depth Estimation》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. linux命令:find文件查找工具
  2. Nexus安装及配置
  3. 语音识别 | GMM-HMM、DNN-HMM等主流算法及前沿技术
  4. linux进入mongodb数据库命令,MongoDB 常用数据库命令,命令是如何工作的这里
  5. 克罗谈投资策略01_期货交易中的墨菲法则
  6. JS学习总结(8)——数组
  7. MAC下切换多个IP的Shell脚本
  8. HTTPS那些事(二)SSL证书
  9. 天地图2021版正式发布,清晰程度非常了得
  10. 基于SSM的大学生创业众筹平台网站毕业设计源码212000
  11. 跑步听歌用哪种耳机更合适、推荐几款听歌跑步的耳机
  12. SketchUp安装组件失败“.Net FrameWork 4.5.2”的解决办法
  13. 外国人最习惯用的社交软件有哪些?
  14. 阿西莫夫科幻巨著 “基地三部曲”推荐
  15. lte接口流程图_LTE信令流程图(端到端平台)[技术学习]
  16. css系统自带字体_CSS系统字体堆栈参考
  17. python色卡_python matplotlib:plt.scatter() 大小和颜色参数详解
  18. 谷歌浏览器实现多开,单独cookie
  19. 用C++语言实现坦克大战游戏
  20. 2020海信测评几道行测数字找规律题目(不按顺序)

热门文章

  1. 【clickhouse踩坑记录】clusters表中分片副本的浅析
  2. 在浏览器访问action中的方法(动态方法调用)
  3. 论文阅读一《Region Proposal by Guided Anchoring》
  4. 论文阅读:Transformer-Based Neural Network for Answer Selection in Question Answering
  5. “概率模型与计算机视觉” 林达华
  6. unittest框架中使用parameterized模块参数化
  7. 融360叶大清:不关注短期股价变化 希望触达三四线城市年轻人
  8. 学习笔记1——常用的注意力机制(即插即用)
  9. Arcgis使用教程(十)ARCGIS地图制图之颜色样式选择设计与保存
  10. 网易实探瑞幸门店:消费者1.8折买到手软,店员累到流汗