基于多视图2D图像几何深度三维立体重建算法研究
来源:第三维度
作者:章国锋 姜翰青 鲍虎军
单位:浙江大学
引言
目前相机所拍摄的图像或视频仅部分地记录了真实世界在二维平面上的颜色投影,并不直接反映实际场景的三维结构。因此,计算机难以根据照片自动准确地理解拍摄的实际复杂场景,从而阻碍了对图像和视频信息的深层次应用。
深度指的是场景中某个点到相机中心所在的XY平面的距离。我们可以用一张深度图来表示场景中的各个点的深度信息,即深度图中的每一个像素记录了场景中的某一个点到相机中心所在的XY平面的距离。从真实拍摄的图像和视频中恢复出深度信息是计算机视觉领域的经典问题。这个问题如果能得到很好的解决,将直接促进很多相关应用的发展[1]。
基于图像的深度计算方法有各种各样,常见的主要有多视图立体法(multi-view stereo)、光度立体视觉法(photometric stereo)、色度成形法(shape from shading)、散焦推断法(depth fromdefocus)以及基于机器学习的方法等等。其中以多视图立体法最为常用。下面我们对这些方法的发展历程和代表性的工作做一下简要的回顾和介绍,并对未来的发展趋势进行讨论和总结。
基于多视图的深度计算
多视图几何原理和人们通过自己的两只眼睛立体地观察世界是类似的。我们知道,人类需要两只眼睛才能很好地识别物体的远近程度,这是因为人的两只眼睛看物体时的视线角度不一样,导致物体在视网膜上所成的两幅像会有所差别。不同远近程度的物体,所形成的视差是不一样的。如果两只眼睛都是平视正前方,其视差跟物体的深度成反比,由此可以推断出物体的深度信息。人眼就是依此来观察世界,并形成立体印象的。
根据多视图几何原理[2],对于一个静止的场景,如果我们从不同位置拍摄了多幅图像,而且不同图像之间有公共内容,那么理论上就能从这些图像自动地恢复出摄像机的内外参数以及场景的三维信息。通常,这个过程可以分为两个步骤:
(1)首先对各张图像抽取特征点并进行匹配,然后根据得到的稀疏二维匹配点求解出各张图像的摄像机内外参数(包括焦距、旋转矩阵和位移等)以及特征点的三维位置;
(2)根据恢复的摄像机参数进一步进行稠密的逐像素的匹配,从而为每张图像恢复出深度图。
第一个步骤就是我们通常所说的摄像机跟踪或运动推断结构(structure from motion),第二个步骤称为立体匹配(stereo matching)。
仅考虑两幅图像之间的立体匹配,又称为双视图立体匹配。沙斯坦因(Scharstein)和则里斯(Szeliksi)于2002年写了一篇关于双视图立体匹配的综述文章,对当时的立体匹配方法做了详细的分析和评估[3]。双视图立体匹配方法相对比较简单,但容易受噪声影响,尤其难以处理遮挡。相比而言,多视图立体匹配在噪声和遮挡的处理上具有明显的优势[4, 5],一般可以得到更好的三维重建结果。
目前基于多视图的深度计算虽然在原理上已经研究得比较清楚了,但由于实际情况比较复杂,要准确地自动恢复出稠密深度信息仍具有很大的挑战性。因为现实场景可能存在着严重的遮挡、光照变化、高光和半透明等情况,部分区域可能缺乏特征,而且实际拍摄的影像又难免存在噪声等问题,这些诸多因素给准确的深度计算带来了很大的困难。
按优化方法的不同,立体匹配方法可以分为局部优化方法和全局优化方法。局部优化方法一般采用基于窗口的匹配方式,每个像素独立地估计深度,相邻像素之间没有关联。对于立体图像,可以先对图像进行矫正,使得左右相机的朝向一致且与它们的相机中心连线垂直,这样对应的点都在扫描线上,从而简化匹配过程。常见的窗口匹配函数有差的平方和(sum of squared difference,SSD)、差的绝对值的和(sum of absolute difference,SAD)以及归一化互相关法(normalized cross correlation,基于窗口的匹配实际上假设窗口内的像素的深度值是相同的,而这在很多情况下(尤其是深度不连续边界区域)是不满足的。
所以,窗口大小的选择变得非常重要。如图1所示,当匹配窗口很小时,起不到很好的平滑作用,计算的深度噪声会很大;而当窗口比较大的时候,虽然计算的深度会变得平滑,但一些细小结构和不连续边界附近的深度会变得不准确。因此,一些研究者提出自适应的窗口匹配方法来减轻这个问题[6]。
a b
c d
e f
图1 局部方法与全局方法的比较。(a~b)为Tsukuba立体图像[3];
(c)为窗口大小为1×1的SAD匹配结果;
(d)为窗口大小为5×5的SAD匹配结果;
(e)为窗口大小为11×11的SAD匹配结果;
(f)为采用graph cuts求解的深度结果
首页 上一页 1 2 3 4 5下一页尾页 共5页