CN104270624B - 一种分区域的3d视频映射方法 - Google Patents

一种分区域的3d视频映射方法 Download PDF

Info

Publication number
CN104270624B
CN104270624B CN201410524561.1A CN201410524561A CN104270624B CN 104270624 B CN104270624 B CN 104270624B CN 201410524561 A CN201410524561 A CN 201410524561A CN 104270624 B CN104270624 B CN 104270624B
Authority
CN
China
Prior art keywords
region
point
vision point
virtual view
vision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410524561.1A
Other languages
English (en)
Other versions
CN104270624A (zh
Inventor
王安红
邢志伟
金鉴
武迎春
李东红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanxi Banmude Machinery Equipment Co., Ltd.
Original Assignee
Taiyuan University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taiyuan University of Science and Technology filed Critical Taiyuan University of Science and Technology
Priority to CN201410524561.1A priority Critical patent/CN104270624B/zh
Publication of CN104270624A publication Critical patent/CN104270624A/zh
Application granted granted Critical
Publication of CN104270624B publication Critical patent/CN104270624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

一种分区域的3D视频映射方法,属于3D视频合成技术领域,通过区分不同区域的像素进行不同处理、避免无效信息的映射和重复映射。我们随机选择一个视点作为主视点,根据主视点的深度图分析区域特征以划分区域,分别为边界无效应区域(BNER)、边界单效应区域(BSER)、双效应区域(DER)、前景单效应区域(FSER)、前景无效应区域(FNER);对主视点,除了无效应区域(包括BNER和FNER)的所有区域都映射至虚拟视点,而对非主视点,只将其单效应区(包括BSER和FSER)映射到虚拟视点;而后对3D映射过程中产生的“裂缝”采用周围像素进行内插填补。

Description

一种分区域的3D视频映射方法
技术领域
本发明属于3D视频合成技术领域,具体涉及一种分区域的3D视频映射方法。
背景技术
在3D视频中,视点合成是一项很重要的技术,目前大多数采用DIBR(Depth-image-based Rendering,即基于深度图像的绘制)技术来合成虚拟视点。DIBR的核心是利用深度信息和摄像机参数把像素从已知的原始视点映射到未知的合成视点。DIBR主要有两种方法:单视点方法和多视点方法。单视点DIBR一般包括两个步骤:(1)3D映射;(2)空洞填补。多视点DIBR方法还包括一个额外步骤:视点融合,即将各个原始视点合成的虚拟视点融合为一个最终的视点,一般来说有两种融合方法:(1)使用一个线性权重函数混合两个视点;(2)选择一个映射的视点作为主视点,另一个映射的视点作为辅助视点来填补空洞。
单视点方法是使用一个原始视点和对应的深度信息得到合成视点,方法简单,计算复杂度低;但是这种方法有一个缺点,由于原始视点遮挡部分背景信息的缺失,会产生很大的空洞,影响视觉质量;多视点方法是使用左右视点作为原始视点合成中间视点,因此遮挡的信息可以用两个视点的信息相互补充,能产生较好质量的合成视点,但是因为多视点方法对每个视点的公共区域重复进行3D映射,且在多个视点中进行有用信息的选择性融合,造成计算复杂度增加,影响DIBR的实时实现。
在实用的3D视频中,多视点解码必须结合实时性虚拟视点合成。由于多视点方法的数据量较大,对DIBR技术的实时性是一个很大的挑战。同时,3D映射是DIBR中一个计算量最大的环节,对多个原始视点的重复3D映射将给DIBR造成很大的负担。
发明内容
本发明的目的是提供一种对3D视频快速解码方法,能够有效地提高现有的DIBR方法的速度,提高实时性。
本发明是这样实现的,其特征是包括下列步骤:
第一步:摄取3D视频两个相邻视点的纹理图和深度图,即摄像机获取的两个视点分别记为视点V1和视点V3,用视点V1和视点V3来合成中间的虚拟视点V2
对于3D映射后产生的空洞,应用分类处理:首先,对于尺寸小于等于两个像素的空洞,称为“裂缝”,将利用同一视点中相邻像素进行插值来填补;而对于尺寸大于两个像素的空洞,称为“非遮挡空洞”,则使用另外一个视点的信息来填补,因此需区分开“非遮挡空洞”和“裂缝”,通过计算一个阈值ΔZmax来区分二者:
Δ Z max = 510 L · fx · ( 1 z near - 1 z far ) - - - ( 1 )
如果深度差值大于ΔZmax,则会产生“非遮挡空洞”,否则是“裂缝”,其中,znear和zfar是自然场景与摄像机之间的距离范围,也可称为深度范围,L是两个视点摄相机之间的距离,即基线长度,fx是照相机焦距;
第二步:从视点V1或者视点V3中任选取一个视点为主视点,检测主视点深度图中的边界。
首先计算主视点深度图中每两个相邻像素之间的深度值之差ΔZ,然后根据ΔZmax利用下式进行边界检测,
F ( x , y ) = 1 , ΔZ L = d ( x , y ) - d ( x - 1 , y ) ≥ ΔZ max - 1 , Δ Z R = d ( x + 1 , y ) - d ( x , y ) ≤ - Δ Z max 0 , otherwise - - - ( 2 )
d(x,y)代表(x,y)处的深度值,即:如果f(x,y)=1,则认为(x,y)和(x-1,y)之间有一个左边界,(x,y)属于前景,(x-1,y)属于背景,此时将会在虚拟视点V2中发生“遮挡”;如果F(x,y)=-1,认为(x+1,y)和(x,y)之间有一个右边界,(x,y)属于前景,(x+1,y)属于背景,此时会在虚拟视点V2中引起“非遮挡空洞”;如果F(x,y)等于0,则相邻像素之间没有边界。
第三步:对主视点执行区域分割,并逐区域进行3D映射。
对不同区域采用不同的处理方法以节省计算量,首先考虑背景为平面且与成像平面T平行的情况,其分区域方法如图4所示,稍后再进行一般情况的分区域。区域划分规则:本发明只考虑1D模型,即两个视点的照相机平行放置,成像平面T仅有水平视差没有垂直视差。根据深度图所描述的实际场景信息对成像平面T进行区域划分,如附图2所示,本图是对实际场景和摄像机分布的俯视图,视点V1和视点V3代表原始视点,虚拟视点V2代表需要使用视点V1和视点V3来合成的虚拟视点,区域MN和AR分别表示前景和背景。视点V1和视点V3之间的基线长度为L,fx是摄像机的焦距长度,T代表成像平面,根据虚拟视点V2的需求,将视点V1和视点V3分为以下区域类型:
(1)边界无效应区域(BNER):超出虚拟视点V2视觉范围的区域。
(2)边界单效应区域(BSER):合成虚拟视点V2时,只能从一个原始视点看到的区域。
(3)双效应区域(DER):在两个原始视点中都可以看到的区域。
(4)前景单效应区域(FSER):区域只能被单视点看见,因此属于单效应区域。这种区域的信息是填补虚拟视点V2中非遮挡空洞的关键信息。
(5)前景无效应区域(FNER):绘制竞争发生的区域,遮挡空洞会在这里出现。
假设视点V1被选为主视点,如果视点V3被选为主视点,方法类似。3D映射过程按照虚拟视点V2所需的区域“从左到右”顺序进行,可分为六个步骤:
1)求取区域AB在视点V1中的长度并跳过此区域不做3D映射:
由于区域AB超出了虚拟视点V2的视觉范围,所以不需要将其在视点V1中的对应区域a1b1映射到虚拟视点V2中。设代表区域a1b1的长度,同理HAB代表A、B两点间距离,ZA和ZB分别代表A点、B点的物理深度值,
H a 1 b 1 H AB = f x Z B - - - ( 3 )
由于虚拟视点V2位于视点V1和视点V3的中点处,所以HAB等于L/2。由于背景是一个平面,ZA和ZB具有相同的长度,所以可表示为:
H a 1 b 1 = H AB · f x Z B = L · f x 2 Z B = L · f x 2 Z A = D A - - - ( 4 )
其中,DA代表A点在视点V1和虚拟视点V2间的视差,可以通过a1点的深度值计算得到:
D A = L 2 · f x · ( d a 1 255 · ( 1 z near - 1 z far ) + 1 z far ) - - - ( 5 )
2)首先利用公式(8)计算左边界区域EF在视点V1中的长度然后由视点V1中左边界点f1的坐标减去来确定“e1”点的位置,最后将视点V1中的区域“b1e1”映射到虚拟视点V2的“b2e2”区域,因此
H EF = L 2 · Z F - Z M Z M - - - ( 6 )
H e 1 f 1 H EF = f x Z F - - - ( 7 )
对比(6)(7)两式可得,
H e 1 f 1 = D M - D F - - - ( 8 )
其中,DM、DF的求取方法同上述DA
3)求取区域MN在视点V1中的对应区域“m1n1”,将“m1n1”映射到虚拟视点V2中:
现在需要从视点V1的区域“m1n1”绘制虚拟视点V2的“e2h2”区域。由于M对应左边界,N对应一个右边界,可以很容易地根据M和N在视点V1中的坐标位置确定区域“m1n1”。然后根据3D映射将此区域映射到虚拟视点V2中的“e2h2”区域;
4)计算区域HI在视点V3中的长度并将视点V3中区域“h3i3”映射到虚拟视点V2中:
因为虚拟视点V2需要的HI区域在视点V1中被遮挡,因此需要从视点V3中寻找对应的区域“h3i3”,并将其映射到虚拟视点V2的“h2i2”。由三角形相似性得:
H HI = L 2 · Z I - Z N Z N - - - ( 9 )
因此可得,
H h 3 i 3 = D N - D I - - - ( 10 )
根据上式计算区域长度,并通过将视点V1中的边界点“i1”映射到视点V3中来寻找对应点“i3”,利用点“i3”的坐标减去来确定“h3”的位置,最后将区域“h3i3”映射到虚拟视点V2的区域“h2i2”中。DN、DI的求取方法同上述DA
5)将视点V1的区域“i1j1”映射到虚拟视点V2中:
利用主视点V1的区域“i1j1”绘制虚拟视点V2的“i2j2”区域。因为在视点V1中“i1j1”紧邻“m1n1”,而且j1点是视点V1成像平面T的终点,因此,可通过将区域“m1j1”作为一整个区域映射到虚拟视点V2中来完成对区域“i1j1”的映射,而不再需要确定“i1j1”的大小;
6)计算视点V3中区域“j3k3”的长度将区域“j3k3”从视点V3映射到虚拟视点V2中:
最后,对于虚拟视点V2需要的区域“j2k2”,由于在主视点V1中不可得,因此需要从视点V3的相应区域来得到。对此,需要首先确定视点V3中“j3”点位置,通过将点“j1”映射到视点V3中来得到“j3”点,其次,由于ZJ=ZK,可以计算区域长度
H j 3 k 3 = H j 3 r 3 - H k 3 r 3 = L · f x Z J - L · f x 2 Z K = L · f x 2 Z J = D J - - - ( 11 )
综上所述,根据虚拟视点V2所需区域“从左至右”的顺序,通过分区域映射得到了虚拟视点V2,3D映射过程结束。
一般情况的区域分割:迭代求解法。当背景为非平面时,每个区域的大小将会改变,例如视点V1中的边界无效区BNER将会从AB变为ABn,因此目的变为找到主视点V1中的区域a1bn1的长度并跳过区域a1bn1,从bn1开始映射。对此,提出一种迭代求解bn1位置的方法。
首先假设Ai是点A经过第i次迭代所得点,在视点V1的成像平面T中与A点位于同一位置;然后设点Bi和Ai具有相同的物理深度、但与Ai水平方向距离为L/2。
迭代初始条件:i=0、迭代过程按照以下步骤重复执行:
1)在视点V1中,使用确定ci1在深度图中的位置,ci1对应场景中的Ci点,此时可得Ci点的深度值及其视差,即视点V1和虚拟视点V2间视差;
2)将Ci点的深度值和视差赋给Bi点以计算区域AiBi的大小,因此可得:
H a i 1 b i 1 = D B i ( i = 1,2 , . . . , n ) - - - ( 12 )
当遇到以下两种情况之一时,迭代过程停止:
1)当Bi和Bi-1的深度值之差的绝对值小于ΔZmax/2时,此时这个深度值之差不会造成映射后的虚拟视点V2中出现大于一个采样精度的改变,即认为Ci点收敛于Bn
2)最大的迭代次数小于5次。
在仿真过程中发现,一般经过一到两次迭代,Ci点即可收敛于Bn。通过类似的迭代算法可以得到:
H e i 1 f 1 = D M - D E i ( i = 1,2 , . . . , n ) - - - ( 13 )
H k i 3 r 3 = H KR · f x Z K i = L · f x 2 Z K i = D K i ( i = 1,2 , . . . , n ) - - - ( 14 )
H J n 3 r 3 = H JR · f x Z Jn = L · f x 2 Z Jn = 2 D KJ n - - - ( 15 )
因此,
H j n 3 k n 3 = H j n 3 r 3 - H k n 3 r 3 = 2 D J n - D K n - - - ( 16 )
最后,区域HI在非平坦背景中将变化为区域HnI,因此需要计算视点V3中对应的区域由于HnI由区域HnH和区域HI组成,可以通过式(10)计算。
设在视点V3中点Qi是点H第i次迭代所得的点,在成像平面T中与点H在同一位置,因此等于点Hi和点Qi具有相同的物理深度。由于已知,Q0的物理深度可由得到,可得:
H 0 Q 0 V 2 V 3 = Z I - Z H 0 Z H 0 = H 0 Q 0 L / 2 - - - ( 17 )
H 0 Q 0 H h 03 q 03 = Z H 0 f x - - - ( 18 )
结合以上两式,得
H h 03 h 3 = H h 03 q 03 = L · f x 2 ( 1 Z H 0 - 1 Z I ) = D H 0 - D I - - - ( 19 )
所以的初始值设为下一个迭代过程将Hi点的深度值和对应的视差作为变量:
H h i 3 h 3 = H h i 3 q i 3 = D H i - D I ( i = 1,2 , . . . , n ) - - - ( 20 )
区域的大小可以通过下式计算得到:
H h n 3 i 3 = H h n 3 h 3 + H h 3 i 3 = D H n - D N - 2 D I - - - ( 21 )
至此,在3D映射前计算区域大小所必需的未知点,例如Bn、En、Hn和Kn可以根据提出的迭代方法计算获得,然后计算区域的大小并进行分区域映射。
本发明的优点及积极效果是:
1)本方法基于分区域映射思想,充分利用了不同区域的信息做3D映射,减少了不必要区域的映射,避免了双效应区域的重复映射,因此提高了映射速度;
2)在不降低合成质量的前提下极大地提高了3D映射的速度,降低了合成端DIBR的时间复杂度,提高了实时性,特别适合于对计算量敏感的应用中。
附图说明
图1是合成虚拟视点的基本流程框图;
图2是本发明中的区域划分俯视图;
图3是本发明的步骤流程图;
图4是本发明的基于区域的绘制图;
图5是3D映射中产生的空洞示意图;
图6是一般情况下的区域分割示意图;
图7是迭代求解Bn位置示意图;
图8是迭代求解Hn位置示意图;
图9是本发明方案的恢复效果图;
具体实施方式
对本发明提出的分区域3D视频映射方案,做了初步的测试实验。采用标准测试序列作为输入,即Philips的Mobile序列,取了前100帧做测试,序列分辨率720*540。使用了三种不同的模式:整像素、半像素,四分之一像素。使用dell工作站做仿真,工作站参数为:Intel(R),Xeon(R)Quad-Core CPU,2.8GHz,4.00GB-DDR3内存。软件平台为Visual studio 2008,用C++语言编程实现了本方案。
本实例是这样实现的,其过程包括下列步骤:
第一步:摄取3D视频两个相邻视点的纹理图和对应的深度图,然后计算阈值ΔZmax=20。
第二步:选取视点V1或者视点V3作为主视点,检测主视点深度图中的边界。
即:(1)如果F(x,y)=1,则认为(x,y)和(x-1,y)之间有一个左边界,(x,y)属于前景,(x-1,y)属于背景,此时将会在虚拟视点V2中发生“遮挡”;
(2)如果F(x,y)=-1,认为(x+1,y)和(x,y)之间有一个右边界,(x,y)属于前景,(x+1,y)属于背景,此时会在虚拟视点V2中引起“非遮挡空洞”;
(3)如果F(x,y)等于0,则相邻像素之间没有边界。
第三步:对主视点执行区域分割,并逐区域进行3D映射:
首先考虑背景为平面且与成像平面T平行的情况,其分区域方法如图4所示。假设视点V1被选为主视点,3D映射过程按照虚拟视点V2所需的区域“从左到右”顺序进行,可分为六个步骤:
1)求取区域AB在视点V1中的长度并跳过此区域不做3D映射:
代表区域a1b1的长度,同理HAB代表A、B两点间距离,ZA和ZB分别代表A点、B点的物理深度值。HAB等于L/2。由于背景是一个平面,ZA和ZB具有相同的长度,所以为:
其中,DA代表A点在视点V1和虚拟视点V2间的视差,可以通过a1点的深度值计算得到;
2)首先计算左边界区域EF在视点V1中的长度然后由视点V1中左边界点f1的坐标减去来确定“e1”点的位置,最后将视点V1中的区域“b1e1”映射到虚拟视点V2的“b2e2”区域,因此其中,DM、DF的求取方法同上述DA
3)求取区域MN在视点V1中的对应区域“m1n1”,将“m1n1”映射到虚拟视点V2中。
由于M对应左边界,N对应一个右边界,可以很容易地根据M和N在视点V1中的坐标位置确定区域“m1n1”。然后根据3D映射将此区域映射到虚拟视点V2中的“e2h2”区域。
4)计算区域HI在视点V3中的长度并将视点V3中区域“h3i3”映射到虚拟视点V2中。 H h 3 i 3 = D N - D I ;
计算出区域长度,将通过将视点V1中的边界点“i1”映射到视点V3中来寻找对应点“i3”,利用点“i3”的坐标减去来确定“h3”的位置,最后将区域“h3i3”映射到虚拟视点V2的区域“h2i2”中。DN、DI的求取方法同上述DA
5)将视点V!的区域“i1j1”映射到虚拟视点V2中:
利用主视点V1的区域“i1j1”绘制虚拟视点V2的“i2j2”区域。通过将区域“m1j1”作为一整个区域映射到虚拟视点V2中来完成对区域“i1j1”的映射,而不再需要确定“i1j1”的大小;
6)计算视点V3中区域“j3k3”的长度将区域“j3k3”从视点V3映射到虚拟视点V2中:
最后,对于虚拟视点V2需要的区域“j2k2”,通过将点“j1”映射到视点V3中来得到“j3”点,其次,由于ZJ=ZK,可以计算区域长度
综上所述,根据虚拟视点V2所需区域“从左至右”的顺序,通过分区域映射得到了虚拟视点V2,3D映射过程结束。
一般情况的区域分割:迭代求解法。当背景为非平面时,每个区域的大小将会改变,例如视点V1中的边界无效区BNER将会从AB变为ABn,因此的目的变为找到主视点V1中的区域a1bn1的长度并跳过区域a1bn1,从bn1开始映射。对此,提出一种迭代求解bn1位置的方法。
首先假设Ai是点A经过第i次迭代所得点,在视点V1的成像平面T中与A点位于同一位置;然后设点Bi和Ai具有相同的物理深度、但与Ai水平方向距离为L/2。
迭代初始条件:i=0、迭代过程按照以下步骤重复执行:
1)在视点V1中,使用确定ci1在深度图中的位置,ci1对应场景中的Ci点,此时可得Ci点的深度值及其视差,即视点V1和虚拟视点V2间视差;
2)将Ci点的深度值和视差赋给Bi点,计算区域AiBi的大小,因此可得:
H a i 1 b i 1 = D B i ( i = 1,2 , . . . , n ) - - - ( 12 )
当遇到以下两种情况之一时,迭代过程停止:
1)当Bi和Bi-1的深度值之差的绝对值小于ΔZmax/2时,此时这个深度值之差不会造成映射后的虚拟视点V2中出现大于一个采样精度的改变,即认为Ci点收敛于Bn
2)最大的迭代次数小于5次。
在仿真过程中发现,一般经过一到两次迭代,Ci点即可收敛于Bn。通过类似的迭代算法可以得到:
H e i 1 f 1 = D M - D E i ( i = 1,2 , . . . , n ) - - - ( 13 )
H k i 3 r 3 = H KR · f x Z K i = L · f x 2 Z K i = D K i ( i = 1,2 , . . . n ) - - - ( 14 )
H J n 3 r 3 = H JR · f x Z Jn = L · f x 2 Z Jn = 2 D KJ n - - - ( 15 )
因此,
H j n 3 k n 3 = H j n 3 r 3 - H k n 3 r 3 = 2 D J n - D K n - - - ( 16 )
最后,区域HI在非平坦背景中将变化为区域HnI,因此需要计算视点V3中对应的区域由于HnI由区域HnH和区域HI组成,可以通过式(10)计算。
设在视点V3中点Qi是点H第i次迭代所得的点,在成像平面T中与点H在同一位置,因此等于点Hi和点Qi具有相同的物理深度。由于已知,Q0的物理深度可由得到,可得:
H 0 Q 0 V 2 V 3 = Z I - Z H 0 Z H 0 = H 0 Q 0 L / 2 - - - ( 17 )
H 0 Q 0 H h 03 q 03 = Z H 0 f x - - - ( 18 )
结合以上两式,得
H h 03 h 3 = H h 03 q 03 = L · f x 2 ( 1 Z H 0 - 1 Z I ) = D H 0 - D I - - - ( 19 )
所以的初始值设为下一个迭代过程将Hi点的深度值和对应的视差作为变量:
H h i 3 h 3 = H h i 3 q i 3 = D H i - D I ( i = 1,2 , . . . , n ) - - - ( 20 )
区域的大小可以通过下式计算得到:
H h n 3 i 3 = H h n 3 h 3 + H h 3 i 3 = D H n - D N - 2 D I - - - ( 21 )
至此,在3D映射前计算区域大小所必需的未知点,例如Bn、En、Hn和Kn可以根据提出的迭代方法计算获得,然后计算区域的大小并进行分区域映射。
对于3D映射过程中产生的裂缝利用周围像素插值填补,而对于非遮挡空洞则利用另外一个原始视点的信息进行填补。
对读入的每一帧循环执行以上步骤,得最终实验结果,结果如下表1、2、3所示:其中表1表明本文方法能极大提高DIBR的绘制速度;表2和表3所示,峰值信噪比和结构相似度表明了绘制结果的可靠性;实际效果图参照附图9。
表1不同方法所需时间的对比图
表2不同方法PSNR(峰值信噪比)的对比图
表3不同方法SSIM(平均结构相似度指数度量)的对比图

