一种视频中污损区域的填充方法与流程

文档序号:12604262阅读:206来源:国知局
一种视频中污损区域的填充方法与流程

本发明属于多媒体信息技术领域,尤其涉及一种视频中污损区域的填充方法。



背景技术:

常见的视频污损一般是由信息插入造成的,较为常见的是在视频中插入版权方的信息。图1所示为从视频中截取的一帧,从图中可以看出,在该视频中包含3处插入信息,即三处污损,分别为:左上角为“CCTV6”(中央电视台第6套电影频道的台标)、右上角为“CNTV高清”(中国网络电视台高清频道的台标)以及右下角为“电影频道”的M形台标。

目前,解决视频污损的方法有很多,如,对台标区域进行模糊或马赛克填充,该方法虽然使用户无法看清原来的台标,但是大大降低了视频的观赏价值。又如,采用图片纹理合成的方法逐帧进行修复,在该方法中首先对待填充区域附近的图片进行采样,获取待填充区域附近的纹理信息,然后计算合成待填充区域的纹理图片,但是其只能在待填充区域产生表示纹理的像素,无法保持延伸物体边缘结构;且该方法未考虑视频帧与帧之间的相关性,修复后的视频在被填充区域有明显的闪烁,给观众带来不适。再有,利用视频帧之间的相关性对图片进行全局或局部的像素块运动估计,然后用前若干帧或后若干帧的像素块来填充当前帧的待填充区域。但是,一般来说,视频中某一固定场景可能持续若干秒时间,假若某一固定场景结束后又进入下一个固定场景,则使用该方法难以得到满意的修复结果,可见,该运动估计补偿方法在很多情况下并不适用。



技术实现要素:

针对上述问题,本发明旨在提供一种视频中污损区域的填充方法,有效解决了现有填充方法填充完成后污损区域出现的闪烁现象。

本发明提供的技术方案如下:

一种视频中污损区域的填充方法,包括:

S1采用预设图片修复方法对视频中第一帧图片和最后一帧图片中的待填充区域进行填充修复;

S2基于填充目标使用泊松方程构建视频待填充区域中所有未知像素点的方程;

S3基于步骤S2中构建的方程依次对视频待填充区域的位置像素点进行填充。

进一步优选地,在步骤S2中,填充目标具体为其中,表示梯度算子,Ωv表示视频中待填充区域,F表示视频中待填充区域的未知像素值;

边界条件具体为其中,F*表示视频中已知区域的已知像素值,δΩ表示视频中已知区域和待填充区域之间的边界。

进一步优选地,在步骤S2中具体包括:

S21基于填充目标能够得到满足目标的泊松方程:ΔF=0,其中,表示拉普拉斯算子,F表示视频中待填充区域的未知像素值;

S22三维离散化泊松方程:

F(x+1,y,f)+F(x-1,y,f)+F(x,y+1,f)+F(x,y-1,f)+F(x,y,f+1)+F(x,y,f-1)-6F(x,y,f)=0

其中,F(x,y,f)表示视频中第f帧图片中一未知像素点;

S23基于步骤S21中的离散化泊松方程构建视频待填充区域中所有未知像素点的方程:

A[F(m1),...,F(mM)]T=BT

其中,F(mi),i=1,...,M表示视频中的M个未知像素点,BT表示由边界条件计算得到的列向量,A表示M个未知像素点的系数矩阵。

进一步优选地,在步骤S3中具体包括:

S31将视频待填充区域的边界点mi=(x,y,f)的邻接点集合记为:

η(mi)={(x+1,y,f),(x-1,y,f),(x,y+1,f),(x,y-1,f),(x,y,f+1),(x,y,f-1)};

S32将视频待填充区域的边界点代入步骤S23中的方程得到BT中第i个元素的像素值:

