深度估计相关资料

 

转载自: blog.csdn.com/youmibuaa https://blog.csdn.net/youmibuaa/article/details/78703936

Depth

自然户外场景深度值在80米以内,户内深度在0-10米范围内

单目

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深度训练的有监督方法。

链接:

个人理解:

  • 梯度光滑性,这部分一般用视差图的梯度构造就行,但是会出现深度值不连续的问题,所以 视差图梯度 与 像素值 ( 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参数,decoder初始化是用的 Understanding the difficulty of training deep feedforward neural networks 的方法

2017-CVPR-Multi-Scale Continuous CRFs as Sequential Deep Networks for Monocular Depth Estimation

方法:

  • 从一张静态图片获得深度
  • 将多个CNN输出融合
  • 将CRFs平均后积分,一种方法是:级联的多个CRFs,一个是统一的图形模型(unified graphical model)。 
    通过设计 novel CNN 实现 mean-field更新CRFs,可以实现端到端的学习
  • 通过连续CRFs积分multi-layer输出实现融合多个尺度特征。方案一:多个尺度CRFs模型;方案二:级联特定尺度的CRFs。 
    最后利用mean-fields更新连续的CRFs

无监督学习

优点

  • 训练大量的深度图片对,单目深度问题就变成了像素级别的回归问题,CNN很适合用于解决
  • 从多个尺度进行像素分类能够获得更加精确的估计
  • 在CNN后级联CRF能够提高性能,而且CRFs可全微分,所以能够端到端的学习

待续。。。

2017-CVPR-Depth and Motion Network for Learning Monocular Stereo

无监督学习

  • 端到端训练CNN和通过连续的,非限制的图像对计算摄像头位移
  • 由多个编解码器累积,核心是迭代网络能够提升训练效果
  • 网络估计:深度,位移,表面法向量,图片之间的光流,匹配的confidence
  • DeMoN通过学习匹配的概念,所以能够更好的范化训练时未看到的结构
  • 别的网络会因为没有见过相似的结构而不能够很好的范化未见过的类型,而这个网络能够利用位移平行,对新的场景范化很好

待续。。。

2017-ICCV-Weakly Supervised Learning of Deep Metrics for Stereo Reconstruction

2015 33 MC-CNN-WS 3.78 % 10.93 % 4.97 % 100.00 % 1.35 s 1 core 2.5 Ghz + K40 NVIDIA, Lua-Torch

2012 MC-CNN-WS 3.02 % 4.45 % 0.8 px 1.0 px 100.00 % 1.35 s 1 core 2.5 Ghz + K40 NVIDIA, Lua-Torch

方法:

  • 通过粗略的场景和光系统信息,用SGD选择性的优化metrics,用stereo限制规则化预测

贡献:

  • 克服训练集的限制,特别是noisy ground truth
  • 在学习的时候允许使用更多的数据集,前提是避免overfitting
  • 在没有ground truth的情况下,通过微调deep metric可学习到特定的stereo 系统,只需要根据任务进行限制

代码:https://github.com/youmi-zym/mc-cnn-ws

个人理解:

  • 用无标签数据训练,根据数据的自身结构约束,利用动态规划去噪优化
  • 左图作为参考,右图对应的同一水平线的像素标记为正,其他行标记为负.左右图进行匹配是,根据多视立体几何性质,左右匹配的点对应在一条极线上,而且还是相邻的;计算的视差也应该是连续的.具体见下图,其实看懂这个图说的,然后利用动态规划,沿左上到右下优化即可.
  • 但是对最优匹配的微小偏移比较敏感,直白点就是附近相邻值干扰很大,所以用一个mask屏蔽掉相邻相似像素,也就是所谓的contrastive method.

2017-ICCV-Unsupervised Learning of Stereo Matching

问题:

  • 目前的CNN网络都是在某个公共数据集上训练的,现实生活中不能达到相似的效果
  • 数据集size很小,大的数据集都是3D模型合成的
  • 收集各种场景下的高质量数据集是很难的,因为包含3D感知器,例如光探测和测距(LIDAR)

方法:

  • 输入没有ground-truth disparity的经过矫正的左右两张图片,预测dispartity map
  • 用cost-volume branch (CVB)产生cost-volume,用image-feature branch(IFB)提取特征,然后衔接cost-volume and image feature,用joint filtering branch (JFB)处理,最终softmax产生disparity 图

贡献:

  • 网络框架适用于不同的场景,而且效果有保证
  • 没有matching ground truth学习立体匹配
  • 用CNN框架分支学习特定的立体匹配
  • 和其他强监督方案相比,效果相当

个人理解:

这篇论文主要涉及到以下两篇论文: 
1.Computing the Stereo Matching Cost with a Convolutional Neural Network 文末有对这篇论文的个人解读 
2.A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation. In CVPR, 2016

总结:

  • cost-volume branch输入的是左右两张图片,其网络结果只要参考的是上面第一篇论文[1]的网络结构,所以在训练这部分参数的时候是先固定这个网络的其他参数,单独训练这部分,自然其损失函数运用的是论文[1]的loss啦.不过论文[1]是2015 CVPR,当时作者用了著名的半球匹配,左右一致性检查,成本聚合等一系列策略来优化最终的视差图,时过境迁,本文的作者当然要好好优化啦.至于后面的correlation操作,用的是论文[2]的模块,其实一句话解释就是:从两张图片crop下的patch进行对应位置相乘再相加,其本质就是和对图片的卷积操作异曲同工.不过这个操作被GC-Net的作者兔槽了,他是直接左右个的feature map一一衔接,保留了原始的绝对信息.
  • 后来,作者还用了3层卷积,以左右图同时输入,提取了颜色信息,不过最后只输出了单通道的feature map,然后和cost-volume输出的许多通道(64)feature map一一结合,然后交给后面成本聚合模块处理.
  • 本来应该是用一些传统的成本聚合方法,比如Box Filter, Guided Filter,但是作者觉得你模型再好,不如我3层神经网络自己训练出的模型鲁棒,最后也证明确实比传统方法好
  • 最后,对生成的视差图,采取winner-take-all策略,取最大,但是不可导,所以换成soft argmax,加一个指数函数,强行可导

增强:

  • 采用迭代的策略,对于第t次迭代,以左图为参考,借助右图生成视差图1;同理,以右图为参考,借助左图生成视差图.(这里解释一下,以左图为参考,取位置x,那么(x-d)对应右图中的对应点,在smooth或成本聚合时,我们一般会根据左右图的强度,颜色等信息进行对比计算,所以这个以哪个图为参考很重要)
  • 利用上面的生成的视差图1,2;计算自信度匹配(这里运用的是左右一致性原理,利用一个前向转换函数转化右视差图,然后和左视差图取绝对值,如果大于门限为1,否则为0),然后选出自信度好的点用来更新整个网络的参数.实验表明,迭代次数越多,自信度map越好,选择的点也越来越多;和ground truth对比,其自信度准确率为96%.

成本聚合网络后续处理:

  • 先左右一致性检查,对于不连续的区域,就是很可能是遮挡区域occlusion,插值处理;然后再用半径为7的加权中值滤波器处理

和别的方法比较:

  • 在特征成面上处理,而不是Idensity层面,所以不受相机和自然光照影响(感觉这个牛逼吹大发了,毕竟特征是从Idensity上处理出来的)
  • 对遮挡部分的处理,别的方法都需要对occlusion进行妥协处理;作者的方法是通过上面的增强技术,所以直接忽视掉了,其实说白了就是对occlusion直接扔了,无视,不处理
  • 可拓展到有监督方法,和有监督有的一比

2017-ICCV-Unsupervised Adaptation for Deep Stereo

方法:

  • 无监督更新方法能够在没有gruound-truth的情况下可以fine-tune网络
  • fine-tune一个深度立体模型通过被confidence measure认为高度可信的标准立体模型提供的视差
  • 引入smoooth惩罚临近空间坐标中不相似的预测,从high confidence 位置 预测 low confidence 位置
  • 测试数据集KITTI datasets,Middlebury 2014,评估更新能力和范化到新数据的能力
  • https://github.com/CVLAB-Unibo/ Unsupervised-Adaptation-for-Deep-Stereo

无监督:

  • 端到端回归密集的视差图
  • 网络在现实和不同环境效果良好

 有监督:

  • 缺点:occlusion,texture-less, photomettic distortion

个人理解:

总结:

  • 总的结构是:AD-CENSUS and SGM 作为经典立体算法,结合CCCN自信度估计器,提供稀疏的深度值作为神经网络DispNet-Corr1D 的ground truth 进行训练
  • 效果:平衡参数delta为0.99时,有22.7%的像素点深度值获得,且99.65%和ground truth相等.从获得深度图看,ground truth深度图没有作者的效果好

细评:

  • 加入传统立体算法和可靠的自信度测量,loss=Confidence Guided Loss + lamda * Smoothing Term
  • DispNet 用合成的25000图片对,每个像素都有有效的视差标记;然后用小数量的图片对,包含很稀疏的深度标记(200张KITTI2012训练集,只有一些像素具有有效的视差值)
  • 如果直接用SGM或者ADCENSUS经典立体算法计算视差值,然后作为ground truth进行训练,会因为经典算法计算的视差值有些不够正确而导致后续训练变得没有意义
  • 而通过引入Confidence Guided Loss,如下,T作为超参用来平衡经典立体算法提取的视差测量值的 稀疏性和可靠性,T越大,错误的视差值用来后续训练的概率也就越低了 
    这里写图片描述
  • 引入Smoothness Term惩罚相邻空间视差值相差比较大的部分,如下公式起始也很常见,相邻半径delta和距离函数D都是作为超参.通过调和Smoothness Term and Confidence Guided Loss ,能够让稀疏的视差值很好的传播到全局 
    这里写图片描述

2016-CVPR-A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation

2015 25 DispNetC code 4.32 % 4.41 % 4.34 % 100.00 % 0.06 s Nvidia GTX Titan X (Caffe)

不需要 ground-truth CNN 先驱

方法:

  • DispNet:image pair 端到端训练回归密集深度测量
  • 网络在大量合成数据上训练,然后再在少量真实图片上训练
  • 缺点:在数据跟新时,因为缺乏ground-truth来fine-tune, 性能大幅度恶化

2016-CVPR-Monocular Depth Estimation Using Neural Regression Forest

方法:

  • 从单张图片用NRF(neural regression Forest,结合随机森林和CNN)估计深度。
  • 从图片中提取的扫描窗作为样本沿着NRF树下传得到深度,每个树节点用CNN filtering 出一个伯努利概率传给左右子树,直到叶子节点计算深度

结果:

  • 计算每个像素点的连续深度图
  • 通过regression Forest预测连续的深度域
  • 增强了smoothness of depth
  • 结果在benchmark Make3D and NYUv2 datasets 达到 state of the arts

问题:

  • 3D场景中的物体在2D图片中是重叠的,典型的户内户外场景中的深度值一般在莫个值出现峰值,因此训练的集合中可能刚好缺失某个深度值,而测试集中出现了。对应的解决方法一般是通过graphical models增强smoothness,并且考虑空间环境(spatial context)
  • CNN训练需要大量的数据,而且在某个深度值上可能没有足够的样本

待续。。。


2015-ICCV-Monocular Object Instance Segmentation and Depth Ordering With CNNs

方法:

  • 利用 CNN 预测 Instance-level 的分割,instance ID 编码了深度级数(depth ordering)
  • To provide a coherent single explanation of an image we develop a Markov random field 
    which takes as input the predictions of convolutional neural nets applied at overlapping patches of different resolutions, as well as the output of a connected component algorithm
  • 预测确却的像素标记,还有depth ordering。难点有把像素级的标记聚集为一个物体,从单张图片获得深度也很难
  • 在自动驾驶场景中处理,并重点关注车,阴影,反射,饱和度都是挑战。而MRF(Markov Random Field)被用来解决这些问题的前提是CNN的精确分割,利用多个CNN输出分辨率:密集采用image patches,然后基于pathc预测depth-ordered 标签,然后通过MRF结合预测最后的标记。
  • 训练过程中使用3D信息(3D bounding box and stereo)
  • 使用KITTI检测效果和精度

愿景

  • 识别技术应该更详细的分析场景,比如确却分割物体并标记一个物体实例,还有3D信息。运用有辅助驾驶,基于3D场景的image caption

待续。。。


2015-CVPR-Depth and Surface Normal Estimation From Monocular Images Using Regression on Deep Features and Hierarchical CRFs

方法:

  • DCNN + CRF
  • 不需要提前编码任何几何假设(通过训练大量的数据,可以得出许多几何关系)
  • 通过提前训练的CNN super-pixel级别的特征,减少计算;在smooth时能够保留细节
  • 通过 deep 特征 实现 深度回归,通过启发性CRF实现深度优化(refining)
  • 深度网络把深度估计问题变成回归问题,提取多尺度特征,训练回归器(第一次有人这么做)
  • 为增强regressor估计,引入启发性连续CRF,从super-pixel水平增强深度估计到pixel水平
  • 测试集为Make3D and NYU Depth V2 datasets

无监督

缺点:

  • 单个图像本身并不明确地提供任何深度提示(即,给定场景的彩色图像,具有无限数量的3D场景结构来准确解释2D测量)。但是可以利用几何假设,比如SfS,这些线索在某种情况好使,但是一般化就不行了

待续。。。

2015-CVPR-Deep Convolutional Neural Fields for Depth Estimation From a Single Image

方法:

  • 因为深度值的连续性特点,所以可用连续CRF来公式化学习
  • 在不需要先验几何知识和额外的其他信息情况下,可以计算一般场景的深度信息

贡献:

  • CNN+continuous CRF,利用深度的连续性,概率密度函数可以解析积分,直接求解log-likelihood optimization。因为存在闭环解,所以可以高效的计算MAP问题
  • 在统一的deep CNN框架下,交织的学习一元,二元势函数
  • state of the arts

无监督:

  • 无参数情况:包括候选图像检索,场景对齐,然后使用平滑约束进行优化。这种方法的前提是图片的语义信息相似,深度分布相似,数据量大

参考

  • T. Qin, T.-Y. Liu, X.-D. Zhang, D.-S. Wang, and H. Li, “Global ranking using continuous conditional random fields,” in Proc. Adv. Neural Inf. Process. Syst., 2008. 1, 4 一文中,首次提出用CRFs来解决regression问题,这里解决的是文档检索全局排序问题,在某种约束下,可以解决maximum likelihood optimization

待续。。。

2014-ECCV-Precision-Recall-Classification Evaluation Framework: Application to Depth Estimation on Single Images

方法:

  • low level cue: 凸的区域是封闭的;在T交叉中,形成最大角度的区域是遮挡区域;检测到的轮廓的凸度( gPb algorithm);计算一个像素对不同图像块的所有权概率
  • 提出 precision recall-classification(PRC)框架,能够提供轮廓检测和深度斜率分类(depth gradient classification)
  • 主体思路是把检测任务和分类问题集合到一个评估框架。
  • 贡献是发布了一个新的标记数据集:BSDS500 Dataset,包含depth order ground-truth (available at http://imatge.upc.edu)

待续。。。

双目

难度:

  • textureless areas(条纹少), reflective surfaces(反射性表面),thin structures(细微的结构) and repetitive patterns(重复的模式)
  • 在smoothing 表面和检测细微结构难以平衡

 深度学习:

  • 从原始数据能够学习到强大的表现力,比如目标分类,检测和语义分割

2017-arxiv-Cascade Residual Learning: A Two-stage Convolutional Neural Network for Stereo Matching

2015 3 CRL code 2.48 % 3.59 % 2.67 % 100.00 % 0.47 s Nvidia GTX 1080

方法:

  • cascade residual learning (CRL)
  • 级联CNN框架:首先在DDispNet上装备up-convolution module,视差图细节更加丰富;第二阶段,矫正得到的视差,得到与第一阶段多个尺度的残差信号
  • 残差学习提供一个更高效的矫正,学习residual signal 比直接学习disparity快,和res-net相似

2017-ICCV-End-To-End Learning of Geometry and Context for Deep Stereo Regression

2015 4 GC-NET 2.21 % 6.16 % 2.87 % 100.00 % 0.9 s Nvidia GTX Titan X

2012 2 GC-NET 1.77 % 2.30 % 0.6 px 0.7 px 100.00 % 0.9 s Nvidia GTX Titan X

方法:

  • 立体回归模型端到端学习,理解更广泛的背景
  • semiglobal block matching and left-right consistency checks
  • 从单个矫正图片pair端到端深度学习每个像素的视差,使用ground truth depth data
  • 用cost volume 学习几何,用深度卷积网络学习语义:衔接两张图片对应视差水平的特征,构造height×width×(max disparity+ 1)×feature size 的4D volume.比subtracting features或使用距离度量的性能有所提升
  • 从原始数据截取信息,利用3-D卷积(在height×width×disparity dimensions)学习过滤 cost volume; 用softmin 从cost volume 视差回归 sub-pixel 视差值
  • GC-Net (Geometry and Context Network)
  • Scene Flow and KITTI datasets

待续...

2017-CVPR-Improved Stereo Matching With Constant Highway Networks and Reflective Confidence Learning

2015 11 L-ResMatch code 2.72 % 6.95 % 3.42 % 100.00 % 48 s 1 core @ 2.5 Ghz (C/C++)

2012 6 L-ResMatch code 2.27 % 3.40 % 0.7 px 1.0 px 100.00 % 48 s Titan X (Torch7, CUDA)

方法:

  • Highway network根据多级加权residual shortcuts计算每个可能视差的匹配成本,并通过混合损失进行训练,支持图像块的多级比较.
  • 第二个DCNN(deep)对多个视差pooling全局信息,输出图像视差图(取代“winner takes all” strategy)和对预测结果的confidence.confidence score是由reflective loss来训练的
  • 最后用confidence score来检测outliers,学习confidence的方法是目前最佳的方法
  • 引入highway network with 多个 skip-connection 和固定为常数的 一个门信号 
    *

2016-CVPR-Efficient Deep Learning for Stereo Matching

2015 29 Content-CNN 3.73 % 8.58 % 4.54 % 100.00 % 1 s Nvidia GTX Titan X (Torch)

2012 24 Content-CNN 3.07 % 4.29 % 0.8 px 1.0 px 100.00 % 0.7 s Nvidia GTX Titan X (Torch)

方法:

其他方法:

  • 从局部匹配聚集信息,比如cost aggregation 在局部相邻区域平均话视差估计;semi-global block matching和 MRF(Markov random filed)结合元素间的预测和局部smoothness到一个能量函数;这些都只是一个特征的线性组合

待续...

2016-CVPR-Coordinating Multiple Disparity Proposals for Stereo Computation

方法:

  • 为解决大量textureless regions问题,基于分割,对相对和绝对disparity生成多个Proposals,因而相对距离远的相关视差能够编码大的结构,对处理大textureless regions至关重要
  • 2014 Middlebury and KITTI 2015 stereo benchmark
  • 利用MRF模型非局部连接,点对竞争指只用绝对视差(经过surface models加强的初始化视差值)来抑制outliers,利用点对合作来投票相邻的视差值,可以很好的分辨人工边界
  • 用1D动态规划来更新不同步长的SGM算法,能够更好的保留长距离连接

贡献:

  • 用3D surfaces生成多个视差Proposals,绝对视差实现很好的点对估计,相对视差反映3D结构
  • 用Coordinating scheme解调多个视差proposals;用1D动态规划在不同步长优化非局部连接MRF

2015-CVPR-Computing the Stereo Matching Cost With a Convolutional Neural Network

总结:

  • 立体匹配成本由交叉成本聚合(cross-based cost aggression),半球匹配(semiglobal matching),左右一致性检测优化

细评:

数据集来源:

  • 从左右两张图片中crop 9*9的patch,左图位置x,右图是(x-d+neg)和(x-d+pos),生成正负两种样本,也就是每个位置都生成9*9的patch

网络结构:

  • 8层, L1-L7每一层后面都有ReLU层, L8后面没有ReLU
  • L1为5*5的卷积层,L2,L3为200维的全连接层,左右图片都有上述3层,所以L3之后通过拼接左右处理后的feature map 是400维的.这三层对图片中的每个位置,每个深度都要进行一次处理;为了让后面的层直接对整个图片大小处理而不是9*9,L2可以替换为5*5*32的的卷积层, L3用1*1*200的卷积层.在更新L4-L8的权重时,L1-L3的权重是固定的
  • L4-L7包含300个神经元,都是全链接层.同L2-L3为了对整个图像每个位置计算,可以替换为1*1的卷积层
  • L8将输入投影为2个实数到softmax,产生good match and bad match 的分布

成本聚合:

cross-based cost aggregation

  • 对相邻距离小于n, 且亮度值( Intensity)差异小于t的上下左右四个方向的点都算为邻居点,并计算其cost-match(只计算输出为负类的patch),迭代4次

Semiglobal matching

*能力函数公式如下,第一项惩罚高的匹配成本;第二项惩罚视差为1的点,权值为P1;第三项惩罚视差大于1的点,权值为P2 
这里写图片描述
* 能力函数沿着单个方向用动态规划进行最小化,而不是整个图;但是容易产生条纹,所以在上下左右四个方向进行优化(再添加方向对结果影响不大),然后定义matching cost 如下: 
这里写图片描述

计算视差图

  • 以左图为参考,那么x就是左图中点的位置,(x-d+neg)和(x-d+pos)为右图中对应点的位置,生成左视差图DL; 同理,以右图为参考,生成右视差图DR,然后进行左右一直性检查.插值过程:对于occlusion,往左找直到correct; 对于mismatch,往16个方向找,直到correct,然后取平均 
    这里写图片描述
  • 当然后面还有利用视差值相差为正负1的点进行subpixel enhancement的优化;对于边界,用中值滤波器和双边滤波器利用相邻元素进行插值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值