Claims (1)

1.一种分区域的3D视频映射方法,其特征在于具体操作方法为:
第一步:摄取3D视频两个相邻视点的纹理图和深度图,摄取的两个视点分别记为视点V1和视点V3,假设用视点V1和视点V3来合成中间的虚拟视点V2
对于3D映射后产生的空洞,应用分类处理:首先,对于尺寸小于等于两个像素的空洞,称为“裂缝”,将利用同一视点中相邻像素进行插值来填补;而对于尺寸大于两个像素的空洞,称为“非遮挡空洞”,则使用另外一个视点的信息来填补,因此需区分开“非遮挡空洞”和“裂缝”,通过计算一个阈值ΔZmax来区分二者:
ΔZ max = 510 L · f x · ( 1 z n e a r - 1 z f a r ) - - - ( 1 )
如果深度差值大于ΔZmax,则会产生“非遮挡空洞”,否则是“裂缝”,其中,znear和zfar是自然场景与摄像机之间的距离范围,也可称为深度范围,L是两个视点摄相机之间的距离,即基线长度,fx是照相机焦距;
第二步:从视点V1或者视点V3中任选取一个视点为主视点,检测主视点深度图中的边界:
首先计算主视点深度图中每两个相邻像素之间的深度值之差ΔZ,然后根据ΔZmax进行边界检测,
F ( x , y ) = 1 , ΔZ L = d ( x , y ) - d ( x - 1 , y ) ≥ ΔZ max - 1 , ΔZ R = d ( x + 1 , y ) - d ( x , y ) ≤ - ΔZ max - 0 , o t h e r w i s e - - - ( 2 )
d(x,y)代表(x,y)处的深度值,即:如果F(x,y)=1,则认为相邻像素(x,y)和(x-1,y)之间有一个左边界,(x,y)属于前景,(x一1,y)属于背景,此时将会在虚拟视点V2中发生“遮挡”;如果F(x,y)=-1,认为(x+1,y)和(x,y)之间有一个右边界,(x,y)属于前景,(x+1,y)属于背景,此时会在虚拟视点V2中引起“非遮挡空洞”;如果F(x,y)等于0,则相邻像素之间没有边界;
第三步:对主视点执行区域分割,并逐区域进行3D映射:
对不同区域采用不同的处理方法以节省计算量,首先考虑背景为平面且与成像平面T平行的情况,稍后再进行一般情况的分区域;假设视点V1被选为主视点,如果视点V3被选为主视点,方法类似;3D映射过程按照虚拟视点V2所需的区域“从左到右”顺序进行,可分为六个步骤:
1)求取区域AB在视点V1中的长度并跳过此区域不做3D映射:
由于区域AB超出了虚拟视点V2的视觉范围,所以不需要将其在视点V1中的对应区域a1b1映射到虚拟视点V2中,设代表区域a1b1的长度,同理HAB代表A、B两点间距离,ZA和ZB分别代表A点、B点的物理深度值,
H a 1 b 1 H A B = f x Z B - - - ( 3 )
由于虚拟视点V2位于视点V1和视点V3的中点处,所以HAB等于L/2,由于背景是一个平面,ZA和ZB具有相同的长度,所以可表示为:
H a 1 b 1 = H A B · f x Z B = L · f x 2 Z B = L · f x 2 Z A = D A - - - ( 4 )
其中,DA代表A点在视点V1和虚拟视点V2间的视差,可以通过a1点的深度值计算得到:
D A = L 2 · f x · ( d a 1 255 · ( 1 z n e a r - 1 z f a r ) + 1 z f a r ) - - - ( 5 )
2)首先利用公式(8)计算左边界区域EF在视点V1中的长度然后由视点V1中左边界点f1的坐标减去来确定“e1”点的位置,最后将视点V1中的区域“b1e1”映射到虚拟视点V2的“b2e2”区域,因为
H E F = L 2 · Z F - Z M Z M - - - ( 6 )
H e 1 f 1 H E F = f x Z F - - - ( 7 )
对比(6)(7)两式可得,
H e 1 f 1 = D M - D F - - - ( 8 )
其中,DM、DF的求取方法同上述DA
3)求取区域MN在视点V1中的对应区域“m1n1”,将“m1n1”映射到虚拟视点V2中:
现在需要从视点V1的区域“m1n1”绘制虚拟视点V2的“e2h2”区域,由于M对应左边界,N对应一个右边界,可以很容易地根据M和N在视点V1中的坐标位置确定区域“m1n1”,然后根据3D映射将此区域映射到虚拟视点V2中的“e2h2”区域;
4)计算区域HI在视点V3中的长度并将视点V3中区域“h3i3”映射到虚拟视点V2中:
因为虚拟视点V2需要的HI区域在视点V1中被遮挡,因此需要从视点V3中寻找对应的区域“h3i3”,并将其映射到虚拟视点V2的“h2i2”,由三角形相似性得:
H H I = L 2 · Z I - Z N Z N - - - ( 9 )
因此可得,
H h 3 i 3 = D N - D I - - - ( 10 )
根据上式计算区域长度并通过将视点V1中的边界点“i1”映射到视点V3中来寻找对应点“i3”,利用点“i3”的坐标减去来确定“h3”的位置,最后将区域“h3i3”映射到虚拟视点V2的区域“h2i2”中,DN、DI的求取方法同上述DA
5)将视点V1的区域“i1j1”映射到虚拟视点V2中:
利用主视点V1的区域“i1j1”绘制虚拟视点V2的“i2j2”区域;因为在视点V1中“i1j1”紧邻“m1n1”,而且j1点是视点V1成像平面T的终点,因此,可通过将区域“m1j1”作为一整个区域映射到虚拟视点V2中来完成对区域“i1j1”的映射,而不再需要确定“i1j1”的大小;
6)计算视点V3中区域“j3k3”的长度Hj3k3,将区域“j3k3”从视点V3映射到虚拟视点V2中:
最后,对于虚拟视点V2需要的区域“j2k2”,由于在主视点V1中不可得,因此需要从视点V3的相应区域来得到;对此,需要首先确定视点V3中“j3”点位置,通过将点“j1”映射到视点V3中来得到“j3”点,其次,由于ZJ=ZK,可以通过下式来计算区域长度
H j 3 k 3 = H j 3 r 3 - H k 3 r 3 = L · f x Z J - L · f x 2 Z K = L · f x 2 Z J = D J - - - ( 11 )
综上所述,根据虚拟视点V2所需区域“从左至右”的顺序,通过分区域映射得到了虚拟视点V2,3D映射过程结束;
一般情况的区域分割:迭代求解法:当背景为非平面时,每个区域的大小将会改变,当视点V1中的边界无效区BNER将会从AB变为ABn时,目的变为找到主视点V1中的区域a1bn1的长度,并跳过区域a1bn1,从bn1开始映射,对此,提出一种迭代求解bn1位置的方法:
首先假设Ai是点A经过第i次迭代所得点,在视点V1的成像平面T中与A点位于同一位置;然后设点Bi和Ai具有相同的物理深度、但与Ai水平方向距离为L/2;
迭代初始条件:i=0、如公式(4)所示,迭代过程按照以下步骤重复执行:
1)在视点V1中,使用确定ci1在深度图中的位置,ci1对应场景中的Ci点,此时可得Ci点的深度值及其视差,即视点V1和虚拟视点V2间视差;
2)将Ci点的深度值和视差赋给Bi点,通过式(4)计算区域AiBi的大小,因此可得:
H a i 1 b i 1 = D B i , i = 1 , 2 , ... , n - - - ( 12 )
当遇到以下两种情况之一时,迭代过程停止:
1)当Bi和Bi-1的深度值之差的绝对值小于ΔZmax/2时,此时这个深度值之差不会造成映射后的虚拟视点V2中出现大于一个采样精度的改变,即认为Ci点收敛于Bn
2)最大的迭代次数小于5次;
在仿真过程中发现,一般经过一到两次迭代,Ci点即可收敛于Bn,通过类似的迭代算法可以得到:
H e i 1 f 1 = D M - D E i , i = 1 , 2 , ... , n - - - ( 13 )
H k i 3 r 3 = H K R · f x Z K i = L · f x 2 Z K i = D K i , i = 1 , 2 , ... , n - - - ( 14 )
H J n 3 r 3 = H J R · f x Z J n = L · f x 2 Z J n = 2 D KJ n - - - ( 15 )
因此,
H j n 3 k n 3 = H j n 3 r 3 - H k n 3 r 3 = 2 D J n - D K n - - - ( 16 )
最后,区域HI在非平坦背景中将变化为区域HnI,因此需要计算视点V3中对应的区域由于HnI由区域HnH和区域HI组成,可以通过式(10)计算;
设在视点V3中点Qi是点H第i次迭代所得的点,在成像平面T中与点H在同一位置,因此等于点Hi和点Qi具有相同的物理深度,由于已知,Q0的物理深度可由得到,可得:
H 0 Q 0 V 2 V 3 = Z I - Z H 0 Z H 0 = H 0 Q 0 L / 2 - - - ( 17 )
H 0 Q 0 H h 03 q 03 = Z H 0 f x - - - ( 18 )
结合以上两式,得
H h 03 h 3 = H h 03 q 03 = L · f x 2 ( 1 Z H 0 - 1 Z I ) = D H 0 - D I - - - ( 19 )
所以的初始值设为下一个迭代过程将Hi点的深度值和对应的视差作为变量:
H h i 3 h 3 = H h i 3 q i 3 = D H i - D I , i = 1 , 2 , ... , n - - - ( 20 )
区域的大小可以通过下式计算得到:
H h n 3 i 3 = H h n 3 h 3 + H h 3 i 3 = D H n - D N - 2 D I - - - ( 21 )
至此,在3D映射前计算区域大小所必需的未知点,点Bn、En、Hn和Kn可以根据提出的迭代方法计算获得,然后计算区域的大小并进行分区域映射。
CN201410524561.1A 2014-10-08 2014-10-08 一种分区域的3d视频映射方法 Active CN104270624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410524561.1A CN104270624B (zh) 2014-10-08 2014-10-08 一种分区域的3d视频映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410524561.1A CN104270624B (zh) 2014-10-08 2014-10-08 一种分区域的3d视频映射方法

