一种基于深度图的虚拟视图绘制方法及系统的制作方法

文档序号:10657036阅读:225来源:国知局
一种基于深度图的虚拟视图绘制方法及系统的制作方法
【专利摘要】本发明公开了一种基于深度图的虚拟视图绘制方法及系统。一种基于深度图的虚拟视图绘制方法,获取参考视图和参考视图的深度图;提取深度图的各预设像素点集合的深度序列Hi(T),i为集合序号,T为像素点的坐标;如果确定Hi(T)与直线y=k(T?T0)有交点[T1,Hi(T1)],则将Hi(T)中T=T1对应的参考视图的像素值作为虚拟视图中T=T0的像素值;根据虚拟视图的像素值绘制虚拟视图。本发明对各个像素点的像素值逐点计算,算法简单,对应用场景没有苛刻要求,增加了裸眼3D技术的应用广度。
【专利说明】
一种基于深度图的虚拟视图绘制方法及系统
技术领域
[0001 ] 本发明实施例涉及基于深度图的绘制(DIBR,Depth-1mage-Base Rendering)技术,尤其涉及一种基于深度图的虚拟视图绘制方法及系统。
【背景技术】
[0002]目如,基于深度图像的绘制技术是3D系统中的关键技术,引起很多研究机构的关注。
[0003]传统3D视频信号传输需要传送左眼和右眼两路视频流,而基于DIBR技术的3D系统仅需要传输一路视频流及对应的深度信息,从而可以减少传输带宽。DIBR技术利用参考图像以及对应的每个像素的深度信息来重建场景中的虚拟视图,可以避免由传统视图生成方法带来的三维空间变换的计算复杂性,因此,DIBR技术在3D系统中得到广泛应用。
[0004]由于参考视图只是从一个角度获得,通常采用一些递归搜索算法,对于计算的复杂度要求较高,一般都需要采用FPGA的方式来处理,这样就对应用场景提出了很高的要求。

【发明内容】

