一种在虚拟视点合成中选取和填补合理映射点方法转让专利

申请号 : CN201610486806.5

文献号 : CN106060512B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 喻莉王伟健

申请人 : 华中科技大学

摘要 :

本发明公开了一种在虚拟视点合成中选取和填补合理映射点方法,包括重合判别与处理步骤、坏点差别与处理步骤和裂纹空洞填补步骤。与现有的视点合成原有技术相比,本发明在选取映射位置重复的像素点时,排除了噪声的干扰,能够有效的区分背景点与前景点,明显提高了映射后的像素点的准确性;对映射点是否是坏点做了有效的判断,提高了映射的准确性;在填补映射产生的裂纹空洞时,引入相关性很高的像素点信息,并结合前景背景的相关性,提高了用于填补裂纹空洞的信息的准确性。本发明克服了现有3D合成技术中映射处理方法的缺陷,提供一种可靠地选取映射像素点和填补裂纹空洞方法,从而使映射后的图像像素点准确,使得到的虚拟视点质量进一步提高。

权利要求 :

1.一种在虚拟视点合成中选取和填补合理映射点方法,其特征在于,包括如下步骤:(1)将像素点从原视点坐标系向虚拟视点坐标系完成三维映射,求出原视点图像中像素点在虚拟视点坐标系中的映射位置;

(2)判别该映射位置是否已经存在像素点,是则存在映射重合,按下述改进Z-buffer算法处理;否则转步骤(3);

(2-1)判别映射来的像素点与原已存在的像素点深度值之差的绝对值是否小于预设的噪声阈值N,是则认为两点共面,属于重合,转步骤(2-2);否则,认为这两个点是不同平面上的点,根据前景会遮挡背景的原理,保留深度值大的像素信息,即用位于前景的像素信息作为映射点像素信息,转步骤(5);

(2-2)分别求取映射来的像素点与原已存在的像素点与周围相邻像素点的彩色值之差的和,选取与四周相邻像素点平均彩色值差值较小的点为当前映射位置的像素点,转步骤(5);

(3)无映射重合处理步骤如下:

(3-1)对左右两边像素点求取平均值,Davg=(Dl+Dr)/2,其中Davg表示左右两边象素点的深度值均值;Dl、Dr分别为左右两边象素点的深度值;

(3-2)如果当前映射点的深度值D与Davg之差的绝对值大于阈值M,且左右像素点深度之差小于阈值M,那么判定当前点为坏点,此时用本次映射的左右两个像素点的均值信息来填补当前映射位置缺失的像素信息,转步骤(4);否则转(3-3);

(3-3)如果当前映射的像素点的深度值D与左右像素点深度的平均值Davg之差的绝对值小于阈值M,或者左右像素点的深度之差大于阈值M,当前映射的像素点判别为好点,此时用从原视点图像中映射过来的像素点的像素信息填补当前映射位置缺失的像素信息;转步骤(4);

(4)裂纹空洞填补,包括如下子步骤:

(4-1)在每次映射后,计算裂纹空洞点的数量ΔP=Pi-Pi-1,Pi表示当前映射点的水平方向的映射位置,Pi-1表示上一次映射点的水平方向的映射位置;

判别裂纹空洞点的数量ΔP是否小于或等于裂纹阈值W,是则转(4-2)进行裂纹空洞填补;否则不进行裂纹空洞填补,转步骤(5);

(4-2)对前后两次映射的像素点的空间深度求差,判别差的绝对值是否小于阈值M;是则认为这两个点是同一平面,用这两点像素信息的均值补裂纹空洞;否则用这两个点中位于背景的像素点的像素信息填补当前裂纹空洞;

(5)本次选取和填补映射点结束。

2.如权利要求1所述方法,其特征在于,所述像素信息包含深度和彩色信息。

3.如权利要求1所述方法,其特征在于,步骤(2)所述噪声阈值N=(Dmax-Dmin)*0.02,Dmax表示空间深度值组成的深度图中最大的深度值,DMin表示空间深度值组成的深度图中最小的深度值。

4.如权利要求1所述方法,其特征在于,步骤(3)中所述阈值M=(Davg-DMin)*0.05。

5.如权利要求1所述方法,其特征在于,所述步骤(4)裂纹阈值W取值为2。

说明书 :

一种在虚拟视点合成中选取和填补合理映射点方法

技术领域

[0001] 本发明涉及3D视频合成领域,更具体地,涉及虚拟视点3维映射时,关于如何处理重合映射点、处理单独映射点和填补映射点裂纹空洞的方法。

