专利名称:一种三维视图获取方法
技术领域:
本发明涉及计算机视觉和计算机图像绘制技术领域,特别涉及一种三维视图获取方法。
背景技术:
三维图像和显示是未来信息系统的一种重要表现形式,三维图像和显示层次分明 色彩鲜艳,具有很强的视觉冲击力,让观看的人驻景时间更长,留下深刻的印象;另外三维 图像和显示给人以真实、栩栩如生,人物呼之欲出,有身临其境的感觉,有很高的艺术欣赏 价值。正因为三维图像和视频具有这些平面图像和视频所不具备的特点,所以在诸如电脑 显示、电视、视频、机器人、测量、斟察、医疗、广告传媒、电子游戏等领域具有广阔的应用前 景。人眼看世界之所以有立体感,是因为左眼和右眼看世界的视角有少许不同而存在视差 (disparity)。视差是指左视图和右视图对应于同一个世界点的两个象素点的水平位移。计 算机视觉领域的定理指出,某点的视差和它所对应的世界点的深度(d印th,即距离感)成 反比;也就是说,离观看点越远的点的视差值越小,无穷远点的视差为0。一张图像所有点 的深度值组成了深度图(cbpth map)。
基于双目立体视觉的深度图生成技术的发展主要有以下两个方向首先是高质量 深度图的构建,在这方面基于马尔科夫随机场(Markov Random Field, MRF)的方法得到了 广泛的关注。在实际算法中,由于无法求得其精确解,因而提出了基于置信度传播(Belief Propagation, BP)和图分割(Graph Cuts)的近似求解算法。BP算法由于需要迭代多次求 解,速度很慢,因此应用BP技术的加速算法近年来也得到了越来越多的重视。Graph Cuts 方法相对BP较快,并且基于该方法能获得高质量的整体性能,因而获得了广泛的应用。
其次是深度图的快速构建,在这方面基于局部相关性的方法(Local method)和 基于动态规划的方法(Dynamic programming, DP)被认为是当前最有可能的两种方案。基 于局部相关性的方法存在噪声严重,对图像的弱纹理区域效果不好以及鲁棒性差等诸多问 题,难以获得高质量的立体重建效果;基于动态规划的方法在物体边缘处容易出现条状效 应。并且两者对于实时应用而言,其计算量仍显太大。
由此可见,目前还存在着如下问题第一,能够生成高质量深度图的算法速度很 慢;第二,能够快速生成深度图的算法得到的深度图质量比较差。所以,高质量和实时性成 为了深度图生成的关键技术和难点。
在多视角自由立体显示系统(Multi-view Auto-stereoscopic System)中,要生 成一幅具有立体效果的三维视图,需要多幅不同视点的二维虚拟视图。基于深度图的图像 绘制技术能够根据一幅二维参考视图和一幅与该参考视图对应的深度图来绘制多幅不同 视点的二维虚拟视图,与其他方法相比,具有如下优点
图像加深度的格式能够被更有效的进行编码,因而在传输的时候需要更少的带 宽;
图像加深度的格式能够独立于具体的自由立体显示器,如八视角或九视角的自由立体显示器等,因此可以更方便、更灵活地与市场上多种不同的自由立体显示器兼容。
图像加深度的格式能够更加灵活地进行二维视频与三维视频之间的切换。
因此,基于深度图的图像绘制技术被认为是未来的立体电视(3DTV, Three-dimensional Television)系统中最有前途的技术之一。
一般来说,要绘制不同视点的二维虚拟视图,首先要根据深度图将二维参考视图 中的所有像素点投影到空间中去,再将这些空间中的像素点反投影到与该二维虚拟视图所 对应虚拟摄像机的成像平面上。然而,这种投影和反投影在计算上是非常耗时的,并且需要 与二维参考视图所对应的真实摄像机的参数来完成整个绘制过程。在实际中,要得到真实 摄像机的参数还需要一个非常繁琐的校准的过程。因此,在某些需要实时应用的场合,如立 体直播等应用中,急需一种快速有效的方法来绘制不同视点的二维虚拟视图,以完成三维 视图的生成。发明内容
本发明的目的旨在至少解决上述技术缺陷之一。为此,本发明的目的在于提出一 种三维视图获取方法。
为达到上述目的,本发明的实施例提出了一种三维视图获取方法,包括如下步 骤
设置图像接口和图像处理器中的计算变量,根据所述图像接口定义图像读取函数 以读取图像对并将所述图像对存储在内存中,所述图像对包括参考图像和目标图像,所述 图像处理器包括第一图像处理器和第二图像处理器;
将所述参考图像和目标图像复制到所述第一图像处理器的显存中并进行灰度变 化和分层,计算并保存所述参考图像每一层的上梯度矩阵、下梯度矩阵、左梯度矩阵和右梯 度矩阵;
根据所述参考图像和目标图像以及所述参考图像和目标图像之间的视差值计算 代价函数矩阵,并对所述代价函数矩阵进行边界处理;
根据所述代价函数矩阵计算各层原始信息存储矩阵,并对各层中来自左右上下邻 域像素的信息存储矩阵进行初始化并保存;
在各层中进行置信传播迭代计算以得到置信矩阵,根据所述置信矩阵计算深度图 数据,将所述参考图像和深度图数据复制到所述第二图像处理器的显存;
初始化移位距离,将二维参考视图中的所有像素移位到二维虚拟视图中;
检测并除去所述二维虚拟视图中的量化噪声和不符合顺序约束的错误,利用所述 顺序约束修正错误;
检测所述二维虚拟视图中的空洞区域,并以背景区域中的像素填充所述空洞区 域;以及
根据所述二维虚拟视图绘制得到三维视图数据,将所述三维视图数据从所述第二 图像处理器的显存复制到内存中,生成三维视图。
根据本发明实施例的三维视图获取方法,具有以下优点
1)采用分层置信传播算法,可以极大的降低计算量,同时得到高质量的深度2)采用基于深度图的方法,可以极大的降低整个绘制过程的计算量,并且可以得到令人满意的绘制效果;
3)利用GPU做并行优化,可以大大提高算法速度,速度快于CPU算法30倍左右,实 现实时生成立体视频并演示的应用要求(30帧/s);
4)采用CUDA进行GPU上的程序设计,CUDA在GPU (图形处理器)上提供标准C编 程语言,方便在GPU上进行数据计算。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中
图1为根据本发明实施例的三维视图获取方法的流程框图2为图1所示的三维视图获取方法的流程示意图3为根据本发明实施例的分层得到的相邻层的节点结构图4(a)为根据本发明实施例的待处理的左视图(分辨率为10M*768);
图4(b)为根据本发明实施例的待处理的右视图(分辨率为10M*768);
图5为根据本发明实施例的计算得到的深度图(分辨率为10M*768);以及
图6为根据本发明实施立体的计算得到的三维视图(分辨率为1024*768)。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下面参考图1和图2描述本发明实施例的三维视图获取方法。
如图1所示,根据本发明实施例的三维视图获取方法,包括如下步骤
SlOl 设置图像接口和图像处理器中的计算变量,根据图像接口定义图像读取函 数以读取图像对并将图像对存储在内存中。其中,图像对包括参考图像和目标图像,所述图 像处理器包括第一图像处理器和第二图像处理器。
首先,定义图像接口,包括图像数据在内存中的存储格式,从硬盘中读取校正好的 图像对文件,按照定义的数据存储格式读取到内存中。其中存储格式包括图像数据指针,图 像宽度,高度,位深,图像格式。然后根据图像接口定义图像读取函数,用图像读取函数从两 路校正好的拍摄设备拍摄得到的视频帧图像文件中获取图像数据,保存在内存中。其中,拍 摄设备可以摄像头。
定义两块GPU (Graphic Processing Unit,图像处理器)中参与计算的变量,并利 用CUDA (Compute Unified Device Architecture,计算统一设备架构)提供的函数库,在 GPU的显存中为参与计算的数据分配存储空间。其中,GPU可以等效成为一个超大规模并行 协处理器,具有强大的浮点运算能力和很高的带宽。CUDA为GPU上的通用编程模型。
定义GPU中的计算变量,包括图像数据,各层的梯度矩阵,代价函数矩阵,各层的 原始信息存储矩阵,各层的信息存储矩阵,深度图数据等。利用CUDA提供的函数库,在GPU的显存中为参与计算的数据变量分配存储空间。本发明的一个实施例中,用cudaMallocO 在显存中开辟空间。定义输入图像对的左视图为参考图像,右视图为目标图像。
S102 将参考图像和目标图像复制到所述第一图像处理器的显存中并进行灰度变 化和分层,计算并保存参考图像每一层的上梯度矩阵、下梯度矩阵、左梯度矩阵和右梯度矩 阵;
执行步骤S1021,将内存中的图像数据复制到第一块GPU的显存中。在本发明的一 个实施例中,用cudaMemcpyO将图像数据从内存复制到显存。
执行步骤S1022,利用灰度变换公式,将彩色图像数据变为灰度图像数据。在发明 的一个施例中,利用RGB (Red Green Blue,红绿蓝)图像变换公式对源图像对进行灰度变 换,得到对应的灰度图像对。其中,RGB图像变换公式如下
Y = O. 212671XR+0. 715160XG+0. 072169XB (1)
其中,Y为灰度图像每个像素点的灰度值,R、G、B分别为平面视频帧图像中每个像 素点的R、G、B分量。
如图3所示,对灰度图像按照金字塔模型进行分层,对于IevelO层的图像相邻的 四个点数据取平均作为下一层(levell层)的一个点的数据,一直进行的最底层。由于不 同层中不同大小的象素块的交互能力增强,使得消息的迭代总数下降,从而可以提高程序 的执行速度。
具体而言,首先定义梯度阈值,梯度阈值的选取和实施的图像本身有关,一般根据 图像像素分布特点估计得到。在本发明的一个实施例中,梯度阈值为4。然后分别计算参考 图像的左梯度矩阵、右梯度矩阵、上梯度矩阵和下梯度矩阵。
1)计算参考图像的左梯度矩阵
利用参考图像的每一点与其左方相邻点的像素值做差并求绝对值,得到的结果与 定义的梯度阈值相比,大于梯度阈值,则该点的左梯度为1,小于梯度阈值则该点的左梯度 为0;
2)计算参考图像右梯度矩阵
利用参考图像的每一点与其右方相邻点的像素值做差并求绝对值,得到的结果与 定义的梯度阈值相比,大于梯度阈值,则该点的右梯度为1,小于梯度阈值则该点的右梯度 为0;
3)计算参考图像上梯度矩阵
利用参考图像的每一点与其上方相邻点的像素值做差并求绝对值,得到的结果与 定义的梯度阈值相比,大于梯度阈值,则该点的上梯度为1,小于梯度阈值则该点的上梯度 为0;
4)计算参考图像下梯度矩阵
利用参考图像的每一点与其下方相邻点的像素值做差并求绝对值,得到的结果与 定义的梯度阈值相比,大于梯度阈值,则该点的下梯度为1,小于梯度阈值则该点的下梯度 为0。
图4(a)示出了灰度变换后为参考视图,图4(b)示出了灰度变换后的目标视图。
S103 计算代价函数矩阵;
首先,定义代价函数计算式。参考图像和目标图像的视差值d从0开始循环直至参考图像和目标图像之间的最大视差dmax = 16。参考图像每一点和目标图像上与该点左 方相距d的点之间像素值做差并取绝对值,得到的结果作为视差d的条件下该点的代价函数。
d = 0 dmax
cos t (a, b) = reference (a, b) -t arg et (a, b-d)
(2)
其中cost (a, b)为代价函数矩阵,reference (a, b)为参考图像矩阵,target为目 标图像矩阵。
将参考图像数据、目标图像数据以及参考图像和目标图像之间的视差值带入代价 函数计算式O),得到代价函数矩阵;
根据参考图像和目标图像之间的视差值对代价函数矩阵进行边界处理,因为在之 前的计算过程中,有很多点没有参与计算即没有被处理,所以边界处理就是计算上述点的 过程。边界处理采用如下式的公式
d = 0 dmax
b = 1 d(3)
cost (a, b) = cost (a, d)
定义代价函数的截断阈值,根据截断阈值修改代价函数矩阵。在本发明的一个实 施例中,截断阈值为20。对于代价函数矩阵取值中大于截断阈值的点,将该店的代价函数矩 阵取值改修为阶段阈值。
S104 计算层原始信息存储矩阵;
根据步骤103中的代价函数矩阵计算得到各层原始信息存储矩阵,并对各层从左 右上下邻域像素传递来的信息存储矩阵进行初始化,保存在显存中。
具体而言,首先定义原始信息存储矩阵的计算式如下
prawmessage = e_C0St/D (4)
其中prawmessage为原始信息存储矩阵,D = 50。
将代价函数矩阵带入原始信息计算式得到各层原始信息存储矩阵,对各层从左右 上下邻域像素传递来的信息存储矩阵进行初始化,在本实施例中,将左右上下邻域像素传 递来的信息存储矩阵里每个点的取值初始化为1。
S105 计算置信矩阵,根据置信矩阵计算深度图数据;
首先执行步骤1051,从最下层开始,在各层中进行置信传播(Belief Propagation, BP)迭代计算,下一层的计算结果作为上一层的初值,直到计算到顶层结束, 得到最终的置信矩阵,保存在显存中。置信传播算法是一个通过在相邻结点之间传递、更新 消息,迭代优化的算法。
具体而言,在最下层中迭代计算信息存储矩阵,得到最下层的信息存储矩阵,将最 下层的信息存储矩阵传输到上一层,作为上一层的信息存储矩阵的初值。在上一层中继续 迭代计算信息存储矩阵,直至最顶层的信息存储矩阵迭代计算完毕,以最顶层的信息存储 矩阵计算得到置信矩阵。置信矩阵的计算式如下
belief = downmessageXupmessageX IeftmessageXrightmessage (5)
其中 belief 为置信矢巨阵,downmessage、upmessage、Ieftmessage 禾口 rightmessage为否为上下左右信息矩阵。
在本发明的一个实施例中,图像共分为3层,最底层迭代9次,中间层迭代6次,最 顶层迭代2次,每次迭代更新从左右上下邻域像素传递来的信息存储矩阵。
执行步骤1052,根据置信矩阵计算深度图的数据保存在内存中。具体而言,根据置 信矩阵的置信值计算得到深度图数据(如图5所示)。在本发明的一个实施例中,对不同的 视差值d,选择选择可信度最大(belief最大)的作为最终深度求取结果。利用CUDA提供 的函数将深度图数据从显存复制到内存,通过图像接口输出到硬盘,生成深度图文件。在本 发明的一个实施例中,用cudaMemcpyO将深度图数据从显存复制到内存。
深度图为由图像每个像素点对应的深度值所组成的灰度图。如图5所示,距离越 远的部分,深度值越小,深度图中表现为偏向黑色;距离越近的部分,深度值越大,深度图中 表现为偏向白色。
执行步骤1053,将内存中的左视图(参考视图)和深度像数据复制到第二块 GPU的显存中。具体而言,利用CUDA提供的函数库将内存中的图像数据复制到显存中存储 图像数据的变量里,便于后续计算。在本发明的一个实施例中,用cudaMemcpyO将图像数 据从内存复制到第二块GPU的显存。
S106 对移位距离初始化,将二维参考视图中的所有像素移位到二维虚拟视图 中;
首先对移位距离进行初始化,移位距离即为需要移动的像素值的个数。如在一维 视图中,从第5个像素移动到第9个像素,移位距离即为4。
然后将二维参考视图中的所有像素移位到二维虚拟视图去,将二维虚拟视图矩阵 保存在第二块GPU的显存中。其中移位距离的大小正比于该像素对应深度图中的深度值, 用公式表示如下
Ivirt (x+index* α * (dEef (χ, y) _d0),y, index) = IEef (χ, y) (6)
其中indes表示虚拟摄像机的序号,当index = 0时,表示二维参考视图本身dQ 表示二维虚拟视图对应的虚拟摄像机光心到零视差平面(Zero Parallax Plane, ZPS)之 间的距离;IEef(x, y)表示二维参考视图中位于(x, y)处的像素值,dEef(x, y)表示深度图 中位于(χ,y)处的像素值,即参考视图中位于(χ,y)处的像素所对应的深度值;Ivirt U,1, index)表示第index幅二维虚拟视图中位于(x,y)处的像素值,α为比例因子,α正比于 摄像机之间的距离,可根据需要进行调节。
具体而言,并行对二维虚拟视图的所有像素点同时进行填充,如果发现其中某个 像素已经被填充,则其他并行线程对该像素的操作不起作用,将填充得到的二维虚拟视图 结果保存在第二块GPU的显存中。
S107 检测并除去二维虚拟视图中的量化噪声和不符合顺序约束的错误;
首先执行步骤S1071,检测并除去二维虚拟视图中的量化噪声,结果保存在第二块 GPU的显存中。
具体而言,并行对二维虚拟视图的水平方向每一行的所有像素点同时进行检测, 如果只有一个像素宽度没有被填充,就以离其最近的左侧像素来填充该像素宽度。
并行对二维虚拟视图的垂直方向每一列的所有像素点同时进行检测,如果只有一 个像素宽度没有被填充,就以离其最近的上侧像素来填充该像素宽度。
执行步骤S1072,检测该二维虚拟视图中不符合顺序约束的错误,并利用该约束来 修正这些错误,结果保存在第二块GPU的显存中。
顺序约束是指二维参考视图中的同一行的像素在移位到二维虚拟视图中后,仍然 会保持其在原二维参考视图中的相对顺序。
首先并行对二维虚拟视图每一行的所有像素点同时进行检测,如果某像素对应参 考视图中的像素坐标大于其下个像素对应参考视图中的像素坐标,则检测到错误。对于所 有错误的点标记为明显错误区域,对对该区域中不符合顺序约束的像素,按该像素在原参 考视图中的相对顺序来进行修正。
S108 检测二维虚拟视图中的空洞区域,并以背景区域中的像素填充空洞区域;
检测经过步骤107后DE 二维虚拟视图中仍然尚未被填充的空洞区域,并以背景区 域的像素填充这些空洞区域,结果保存在第二块GPU的显存中。
具体而言,并行对二维虚拟视图的所有空洞点同时进行填充,若二维虚拟视图位 于二维参考视图的左侧,则以离其最近的左侧像素来填充该空洞区域;若二维虚拟视图位 于二维参考视图的右侧,则以离其最近的右侧像素来填充该空洞区域。
S109 生成三维视首先执行步骤S1091 根据二维虚拟视图绘制得到三维视图的数据,将三维视图 数据从第二块GPU的显存复制到内存中,通过图像接口输出到硬盘,生成三维视图文件。
执行步骤S1092,利用OPENGL (Open Graphics Library)将三维视图数据从GPU的 显存直接显示在显示器上,得到实时演示的立体视频,生成的三维视图如图6所示。图6中 帧率为30帧/s,满足实时性要求。其中,OPENGL定义了一个跨编程语言、跨平台的编程接 口的规格,作为专业的图形程序接口,功能强大且调用方便的底层图形库,可以用于二维图 像或三维图象。
根据本发明实施例的三维视图获取方法,可以发掘图像处理器并行处理模式的特 点和优势,将现有立体匹配算法和图像绘制算法在GPU架构下实现并行计算,提高运算效 率,实现实时的双目立体视觉演示。主要具有以下优点
1)采用分层置信传播算法,可以极大的降低计算量,同时得到高质量的深度2)采用基于深度图的方法,可以极大的降低整个绘制过程的计算量,并且可以得 到令人满意的绘制效果;
3)利用GPU做并行优化,可以大大提高算法速度,速度快于CPU算法30倍左右,实 现实时生成立体视频并演示的应用要求(30帧/s);
4)采用CUDA进行GPU上的程序设计,CUDA在GPU (图形处理器)上提供标准C编 程语言,方便在GPU上进行数据计算。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示 例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何 的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以 理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
权利要求
1.一种三维视图获取方法,其特征在于,包括如下步骤设置图像接口和图像处理器中的计算变量,根据所述图像接口定义图像读取函数以读 取图像对并将所述图像对存储在内存中,所述图像对包括参考图像和目标图像,所述图像 处理器包括第一图像处理器和第二图像处理器;将所述参考图像和目标图像复制到所述第一图像处理器的显存中并进行灰度变化和 分层,计算并保存所述参考图像每一层的上梯度矩阵、下梯度矩阵、左梯度矩阵和右梯度矩 阵;根据所述参考图像和目标图像以及所述参考图像和目标图像之间的视差值计算代价 函数矩阵,并对所述代价函数矩阵进行边界处理;根据所述代价函数矩阵计算各层原始信息存储矩阵,并对各层中来自左右上下邻域像 素的信息存储矩阵进行初始化并保存;在各层中进行置信传播迭代计算以得到置信矩阵,根据所述置信矩阵计算深度图数 据,将所述参考图像和深度图数据复制到所述第二图像处理器的显存;初始化移位距离,将二维参考视图中的所有像素移位到二维虚拟视图中;检测并除去所述二维虚拟视图中的量化噪声和不符合顺序约束的错误,利用所述顺序 约束修正错误;检测所述二维虚拟视图中的空洞区域,并以背景区域中的像素填充所述空洞区域;以及根据所述二维虚拟视图绘制得到三维视图数据,将所述三维视图数据从所述第二图像 处理器的显存复制到内存中,生成三维视图。
2.如权利要求1所述的三维视图获取方法,其特征在于,所述设置图像接口包括设置 图像数据在内存中的存储格式,所述存储格式包括图像数据指针、图像宽度、图像高度、图像位深和图像中每个像素点 数据的数据类型。
3.如权利要求1所述的三维视图获取方法,其特征在于,所述图像对通过两路校正后 的拍摄设备拍摄得到的视频帧图像中获取。
4.如权利要求1所述的三维视图获取方法,其特征在于,所述设置图像处理器的计算 变量包括设置图像数据,各层的梯度矩阵,代价函数矩阵,各层的原始信息存储矩阵,各层的信 息存储矩阵,深度图数据等,对所述图像处理器的计算变量在所述图像处理器中的显存中分配存储空间。
5.如权利要求1所述的三维视图获取方法,其特征在于,对灰度变换后的灰度图像按 照金字塔模型进行分层,将图像相邻的四个点数据取平均作为下一层的一个点的数据,直 至最底层。
6.如权利要求1所述的三维视图获取方法,其特征在于,所述根据参考图像和目标图 像以及所述参考图像和目标图像之间的视差值计算代价函数矩阵,其特征在于,设置代价函数计算式;将参考图像数据、目标图像数据以及参考图像和目标图像之间的视差值输入到所述代 价函数计算式以得到代价函数矩阵。
7.如权利要求6所述的三维视图获取方法,其特征在于,在对所述代价函数矩阵进行 边界处理后,设置截断阈值,将大于所述截断阈值的代价函数矩阵的取值修改为所述截断 阈值。
8.如权利要求6所述的三维视图获取方法,其特征在于,所述根据代价函数矩阵计算 各层原始信息存储矩阵包括设置原始信息计算式,将所述代价函数矩阵输入到所述原始信息计算式以得到各层原始信息存储矩阵。
9.如权利要求1所述的三维视图获取方法,其特征在于,所述在各层中进行置信传播 迭代计算以得到置信矩阵进一步包括计算最底层的信息存储矩阵;将所述最底层的信息存储矩阵传输到所述最底层的上一层,作为上一层的信息存储矩 阵,在所述上一层中继续迭代计算信息存储矩阵,直至最顶层的信息存储矩阵迭代计算完 毕;根据所述最顶层的信息存储矩阵计算置信矩阵。
10.如权利要求9所述的三维视图获取方法,其特征在于,所述根据置信矩阵计算深度 图数据,将参考图像和深度图数据复制到所述第二图像处理器的显存进一步包括根据所述置信矩阵计算深度图数据;将所述深度图数据复制内存中;将所述内存中的参考图像和深度图数据复制到第二图像处理器中的显存中。
11.如权利要求1所述的三维视图获取方法,其特征在于,所述将二维参考视图中的所 有像素移位到二维虚拟视图中进一步包括将二维参考视图中的所有像素移位到二维虚拟视图,对所述二维虚拟视图的所有像素 点同时进行填充,将填充后的二维虚拟视图结果保存在所述第二图像处理器的显存中。
12.如权利要求1所述的三维视图获取方法,其特征在于,所述检测并除去所述二维虚 拟视图中的量化噪声进一步包括并行对所述二维虚拟视图的水平方向每一行的所有像素点同时进行检测,当只有一个 像素宽度没有被填充时,将距离所述未被填充的像素宽度最近的左侧像素来填充所述未被 填充的像素宽度;并行对所述二维虚拟视图的垂直方向每一列的所有像素点同时进行检测,当只有一个 像素宽度没有被填充时,将距离所述未必填充的像素宽度最近的上侧像素来填充所述未被 填充的像素宽度。
13.如权利要求1所述的三维视图获取方法,其特征在于,所述检测并除去所述二维虚 拟视图中不符合顺序约束的错误,利用所述顺序约束修正错误进一步包括并行对所述二维虚拟视图每一行的所有像素点同时进行检测,当检测到存在对应参 考视图中的像素坐标大于其下个像素对应参考视图中的像素坐标的像素,则表示检测到错 误;将所有错误的点标记为错误区域;对所述错误区域中不符合顺序约束的像素以其在原参考视图中的相对顺序来进行修正。
14.如权利要求1所述的三维视图获取方法,其特征在于,所述检测二维虚拟视图中的 空洞区域,并以背景区域中的像素填充所述空洞区域进一步包括 检测所述二维虚拟视图中的空洞区域;并行对所述二维虚拟视图的所述空洞区域同时进行填充,若所述二维虚拟视图位于二 维参考视图的左侧,则以距离所述空洞区域最近的左侧像素来填充所述空洞区域;若所述 二维虚拟视图位于二维参考视图的右侧,则以距离所述空洞区域最近的右侧像素来填充所 述空洞区域。
全文摘要
本发明公开了一种三维视图获取方法,包括如下步骤设置图像接口和图像处理器中的计算变量;进行灰度变化和分层;计算代价函数矩阵;计算原始信息存储矩阵;计算置信矩阵,计算深度图数据;初始化移位距离,将二维参考视图中的所有像素移位到二维虚拟视图中;检测并除去二维虚拟视图中的量化噪声和不符合顺序约束的错误,利用顺序约束修正错误;检测二维虚拟视图中的空洞区域,并以背景区域中的像素填充空洞区域;生成三维视图。本发明以发掘图像处理器并行处理模式的特点和优势,将现有立体匹配算法和图像绘制算法在GPU架构下实现并行计算,提高运算效率,实现实时的双目立体视觉演示。
文档编号G06T17/00GK102034265SQ20101056364
公开日2011年4月27日 申请日期2010年11月24日 优先权日2010年11月24日
发明者刘继明, 戴琼海 申请人:清华大学