基于图像序列的空洞填充方法

文档序号:7806428阅读:1387来源:国知局
基于图像序列的空洞填充方法
【专利摘要】本发明公开了一种基于图像序列的空洞填充方法,根据三维图像变换前后的参考图像Rt和目标图像Dt得到视差图,对目标图像Dt进行小空洞预处理,根据参考图像Rt前后的一组邻近参考图像生成邻近目标图像,计算邻近目标图像与目标图像Dt的深度差值,对邻近目标图像中的像素点进行可用标记,从邻近目标图像拷贝可用像素点对目标图像Dt进行空洞填充,然后使用邻近参考图像对目标图像Dt采用运动补偿的方式进行空洞填充,此时再对小于阈值的空洞采用基于视差图的空洞填充方法,然后选取下一组邻近参考图像进行填充;最终剩下的空洞由图像修复算法完成填充。本发明只需一路视频,可达到较佳的图像质量,节省传输视频数据所需的带宽,减少硬件实现的时间复杂度。
【专利说明】基于图像序列的空洞填充方法

【技术领域】
[0001] 本发明属于三维图像变换【技术领域】,更为具体地讲,涉及一种基于图像序列的空 洞填充方法。

【背景技术】
[0002] 在3D电视系统中,利用基于深度图像的绘制技术(Depth Image Based Rendering,DIBR)来生成新视图时,由于视点的改变等原因,有可能产生大的空洞 (Holes)。空洞问题是最主要也是最难解决的问题,它严重影响了新视图的质量。空洞填充 问题引起了很多研究人员的关注,相应的也有了很多的解决方案。根据它们的技术特点,主 要可以分成两类:
[0003] -、基于空域的空洞填充。
[0004] 比较经典的主要有深度图像预处理,图像修复等。其中深度图像预处理通过滤 波来平滑深度图像以减少深度值的不连续性,达到缩减空洞的目的。如:Fehn提出用高斯 滤波器平滑深度图像,以消除合成的新视图中较大空洞或者使之变小。之后Chen等人、 Zhang等人在滤波器的选择以及滤波的区域方面做了改进,采用边缘依赖深度滤波器(Edge Dependent Depth Filter),非对称高斯滤波器处理深度图像,来减弱背景中垂直纹理信息 产生的几何扭曲(Geometric Distortion)现象。图像修复则根据空洞区域的特征用偏微 分方程或是纹理分析的方法来填充空洞。
[0005] 二、基于时空结合的空洞填充算法。
[0006] 这种算法也可以分为三种,第一种利用多个视点的参考图像来绘制虚拟视点的视 图,从而可以通过图像融合有效的缩小空洞的范围。第二种是迭代算法,如Wang等人则提 出的非对称边缘自适应滤波器(Asymmetric Edge Adaptive Filter, AEAF)对深度图像进 行预处理,其核心思想来自双边滤波(Bilateral Filter)。该算法通过运动估计,计算当前 帧和参考帧的对应点的亮度差异,来设置掩模系数。掩模在水平方向和垂直方向的系数是 不同,需要迭代多次才能得到这些系数。这种算法太复杂,不利于硬件实现。
[0007] 在现有的两大类算法中,基于空域的空洞填充算法,缺乏空洞区域的场景信息,用 来填充的像素不是真实场景的像素,而是通过一定的规则模拟出来的,填充后会降低图像 的逼真度;而基于时空结合的空洞填充算法虽然可以利用更多的场景信息,用多个视点的 参考图像来绘制虚拟视点的视图,从而得到较好的目标图像,但需要较高的带宽来传输多 路视频信息。迭代算法时间复杂度高,不利于硬件实现。


【发明内容】