背景技术

[0002] 随着科学技术和信息技术以及网络多媒体技术的不断发展,人们对视觉和听觉质量的要求越来越高,迫切需要获得越来越多的图像和视频多媒体信息,高清视频和超高清视频开始逐渐被普遍关注。同时人们对于世界的认知也在不断改变,传统的二维视觉早已不能满足人们对于三维物体的要求。3D技术在很多方面都有广阔的应用前景,包括医学、工业、军事等方面都有很大需求。虚拟视点合成技术作为3D显示中的关键技术,成为了视频领域的研究热点之一。
[0003] 现有的虚拟视点合成采用的是DIBR技术,在DIBR技术中的映射部分,采用的是3维坐标转换的方式。如图1,通过像素坐标系和图像坐标系这两个坐标系,将世界坐标系与像素坐标系建立矩阵转换关系,如式(1)所示。
[0004]
[0005] 其中,[u,v,1]T表示像素坐标系坐标,[X,Y,Z,1]T表示世界坐标系坐标,[x,y]T为图像坐标系中的坐标;u0、v0表示的是图像坐标系的原点在像素坐标系中的位置,f表示相机的焦距,R表示相机的旋转矩阵,t表示相机的平移矩阵,Zc表示空间深度。
[0006] 式(1)完成的是从世界坐标系向像素坐标系的映射,也就是从世界坐标系向虚拟视点的映射,从原视点向世界坐标系映射时,使用的是式(1)的逆变换。由式(1)可以得出相应的不同坐标系之间转换的矩阵关系,这样也就可以通过坐标转换,从原视点向虚拟视点完成3维映射转换。
[0007] 在现有的虚拟视点合成技术中,第一,对于映射点发生重合现象的处理仅考虑了空间深度的大小,直接比较深度值,保留深度值大的点,而将深度值小的点抛弃,没有考虑到深度图有可能会存在误差。因为深度图存在误差,使原本深度值应该相同的不同像素点的深度值变得不一样,这样如果这两个点在映射后是重合点,在处理时仅仅考虑深度值,就会在选取点上产生误差,造成最后结果的不准确。
[0008] 第二,原视点的像素点映射后在虚拟视点中的映射位置如果没有像素点,但这个映射后的像素点映射位置两边已经有了映射后的像素点,现有方法是直接将这一映射点投影过来,并没有判断这一点是否是坏点。如果映射点是坏点,那么此时将会产生映射错误。
[0009] 第三,在前后两次映射点完成映射时,如果两次映射的水平坐标位置差小于当前虚拟视点合成时设置的裂纹宽度,那么两点之间存在的裂纹空洞即可用前后两点的值进行填补。现有做法是,只采用上一次像素点的值填补当前裂纹空洞点的值。这样会忽略掉这一次映射点的信息,造成信息的缺失,对最后结果产生较大的误差。

发明内容