Publications (2)

Publication Number Publication Date
CN104270624A CN104270624A (zh) 2015-01-07
CN104270624B true CN104270624B (zh) 2016-08-24

Family

ID=52162106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410524561.1A Active CN104270624B (zh) 2014-10-08 2014-10-08 一种分区域的3d视频映射方法

Country Status (1)

Country Link
CN (1) CN104270624B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104869386A (zh) * 2015-04-09 2015-08-26 东南大学 一种基于分层处理虚拟视点合成方法
CN105141940B (zh) * 2015-08-18 2017-10-03 太原科技大学 一种分区域的3d视频编码方法
CN105163104B (zh) * 2015-08-31 2017-03-01 四川虹微技术有限公司 一种不产生空洞的中间视图合成方法
CN106791773B (zh) * 2016-12-30 2018-06-01 浙江工业大学 一种基于深度图像的新视点合成方法
CN112203074B (zh) * 2020-12-07 2021-03-02 南京爱奇艺智能科技有限公司 一种基于两步迭代的相机平移新视点图像生成方法和系统
CN117730530A (zh) * 2021-06-29 2024-03-19 Oppo广东移动通信有限公司 图像处理方法及装置、设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609950A (zh) * 2012-03-14 2012-07-25 浙江理工大学 一种二维视频深度图的生成方法
CN104023220A (zh) * 2014-03-24 2014-09-03 香港应用科技研究院有限公司 实时的多视图合成器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2451164B1 (en) * 2010-11-08 2017-05-03 Telefonaktiebolaget LM Ericsson (publ) Improved view synthesis
US20140098100A1 (en) * 2012-10-05 2014-04-10 Qualcomm Incorporated Multiview synthesis and processing systems and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609950A (zh) * 2012-03-14 2012-07-25 浙江理工大学 一种二维视频深度图的生成方法
CN104023220A (zh) * 2014-03-24 2014-09-03 香港应用科技研究院有限公司 实时的多视图合成器