[0008] 本发明的目的在于克服现有技术的不足,提供一种基于图像序列的空洞填充方 法,只需要传输一路视频,从图像序列中选择场景信息来填充较大空洞,不需要迭代多次, 既达到较佳的图像质量,又减少硬件实现的时间复杂度。
[0009] 为实现上述发明目的,本发明基于图像序列的空洞填充方法,包括以下步骤:
[0010] si :根据三维图像变换前后的参考图像Rt和目标图像Dt,计算各对应像素点的视 差矢量,得到视差图MV_D tRt ;
[0011] S2 :对目标图像Dt进行小空洞预处理,包括以下步骤:
[0012] S2. 1对目标图像Dt进行中值滤波,去除极小空洞;
[0013] S2. 2 :按从左往右的顺序遍历视差图MV_DtRt,检测空洞,除图像边缘的空洞以外, 当空洞的连续空洞点个数小于空洞长度阈值len,进入步骤S2. 4,否则进入步骤S2. 3 ;
[0014] S2. 3 :判断该空洞两端的像素点是否均为前景像素点,如果是,进入步骤S2. 4,否 则不作任何操作:
[0015] S2. 4 :对该空洞采用基于视差图的空洞填充方法进行填充;
[0016] S3 :基于图像序列依次对剩余空洞进行填充,具体步骤包括:
[0017] 33.1:设置1^=1;
[0018] S3. 2 :根据图像序列中的参考图像Rt_k和参考图像Rt+k,得到目标图像D t_k和目标 图像Dt+k ;
[0019] S3. 3 :将当前目标图像Dt的深度图,分别与目标图像Dt_k和Dt+k的深度图求差,得 到两个深度差值矩阵,遍历深度差值矩阵,当深度差值大于〇且小于预设阈值时,将目标图 像D t_k或Dt+k中的对应像素点的可用标记设置为1,否则设置为0 ;当目标图像Dt_k或Dt+k不 存在时,直接将对应像素点的可用标记设置为〇 ;
[0020] S3. 4 :按行遍历视差图MV_DtRt,如果检测到Dt (u,V)为空洞点,按以下方法进行填 充: D,_k (u, v), ml_k(iLv) = (\m._k(u,v) = \ D,_, (u,v), --,_/. (l^v) ^ 1,(w,v) -0
[0021] Df(u,v)= < {D,_k (u,v) + v))/ 2, mt_k (u,v) = (u,v) - 1 (), /77,_/ (w, v) = 0,m,_7 (w, v) = 0
[0022] 其中,Dt(u, v)表示目标图像Dt的中像素点(u, v),Dt_k(u, v)表示目标图像Dt_k中 的像素点(U, V),mt_k(u, V)表示目标图像Dt_k中像素点(u, V)的可用标记,Dt+k(u, V)表示目 标图像Dt+k中的像素点(u, v),mt+k(u, v)表示目标图像Dt+k中像素点(u, v)的可用标记;
[0023] 同时将目标图像中行方向上距离Dt (u,v)最近的背景像素点的视差值和深度值作 为Dt(u,v)的视差值和深度值更新视差图和深度图;
[0024] S3. 5 :分别判断参考图像Rt_k、Rt+k与参考图像Rt相比,前景是否相对于背景发生 运动,如果是,则将参考图像R t-k或Rt+k记为图像V,对目标图像Dt进行运动补偿后进入 步骤S3. 6,否则直接进入步骤S3. 6,运动补偿的方法为:
[0025] 遍历当前目标图像Dt的视差图,得到所有空洞的非空洞端点中为背景像素的 端点集合,依次选择端点集合中的各个端点D t(p,q),通过视差值得到参考图像中的对 应像素点Rt(P' ,q;),选取以像素点Rt(P',q; +ctn)为中心、边长为2n+l的图像 块作为当前块,其中η为正整数,α为偏移方向指示,当端点Dt(p,q)为空洞的左端点, α = _1,当端点Dt(p,q)为空洞的右端点,α =1;在图像V中搜索当前块的最佳匹 配块,计算得到当前块至匹配块的运动矢量兩;然后对目标图像Dt中以Dt (ρ,q- α η)为 中心、边长为η的图像块中的空洞点进行填充,当Dt(p+i,q_an+j)为空洞点,其中i、j 的取值范围分别为-η彡i彡η、-η彡j彡η,图像V中用于填充该空洞点的像素点为 /?'(尸' + /、/十a" + ,/')+ m ,同时将目标图像中行方向上距离Dt(p+i, q-α n+j)最近的背景 像素点的视差值和深度值作为像素点Dt(u,v)的视差值和深度值更新视差图和深度图;
[0026] S3. 6 :遍历视差图MV_DtRt,检测空洞,当空洞的连续空洞点个数小于空洞长度阈 值len,采用基于视差图的空洞填充方法对该空洞进行填充,否则不作任何操作;
[0027] S3. 7 :判断是否k = max (a, b),其中a表示图像序列中参考图像Rt之前的可用图 像数量,b表示图像序列中参考图像Rt之后的可用图像数量,如果是,进入步骤S4,否则令 k = k+Ι,返回步骤S3. 2 ;
[0028] S4 :采用图像修复方法对步骤S3得到的目标图像进行修复。
[0029] 本发明基于图像序列的空洞填充方法,根据三维图像变换前后的参考图像Rt和目 标图像D t,得到视差图MV_DtRt,对目标图像Dt进行小空洞预处理,再基于图像序列依次对剩 余空洞进行填充:根据参考图像R t前后的一组邻近参考图像生成邻近目标图像,计算邻近 目标图像与目标图像Dt的深度差值,根据深度差值对邻近目标图像中的像素点进行可用标 记,再根据可用标记从邻近目标图像拷贝像素点对目标图像D t的空洞进行填充,然后使用 邻近参考图像对目标图像Dt采用运动补偿的方式进行空洞填充,此时再对小于阈值的空洞 采用基于视差图的空洞填充方法,然后选取下一组邻近参考图像进行填充;最终剩下的空 洞由图像修复算法完成填充。
[0030] 本发明具有以下有益效果:
[0031] (1)只需要一路视频,从图像序列中选择场景信息来填充较大空洞,不需要额外传 输其他视频数据,在保证较佳图像质量的前提下,节省传输视频数据所需的带宽,减少硬件 实现的时间复杂度;
[0032] (2)从图像序列中获取场景信息,提高了填充后的空洞区域的真实性,得到高质量 的新视图。