[0010] 本发明所要解决的技术问题是克服现有3D合成技术中映射处理方法的缺陷,提供一种可靠地选取映射像素点和填补裂纹空洞方法,从而使映射后的图像像素点准确,使得到的虚拟视点质量进一步提高。
[0011] 本发明提出的一种在虚拟视点合成中选取和填补合理映射点方法,包括如下步骤:
[0012] (1)将像素点从原视点坐标系向虚拟视点坐标系完成3维映射,求出原视点图像中像素点在虚拟视点坐标系中的映射位置;
[0013] (2)判别该映射位置是否已经存在像素点,是则按下述改进Z-buffer算法处理,否则转步骤(3);
[0014] (2-1)判别映射来的像素点与原已存在的像素点深度值之差的绝对值是否小于预设的噪声阈值N,是则认为两点共面,属于重合,转步骤(2-2);否则,认为这两个点是不同平面上的点,根据前景会遮挡背景的原理,保留深度值大的像素信息,即保留前景的像素信息,转步骤(5);
[0015] (2-2)分别求取两个点与周围相邻像素点的彩色值之差的和,选取与四周相邻像素点平均彩色值差值较小的点为当前映射位置的像素点,转步骤(5);
[0016] (3)映射位置无像素点处理步骤如下:
[0017] (3-1)对左右两边像素点求取平均值,如式(2)所示。
[0018] Davg=(Dl+Dr)/2    (2)
[0019] 其中Davg表示左右两边象素点的深度值均值;Dl、Dr分别为左右两边象素点的深度值;
[0020] (3-2)如果当前映射点的深度值D与左右像素点深度的平均值DAvg之差的绝对值大于阈值M,且左右像素点深度之差小于阈值M,那么判断当前点为坏点,此时用左右两个像素点的均值信息来填补当前映射位置缺失的像素信息,转步骤(4);否则转(3-3)[0021] (3-3)如果当前映射的像素点的深度值D与左右像素点深度的平均值DAvg之差的绝对值小于阈值M,或者左右像素点的深度之差大于阈值M,当前映射的像素点判别为好点,此时用从原视点图像中映射过来的像素点的像素信息填补当前映射位置缺失的像素信息;转步骤(4);
[0022] (4)裂纹空洞填补,包括如下子步骤:
[0023] (4-1)在每次映射后,计算裂纹空洞点的数量ΔP=Pi-Pi-1,Pi表示当前映射点的水平方向的映射位置,Pi-1表示上一映射点的水平方向的映射位置;
[0024] 判别裂纹空洞点的数量ΔP是否小于或等于裂纹阈值W,是则转(4-2)进行裂纹空洞填补;否则不进行裂纹空洞填补,转步骤(5);
[0025] (4-2)对前后两次映射的像素点的深度求差,判别差的绝对值是否小于阈值M;是则认为这两个点是同一平面,用这两点的均值信息填补裂纹空洞信息;否则用这两个点中位于背景的像素点的像素信息填补当前裂纹空洞;
[0026] (5)本次选取和填补映射点结束。
[0027] 优先地,步骤(2)所述噪声阈值N=(Dmax-Dmin)*0.02,Dmax表示空间深度值组成的深度图中最大的深度值,DMin表示空间深度值组成的深度图中最小的深度值;步骤(3)中所述阈值M=(Davg-DMin)*0.05;所述步骤(4)裂纹阈值W取值为2。N取值过大,会扩大噪声的取值范围,将正确的深度差纳入到噪声中,引入较大误差;N取值过小,会缩小噪声的取值范围,将一部分噪声当成正确的深度差,降低这一算法的效果。M取值过大,会增加噪声的冗余,降低坏点率的产生,将坏点以正确的像素点的方式处理;M取值过小,会降低噪声的冗余,增加坏点的产生率,将正确的像素点以坏点的方式处理。W取值过大,会将大区域的空洞当作裂纹空洞处理,降低填补空洞的准确性;W取值过小,会将小区域的裂纹空洞当作大区域空洞处理,增加空洞填补的工作量。
[0028] 本发明中,所述像素信息包含深度和彩色信息。所述裂纹空洞指的是彩色值和深度值都是0。
[0029] 本发明中图像采用YUV格式,YUV格式的彩色图片被分成三个通道:Y、U、V,其中Y通道代表亮度值,U、V通道代表色度值。
[0030] 总体而言,通过本发明所构思的以上技术方案与现有的视点合成原有技术相比,具备以下的优势:
[0031] a.在选取映射位置重复的像素点时,能够有效的区分背景点与前景点,对位于相同平面的像素点能够有合理的处理方式,对不同平面的像素点也能够有效地选取合理的像素点,这样明显提高了映射后的像素点的准确性;
[0032] b.在映射时,对映射点是否是坏点做了有效的判断,这样,在选取点时能够根据不同映射位置选取合理的像素点,提高了映射的准确性;
[0033] c.在填补映射产生的裂纹空洞时,引入相关性很高的像素点信息,并合理运用这些信息,同时结合前景背景的相关性,提高了用于填补裂纹空洞的信息的准确性。
[0034] 综上所述,可以看出新方法能够有效的改善原有方法的不足,是最终的合成结果得到明显的改善。

附图说明

[0035] 图1是虚拟视点合成时三维坐标转换中四种坐标系关系;
[0036] 图2是本方法的算法流程;
[0037] 图3是不同像素点映射后重合的现象分析;
[0038] 图4是映射点的映射位置没有像素点,但两边有像素点的现象分析;
[0039] 图5是每次映射后填补裂纹空洞的现象分析。

具体实施方式