[0005]本发明提供一种基于深度图的虚拟视图绘制方法及系统,以实现简化通过深度图生成虚拟视图的算法,克服了以往深度图像提取技术对应用场景的苛刻要求。
[0006]第一方面,本发明实施例提供了一种基于深度图的虚拟视图绘制方法,该方法包括:
[0007]获取参考视图和所述参考视图的深度图;
[0008]提取所述深度图的各预设像素点集合的深度序列H1(T)J为集合序号,T为像素点的坐标;
[0009]如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值,其中,k = C0SA,A为预设虚拟视图视角方向与参考视图平面的夹角,y为深度值;
[0010]根据所述虚拟视图的像素值绘制所述虚拟视图。
[0011]优选的,所述获取参考视图和所述参考视图的深度图,包括:
[0012]通过3D相机设备获取参考视图和所述参考视图的深度图;
[0013]根据所述参考视图和所述参考视图的深度图依次对所述深度视图进行边缘像素匹配、模糊处理和深度值的区间映射。
[0014]优选的,所述提取所述深度图的各行或各列像素点的深度序列H1(T)之后,所述根据所述虚拟视图的像素值绘制所述虚拟视图之前,还包括:
[0015]如果确定Hi(T)与直线y= k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,其中,Τ2为坐标TO附近的坐标,且H1(T)与直线y = k(T-T2)有交点。
[0016]优选的,提取所述深度图的各行/列像素点的深度序列H1(T),具体包括:
[0017]按各预设像素点集合的预设顺序,提取深度图的各预设像素点集合的深度图,其中,预设像素点集合为各行像素点分别构成的行集合或各列像素点分别构成的列集合,预设顺序包括从深度图的各行或各列的设定一端到另一端。
[0018]优选的,所述获取参考视图和所述参考视图的深度图,具体为:通过移动端GPU获取参考视图和所述参考视图的深度图;
[0019]所述提取所述深度图的各预设像素点集合的深度序列H1(T),具体为:
[0020]通过移动端GPU的着色器编程语言提取所述深度图的各预设像素点集合的深度序列Hi⑴;
[0021]所述如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值,具体为:通过移动端GPU的着色器编程语言执行如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T =TI对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值;
[0022]所述根据所述虚拟视图的像素值绘制所述虚拟视图,具体为:
[0023]通过移动端GHJ的着色器编程语言根据所述虚拟视图的像素值绘制所述虚拟视图。
[0024]优选的,所述根据所述虚拟视图的像素值绘制所述虚拟视图之后,还包括:根据所述虚拟视图与所述参照视图生成裸眼3D视图。
[0025]第二方面,本发明实施例还提供了一种基于深度图的虚拟视图绘制系统,该系统包括:
[0026]视图获取单元,用于获取参考视图和所述参考视图的深度图;
[0027]序列提取单元,用于提取所述深度图的各预设像素点集合的深度序列H1(T)J为集合序号,1"为像素点的坐标;
[0028]像素值匹配单元,用于如果确定Hi(T)与直线y= k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi (T)中T = TI对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值,其中,k =cosA,A为预设虚拟视图视角方向与参考视图平面的夹角;
[0029]虚拟视图生成单元,用于根据所述虚拟视图生成所述虚拟视图。
[0030]优选的,所述视图获取单元包括:
[0031]视图采集模块,用于通过3D相机设备获取参考视图和所述参考视图的深度图;
[0032]预处理模块,用于根据所述参考视图和所述参考视图的深度图依次对所述深度视图进行边缘像素匹配、模糊处理和深度值的区间映射。
[0033]优选的,还包括空洞补充单元,用于如果确SH1(T)与直线y= k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,其中,T2为坐标TO附近的坐标,且Hi (T)与直线y = k (T-T2)有交点。
[0034]优选的,所述序列提取单元,用于:
[0035]按各预设像素点集合的预设顺序,提取深度图的各预设像素点集合的深度图,其中,预设像素点集合为各行像素点分别构成的行集合或各列像素点分别构成的列集合,预设顺序包括从深度图的各行或各列的设定一端到另一端。
[0036]优选的,所述视图获取单元,具体用于:通过移动端GPU获取参考视图和所述参考视图的深度图;
[0037]所述序列提取单元,具体用于:通过移动端GPU的着色器编程语言提取所述深度图的各预设像素点集合的深度序列H1(T);
[0038]像素值匹配单元,用于通过移动端GPU的着色器编程语言执行如果确定H1(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值;
[0039]虚拟视图生成单元,具体用于:通过移动端GPU的着色器编程语言根据所述虚拟视图的像素值绘制所述虚拟视图。
[0040]优选的,还包括裸眼3D视图生成单元,用于根据所述虚拟视图与所述参照视图生成裸眼3D视图。
[0041 ] 本发明通过求出Hi(T)与直线y = k(T-T0)交点[Tl ,Hi(Tl)]的算法,生成了虚拟视图,对各个像素点的像素值逐点计算,对每个像素点做同样处理,算法简单,对应用场景没有苛刻要求,采用FPGA以外的方式也可以轻松实现,可以运行在手机和平板上,增加了裸眼3D技术的应用广度。
【附图说明】
[0042]图1是本发明实施例一中的一种基于深度图的虚拟视图绘制方法的方法流程图 ,
[0043]图2是本发明实施例一中的一种基于深度图的虚拟视图绘制方法的方法流程图-* *
[0044]图3是本发明实施例一中的一种基于深度图的虚拟视图绘制方法的方法流程图—*.---,
[0045]图4是本发明实施例一中的一种基于深度图的虚拟视图绘制方法的方法流程图四;
[0046]图5是本发明实施例二中的一种基于深度图的虚拟视图绘制方法的方法流程图 ,
[0047]图6是本发明实施例三中的一种基于深度图的虚拟视图绘制系统的结构示意图 ,
[0048]图7是本发明实施例三中的一种基于深度图的虚拟视图绘制系统的结构示意图-* *
[0049]图8是本发明实施例三中的一种基于深度图的虚拟视图绘制系统的结构示意图—*.---,
[0050]图9是本发明实施例三中的一种基于深度图的虚拟视图绘制系统的结构示意图四;
[0051]图10是本发明实施例四中的一种基于深度图的虚拟视图绘制系统的结构示意图
O
【具体实施方式】
[0052]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0053]实施例一
[0054]图1为本发明实施例一提供的一种基于深度图的虚拟视图绘制方法的流程图,本实施例可适用于带有处理器、显示器以及深度摄像头的电子设备根据基于深度图的虚拟视图绘制虚拟图像的情况,如PC端、移动端(手机、平板电脑、智能可穿戴设备)等情况,该方法可以由电子设备来执行,具体包括如下步骤:
[0055]步骤110、获取参考视图和参考视图的深度图。
[0056]具体的,通过深度摄像头获取到参考视图和参考视图的深度图,并将参考视图和参考视图的深度图传送给处理器。其中,深度摄像头和处理器可以为一体的在同一个电子设备内,也可以为分体的设置在多个电子设备中,通过数据线传输或无线传输。
[0057]步骤120、提取深度图的各预设像素点集合的深度序为集合序号,T为像素点的坐标。
[0058]其中,各预设像素点集合可以为各行或各列的像素点形成的集合,也可以为预先定义的像素点集合。
[0059]可以为绘制深度图的各预设像素点集合的深度序列,横轴为坐标T,纵坐标为出(T)。例如:预设像素点集合为各行或各列的像素点形成的集合,横轴为坐标T,纵轴为深度图的深度值,i为行序号或列序号,T第i行的列坐标或第i列的行坐标。
[0060]步骤130、如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T =TI对应的参考视图的像素值作为虚拟视图中T = TO的像素值。
[0061]其中,k= cosA,A为预设虚拟视图视角方向与参考视图平面的夹角,y为深度值。虚拟视图中T = TO的像素值为虚拟视图中第i个像素点集合中T = TO的像素点的像素值。
[0062]例如:各预设像素点集合为各行或各列的像素点形成的集合。TO取遍H1(T)中第i行的列坐标或第i列的行坐标,生成穿过(T0,0)且方向与预设虚拟视图视角方向平行的直线:y = k(T-T0),如果确定Hi(T)与直线y = k(T-T0)有交点,则有交点[Tl,Hi(Tl)],则将Hi(T)中T = T1对应的参考视图的像素值作为虚拟视图第i行或第i列中T = T0的像素点的像素值,根据上述方式将第i行和第i列的所有与相应直线有交点的坐标对应虚拟视图的像素值得出,且根据上述方式将所有行或所有列的有交点的坐标对应虚拟视图的像素值得出。
[0063]步骤140、根据虚拟视图的像素值绘制虚拟视图。
[0064]具体的,根据之前获得的虚拟视图中各像素点的像素值绘制虚拟视图。其中,绘制虚拟视图可为通过将虚拟视图中各像素点的像素值在屏幕上显示,也可以为通将虚拟视图中各像素点的像素值以虚拟视图的视图格式存储在电子设备的存储器中。
[0065]该一种基于深度图的虚拟视图绘制方法的工作原理:发明通过求出H1(T)与直线y= k(T-T0)交点[Tl ,Hi(Tl)]的算法,生成了虚拟视图,对各个像素点的像素值逐点计算,对每个像素点做同样处理,算法简单,对应用场景没有苛刻要求,采用FPGA以外的方式也可以轻松实现,可以运行在手机和平板上,增加了裸眼3D技术的应用广度。
[0066]如附图2所示,在上述技术方案的基础上,优选的,在步骤S140之后还可以增加S150:根据虚拟视图与参照视图生成裸眼3D视图。
[0067]其中,虚拟视图为S140中得到的,参照视图为SllO得到的,裸眼3D视图的生成过程为现有技术,可以根据裸眼3D的显示设备参数以及用户需要的不同视角数量通过不同算法合成,在此不再赘述。通过本步骤,使此种虚拟视图的绘制方法最终利于裸眼3D视图的生成,该步骤可以应用于手机、平板电脑等计算能力有限的电子设备上,计算简单,利于裸眼3D视图生成技术的推广。
[0068]如附图3所示,在上述技术方案的基础上,SllO优选可以包括Slll和S112。
[0069I Slll:通过3D相机设备获取参考视图和参考视图的深度图。
[°07°]例如:通过kinect设备或其他带有3D相机功能的电子设备。
[0071]S112:根据参考视图和参考视图的深度图依次对深度视图进行边缘像素匹配、模糊处理和深度值的区间映射。
[0072]例如:边缘像素匹配首先提取参考视图的边缘部分和深度图的边缘部分b,将参考视图与深度图的边缘部分对比,将深度图的边缘部分b中与参考视图的边缘部分a不匹配的部分校正为非边缘部分,而识别参考视图的边缘部分a中与深度图的边缘部分b不匹配的部分al,将al位置对应的深度图位置设置为边缘部分,这样实现了边缘像素匹配。模糊处理采用高斯处理,深度值的区间映射执行过程:深度图像的值需要定义在O?255区间,可能对于一些非线性设备采集的数据需要做一个区间映射,可能是分段进行的。比如深度采集O?100米,其中O?20米对应数值O?20,80?100米对应数值235?255,20?80米对应数值20?235,这种分段的数据关系我们需要重新映射成一个线性的关系,变成O?100米对应数值O?255。
[0073]SllO这样设置的好处在于通过边缘像素匹配使深度图边缘识别更精准,通过模糊处理将不连续的区域变得平滑连续,减少空洞的产生,区间映射有助于3D场景的还原。
[0074]如附图4所示,在上述技术方案的基础上,优选的,S120之后,S140之前还包括S131:
[0075]如果确定Hi(T)与直线y= k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,其中,Τ2为坐标TO附近的坐标,且H1(T)与直线y = k(T-T2)有交点。
[0076]其中,k= cosA,A为预设虚拟视图视角方向与参考视图平面的夹角,y为深度值。虚拟视图中T = TO的像素值为虚拟视图中第i行或第i列中T = TO的像素点的像素值。T2可以为Hi(T)中与坐标TO最近的满足直线y = k(T-T2)与Hi(T)有交点的坐标。此步骤与步骤S130没有先后关系。
[0077]例如:TO取遍Hi(T)中第i行的列坐标或第i列的行坐标,生成穿过(T0,0)且方向与预设虚拟视图视角方向平行的直线:y = k(T-T0),如果确定Hi(T)与直线y = k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,根据上述方式将第i行和第i列的所有与相应直线没有交点的坐标对应虚拟视图的像素值得出,且根据上述方式将所有行或所有列的没有交点的坐标对应虚拟视图的像素值得出。
[0078]其中,T2为坐标TO附近的坐标,且Hi(T)与直线y = k(T_T2)有交点,而T = T2的虚拟图像的像素值的获得过程为通过S130得到的:如果有交点[Τ3,Hi (Τ3)],则将Hi (T)中T = Τ3对应的参考视图的像素值作为虚拟视图第i行或第i列中Τ = Τ2的像素点的像素值。
[0079]通过S131,可以有效将没有交点的空洞通过附近有交点的虚拟视图的像素值填补,准确性差异不大,计算过程简单。
[0080]在上述方案的基础上,S120具体包括:按各预设像素点集合的预设顺序,提取深度图的各预设像素点集合的深度图,其中,预设像素点集合为各行像素点分别构成的行集合或各列像素点分别构成的列集合,预设顺序包括从深度图的各行或各列的设定一端到另一端。
[0081]例如:以按各行为例,各行像素点的设定一端均为左端(各行像素点的设定一端可以不相同),则从深度图的各行像素点的左一端到右端提取深度图的各行像素点的深度图,按提取顺序绘制成各行的深度序列Hi(T),此时的深度序列的坐标T从左到右顺序排列,此种绘制方法可以使计算更方便快捷,准确找到与直线y = k( T-TO)的准确交点。
[0082]实施例二
[0083]图5为本发明实施例二提供的一种基于深度图的虚拟视图绘制方法的流程图,本实施例在上述各实施例的基础上,优选是将S110、S120、S130和S140进一步通过移动端GPU来实现,本方法应用于带有移动端GHJ和3D摄像头的电子设备,具体包括以下步骤。
[0084]S210、通过移动端GPU获取参考视图和参考视图的深度图。
[0085]具体的,通过深度摄像头获取到参考视图和参考视图的深度图,并将参考视图和参考视图的深度图传送给移动端GPU。其中,深度摄像头和移动端GPU可以为一体的在同一个电子设备内,也可以为分体的设置在多个电子设备中,通过数据线传输或无线传输。
[0086]S220、通过移动端GPU的着色器编程语言提取深度图的各预设像素点集合的深度序列H1(T)J为集合序号,T为像素点的坐标。
[0087]本步骤的执行过程与实施例一中S120—致,在此不再赘述,区别仅在于本步骤限定为通过移动端GPU的着色器编程语言来实现,本步骤的执行主体为移动端GPU。
[0088]S230、通过移动端GPU的着色器编程语言执行如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的参考视图的像素值作为虚拟视图中T = TO的像素值。
[0089]本步骤的执行过程与实施例一中S130—致,在此不再赘述,区别仅在于本步骤限定为通过移动端GPU的着色器编程语言来实现,本步骤的执行主体为移动端GPU。
[0090]S240、通过移动端GPU的着色器编程语言根据虚拟视图的像素值绘制虚拟视图。
[0091]本步骤的执行过程与实施例一中S140—致,在此不再赘述,区别仅在于本步骤限定为通过移动端GPU的着色器编程语言来实现,本步骤的执行主体为移动端GPU。
[0092]该一种基于深度图的虚拟视图绘制方法的工作原理:发明通过求出H1(T)与直线y= k(T-T0)交点[Tl ,Hi(Tl)]的算法,生成了虚拟视图,对各个像素点的像素值逐点计算,对每个像素点做同样处理,算法适用于移动端GHJ的着色器编程语言的运行特性,可以运行在使用了移动端GHJ手机和平板上,增加了裸眼3D技术的应用广度。
[0093]在上述技术方案的基础上,优选的,在步骤S240之后还可以增加S250:根据虚拟视图与参照视图生成裸眼3D视图。其中,虚拟视图为S240中得到的,参照视图为S210得到的,裸眼3D视图的生成过程为现有技术,可以根据裸眼3D的显示设备参数以及用户需要的不同视角数量通过不同算法合成,在此不再赘述。通过本步骤,使此种虚拟视图的绘制方法最终利于裸眼3D视图的生成,该步骤可以应用于手机、平板电脑等计算能力有限的电子设备上,计算简单,利于裸眼3D视图生成技术的推广。
[0094]实施例三
[0095]图6所示为本发明实施例三提供的一种基于深度图的虚拟视图绘制系统的结构示意图,本实施例可适用于用于带有处理器、显示器以及深度摄像头的电子设备根据基于深度图的虚拟视图绘制虚拟图像的情况,该系统的具体结构如下:
[0096]该系统包括视图获取单元310、序列提取单元320、像素值匹配单元330以及虚拟视图生成单元340
[0097]视图获取单元310,用于获取参考视图和参考视图的深度图。
[0098]具体的,通过深度摄像头获取到参考视图和参考视图的深度图,并将参考视图和参考视图的深度图传送给处理器。其中,深度摄像头和处理器可以为一体的在同一个电子设备内,也可以为分体的设置在多个电子设备中,通过数据线传输或无线传输。
[0099]序列提取单元320,连接视图获取单元310的输出端,用于提取深度图的各预设像素点集合的深度序列H1(T)J为集合序号,T为像素点的坐标。
[0100]其中,各预设像素点集合可以为各行或各列的像素点形成的集合,也可以为预先定义的像素点集合。
[0101]可以为绘制深度图的各预设像素点集合的深度序列,横轴为坐标T,纵坐标为出(T)。例如:预设像素点集合为各行或各列的像素点形成的集合,横轴为坐标T,纵轴为深度图的深度值,i为行序号或列序号,T第i行的列坐标或第i列的行坐标。
[0102]像素值匹配单元330,连接序列提取单元320的输出端,用于如果确SH1(T)与直线y = k (T-TO)有交点[TI,Hi (TI)],则将Hi (T)中T = TI对应的参考视图的像素值作为虚拟视图中T = TO的像素值。
[0103]其中,k= cosA,A为预设虚拟视图视角方向与参考视图平面的夹角,y为深度值。
[0104]虚拟视图中T= TO的像素值为虚拟视图中第i个像素点集合中T = TO的像素点的像素值。
[0105]例如:各预设像素点集合为各行或各列的像素点形成的集合。TO取遍H1(T)中第i行的列坐标或第i列的行坐标,生成穿过(T0,0)且方向与预设虚拟视图视角方向平行的直线:y = k(T-T0),如果确定Hi(T)与直线y = k(T-T0)有交点,则有交点[Tl,Hi(Tl)],则将Hi(T)中T = T1对应的参考视图的像素值作为虚拟视图第i行或第i列中T = T0的像素点的像素值,根据上述方式将第i行和第i列的所有与相应直线有交点的坐标对应虚拟视图的像素值得出,且根据上述方式将所有行或所有列的有交点的坐标对应虚拟视图的像素值得出。
[0106]虚拟视图生成单元340,连接像素值匹配单元330的输出端,用于根据虚拟视图生成虚拟视图。
[0107]具体的,根据获得的虚拟视图中各像素点的像素值绘制虚拟视图。其中,绘制虚拟视图可为通过将虚拟视图中各像素点的像素值在屏幕上显示,也可以为通将虚拟视图中各像素点的像素值以虚拟视图的视图格式存储在电子设备的存储器中。
[0108]该一种基于深度图的虚拟视图绘制方法的工作原理:发明通过求出H1(T)与直线y= k(T-T0)交点[Tl ,Hi(Tl)]的算法,生成了虚拟视图,对各个像素点的像素值逐点计算,对每个像素点做同样处理,算法简单,对应用场景没有苛刻要求,采用FPGA以外的方式也可以轻松实现,可以运行在手机和平板上,增加了裸眼3D技术的应用广度。
[0109]在上述技术方案的基础上,如附图7所示,优选的,还包括裸眼3D视图生成单元350,连接虚拟视图生成单元340和视图获取单元310,用于根据虚拟视图与参照视图生成裸眼3D视图。
[0110]其中,虚拟视图为虚拟视图生成单元340中得到的,参照视图为视图获取单元310得到的,裸眼3D视图的生成过程为现有技术,可以根据裸眼3D的显示设备参数以及用户需要的不同视角数量通过不同算法合成,在此不再赘述。通过本单元,使此种虚拟视图的绘制方法最终利于裸眼3D视图的生成,该单元可以应用于手机、平板电脑等计算能力有限的电子设备上,计算简单,利于裸眼3D视图生成技术的推广。
[0111]在上述技术方案的基础上,如附图8所示,视图获取单元310优选可以包括视图采集模块311和预处理模块312。
[0112]视图采集模块311,用于通过3D相机设备获取参考视图和参考视图的深度图。
[0113]例如:通过kinect设备或其他带有3D相机功能的电子设备。
[0114]预处理模块312,连接视图采集模块311的输出端,用于根据参考视图和参考视图的深度图依次对深度视图进行边缘像素匹配、模糊处理和深度值的区间映射。
[0115]例如:边缘像素匹配首先提取参考视图的边缘部分和深度图的边缘部分b,将参考视图与深度图的边缘部分对比,将深度图的边缘部分b中与参考视图的边缘部分a不匹配的部分bl校正为非边缘部分,而识别参考视图的边缘部分a中与深度图的边缘部分b不匹配的部分al,将al对应的深度图位置b2设置为边缘部分,这样实现了边缘像素匹配。模糊处理采用高斯处理,深度值的区间映射执行过程:深度图像的值需要定义在O?255区间,可能对于一些非线性设备采集的数据需要做一个区间映射,可能是分段进行的。比如深度采集O?100米,其中O?20米对应数值O?20,80?100米对应数值235?255,20?80米对应数值20?235,这种分段的数据关系我们需要重新映射成一个线性的关系,变成O?100米对应数值O?255。
[0116]这样设置的好处在于通过边缘像素匹配使深度图边缘识别更精准,通过模糊处理将不连续的区域变得平滑连续,减少空洞的产生,区间映射有助于3D场景的还原。
[0117]如附图9所示,在上述技术方案的基础上,优选的,还包括空洞补充单元331,用于:如果确定Hi(T)与直线y = k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,其中,Τ2为坐标TO附近的坐标,且Hi (T)与直线y = k (T-T2)有交点。
[0118]其中,k= cosA,A为预设虚拟视图视角方向与参考视图平面的夹角,y为深度值。虚拟视图中T = TO的像素值为虚拟视图中第i行或第i列中T = TO的像素点的像素值。T2可以为Hi(T)中与坐标TO最近的满足直线y = k(T-T2)与Hi(T)有交点的坐标。
[0119]例如:TO取遍Hi(T)中第i行的列坐标或第i列的行坐标,生成穿过(T0,0)且方向与预设虚拟视图视角方向平行的直线:y = k(T-T0),如果确定Hi(T)与直线y = k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,根据上述方式将第i行和第i列的所有与相应直线没有交点的坐标对应虚拟视图的像素值得出,且根据上述方式将所有行或所有列的没有交点的坐标对应虚拟视图的像素值得出。
[0120]其中,T2为坐标TO附近的坐标,且Hi(T)与直线y = k(T_T2)有交点,而T = T2的虚拟图像的像素值的获得过程为通过S130得到的:如果有交点[Τ3,Hi (Τ3)],则将Hi (T)中T = Τ3对应的参考视图的像素值作为虚拟视图第i行或第i列中Τ = Τ2的像素点的像素值。
[0121 ]在上述技术方案的基础上,优选的,序列提取单元440具体用于:按按各预设像素点集合的预设顺序,提取深度图的各预设像素点集合的深度图,其中,预设像素点集合为各行像素点分别构成的行集合或各列像素点分别构成的列集合,预设顺序包括从深度图的各行或各列的设定一端到另一端。
[0122]例如:以按各行为例,各行像素点的设定一端均为左端(各行像素点的设定一端可以不相同),则从深度图的各行像素点的左一端到右端提取深度图的各行像素点的深度图,按提取顺序绘制成各行的深度序列Hi(T),此时的深度序列的坐标T从左到右顺序排列,此种绘制方法可以使计算更方便快捷,准确找到与直线y = k( T-TO)的准确交点。
[0123]实施例四
[0124]图10为本发明实施例四提供的一种基于深度图的虚拟视图绘制系统的结构示意图,本实施例在上述各实施例的基础上,优选是将视图获取单元、序列提取单元、像素值匹配单元以及虚拟视图生成单元进一步优化为通过移动端GPU来实现。
[0125]视图获取单元410,用于通过移动端GPU获取参考视图和参考视图的深度图。
[0126]具体的,通过深度摄像头获取到参考视图和参考视图的深度图,并将参考视图和参考视图的深度图传送给移动端GPU。其中,深度摄像头和移动端GPU可以为一体的在同一个电子设备内,也可以为分体的设置在多个电子设备中,通过数据线传输或无线传输。
[0127]序列提取单元420,用于通过移动端GPU的着色器编程语言提取深度图的各预设像素点集合的深度序列H1(T)13
[0128]本单元的执行过程与实施例三中序列提取单元420—致,在此不再赘述,区别仅在于本单元限定为通过移动端GHJ的着色器编程语言来实现,本单元的执行主体为移动端GPU0
[0129]像素值匹配单元430,用于通过移动端GPU的着色器编程语言执行如果确定H1(T)与直线y = k (T-TO)有交点[TI,Hi (TI)],则将Hi (T)中T = TI对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值;
[0130]本单元的执行过程与实施例三中像素值匹配单元430—致,在此不再赘述,区别仅在于本单元限定为通过移动端GPU的着色器编程语言来实现,本单元的执行主体为移动端GPU0
[0131]虚拟视图生成单元440,用于通过移动端GPU的着色器编程语言根据所述虚拟视图的像素值绘制所述虚拟视图。
[0132]本单元的执行过程与实施例三中虚拟视图生成单元340—致,在此不再赘述,区别仅在于本单元限定为通过移动端GPU的着色器编程语言来实现,本单元的执行主体为移动端 GPU。
[0133]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种基于深度图的虚拟视图绘制方法,其特征在于,包括: 获取参考视图和所述参考视图的深度图; 提取所述深度图的各预设像素点集合的深度序列H1(T)J为集合序号,T为像素点的坐标; 如果确定Hi(T)与直线y = k(T-TO)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值,其中,k = Co sA,A为预设虚拟视图视角方向与参考视图平面的夹角,y为深度值; 根据所述虚拟视图的像素值绘制所述虚拟视图。2.根据权利要求1所述的方法,其特征在于,所述获取参考视图和所述参考视图的深度图,包括: 通过3D相机设备获取参考视图和所述参考视图的深度图; 根据所述参考视图和所述参考视图的深度图依次对所述深度视图进行边缘像素匹配、模糊处理和深度值的区间映射。3.根据权利要求2所述的方法,其特征在于,所述提取所述深度图的各行或各列像素点的深度序列H1(T)之后,所述根据所述虚拟视图的像素值绘制所述虚拟视图之前,还包括: 如果确定Hi(T)与直线y = k(T-T0)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,其中,Τ2为坐标TO附近的坐标,且Hi (T)与直线y = k(T-T2)有交点。4.根据权利要求1所述的方法,其特征在于,提取所述深度图的各行/列像素点的深度序列Hi(T),具体包括: 按各预设像素点集合的预设顺序,提取深度图的各预设像素点集合的深度图,其中,预设像素点集合为各行像素点分别构成的行集合或各列像素点分别构成的列集合,预设顺序包括从深度图的各行或各列的设定一端到另一端。5.根据权利要求1所述的方法,其特征在于, 所述获取参考视图和所述参考视图的深度图,具体为:通过移动端GPU获取参考视图和所述参考视图的深度图; 所述提取所述深度图的各预设像素点集合的深度序列H1(T),具体为: 通过移动端GPU的着色器编程语言提取所述深度图的各预设像素点集合的深度序列H1⑴; 所述如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值,具体为:通过移动端GPU的着色器编程语言执行如果确定Hi(T)与直线y = k(T-T0)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = Tl对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值; 所述根据所述虚拟视图的像素值绘制所述虚拟视图,具体为: 通过移动端GPU的着色器编程语言根据所述虚拟视图的像素值绘制所述虚拟视图。6.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟视图的像素值绘制所述虚拟视图之后,还包括:根据所述虚拟视图与所述参照视图生成裸眼3D视图。7.一种基于深度图的虚拟视图绘制系统,其特征在于,包括: 视图获取单元,用于获取参考视图和所述参考视图的深度图; 序列提取单元,用于提取所述深度图的各预设像素点集合的深度序列H1(T)J为集合序号,T为像素点的坐标; 像素值匹配单元,用于如果确定Hi(T)与直线y = k(T-TO)有交点[Tl ,Hi(Tl)],则将Hi(T)中T = TI对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值,其中,k = Co sA,A为预设虚拟视图视角方向与参考视图平面的夹角; 虚拟视图生成单元,用于根据所述虚拟视图生成所述虚拟视图。8.根据权利要求7所述的系统,其特征在于,所述视图获取单元包括: 视图采集模块,用于通过3D相机设备获取参考视图和所述参考视图的深度图; 预处理模块,用于根据所述参考视图和所述参考视图的深度图依次对所述深度视图进行边缘像素匹配、模糊处理和深度值的区间映射。9.根据权利要求7所述的系统,其特征在于,还包括空洞补充单元,用于如果确SH1(T)与直线y = k (T-TO)没有交点,则将坐标T = T2的虚拟图像的像素值作为虚拟视图中T = TO的虚拟图像的像素值,其中,T2为坐标TO附近的坐标,且Hi (T)与直线y = k (T-T2)有交点。10.根据权利要求7所述的系统,其特征在于,所述序列提取单元,用于: 按各预设像素点集合的预设顺序,提取深度图的各预设像素点集合的深度图,其中,预设像素点集合为各行像素点分别构成的行集合或各列像素点分别构成的列集合,预设顺序包括从深度图的各行或各列的设定一端到另一端。11.根据权利要求7所述的系统,其特征在于,所述视图获取单元,具体用于:通过移动端GPU获取参考视图和所述参考视图的深度图; 所述序列提取单元,具体用于:通过移动端GPU的着色器编程语言提取所述深度图的各预设像素点集合的深度序列H1(T); 像素值匹配单元,用于通过移动端GHJ的着色器编程语言执行如果确定H1(T)与直线y =k(T-TO)有交点[TI,Hi (TI)],则将Hi (T)中T = TI对应的所述参考视图的像素值作为虚拟视图中T = TO的像素值; 虚拟视图生成单元,具体用于:通过移动端GPU的着色器编程语言根据所述虚拟视图的像素值绘制所述虚拟视图。12.根据权利要求7所述的系统,其特征在于,还包括裸眼3D视图生成单元,用于根据所述虚拟视图与所述参照视图生成裸眼3D视图。
【文档编号】G06T15/20GK106023299SQ201610289100
【公开日】2016年10月12日
【申请日】2016年5月4日
【发明人】戴华冠
【申请人】上海玮舟微电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1