背景技术
运动模糊通常存在于视频中,它严重影响了视频的质量。空间不变模糊通常是在拍摄没有深度变化的静态场景时,曝光时间内相机发生了抖动造成的。空间变化模糊的形成原因有两种,一种是拍摄的静态场景有较大的深度变化,曝光时间内发生了相机抖动;另一种是拍摄场景中有快速运动的物体,视频图像中各像素点的模糊程度不同。
近年来许多学者展开了大量研究来对运动模糊视频进行复原,根据问题求解的方式不同可以分为传统方法和深度学习方法。传统方法多采用最优化算法对视频的清晰帧进行求解,并将相机抖动和物体运动分成了两类问题。早期的研究工作主要研究单帧空间不变模糊图像的复原,首先求解一个空间一致的模糊核,然后利用该模糊核对模糊图像进行反卷积,最后得到复原的清晰图像,比如S.Cho,S.Lee,Fast motion deblurring,AcmTransactions on Graphics,28(5)(2009)1-8.中的ADM算法,S.Cho,H.Cho,Y.W.Tai,Registration based non-uniform motion deblurring,Computer Graphics Forum,31(7)(2012)2183–2192.中的FTVd等算法,这些方法可以一定程度上用于没有深度变化的静态场景的去模糊中;为了解决具有深度变化的场景带来的空间变化模糊问题,C.Paramanand and A.N.Rajagopalan,Non-uniform motion deblurring for bilayerscenes,in Proc.IEEE Conf.ComputerVision and Pattern Recognition,2013,pp.1115-1122.文章提出了多层分割方法来复原这种类型的模糊图像;之后,人们的研究深入到了处理运动物体造成的空间变化模糊,这种方法通常通过计算帧内运动向量进而计算模糊核用于清晰帧复原,X.Deng,Y.Shen,M.Song,Video-based non-uniform object motion blurestimation and deblurring,Neurocomputing,86(4)(2012)170–178.提出了基于特征点匹配和德劳内插值的方法来计算稠密的帧间运动向量,再将帧间运动向量与拍摄时的曝光时间与帧间时间间隔(帧率的倒数)的比值(简称为时间长度比),就可以得到帧内的运动向量;由于插值存在较大的误差,T.H.Kim,K.M.Lee,Generalized video deblurring fordynamic scenes,in Proc.IEEE Conf.Computer Vision and Pattern Recognition,2015,pp.5426-5434.又提出用光流来替代帧间运动向量,这些方法都是基于帧间运动为匀速运动并且每帧曝光时间已知的假设。在实际拍摄中,帧间的相对运动通常不是匀速的,表现为各帧的模糊程度不同,因此帧内运动向量与帧间运动向量模长的比值(简称为运动向量长度比,the ratio ofmotionvector length)不等于时间长度比,除此之外,同一帧中具有不同运动状态的物体,运动向量长度比也是不相等的。因此,使用前面所述的方法用一个统一的时间长度比来计算帧内运动向量会引入误差。
随着深度学习的发展,深度神经网络应用到了视频图像去模糊中,用于解决空间变化的运动模糊视频复原,Kim T H,Lee K M,SchlkopfB,et al.Online VideoDeblurring via Dynamic Temporal Blending Network[J].2017.提出了使用深度神经网络来对模糊视频进行复原。由于神经网络的训练需要大量的数据集,而模糊视频复原的数据集制作又比较特殊,需要使用高速摄像机进行拍摄并人工合成,硬件成本较高,且对于一些难以使用高速摄像机拍摄的场景,就无法制作对应的数据集。此外,受制于人工合成数据的局限性,训练的模型泛化性不高,难以适用于多种复杂场景。因此,深度学习方法难以落地应用到工程中。
鉴于此提出本发明。
发明内容
本发明的目的在于克服现有技术的不足,提出一种结合帧间信息的非均匀运动模糊视频复原方法,该方法可以计算出准确的运动向量长度比,从而精细化模糊核,通过引入运动向量长度比的空间一致性约束项和视频的时间一致性约束项,能显著减小复原帧的振铃效应,并保证复原视频的时域连续性。
为了实现该目的,本发明采用如下技术方案:
一种结合帧间信息的非均匀运动模糊视频复原方法,包括以下步骤:
步骤一、获取需要处理的视频;
步骤二、根据获取的视频,提取视频帧图像,并判断每帧图像的清晰度,若当前帧图像的清晰度大于或等于预设阈值,则判断当前帧为清晰帧,并对下一帧图像进行判断,若当前帧图像的清晰度小于预设阈值,则判断当前帧为模糊帧Bi,并将上一帧图像作为对比清晰帧Lj;
步骤三、检测所述对比清晰帧Lj与模糊帧Bi之间的特征点,并对所述特征点进行匹配,然后以匹配的特征点对为中心,分别提取一系列相应的清晰图像块lj,k和模糊图像块bi,k;
步骤四、利用投影运动模糊模型和步骤三中提取的图像块,分别计算每个模糊图像块b
i,k的运动向量长度比
步骤五、利用TV-L1光流算法估算模糊帧B
i的光流u
i→j,并利用光流u
i→j和步骤四中求得的运动向量长度比
结合k-medoids聚类算法和KNN分类方法来计算模糊帧B
i的运动向量长度比s;
步骤六、对模糊帧Bi、光流ui→j和运动向量长度比s进行多次下采样,并建立金字塔模型;
步骤七、固定光流ui→j和运动向量长度比s,计算潜在清晰帧Li;
步骤八、固定潜在清晰帧Li和运动向量长度比s,计算光流ui→j;
步骤九、固定潜在清晰帧Li和光流ui→j,计算运动向量长度比s;
步骤十、重复执行上述步骤七至步骤九,直到达到金字塔模型的最高分辨率层,计算出最高分辨率的潜在清晰帧Li、光流ui→j和运动向量长度比s;
步骤十一、用步骤十中计算得到的最高分辨率的潜在清晰帧Li替换所述模糊帧Bi,得到复原后的清晰视频。
进一步,所述步骤十还包括:
判断计算出的潜在清晰帧Li的清晰度是否大于或等于预设阈值,
如果大于或等于则执行下一步骤,如果小于预设阈值,则将运动向量长度比s增加一个精度值0.02,并再次执行步骤七至步骤九,直到计算出的潜在清晰帧Li满足大于或等于预设阈值的要求。
进一步,所述步骤二采用CPBD sharpness-metirc计算每一帧的清晰度,所述预设阈值的取值为0.55,或者,在视频中所有帧的清晰度都不能达到0.55时,将预设阈值设置为视频所有帧的清晰度平均值。
进一步,所述步骤三中,体征点匹配的过程为:利用ORB检测算法检测所述对比清晰帧Lj与模糊帧Bi之间的特征点,然后生成BEBLID特征描述子并进行匹配。
进一步,所述步骤四中,所述运动向量长度比
的计算方法为:
步骤a1:选取一对匹配的清晰图像块l
j,k和模糊图像块b
i,k,并计算清晰图像块l
j,k的中心点到模糊图像块b
i,k中心点的向量
所述向量/>
的表达式为:/>
步骤a2:设定运动向量长度比
的精度为0.02,取值范围为0~1,根据/>
的取值和向量/>
计算出50个对应的单应矩阵,计算公式为:
步骤a3:根据步骤a2求解的50个单应矩阵,对清晰图像块l
j,k进行单应变换,并依次叠加,得到50个估算的模糊图像块
计算公式为:
步骤a4:计算估算的模糊图像块
与真实模糊图像块b
i,k之间的二范数损失,得到最小的对应的N值,计算公式为:
步骤a5:根据步骤a4计算的N值,计算出该模糊图像块b
i,k的运动向量长度比
所述运动向量长度比/>
进一步,所述步骤五中,计算模糊帧Bi的运动向量长度比s的方法为:
步骤b1:使用TV-L1算法计算出模糊帧B
i的光流u
i→j,并将光流u
i→j归一化,记坐标为x(x,y)的像素点的光流为
步骤b2:使用k-modoids聚类算法对所有模糊帧B
i中的特征点进行聚类,聚类的特征向量构造为
将具有相近光流和运动向量长度比的点分为一类;
步骤b3:计算每一类里所有特征点的运动向量长度比的均值,并将该均值重新赋值给特征点;
步骤b4:使用KNN分类方法,将模糊帧Bi中的其他非特征点划分到步骤b2计算出的类别中心,分类的特征向量构造为[ux,uy,y,u,v],其中,y,u,v为图像归一化后的YUV通道值;
步骤b5:将步骤b3中计算出的运动向量长度比的均值,赋值给步骤b4中划分入对应类别的非特征点,最终得到模糊帧Bi的运动向量长度比s。
进一步,所述步骤七可以通过求解以下第一公式来实现:
式中,K(u
i→j,s)是模糊核的行向量形式,
是一个线性算子,它计算的是水平和垂直方向上的导数,λ、μ
L是不同损失项的权重;
在计算过程中,为减小噪声的影响,对Li(x)和Lj(x+ui→j)都做一次模糊核为3*3的高斯模糊;
K(ui→j,s)在每个像素点x(x,y)处的值k(x)通过以下公式计算得到:
式中,
是坐标点x(x,y)运动向量长度比,u(x)是在像素点x(x,y)上的光流,其在x和y方向上的分量分别为u,v;δ(vx-uy)是Dirac冲激函数;
所述第一公式通过以下凸优化方法来对其进行求解:
式中,m≥0,代表迭代次数,s
i和q
i是对偶变量,η
L和ε
L是更新次数,A是空间线性梯度算子,算子D
i计算L
i(x)和L
j(x+u
i→j)之间的时域差距,T代表矩阵的转置,通过共轭梯度法来最小化式中的代价函数,得到
进一步,所述步骤八可以通过求解以下第二公式来实现:
式中,ν是尺度,σ
I控制该项的权重,
是迭代过程中的潜在清晰帧,u
0是光流u
i→j的初始值;
所述第二公式通过以下凸优化方法来对其进行求解:
其中:p
i是u
i→j的对偶变量,G是对角矩阵G=diag((g(x))),η
u和ε
u是更新次数,
代表/>
进一步,所述步骤九通过求解以下第三公式来实现:
所述第三公式通过以下凸优化方法来对其进行求解:
式中,r
i是s
i的对偶变量,η
s和ε
s是更新次数,
代表/>
采用本发明所述的技术方案后,带来以下有益效果:
本发明通过计算运动向量长度比,提高了模糊核的精度,在非盲复原部分利用运动向量长度比的TV正则项来保证其空间平滑性,非盲复原部分引入了相邻帧时域一致性约束,保证了视频复原的准确性和时域连续性;本发明能够处理大部分摄像机与拍摄场景之间存在相对运动所造成的运动模糊,不再分开讨论模糊核的空间变化和空间不变性,增大了方法的普适性。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细的描述。
如图1所示,一种结合帧间信息的非均匀运动模糊视频复原方法,包括以下步骤:
步骤一、获取需要处理的视频,所述视频为连续视频。
步骤二、根据获取的视频,提取视频帧图像,并判断每帧图像的清晰度,若当前帧图像的清晰度大于或等于预设阈值,则判断当前帧为清晰帧,并对下一帧图像进行判断,若当前帧图像的清晰度小于预设阈值,则判断当前帧为模糊帧Bi,并将上一帧图像作为对比清晰帧Lj。所述模糊帧Bi和对比清晰帧Lj中的i和j为一变量,且i=j+1,如模糊帧出现在第三帧则标注为B3,相应的对比清晰帧标注为L2。
具体地,所述清晰度判断采用CPBD sharpness-metirc计算每一帧的清晰度,所述预设阈值的取值优选为0.55,或者,在视频中所有帧的清晰度都不能达到0.55时,将预设阈值设置为视频所有帧的清晰度平均值。
举例说明,在进行判断时,首先判断视频第一帧清晰度,若第一帧的清晰度大于0.55,则继续对第二帧进行判断,若第二帧清晰度也大于0.55,则继续对第三帧进行判断,若第三帧的清晰度小于0.55,则判断第三帧为模糊帧B3,并将第二帧作为对比清晰帧L2。
在该步骤二中,可以通过安装python的CPBD包,直接调用CPBD包里现有的清晰度计算函数完成计算。
步骤三、检测所述对比清晰帧Lj与模糊帧Bi之间的特征点,并对所述特征点进行匹配,然后以匹配的特征点对为中心分别提取一系列相应的清晰图像块lj,k和模糊图像块bi,k。
具体地,体征点匹配的过程为:利用ORB检测算法检测所述对比清晰帧L
j与模糊帧B
i之间的特征点,然后生成BEBLID特征描述子并进行匹配,可以匹配出一系列特征点对
以特征点为中心,可以提取出相应匹配的清晰图像块l
j,k和模糊图像块b
i,k。
步骤四、利用投影运动模糊模型和步骤三中提取的图像块,分别计算每个模糊图像块b
i,k的运动向量长度比
步骤五、利用TV-L1光流算法估算模糊帧B
i的光流u
i→j,并利用光流u
i→j和步骤四中求得的运动向量长度比
结合k-medoids聚类算法和KNN分类方法来计算模糊帧B
i的运动向量长度比s,
所述k-medoids聚类算法处理过程为:首先,随机选择k个对象作为初始的k个簇的代表点,将其余对象按与代表点对象的距离分配到最近的簇;然后,反复用非代表点来代替代表点,其中,非代表点是一个簇里距离代表点距离最远的点,以改进聚类质量。
所述KNN分类算法的实现原理:为了判断未知样本的类别,以所有已知类别的样本作为参照,计算未知样本与所有已知样本的距离,从中选取与未知样本距离最近的K个已知样本,根据少数服从多数的投票法则(majority-voting),将未知样本与K个最邻近样本中所属类别占比较多的归为一类。
步骤六、对模糊帧Bi、光流ui→j和运动向量长度比s进行多次下采样,并建立金字塔模型,具体地,所述下采样倍数为2n,下采样方式为均值下采样,n的取值取决于金字塔最顶层图片的大小,本发明中顶层图片的最长边设置为大于64。
步骤七、固定光流ui→j和运动向量长度比s,计算潜在清晰帧Li。
步骤八、固定潜在清晰帧Li和运动向量长度比s,计算光流ui→j。
步骤九、固定潜在清晰帧Li和光流ui→j,计算运动向量长度比s。
步骤十、重复执行上述步骤七至步骤九,直到达到金字塔模型的最高分辨率层,计算出最高分辨率的潜在清晰帧Li、光流ui→j和运动向量长度比s。
步骤十一、将模糊帧Bi替换为步骤十中计算得到的最高分辨率的潜在清晰帧Li,得到复原后的清晰视频。
优选地,所述步骤十还包括:
判断计算出的潜在清晰帧Li的清晰度是否大于或等于预设阈值,如果大于或等于则执行下一步骤,如果小于预设阈值,说明清晰度依然较低,需要将运动向量长度比s增加一个精度值0.02,并再次执行步骤七至步骤九,直到计算出的潜在清晰帧Li满足大于或等于预设阈值的要求。
具体地,所述步骤四中,所述运动向量长度比
的计算方法为:
步骤a1:选取一对匹配的清晰图像块l
j,k和模糊图像块b
i,k,并计算清晰图像块l
j,k的中心点到模糊图像块b
i,k中心点的向量
所述向量/>
的表达式为:/>
步骤a2:设定运动向量长度比
的精度为0.02,取值范围为0~1,本实施例中运动向量长度比/>
的取值为0.02,根据/>
的取值和向量/>
可以计算出50个对应的单应矩阵,计算公式如下:
步骤a3:根据步骤a2求解的50个单应矩阵,对清晰图像块l
j,k进行单应变换,并依次叠加,得到50个估算的模糊图像块
计算公式为:
步骤a4:计算估算的模糊图像块
与真实模糊图像块b
i,k之间的二范数损失,得到最小的对应的N值,计算公式为:
步骤a5:根据步骤a4计算的N值,计算出该模糊图像块b
i,k的运动向量长度比
所述运动向量长度比/>
具体地,所述步骤五中,计算模糊帧Bi的运动向量长度比s的方法为:
步骤b1:使用TV-L1算法计算出模糊帧B
i的光流u
i→j,并将光流u
i→j归一化,记坐标为x(x,y)的像素点的光流为
步骤b2:使用k-modoids聚类算法对所有模糊帧B
i中的特征点进行聚类,聚类的特征向量构造为
将具有相近光流和运动向量长度比的点分为一类;
步骤b3:计算每一类里所有特征点的运动向量长度比的均值,并将该均值重新赋值给特征点;
步骤b4:使用KNN分类方法,将模糊帧Bi中的其他非特征点划分到步骤b2计算出的类别中心,分类的特征向量构造为[ux,uy,y,u,v],其中,y,u,v为图像归一化后的YUV通道值;
步骤b5:将步骤b3中计算出的运动向量长度比的均值,赋值给步骤b4中划分入对应类别的非特征点,最终得到模糊帧Bi的运动向量长度比s。
在拍摄视频时,由于不同物体具有不同的运动状态,因此它们之间的运动向量长度比是不相等的,而对于同一物体上的点,其运动状态一致,因此运动向量长度比是相等的,因此模糊帧Bi的运动向量长度比s具有局部的平滑性和全局的不一致性。为了得到更为准确的运动向量长度比s,本发明选择了先聚类、后分类的方法来对其他非特征点的像素点的运动向量长度比进行插值。
具体地,所述步骤七可以通过求解以下第一公式来实现:
式中,K(u
i→j,s)是模糊核的行向量形式,
是一个线性算子,它计算的是水平和垂直方向上的导数,λ、μ
L是不同损失项的权重;
在计算过程中,为减小噪声的影响,对Li(x)和Lj(x+ui→j)都做了一次模糊核为3*3的高斯模糊;
K(ui→j,s)在每个像素点x(x,y)处的值k(x)通过以下公式计算得到:
式中,
是坐标点x(x,y)运动向量长度比,u(x)是在像素点x(x,y)上的光流,其在x和y方向上的分量分别为u,v;δ(vx-uy)是Dirac冲激函数;
所述第一公式通过以下凸优化方法来对其进行求解:
式中,m≥0,代表迭代次数,s
i和q
i是对偶变量,η
L和ε
L是更新次数,A是空间线性梯度算子,算子D
i计算L
i(x)和L
j(x+u
i→j)之间的时域差距,T代表矩阵的转置,最后,通过共轭梯度法来最小化式中的代价函数,得到
具体地,所述步骤八可以通过求解以下第二公式来实现:
式中,ν是尺度,σ
I控制该项的权重,
是迭代过程中的潜在清晰帧,u
0是光流u
i→j的初始值;
所述第二公式通过以下凸优化方法来对其进行求解:
其中:p
i是u
i→j的对偶变量,G是对角矩阵G=diag((g(x))),η
u和ε
u是更新次数,
代表/>
具体地,所述步骤九可以通过求解以下第三公式来实现:
所述第三公式通过以下凸优化方法来对其进行求解:
式中,r
i是s
i的对偶变量,η
s和ε
s是更新次数,
代表/>
本发明方法的计算机仿真分析:
用Python和OpenCV在Windows764位系统,配置为2.0GHz Intel Core i7-8565UCPU及8GB内存的PC机上对本发明方法进行仿真实验。
本发明方法复原出的视频帧(图6)具有更清晰的边缘及更多的细节信息,明显优于传统的单幅图像复原方法(图3)、块融合方法(图4)、双向光流方法(图5)。另外在复原质量的客观评价方面,本发明方法复原出的视频帧具有最高的sharpness-metric值。无论在主观效果还是客观评价方面,本发明方法都具有明显的优势。
以上所述为本发明的实施方式,应当指出,对于本领域的普通技术人员而言,在不脱离本发明原理前提下,还可以做出多种变形和改进,这也应该视为本发明的保护范围。