[0040] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施案例,对本发明进行进一步详细说明讲解。应当理解,此处所描述的具体实施案例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互结合。
[0041] 下面结合附图对本发明作进一步详细阐述:
[0042] 如图2所示提供了对于映射点发生重合现象的处理方法。左边是原视点中的某个像素点A(x,y)(深度值为DepA,彩色信息为ColA),该点经过三维映射后,投影到虚拟视点中(i,j)位置。因为(i,j)位置已经存在之前像素点映射的像素点V(i,j)(深度值为DepV,彩色信息为ColV),所以发生映射重合现象。此时对重合点进行选择。
[0043] 选择过程如下:
[0044] 第一步,求取A(x,y)与V(i,j)的深度差 其中
[0045] 第二步,利用式(3)判断这两点是否处于同一平面。其中噪声阈值N表示背景前景的深度差。
[0046]
[0047] 第三步,进行重合点选择。
[0048] 当Mark等于-1时,表示像素点V(i,j)是前景点,像素点A(x,y)是背景点,此时选择像素点V(i,j)作为当前点,舍弃像素点A(x,y)。
[0049] 当Mark等于1时,表示像素点A(x,y)是前景点,像素点V(i,j)是背景点,此时选择像素点A(x,y)作为当前点,舍弃像素点V(i,j)。
[0050] 当Mark等于0时,表示像素点A(x,y)和像素点V(i,j)处于同一平面。此时利用式(4)分别求出像素点A(x,y)V(i,j)与周围像素点的彩色值的变化度 和 如果选择像素点A(x,y)作为当前点,舍弃像素点V(i,j);如果 选择像素点V(i,j)作为当前点,舍弃像素点A(x,y)。
[0051]
[0052] 如图3所示,提供了判断映射点在虚拟视点中是否是坏点的方法。上方像素点A(x,y)是参考图像中的像素点,经过三维坐标变换后,映射到虚拟视点中(i,j)位置。此位置不存在像素点,但是(i-1,j)和(i+1,j)两个位置存在像素点V(i-1,j)和V(i+1,j)。此时利用V(i-1,j)和V(i+1,j)判断A(x,y)是否是坏点。判断过程如下所示:
[0053] 第一步,求出左右相邻位置的像素点深度平均值Davg,其中Davg=(DV(i-1,j)+DV(i+1,j))/2;
[0054] 第二步,利用式(5)求出前景背景深度差的阈值M;
[0055] M=(DAvg-DMin)*0.05    (5)
[0056] 第三步,利用式(6)判断当前映射点是否是坏点;
[0057]
[0058] 当像素点V(i-1,j)和V(i+1,j)的深度差小于阈值M,并且像素点A(x,y)的深度值与Davg的差大于阈值M时,判定像素点A(x,y)是坏点,此时将标志位sign设置为1。
[0059] 当像素点V(i-1,j)和V(i+1,j)的深度差大于阈值M,或者像素点A(x,y)的深度值与Davg的差小于阈值M时,判定像素点A(x,y)是正确的像素点,此时将标志位sign设置为0。
[0060] 第四步,利用式(7)求出当前映射位置的像素信息。
[0061]
[0062] 如图4所示提供填补裂纹空洞的方法。原视点中两个连续的像素点A(x-1,y)和A(x,y)经过三维坐标变换后,分别映射到虚拟视点中的(i-1,j)和(i+1,j)两个位置,中间位置(i,j)没有像素点存在,此时对其进行裂纹空洞填补。填补方法如下:
[0063] 第一步,通过式(8)求出前后两次映射位置的差ΔP;
[0064] ΔP=Pi+1-Pi     (8)
[0065] 第二步,判断ΔP是否小于裂纹阈值宽度W;如果小于等于W,则进行裂纹空洞填补,如果大于W则不进行该算法;
[0066] 第三步,这里ΔP等于1,小于W,利用式(9)判断像素点A(x-1,y)和A(x,y)是否处于相同平面。如果两点深度差小于阈值M,则将mark设置为1,如果两点深度差大于阈值M,则将Mark设置为0。
[0067]
[0068] 第四步,如果像素点A(x-1,y)和A(x,y)处于相同平面,那么利用这两个像素点的均值信息填补裂纹空洞;如果像素点A(x-1,y)和A(x,y)没有处于相同平面,那么利用处于背景点的像素点填补裂纹空洞。如式(10)所示。
[0069]
[0070] 本实施例中噪声阈值N=(Dmax-Dmin)*0.02,Dmax表示空间深度值组成的深度图中最大的深度值,DMin表示空间深度值组成的深度图中最小的深度值;裂纹阈值W取值为2。
[0071] 通过以上方法,能够合理有效的区分背景点与前景点,并选取合适的像素点填补当前点的信息,从而提高三维坐标转换的效率和准确率,使最终合成的虚拟视点图的质量相比原方法更好。
[0072] 本领域的技术人员容易理解,以上所述仅为本发明的特殊情况,并不以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。