【专利附图】

【附图说明】
[0033] 图1是块匹配运动估计原理图;
[0034] 图2是目标图像以及如后参考图像关系不意图;
[0035] 图3是本发明基于图像序列的空洞填充方法的工作流程示意图;
[0036] 图4是本实施例中参考图像与目标图像;
[0037] 图5是小空洞预处理的工作流程示意图;
[0038] 图6是中值滤波后的目标图像;
[0039] 图7是空洞大小检测不意图;
[0040] 图8是较大空洞分类示意图;
[0041] 图9是基于图像序列进行空洞填充的工作流程图;
[0042] 图10是三个目标图像对应的深度图;
[0043] 图11是前后两帧目标图像中的可用像素标记;
[0044] 图12是二巾贞参考图像;
[0045] 图13是根据图12中参考图像得到的三帧目标图像;
[0046] 图14是第0帧目标图像在基于图像序列的空洞填充过程和结果;
[0047] 图15是第0帧目标图像完全修复的结果图;
[0048] 图16是第0帧目标图像采用对比算法的修复结果图;
[0049] 图17是第49帧目标图像在基于图像序列的空洞填充过程和结果;
[0050] 图18是第49帧目标图像完全修复的结果图;
[0051] 图19是第49帧目标图像采用对比算法的修复结果图;
[0052] 图20是第99帧目标图像在基于图像序列的空洞填充过程和结果;
[0053] 图21是第99帧目标图像完全修复的结果图;
[0054] 图22是第99帧目标图像采用对比算法的修复结果图。