Also Published As

Publication number Publication date
CN104270624A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104270624B (zh) 一种分区域的3d视频映射方法
CN101282492B (zh) 三维影像显示深度调整方法
CN102609974B (zh) 一种基于深度图分割渲染的虚拟视点图像的生成方法
CN100355272C (zh) 一种交互式多视点视频系统中虚拟视点的合成方法
CN108734776A (zh) 一种基于散斑的三维人脸重建方法及设备
CN106600632B (zh) 一种改进匹配代价聚合的立体图像匹配方法
CN105141940B (zh) 一种分区域的3d视频编码方法
CN102724529B (zh) 虚拟视点视频序列的生成方法及生成装置
CN101765022A (zh) 一种基于光流与图像分割的深度表示方法
CN103384343B (zh) 一种填补图像空洞的方法及其装置
CN103077542B (zh) 一种深度图的感兴趣区域压缩方法
CN103561258A (zh) 一种Kinect深度视频时空联合修复方法
CN104378619B (zh) 一种基于前后景梯度过渡的快速高效的空洞填补算法
CN106791774A (zh) 基于深度图的虚拟视点图像生成方法
CN103024421A (zh) 自由视点电视中的虚拟视点合成方法
CN104079914A (zh) 基于深度信息的多视点图像超分辨方法
CN104754359A (zh) 一种二维自由视点视频的深度图编码失真预测方法
CN102447925A (zh) 一种虚拟视点图像合成方法及装置
CN103402097A (zh) 一种自由视点视频深度图编码方法及其失真预测方法
CN106028020B (zh) 一种基于多方向预测的虚拟视角图像空洞填补方法
CN104200453A (zh) 基于图像分割和可信度的视差图像校正方法
CN104506871B (zh) 一种基于hevc的3d视频快速编码方法
CN103873867A (zh) 自由视点视频深度图失真预测方法和编码方法
CN108924434B (zh) 一种基于曝光变换的立体高动态范围图像合成方法
CN103945206B (zh) 一种基于相似帧比较的立体图像合成系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190828

Address after: 030000 Taiyuan Comprehensive Reform Demonstration Zone, Taiyuan Tanghuai Park, No. 13 Longsheng Street, Yunnan Special Economic Zone, Block E, 0716

Patentee after: Shanxi Banmude Machinery Equipment Co., Ltd.

Address before: 030024 Taiyuan City, Shanxi Province Wan Road, No. 66, No.

Patentee before: Taiyuan Univ. of Science & Technology