<mrow> <msub> <mi>b</mi> <mi>i</mi> </msub> <mo>=</mo> <mo>-</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>&eta;</mi> <mrow> <mo>(</mo> <msub> <mi>m</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&cap;</mo> <mo>{</mo> <mi>V</mi> <mo>-</mo> <msub> <mi>&Omega;</mi> <mi>v</mi> </msub> <mo>}</mo> </mrow> </munder> <msup> <mi>F</mi> <mo>*</mo> </msup> </mrow>

其中,V-Ωv表示视频中已知区域;

S33依次对视频待填充区域的未知像素点进行填充。

进一步优选地,在步骤S1中具体包括:

S11将视频进行分段,且前一段视频中的最后一帧图片与后一段视频中的第一帧图片相同;

S12采用预设图片修复方法分别对每段视频中第一帧图片中的待填充区域进行填充修复以及对最后一段视频中最后一帧图片中的待填充区域进行填充修复。

进一步优选地,在步骤S2中具体包括:基于填充目标使用泊松方程构建一视频段待填充区域中所有未知像素点的方程;

在步骤S3中具体包括:基于步骤S2中构建的方程依次对该视频段待填充区域的未知像素点进行填充。

进一步优选地,在步骤S3之后还包括:

S4循环步骤S2~S3,直到视频所有分段中所有未知像素点填充完成。

本发明提供的视频中污损区域的填充方法,其有益效果在于:

在本发明提供的填充方法中,综合使用了图片修复技术,充分考虑了视频中帧与帧(组成视频的各图片帧)之间的相似性和连贯性;由帧与帧之间又具有微小的差别,在相邻帧中所填充的内容也满足相似性和连贯性,同时保留了帧与帧之间的微小差别,以此保证了填充后视频在播放时用户不会观察到填充区域(即上述未知区域)的边界,也消除了填充区域在填充后出现的闪烁现象。再有,使用本发明提供的填充方法填充出来的每一帧图像的污损区域(未知区域)内容自然,不易被人眼察觉,适于观赏,大大提高了视频的修复效果。

附图说明

图1为有污损区域的视频中某一图片帧的示意图;

图2为本发明中视频中待填充区域形成柱形空洞示意图;

图3为本发明中对视频中第一帧图片和最后一帧图片中的待填充区域填充修复后示意图;

图4为本发明中视频中污损区域的填充方法一种实施方式流程示意图。

具体实施方式

下面结合附图和具体实施方式,对本发明作进一步详细说明。需要说明的是,下面描述的本发明的特定细节仅为说明本发明用,并不构成对本发明的限制。根据所描述的本发明的教导做出的任何修改和变型也在本发明的范围内。

我们知道,视频是由图像帧组成的,在本发明中,我们假定每一图片帧中的污损区域(未知区域)在视频帧中的相对位置是固定的(如,视频中的台标位置都是固定的),假定每个图片帧中的污损区域都为圆形,则在视频中所有图片帧中的污损区域就形成了一个待填充的柱状空洞,如图2所示,其中白色圆形区域即为污损的待填充区域,视频填充即通过计算得到该待填充区域的像素值进行填充,使得填充后的视频看起来自然流畅。

在一视频中,记视频的第f帧图片为Sf,该图片帧中的已知区域记为Φf,未知区域(即上述待填充区域)记为Ωf,未知区域的边界记为δΩf。若该视频中共有N帧,则视频记为V={Sf,f=1,...,N},该视频中所有已知区域记为Φv={Φf,f=1,...,N},视频中所有未知区域记为Ωv={Ωf,f=1,...,N},视频中所有未知区域边界记为δΩv={δΩf,f=1,N.}.。.,

基于此,以下我们对本发明提供的视频中污损区域的填充方法做出详细描述:

如图3所示为本发明提供的视频中污损区域的填充方法一种实施方式的流程示意图,从图中可以看出,在该填充方法中包括:S1采用预设图片修复方法对视频中第一帧图片和最后一帧图片中的待填充区域进行填充修复;S2基于填充目标使用泊松方程构建视频待填充区域中所有未知像素点的方程;S3基于步骤S2中构建的方程依次对视频待填充区域的未知像素点进行填充。

具体,在一个具体实施例中,在步骤S1中采用图片纹理合成的方法对视频中第一帧图片和最后一帧图片中的待填充区域进行填充修复。假设视频中共包含N帧图片,即V={Sf,f=1,...,N},则完成对视频中第一帧图片和第N帧图片的填充修复之后,该视频中的第一帧图片和第N帧图片就是完整,中间的第二帧图片到第N-1帧图片中仍有待填充区域,如图3所示。假定视频中已知区域的已知像素值用F*(p)表示,其中,p=(x,y,f)∈Φv表示视频中第f帧图片中一已知像素点;视频中待填充区域的未知像素值用F(p)表示,其中,p=(x,y,f)∈Ωv表示视频中第f帧图片中一未知像素点。另外,此时的待填充区域Ωv={Ωf,f=1,...,N}={Ωf,f=2,...,N-1}。最后,要说明的是,在其他实施例中,在步骤S1中可以采用任意一种现有的图片修复方法对视频中的第一帧图片和最后一帧图片进行修复,如还可以采用像素块运动估计补偿的方法等,在此不做限定。

为了使待填充区域尽可能地平滑过渡,在待填充区域内填充的未知像素值F的梯度模值应该尽可能的小,即指导填充的目标函数为同时满足边界条件为(边界上F的函数值与F*的函数值相同,即满足狄利克雷边界条件),其中,表示梯度算子,Ωv表示视频中待填充区域,F表示视频中待填充区域的未知像素值,F*表示视频中已知区域的已知像素值,δΩ表示视频中已知区域和待填充区域之间的边界。

基于此,在步骤S2中,根据变分函数最优化理论可知指导填充的目标函数的解满足泊松方程(欧拉-拉格朗日等式):ΔF=0 over Ωv with其中,表示拉普拉斯算子,F表示视频中待填充区域的未知像素值,该泊松方程的解即为如图3所示的视频待填充区域中未知像素点的像素值。

我们知道,对于离散的数字视频而言,三维离散欧几里得空间的拉普拉斯算子可以表示为:

基于该3x3x3维的矩阵,在步骤S22中,泊松方程可被离散化为:

F(x+1,y,f)+F(x-1,y,f)+F(x,y+1,f)+F(x,y-1,f)+F(x,y,f+1)+F(x,y,f-1)-6F(x,y,f)=0

其中,F(x,y,f)表示视频中第f帧图片中一未知像素点。

可知,对于图3所示的视频中待填充区域的M个未知像素点F(mi),i=1,...,M来说,共包括M个上述离散化的泊松方程,在S23中,将步骤S21中的M个离散化泊松方程组成待填充区域中所有未知像素点的线性方程组:

A[F(m1),...,F(mM)]T=BT

其中,F(mi),i=1,...,M表示视频中的M个未知像素点,BT表示由边界条件计算得到的列向量,A表示M个未知像素点的系数矩阵。由离散化的泊松方程可知,矩阵A是一个满秩的实对称正定矩阵,故上述线性方程组必然存在唯一解,具体可以使用高斯萨缪尔迭代法或共轭梯度法等多种方法进行求解,在此不再赘述。

在填充过程中,在步骤S31中,假定mi=(x,y,f)是视频中的一个边界点,即mi∈Ωv,则该边界点mi=(x,y,f)的6个邻接点的集合为:

η(mi)={(x+1,y,f),(x-1,y,f),(x,y+1,f),(x,y-1,f),(x,y,f+1),(x,y,f-1)};

由mi为边界点,则其邻接的集合点中至少有一个位于已知区域,即η(mi)∩{V-Ωv}≠φ。

故,在步骤S32中,将视频待填充区域的边界点代入步骤S23中的方程,并将等式左边已知像素点的像素值移动到等式的右边,即可得到BT中第i个元素的像素值:

<mrow> <msub> <mi>b</mi> <mi>i</mi> </msub> <mo>=</mo> <mo>-</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>&eta;</mi> <mrow> <mo>(</mo> <msub> <mi>m</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>&cap;</mo> <mo>{</mo> <mi>V</mi> <mo>-</mo> <msub> <mi>&Omega;</mi> <mi>v</mi> </msub> <mo>}</mo> </mrow> </munder> <msup> <mi>F</mi> <mo>*</mo> </msup> </mrow>

其中,V-Ωv表示视频中已知区域,以此得到待填充区域的未知像素点的像素值,基于此,依次对视频待填充区域的未知像素点进行填充。

对上述实施方式进行改进得到本实施方式,在本实施方式中,若视频较大(总长度为K帧图片),则在填充之前,首先将视频进行分段,且前一段视频中的最后一帧图片与后一段视频中的第一帧图片相同;具体,假定每段中包含N帧图片,则前一段视频中的第N帧图片和下一段视频中的第N帧图片相同,即前一段视频的第N帧图片和下一段视频的第N帧图片重叠。当然,分段视频中的最后一段视频可能小于N帧图片,在分段过程中,也可以根据实际情况进行分段,即分段后每段视频中包括的图片帧的数量可以不等分。

之后,采用预设图片修复方法分别对每段视频中第一帧图片中的待填充区域进行填充修复以及对最后一段视频中最后一帧图片中的待填充区域进行填充修复,以此任意一段视频的起始帧和结束帧都是经过填充修复的完整图片。

在本实施方式中,在步骤S2中具体包括:基于填充目标使用泊松方程构建一视频段待填充区域中所有未知像素点的方程;在步骤S3中具体包括:基于步骤S2中构建的方程依次对该视频段待填充区域的未知像素点进行填充。在步骤S3之后还包括:S4循环步骤S2~S3,直到视频所有分段中所有未知像素点填充完成。具体每段视频的填充过程与上一实施方式相同,在此不做赘述。

以上通过分别描述每个过程的实施场景案例,详细描述了本发明,本领域的技术人员应能理解。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1