【具体实施方式】
[0055] 下面结合附图对本发明的【具体实施方式】进行描述,以便本领域的技术人员更好地 理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许 会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0056] 为了对本发明进行更好的说明,下面先对本发明的相关概念进行简单介绍。
[0057] 1、运动矢量
[0058] 运动矢量指由匹配块与当前块的相对位置计算出的运动位移,可以用块匹配运动 估计算法估计出来。通常情况下,参考帧为当前帧的相邻帧。图1是块匹配运动估计原理 图。如图1所示,为确定当前帧R t中的块Bt (当前块)的运动矢量,在参考帧Rt+1中寻找其 最佳匹配块,最佳匹配块的搜索通常在一个搜索窗内进行。例如待估计的块大小为MXN, 搜索范围为正负m,则搜索窗大小为(M+2m) X (N+2m)。通常在选取块大小时,Μ = N。最 佳匹配块的判断准则有多种,比如最小绝对差准则和最小绝对偏差和(Sum of Absolute Difference,SAD)准则等。
[0059] 在前一帧中寻找匹配块进行的运动估计,也称为前向运动估计;相反,到后一帧中 寻找匹配块进行的运动估计,相应地称之为后向运动估计。
[0060] 2、前后向运动估计补偿融合
[0061] 图2是目标图像以及前后参考图像关系示意图。如图2所示,通过搜索匹配块可 得到参考图像(当前帧)与其相邻的前/后参考图像的运动矢量MV_RtRt+i,再求目标图像与 参考图像对应的运动矢量(也就是视差向量)MV_D tRt,这两个运动矢量求和便可得到目标 图像与其前后视频图像的运动矢量MV_DtR t+i。因此,通过目标图像与参考图像的视差图,以 及前/后参考图像的匹配块搜索可以在前/参考图像中得到目标图像像素点的对应信息, 因此可以根据这些对应信息进行空洞填充。
[0062] 由于图像序列里可能没有包含填充目标图像空洞需要的全部信息,如需填补全部 空洞,还需结合中值滤波、基于视差图的空洞填充和图像修复等方法综合进行。
[0063] 实施例
[0064] 图3是本发明基于图像序列的空洞填充方法的工作流程示意图。如图3所示,本 发明基于图像序列的空洞填充方法包括以下步骤:
[0065] S301 :计算视差图:
[0066] 根据三维图像变换前后的参考图像Rt和目标图像Dt,计算各对应像素点的视差矢 量,得到视差图MV_DtRt。
[0067] 本实施例采用"ballet"序列中的图像及其附带标定参数。参考图像选择由 "ballet"序列中由摄像机4捕获的图像作为参考图像(左视图)。图4是本实施例中参考 图像与目标图像。
[0068] S302 :对目标图像Dt进行小空洞预处理:
[0069] 图5是小空洞预处理的工作流程示意图。如图5所示,对目标图像Dt的小空洞预 处理包括以下步骤:
[0070] S501:中值滤波:
[0071] 如图4所示,目标图像中有许多大小不同的空洞,对于尺寸很小的空洞(即所谓极 小空洞),可将其视为图像中的噪点,可以采用中值滤波进行去除,以便进行后续的操作。用 目标图像Dt中距离空洞点D t(u,v)最近的背景像素的视差值作为被填充空洞点Dt(u,v)的 视差值。图6是中值滤波后的目标图像。如图6所示,经过中值滤波后,尺寸较小的空洞已 经被去除。
[0072] S502 :检测空洞大小,区分较大空洞和较小空洞,即判断连续空洞是否小于空洞长 度阈值len,再分别进行处理。图7是空洞大小检测示意图。如图7所示,空洞大小检测的具 体方法为:按从左往右的顺序遍历视差图MV_D tRt,检测空洞,并确定该空洞的终点和连续 空洞点的个数,除图像边缘的空洞以外,当空洞的连续空洞点个数小于空洞长度阈值len, 则认为此处是较小空洞,进入步骤S504,则认为此处是较大空洞,否则进入步骤S503。
[0073] S503 :较大空洞分类:
[0074] 由于深度图像的不准确,在较大空洞边缘(即较大空洞的边缘区域为背景时)会 产生匹配误差,从而在处理较大空洞时先需要将较大空洞分类,然后再用其他填充较大空 洞的方法得到较好的图像质量。
[0075] 图8是较大空洞分类示意图。如图8所示,根据较大空洞两端的像素为前景或是 背景像素,以及是否在边界上,可以将空洞分为五种情况:A :两端都为背景像素点;B :左端 为背景像素点,右端为前景像素点;C :左端为前景像素点,右端为背景像素点;D :两端都为 前景像素点;E :为边界空洞。
[0076] 对于D类空洞,采用基于视差图的空洞填充方法来进行填充,其他ABCE类空洞采 用基于图像序列的空洞填充方法进行填充。因此,判断空洞两端的像素点是否均为前景像 素点,如果是,进入步骤S504,否则暂不处理,即不作任何操作。
[0077] S504 :基于视差图进行空洞填充:
[0078] 采用基于视差图的空洞填充方法,即直接从参考图像Rt中拷贝像素点来填充目标 图像Dt中的空洞,即空洞点Dt(u,v) =Rt(u,v)+d,当目标图像Dt为左视图时,d为目标图像 Dt中前景左边距离空洞点Dt (u,v)最近的背景像素的视差值,当目标图像Dt为右视图时,d 为前景右边距离空洞点Dt(u,v)最近的背景像素的视差值。同时更新目标图像Dt的视差图 和深度图,将d作为被填充空洞点D t(u,v)的视差值,用拷贝像素点的深度值作为被填充空 洞点Dt(u,v)的深度值。
[0079] 基于视差图进行空洞填充的方法具体可以参见Liu,R.,et al.,Hole-filling Based on Disparity Map for DIBR. KSII Transactions on Internet and Information Systems (TIIS),2012. 6(10) :p. 2663-2678。
[0080] S303 :基于图像序列进行空洞填充:
[0081] 图9是基于图像序列进行空洞填充的工作流程图。如图9所示,基于图像序列进 行空洞填充包括以下步骤:
[0082] S901 :令邻近参考图像序号k = 1。
[0083] S902 :根据图像序列中的参考图像Rt_k和参考图像Rt+k,得到目标图像D t_k和目标 图像Dt+k,即对参考图像Rt_ k和参考图像Rt+k进行三维图像变换。为了使目标图像Dt_k和目 标图像D t+k中能够包含更多的新场景信息,还可以对得到的目标图像Dt_k和目标图像D t+k采 用步骤S302中的方法进行小空洞预处理。
[0084] S903 :计算深度差值矩阵并标记可用像素:
[0085] 标记可用像素的目的是确定目标图像Dt_k和目标图像D t+k的新场景信息。具体方 法为:将当前目标图像Dt的深度图,分别与目标图像Dt_ k和Dt+k的深度图求差,得到两个深 度差值矩阵;遍历深度差值矩阵,当深度差值大于〇且小于预设阈值时,将目标图像D t_k或 Dt+k中的对应像素点的可用标记设置为1,否则设置为0 ;当目标图像Dt_k或Dt+k不存在时, 直接将对应像素点的可用标记设置为〇。阈值可以根据实际情况进行设置,在本实施例中, 阈值设置为9。为了能够尽量多地使用图像序列中的参考图像及其目标图像进行空洞填充, 之前的参考图像数量和之后的参考图像数量通常不相同,有可能之前与之后的参考图像只 存在一个,因此当目标图像D t_k或Dt+k不存在时,肯定不存在可用像素,因此直接将对应像 素点的可用标记设置为0。
[0086] 图10是三个目标图像对应的深度图。图11是前后两帧目标图像中的可用像素标 记。经过图10中的深度图得到深度差值矩阵后进行可用像素标记,图11中以图像形式表示 标记表,其中白色表示可用标记1,黑色表示可用标记0。可见,在一张邻近的参考图像中, 能够进行空洞填充的可用像素并不很多,因此本发明需要利用图像序列中的多个邻近参考 图像来进行空洞填充。
[0087] S904 :图像序列像素点拷贝:
[0088] 经过步骤S903进行可用像素标记后,就可以根据标记将经过处理的邻近目标图 像相应的位置拷贝场景信息来填充当前帧的空洞。具体做法是:按行遍历视差图MV_D tRt, 如检测到Dt(u,v)的视差值为-128,则对应的目标图像中的IX (u,v)为空洞点。然后根据 可用标记判断Dt(u,v)在邻近目标图像中是否有可用的新场景信息,也就是判定D t(u,v)的 可用标记是否等于1,如有可用新场景信息则拷贝相应的像素点进行补偿。填充方法为:

