基于SPO 和立体匹配的深度估计算法
2020-05-20陈思宇
陈思宇
(四川大学计算机学院,成都 610065)
0 引言
光场成像与传统成像相比,其主要优势体现在:①任意深度的图像都可以通过对光场数据进行计算来获取,同样的消除了孔径大小对于景深的限制;②在积分成像之前对光福射的相位误差进行校正,能够解除几何像差对于成像结果的影响;③由于光场图像在收集过程中采集了光线的角度信息,所以蕴含了能够计算成像物体的光谱图像数据和三维形态信息。光场成像相比传统成像是一种计算成像技术,其利用目前先进的数据分析和处理能力的优势,不光降低了成像对于硬件性能的需求,而且还克服了许多传统成像技术的局限性。
随着商用光场相机的出现,光场图像处理渐渐成为计算机视觉方向非常流行的研究主题。原始光场相机图像可以解码为子孔径图像的规则阵列,即从稍微不同的视点来看同一场景的多视角图像。光场图像也可以用于合成生成密集的焦点堆栈。在后期处理中,光场图像可用于克服许多挑战,例如场景结构推断、图像重聚焦和新的视图合成,这些是传统2D 或立体图像难以解决的问题。深度估计作为光场处理的基本问题,成为了光场处理的研究热点。
1 相关工作
深度估计可以应用于三维重建、图像超分辨、抗遮挡和重聚焦等方面。光场图像深度估计算法主要分为EPI、立体匹配、散焦及融合和机器学习等方法。目前,国内外对于光场图像深度估计有了一些进展。
Jeon 等人的方法首先使用相移理论在频域上进行位移,然后构建一个匹配代价函数,随后对于该代价函数利用边缘保持滤波器进行损失聚合,得到优化后的代价量。紧接着建立了一个多标签优化模型以及迭代优化模型对深度图进行优化。
Zhang 等人提出了一种旋转平行四边形算子(SPO),该算子主要提取EPI 直线并计算其斜率从而进行局部深度估计。旋转平行四边形算子最大化了平行四边形窗口内两个部分之间的分布距离,以提取深度信息。此方法对遮挡、噪声、空间混叠和有限的角分辨率不敏感。
EPI 深度估计利用场景深度和EPI 图极线斜率之间的比例关系从而获取深度信息,能够一定程度上消除深度不连续区域及镜面反射光的负面影响,并且在被遮挡区域效果较为良好。但是这类方法计算量过于庞大,并且对于噪声反应敏感。立体匹配深度估计方法利用多视角间的关系推出深度图,能够有效消除光场混叠效应以及视角串扰的影响,并且对于复杂的遮挡场景具有一定鲁棒性。
2 深度估计算法
本算法主要分为三个步骤:①使用SPO 算法计算出深度估计结果。②使用基于相移理论的立体匹配算法计算出深度估计结果。③分别提取SPO 深度图中的高频信息和基于相移理论的立体匹配深度图的低频信息最后融合为新的深度图。
2.1 SSPPOO算法
SPO 中文名为“旋转平行四边形算子”,通过SPO来计算深度图的步骤:
(1)分别通过旋转平行四边形算子计算出EPI 水平和垂直图像的直方图距离。
(2)通过一个基于置信度的方法来融合两个方向的直方图距离x2。
(3)最后进行深度图优化。
对于SPO 算子首先使用加权函数来定义平行四边形算子的大小,窗口中的权重用于衡量每个像素对于距离的贡献,并使用了高斯导数来创建加权函数。定义窗口中的相应像素的权重为:
然后选择颜色直方图的卡方检验来测量像素颜色分布之间的差异:
2.2 基于相移理论的立体匹配算法
基于相移理论的立体匹配方法来计算深度图的步骤如下:
(1)根据相移的思想来实现亚像素的匹配。
(2)构建一个匹配代价函数进行子视图之间的匹配。
(3)最后对深度图进行优化和增强。
相移理论主要是空域的一个小的位移在频域为原始信号的频域表达与位移的指数的幂乘积,公式如下:
然后构建代价函数:
在公式(4)中的αϵ[0,1]用来调整 SAD 代价CA和GRAD 代价CG之间的权重。其中CA的定义为:
其中Rx是一个以x 为中心的小矩形区域;τ1是为了增加代价函数鲁棒性的截断值;V 表示除了中心视角sc之外的其余视角。公式(5)通过比较中心子孔径图像与其他子孔径图像的差异来构建损失量,具体而言就是通过不断地在某个视角上x点的周围移动一个小的距离并于中心视角做差;重复这个过程直到比较完所有的视角(i=1…视角数目N)为止。此时会用到上面提及的相移理论以得到移动后的像素强度,注意上面提到的小的距离实际上就是公式中的Δx,它被定义为如下形式:
其中k 表示深度/视差层的单位(像素),Δx 会随着任意视角与中心视角之间距离的增大而线性增加。同理,可以构造出第二个匹配代价量GRAD,其基本形式如下所示:
至此,代价函数构建完毕。随后对于该代价函数利用边缘保持滤波器进行损失聚合,得到优化后的代价量。
2.3 滤波处理
两种深度估计方法对于深度的推断都具有一定的局限性。EPI 方法对于噪声过于敏感,因此这种深度始终不够准确。立体匹配方法无法为复杂的薄结构或非常大的无纹理区域恢复准确的深度。故本方法结合两种深度估计方法的优点从而达到更好的效果。首先,采用高斯高频滤波器在频域上对SPO 算法的深度图进行滤波,同时采用高斯低频滤波器对立体匹配方法的深度图进行滤波。然后将高频部分和低频部分结合到SPO 深度图上。经实验验证,发现取得了较好的结果。
3 实验结果与分析
为验证本文改进算法的可行性和有效性,对多组HCI 数据集图像进行实验,得出结果采用HCI 的评价与SPO 方法和立体匹配方法进行比较。算法实现使用MATLAB 2014,运行环境为Window 10,计算机配置为Intel Core i5 3.2GHz 和 8GB RAM。
图1 为HCI 数据集中sideboard 光场图像分别采用SPO 算法、立体匹配算法和本文算法而获取的深度估计结果。
图1 sideboard光场图像的深度估计结果
图2 为HCI 数据集中boxes 光场图像分别采用SPO 算法、立体匹配算法和本文算法而获取的深度估计结果。
图2 boxes光场图像的深度估计结果
在HCI 数据集的一般采用MSE 来评价结果,通过计算得出的视差图为d,地面真实视差图gt 和评估掩膜M,则MSE定义为:
表1 为采用HCI 数据集评价标准MSE 来对三种算法评价的结果。
表1
由表1 可以看出本文算法在深度估计结果的精确度方面有了较好的提升,在纹理更复杂的boxes 光场图像中的提升更加明显。高频滤波将SPO 算法中处理更好的纹理部分提取,低频滤波将立体匹配算法中处理更好的非纹理区域进行提取,在纹理和非纹理部分都进行了加强,因此精确度才有了提高。
4 结语
本文针对光场图像中深度估计结果的精确度问题展开研究,在现有深度估计方法上提出改了进。首先分别采用SPO 算法和立体匹配算法获得深度估计结果,然后进行滤波处理,从而获得更精确的深度估计结果。实验表明,本文算法在精确度上有了良好的改进。但是,算法在时间效率上还是有些欠缺,在之后的研究中会努力改进。