Depth
自然户外场景深度值在80米以内,户内深度在0-10米范围内
本文是初入研究生生活时写的,仍显得有些稚嫩,故将于近期更新。
另推荐个人最新发表的论文:
2020-AAAI-Adaptive Unimodal Cost Volume Filtering for Deep Stereo Matching
单目
2017-CVPR-Unsupervised Monocular Depth Estimation With Left-Right Consistency
相似工作:
- 不是完全的可以微分的,使得训练不是最优的
- 不能图像构成模型不能放大到大的输出分辨率
方法:
- 在训练时把自动深度看成一个图像重建的问题。作者用的全卷积网络不需要深度数据,而是用合成深度作为一个中间产物。网络学习预测像素级的相关(校正之后的双目图像之间有一个baseline)
贡献:
- 一个网络用一个新颖的损失函数(网络表达左右深度一致性)完成了一个端对端的无监督单目深度估计。
- 一些评估的图像训练损失和图像结构模型说明作者方法的高效
- 除了展示的驾驶的数据集上完成state-of-the-art,作者也用这个模型泛化到三个不同的数据集上,包括一个室外城市数据(自己采集的)。
效果:
- 在512 * 256的图上估计一个稠密的深度图只用35ms在GPU上
- 作者的方法在KITTI数据集的单目深度估计上达到了state-of-the-art,超过用ground-truth深度训练的有监督方法。
链接:
- https://zhuanlan.zhihu.com/p/29528596
- 代码:https://github.com/mrharicot/monodepth
个人理解:
- 梯度光滑性,这部分一般用视差图的梯度构造就行,但是会出现深度值不连续的问题,所以 视差图梯度 与 像素值 ( I ) 梯度的指数函数作为权重相乘,得到的连续性效果的确很好
- 从获取4个分辨率角度去除图片中物体大小对深度图的影响,并且发现同时优化4个尺度分辨率,且loss权重一致能更快更稳定收敛,BN层的加入效果不明显
- 用exponential linear units激活函数替代relu,因为relu会使得梯度在过早的在分辨率的某个中间尺度收敛,对随后的提升不利
- 还有就是左右一致性检查了,一般的左右一致性是利用左右图拍摄角度不同来圆润视差图,而本篇论文的亮点在于利用网络生成的左右视差图,生成 以左视图为主,利用右视图为参考,生成(从左到右的视差图),然后与右视差图相差得到loss
- 对于让生成的图片和原始图片尽可能相似,作者的思路是计算生成的图片和原始图片像素(I)值之间的差别 以及 SSIM特征(计算图像结构相似性,亮度(均值),对比度(方差)等)
- 加入了数据增强和color augmentation策略
- 作者为了减少视差图左边缘误差大的影响(可视化仅由左图生成的视差图,可以发现左边沿5%左右的宽度内误差很大)把左图水平翻转后跑视差图,然后平均结果,控制5%的部分技巧也挺好的,linspace(0,1,w)生成从0到1的w个等差数列,然后5%等价于上述数列小于0.05的部分
缺点:
- 当从kitti移植到Cityscapes数据集的时候,效果并不好,和摄像机矫正系数有关,也说明自适应不同数据集能力不是很强吧,虽然他后面有范化到Make3D,CamVid driving dataset和自己拍摄的60000张图片 数据集的比较,效果也算客观吧.
- 仍然依靠矫正的双目图片,光单张图片是恢复不了深度;单张图片可以用来finetune
- 反射或透明表面效果很差,或许随机相似度测量有用
2017-CVPR-Semi-Supervised Deep Learning for Monocular Depth Map Prediction
半监督学习
- 使用稀疏的带有 ground-truth 深度的图片进行监督训练
- 无监督图片联合训练获得深度图,用直接图片联合损失(direct image alignment loss)产生 photoconsistent dense depth maps
- 基于res-net和编解码架构及 long skip connections,利用在imagenet分类任务预训练的编码器权重和少量的监督信息,网络收敛很快,而且简化了无监督训练。例如,在其他无监督学习网络中,coarse-to-fine image alignment loss 并不需要
监督学习
- 缺乏足够的训练数据,需要大量的训练数据
- 户内(active RGB-D cameras),户外(3D laser scanners),
- 仪器带有自身误差,当使用3D laser 时,获得的深度比图片稀疏,并且不能捕捉high detail depth variations visible in
the images - 需要精确的内参外参
- 虽然可以合成深度图,但是不能真实的展示场景,也不包含真实图片中包含的噪声
无监督学习
缺点
- 户外环境无法实时动态地确定真实深度
- 需要获得先验知识(typical appearance, layout and size of objects 及 shape from shading
or focus) - 基于图像匹配(image matching)的立体深度重建本身就是一个不适合的问题
- 在单目深度上施加先验深度,如小的深度梯度范化
个人理解:
总结:
- 这篇论文是 有监督学习+编解码网络进行无监督学习 的经典论文,下图已经能够非常明确的说明其具体结构了:第一个成分是 稀疏的ground-truth和预测深度值的差值; 第二成分是 左深度图+右原图=生成左图,然后和源左图的Identity的差值; 第三部分是 泛化损失,因为smooth操作一般都使得深度图很光滑,Identity方差一般都很小,这样的坏处是物体轮廓不够明显,所以对Identity和depth图都做了水平和垂直方向的导数
细评:
- 本文的左右图片一致性检查是通过利用深度图和相机参数通过公式进行计算,和mono-depth(即博客第一篇论文)直接利用神经网络在深度图的基础上通过双插值获得生成图片方式有些不一样;效果方法有待比较,不过感觉神经网络自学的模型会比传统方法好一点
- 有监督损失用了BerHu而不是L2进行正则化,作者实验后得出结论说L2正则化对验证集效果更好,测试集效果反而更差,而且噪声多;BerHu在测试集上的效果更好
- 无监督损失方法,对Identity进行了高斯滤波,作者推测是去除了噪声
- 编解码网络,encoder是用ImageNet分类任务训练的res-50参数