利用光场进行深度图估计(Depth Estimation)算法之二——匹配算法
光场相机由于能够捕获相机内部光线的强度和方向而得到整个光场,可以实现重聚焦(refocus)和视角变换等功能。进而可以进行深度估计获取深度图,前面说过利用重聚焦的图像进行深度估计,今天说一下利用不同视角的图像进行深度估计。
仍然是以Lytro Illum为例
由于每一个微透镜后面的15*15个像素能够记录来自主镜头的225条光线信息,因此取每一个微透镜后面同一位置的像素可以得到一个视角下的图像,遍历15*15个像素,就能够得到225个不同视角下的图像。这些图像之间视角上又偏移,即视差,可以使用匹配的方法进行深度的计算。还是以Tao的文献里的算法来说,这次说的是correspondence,就是各个视角下图像的匹配关系。
Tao的算法里是利用整个传感器获得的光场图像进行计算的,图像尺寸为8115*6510(单个视角下的图像尺寸为541*434,也就是微透镜的个数)。只要能够理解坐标之间的关系,这样就不用提取每一个视角的图像了。
先贴一下源文献里的介绍:主要就是这两个公式(4)和(5),并不复杂。

算法过程如下:
1.重聚焦过程中获取不同像平面下的传感器图像(光场图像8115*6510),一共256幅。
2.对每一幅光场图像,取每一个微透镜后面对应15*15个像素的平均值,然后在窗口内求出方差。这样可以得到一幅方差图(图像尺寸541*434),为了增加鲁棒性,会对方差图做一个均值滤波的操作得到匹配代价图。
3.方差作为匹配代价,针对每一个宏像素点处,遍历所有的匹配代价图,去方差最小的那一幅,记录其索引值(0~255)。
4.根据索引值找到对应的alpha值,从而得到像距V=alpha*F。
5.根据物象公式1/U +1/V = 1/F 就可以求得该像素点处的深度。
博主之前做过双目立体匹配获取视差图(stereo matching),感觉这个匹配的过程有点儿古怪,和stereo matching 不太一样。后来细想,其实还是相通的,只不过融合了refocus后,求深度的过程就简单化了。求方差的过程其实就是计算matching cost ,在微透镜后的窗口内计算方差就是对每一个视角与平均值average进行匹配。而大家知道,重聚焦其实就是shift-sum-average过程,如果微透镜后面的像素点值越接近,那么shift-sum-average后的点就越清晰,否则就会越模糊。方差就能够体现这一重要特性。方差越小,说明该点是重聚焦后所有图像对应位置最清晰的点,也就是在对焦的平面上,这样其实就由转化为了看哪一点最清晰的问题了,和defocus模糊线索殊途同归。
该文献中最后利用马尔科夫随机场MRF对这两种深度图进行了全局优化,目前还没有完全理解,以后理解了再写出来。
现在模糊线索和视差线索都介绍完了,纯属自己看文献和代码的理解,如有错误的地方,还望不吝指教~~~
参考文献
[1] Tao M W, Hadap S, Malik J, et al. Depth from combining defocus and correspondence using light-field cameras[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 673-680.
[2] 杨德刚, 肖照林, 杨恒, 等. 基于光场分析的多线索融合深度估计方法[J]. 计算机学报, 2015, 38(12): 002437-2449.
利用光场进行深度图估计(Depth Estimation)算法之二——匹配算法的更多相关文章
- 利用光场进行深度图估计(Depth Estimation)算法之一——聚焦算法
前面几篇博客主要说了光场相机,光场相机由于能够记录相机内部整个光场,可以实现重聚焦(模糊线索)和不同视角的变换(视差线索),同时也可以利用这个特性进行深度估计(Depth Estimation). 先 ...
- 泡泡一分钟:Towards real-time unsupervised monocular depth estimation on CPU
Towards real-time unsupervised monocular depth estimation on CPU Matteo Poggi , Filippo Aleotti , Fa ...
- 【HEVC帧间预测论文】P1.9 Coding Tree Depth Estimation for Complexity Reduction of HEVC
Coding Tree Depth Estimation for Complexity Reduction of HEVC <HEVC标准介绍.HEVC帧间预测论文笔记>系列博客,目录见: ...
- deep learning+ Depth Estimation
Depth estimation/stereo matching/optical flow @CVPR 2017 Unsupervised Learning of Depth and Ego-Moti ...
- 萌新笔记——Cardinality Estimation算法学习(一)(了解基数计算的基本概念及回顾求字符串中不重复元素的个数的问题)
最近在菜鸟教程上自学redis.看到Redis HyperLogLog的时候,对"基数"以及其它一些没接触过(或者是忘了)的东西产生了好奇. 于是就去搜了"HyperLo ...
- Cardinality Estimation算法学习(一)(了解基数计算的基本概念及回顾求字符串中不重复元素的个数的问题)
最近在菜鸟教程上自学redis.看到Redis HyperLogLog的时候,对“基数”以及其它一些没接触过(或者是忘了)的东西产生了好奇. 于是就去搜了“HyperLogLog”,从而引出了Card ...
- [转帖]利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞
利用nginx实现负载均衡 | 哈希算法,sticky模块实现session粘滞 2018年08月02日 10:06:03 Minza 阅读数 483 https://blog.csdn.net/ha ...
- 算法(二)之遗传算法(SGA)
算法(二)之遗传算法(SGA) 遗传算法(Genetic Algorithm)又叫基因进化算法或进化算法,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,属于启发式搜索算法一种. 下面通过下 ...
- 隐马尔可夫模型HMM与维特比Veterbi算法(二)
隐马尔可夫模型HMM与维特比Veterbi算法(二) 主要内容: 前向算法(Forward Algorithm) 穷举搜索( Exhaustive search for solution) 使用递归降 ...
随机推荐
- Qt创建停靠悬浮窗口
1.Qt实现窗口停靠和悬浮使用类QDockWidget,它有两个重要方法用来设置停靠特性以及停靠区域, dw1->setFeatures(QDockWidget::DockWidgetMovab ...
- 基于web的网上书城系统开发-----需求分析
网上书店管理系统主要针对中小型书店,图书管理员将图书信息整理归类发布到网上.,用户登录该网站后进行浏览图书信息.购买等活动. 前台客户输入的数据交给后台数据库处理并及时反馈给双方.客户和管理者拥有相应 ...
- JS 详解 Cookie、 LocalStorage 与 SessionStorage
基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到"记住密码&qu ...
- 通俗易懂的信息熵与信息增益(IE, Information Entropy; IG, Information Gain)
信息熵与信息增益(IE, Information Entropy; IG, Information Gain) 信息增益是机器学习中特征选择的关键指标,而学习信息增益前,需要先了解信息熵和条件熵这两个 ...
- ajax介绍及使用
一.什么是ajax:(只刷新局部页面的技术) AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发 ...
- AVFoundation 框架初探究(二)
接着第一篇总结 系列第一篇地址:AVFoundation 框架初探究(一) 在第一篇的文章中,我们总结了主要有下面几个点的知识: 1.对AVFoundation框架整体的一个认识 2.AVSpeech ...
- windows 多任务与进程
多任务,进程与线程的简单说明 多任务的本质就是并行计算,它能够利用至少2处理器相互协调,同时计算同一个任务的不同部分,从而提高求解速度,或者求解单机无法求解的大规模问题.以前的分布式计算正是利用这点, ...
- JAVA中的按值传递
Java中只有按值传递,没有按引用传递! 方法参数共有两种类型: 基本数据类型 对象引用 一:基本数据类型 首先看一个小例子: package chuandi; public class Test1 ...
- oracle之 dblink 报ORA-03113 TNS-12543
-- 客户端使用含 dblink sql报错( 症状:当数据库使用dblink访问其他数据库时,第一次执行某条dblink sql大多数情况下可以成功,偶尔执行一段时间后报错.如果该会话空闲二十分钟以 ...
- mydumper
Mydumper介绍 Mydumper是一个针对MySQL和Drizzle的高性能多线程备份和恢复工具.开发人员主要来自MySQL,Facebook,SkySQL公司.目前已经在一些线上使用了Mydu ...