【权利要求】
1. 一种基于图像序列的空洞填充方法,其特征在于,包括以下步骤: 51 :根据三维图像变换前后的参考图像Rt和目标图像Dt,计算各对应像素点的视差矢 量,得到视差图MV_D tRt ; 52 :对目标图像Dt进行小空洞预处理,包括以下步骤: S2. 1对目标图像Dt进行中值滤波; S2. 2 :按从左往右的顺序遍历视差图MV_DtRt,检测空洞,除图像边缘的空洞以外,当空 洞的连续空洞点个数小于空洞长度阈值len,进入步骤S2. 4,否则进入步骤S2. 3 ; S2. 3 :判断该空洞两端的像素点是否均为前景像素点,如果是,进入步骤S2. 4,否则不 作任何操作: 52. 4 :对该空洞采用基于视差图的空洞填充方法进行填充; 53 :基于图像序列依次对剩余空洞进行填充,具体步骤包括: 53. 1 :设置 k = 1 ; S3. 2 :根据图像序列中的参考图像Rt_k和参考图像Rt+k,得到目标图像D t_k和目标图像 Dt+k ; S3.3 :将当前目标图像Dt的深度图,分别与目标图像Dt_k和Dt+k的深度图求差,得到 两个深度差值矩阵,遍历深度差值矩阵,当深度差值大于〇且小于预设阈值时,将目标图像 Dt_k或Dt+k中的对应像素点的可用标记设置为1,否则设置为0 ;当目标图像Dt_k或Dt+k不存 在时,直接将对应像素点的可用标记设置为〇 ; S3. 4 :按行遍历视差图MV DtRt,如果检测到Dt(u, v)为空洞点,按以下方法进行填充:
其中,Dt(u,v)表示目标图像Dt的中像素点(u,v),Dt_ k(u,v)表示目标图像Dt_k中的像 素点(u,V),mt_k(u,V)表示目标图像D t_k中像素点(u,v)的可用标记,Dt+k(u,v)表示目标图 像D t+k中的像素点(u,v),mt+k(u,v)表示目标图像Dt+k中像素点(u,v)的可用标记; 同时将目标图像中行方向上距离Dt(u,v)最近的背景像素点的视差值和深度值作为 Dt(u,v)的视差值和深度值更新视差图和深度图; S3. 5 :分别判断参考图像Rt_k、Rt+k与参考图像Rt相比,前景是否相对于背景发生运动, 如果是,则将参考图像或Rt+k记为图像R',对目标图像Dt进行运动补偿后进入步骤 S3. 6,否则进入步骤S3. 6,运动补偿的方法为: 遍历当前目标图像Dt的视差图,得到所有空洞的非空洞端点中为背景像素的端点 集合,依次选择端点集合中的各个端点Dt(p,q),通过视差值得到参考图像中的对应像 素点Rt(p',q< ),选取以像素点Rt(p' ,q< +αη)为中心、边长为2n+l的图像块作 为当前块,其中η为正整数,α为偏移方向指示,当端点Dt(p,q)为空洞的左端点,α =-1,当端点Dt(p,q)为空洞的右端点,α =1;在图像V中搜索当前块的最佳匹配 块,计算得到当前块至匹配块的运动矢量兩;然后对目标图像Dt中以Dt(p,q-α η)为中 心、边长为η的图像块中的空洞点进行填充,当Dt(p+i,q_an+j)为空洞点,其中i、j的 取值范围分别为-η彡i彡η、-η彡j彡η,图像V中用于填充该空洞点的像素点为 W(/? +/,</ + α/? + y) +兩,同时将目标图像中行方向上距尚Dt (p+i, q- a n+j)最近的背景 像素点的视差值和深度值作为像素点Dt(u,v)的视差值和深度值更新视差图和深度图; S3. 6 :遍历视差图MV_DtRt,检测空洞,当空洞的连续空洞点个数小于空洞长度阈值 len,采用基于视差图的空洞填充方法对该空洞进行填充,否则不作任何操作; S3. 7 :判断是否k = max (a, b),其中a表示图像序列中参考图像Rt之前的可用图像数 量,b表示图像序列中参考图像Rt之后的可用图像数量,如果是,进入步骤S4,否则令k = k+1,返回步骤S3. 2 ; S4 :采用图像修复方法对步骤S3得到的目标图像进行修复。
2.根据权利要求1所述的空洞填充方法,其特征在于,所述步骤S3. 2中,还对得到的目 标图像Dt_k和目标图像Dt+k采用步骤S2中的方法进行小空洞预处理。
【文档编号】H04N13/00GK104065946SQ201410271105
【公开日】2014年9月24日 申请日期:2014年6月17日 优先权日:2014年6月17日
【发明者】刘然, 曹东华, 田逢春, 李博乐, 黄振伟, 邓泽坤, 贾瑞双, 徐苗, 谭迎春, 谭伟敏 申请人:四川虹微技术有限公司, 重庆大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1