cvpr 深度估计_无监督单目视频深度估计中的uncertainty方法(CVPR#x27;20)

news/2024/7/7 22:50:42

e6186807ad0e4ea18360d3f098adffe5.png

Contribution

  1. 对11种使用uncertainty方法的全面评估
  2. 深度挖掘uncertainty对depth estimation起到的作用
  3. 提出一个新颖的self-teaching方法去model uncertainty

文中使用的uncertainty estimation分为两个类别:empirical uncertainty estimation和predictive uncertainty estimation,empirical的做法基本都是得到N个model得到N个输出,然后计算均值和方差;而predictive呢则是直接预测出uncertainty,下面分别介绍。

Empirical uncertainty estimation

Dropout Sampling

大概就是训练的时候层与层之间的连接以p的概率随机drop防止过拟合,测试的时候也去drop,一个forward跑N次就可以得到N个不同的model了,然后就可以计算model输出值的均值和方差了:

a2b1ace86997ebe9ac26a3e6d0a2a6ea.png

Bootstrapped Ensemble

这个方法就是从数据集种sample出N个subset,用同样的网络结构在不同的subset上分别训练,得到N个model,然后计算均值和方差。

Snapshot Ensemble

snapshot的做法是在一次training中通过使用cyclic learning rate schedules去得到C个model,然后再从C个model中选N个,这样做是否靠谱就不得而知了。

Predictive estimation

Learned Reprojection

b09f53b0d3502993ac8b993ef64d4795.png

很朴素的想法,让网络尽可能的去预测

使的它最终的投影loss差不多大,这样网络就能学习到影响自身模型的因素,比如低纹理、遮挡等违反光度一致性的因素。用这个uncertainty的话最后的loss应该还要加上F吧,不然没法让投影误差最小。

Log-Likelihood Maximization

另一种预测uncertainty的方法是采用极大对数似然的思路,可以采用拉普拉斯分布来得到似然,这个似然函数在

的时候取得极大值,而对
的要求是越小越好,这个地方挺奇怪的...

202f2c150def4f6ddcfa6df9893b1c2c.png

对应得到的负对数似然loss就是:

5e0373f8da417b48fabf5f2d427452e8.png

考虑到不能直接得到重建深度,只能用像素值来代替:

c9ea5e41f9279559853e21dd1a412652.png

当然除了拉普拉斯分布,还可以选用其他的分布比如高斯分布。

作者认为这种方式因为使用的是像素之间的重建误差,而在单目深度预测里面这个重建误差包含了depth和pose两项,所以网络估计的uncertainty也会包含这两项,最终得到的uncertainty会多包含pose uncertainty的信息,可能是个sub-optimal解。

Self-Teaching

所以为了直接对depth的uncertainty进行建模,作者采用了teacher-student framework,设计了两个结构相同的网络

,最终得到的关于uncertainty的loss如下:

6c5f86fcddf29ab0f58e94a7b2ffb607.png

估计训练流程是先训练teacher network,用Photometric loss去更新参数,然后student network使用

和photometric loss共同构建最后的loss。

效果

66c11f45de389d7457b6b641ee2ae43f.png

感觉效果提升微乎其微,不过work确实make sense。

总结

  1. 提出了使用uncertainty的新方法, self-teaching,思路是make sense的,然而效果提升不大。
  2. 从文中给出的example来看网络输出的uncertainty比较大的地方主要是边缘或者说不同纹理之间有尖锐变化的区域,这些地方很容易不满足光度一致性的条件,而uncertainty的方法会降低这些区域的loss,但这也会导致网络一直无法学习到边缘这种很难匹配的地方,如果能有一种方法可以提高边缘点的匹配准确度应该会有比较大的效果提升。
  3. 有一种可能性是尽可能利用空间信息,现有的网络架构因为降采样等等必然会丢失边缘的细节信息,导致很难匹配,网络也很难在这些点学到东西,packnet-sfm可能是个很好的证明。

http://lihuaxi.xjx100.cn/news/241558.html

相关文章

呼叫中心最难的问题是什么?

曾经和几个做呼叫中心的领导们交流,问呼叫中心的最最老大难的问题是什么?想了想,我个人认为是:坐席代表不清楚领导每天在想什么,领导把握不了员工的思想与行为。 某呼叫中心近800坐席,其中,直接…

editor修改样式 vue_vue+element-ui项目搭建实战

1.使用vue ui创建vue工程利用vue-cli提供的图形化工具快速搭建vue工程:命令行运行:vue ui工程结构说明build:项目构建webpack(打包器)相关代码config:配置目录,包括端口号等node_modules:npm加载的项目依赖…

leangoo V5.4.2版上线

本次更新增加了“卡片编辑面板内显示成员、截止日期、工作量”的功能。同时我们也进行了大量的功能优化,以下是此次更新详情: 1. 新增“卡片编辑面板内显示成员、截止日期、工作量”功能 本次更新后 ,您在卡片编辑面板内添加成员,…

view和viewGroup

viewgroup在这里相当于容器,整幅图类似组合模式。 常见view: TextView Button EditText ImageView 常见布局ViewGroup: 线性布局LinearLayout 相对布局RelativeLayout 帧布局FrameLayout 独立于上述两者的空间 对话框Dialog Toast view的继承关系

eslint 换行_javascript – 预期的换行符为“LF”,但在Eslint中使用gulp找到“CRLF”换行符...

当在gulp项目中使用eslint时,我遇到了像这样的错误的问题.预期的linebreaks为’LF’,但是发现’CRLF’linebreak-style,我正在使用Windows环境运行gulp,并且下面给出了整个错误日志Kiran (master *) Lesson 4 $gulp:17:08] Using gulpfile c:\Users\Sai\Desktop\web-build-tool…

《树莓派Python编程指南》—— 1.3 树莓派快速指南

本节书摘来自华章计算机《树莓派Python编程指南》一书中的第1章,第1.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.3 树莓派快速指南 本书主要面向编程方向,而…

成本估算和成本预算6个方面的对比

关系上 项目成本管理分为四个过程:项目资源计划、成本估算、成本预算和成本控制。 成本估算发生在成本预算之前,它是成本预算的依据。成本预算的输入中就包含成本估算的输出之一:成本估算文件。 粒度上 成本估算是在WBS的顶级进行,是对完成…

dis的前缀单词有哪些_玩转英语词汇--词汇积累策略之前缀dis

拇指英语说,分享英语学习心得,技巧和方法。让英语学习变得更有趣,更简单。在英语学习中,词汇量的大小是衡量英语水平的重要标志。通常词汇量越大,运用英语的能力就越强,反之亦然。许多英语偏弱的学生将词汇…