《武汉工程大学学报》 2015年06期
56-62
出版日期:2015-06-30
ISSN:1674-2869
CN:42-1779/TQ
无参考视频平滑度的评价方法
0 引 言随着互联网技术和移动终端技术的发展,人们获取多媒体信息的需求日益增多,尤其是和视频有关的应用领域,视频的产量也明显增加,因此人们也提高了对视频的质量要求. 因为视频所包含的信息量很大,仅仅依靠人眼判断视频的质量费时费力,不适合大规模实际应用,因此使用计算机技术来完成对视频的质量的自动评价成为发展趋势. 视频质量评价算法分为全参考型评价算法、部分参考型评价算法和无参考型评价算法三大类,在过去20年中,学术界对视频质量评价方法的研究主要集中在全参考方法和部分参考方法上,并取得了一定的进展[1-4]. 全参考方法需要利用完整的没有失真的原始视频,部分参考方法也需要利用原始视频相关的部分信息,是一种算法灵活性和结果准确性的折中方案[5],而无参考方法只根据待评价视频,可以完全脱离基准视频来对目标视频进行质量评价. 相比之下,不需要任何原始视频相关的信息,直接根据待评价视频的信息评价视频质量的无参考方法,具有更好的灵活性和通用性,以及更广泛的应用价值. 本文提出了无参考视频平滑度的评价方法对视频的平滑度评估来完善补充对视频质量的评价. 也正是在这样的背景原因下,对无参考视频平滑度评价方法进行深入研究,进一步补充了对视频质量的评价方法,具有重要的理论意义和应用价值. 1 实验部分1.1 ORB特征算子ORB算法英文全称为Oriented FAST and Rotated BRIEF,它基于FAST(Features from Accelerated Segment Test)关键点检测算法及BRIEF(Binary Robust Independent Elementary Feature)特征提取算法,主要解决BRIEF算法对噪声敏感及不具备旋转不变性的缺陷. FAST关键点检测算法由于其计算复杂度低、关键点检测稳定等特点被广泛应用于计算机视觉领域,如目标跟踪、对象检测、图像对齐与拼接等. ORB算法中利用FAST关键点检测算法的高效性以保证算法的实时性并采用图像金字塔实现方式对以提取具有多尺度特征的FAST关键点. 对于特征描述子,ORB算法继承了Rotated BRIEF算法速度快,对光照、模糊及透视失真(perspective distortion)等较强的鲁棒性等优点,同时又增强了算法对噪声及旋转的鲁棒性. BRIEF描述子通过一个二进制串描述某个图像块,该二进制串的构造方式如下: fn(p)=■2i-1?子(p;xi,yi)(1) ?子(p;xi,yi)=1 p(x)<p(y)0 p(x)≥p(y)(2)其中p(x)表示点x处图像块p的灰度值. ORB算法中采用5×5的子窗口作为测试点,图像块大小为31×31,n取值为256. 由于BEIEF算法在图像发生内平面旋转时,算法性能将急速下降,为解决这个问题,ORB算法中提出一种称之为Steered BRIEF的算法,它在特征点位置(xi,yi)构造一个2×n的矩阵S: S=x1,……,xny1,……,yn(3)利用图像块的主方向θ及对应的旋转矩阵Rθ构造Steered版本的S: Sθ=RθS (4)其中图像块的主方向θ通过灰度中心(intensity centroid)[6]法计算得到,公式如下: mpq=■xpyqI(x,y)(5) C=■,■(6) θ=a tan2(m01,m10)(7)式(5)~(7)中mpq表示点(x,y)处的力矩(moments),C表示图像块的中心,θ表示图像块的主方向. 因此,ORB算法所得到的描述子为gn(p,θ)=fn(p)(xi,yi)∈S0(8)算法将360°方向分成30份,并预先构造BRIEF模式的查找表,以加速ORB描述子的生成. 1.2 ORB特征算子的匹配和筛选利用ORB特征对图像进行特征提取描述,为计算两幅图像间的平移、旋转需要对相邻两幅图像的特征点进行匹配,FLANN算法已经在计算机视觉领域有着广泛的应用,本文同样采用FLANN算法进行特征点的匹配. 图1给出了基于FLANN特征点匹配的视频中相邻两幅图像特征匹配效果. 从图1中可以看到,特征点大部分匹配比较正确,但其中也存在着一些误匹配的点. 为排除这些误匹配点给后续运动参数估计带来的影响,需要对误匹配的特征点进行剔除. 剔除方法为:求所有匹配特征点两两之间的距离,取得其距离的最小值记为min_dist,将特征点距离大于N·min_dist的特征点进行剔除,N取值一般取6~10即可. 图2给出了特征点筛选后的匹配效果,从图2中可以看出,经过筛选后的匹配的特征点已经不存在误匹配问题.图1 ORB特征点匹配效果图Fig.1 ORB feature point matching renderings图2 特征点筛选后的匹配效果图Fig.2 Results of matching the feature points after screening1.3 视频运动估计运动估计是指通过对提取相邻两帧图像的特征点,然后根据这些特征点计算图像的运动参数即平移、旋转、尺度变化等. 因此,通常对图像间的运动进行建模,模型的选取对运动估计有着十分重要的影响,模型一般可以分为两种:二维运动模型和三维运动模型. 由于移动摄像头得到的视频图像运动主要是二维平面的,这里使用二维运动模型. 通常利用仿射变换便能够满足实际应用中的需求,仿射变换模型定义如下: A=m11 m12 m13m21 m22 m23 0 0 1(9) x′y′1= Axy1(10)其中(x,y)表示第一幅图像中的像素点,(x′,y′)表示视频序列中相邻的第二幅图像中的像素点,矩阵A称为仿射变换矩阵也称为单应性(Homography)矩阵,m13和m23用于描述视频序列中相邻两幅图像间的平移运动,m11、m12、m21及m22则用于描述相邻两幅图像间的尺度变化和旋转运动,因此要计算两幅图像间的仿射变换需要计算6个参数. 通过前述的特征点匹配与筛选过程,可以得到筛选后的特征点,由于受筛选参数选取等的情况,筛选后的特征点误匹配特征点数可能仍然会存在,因此在求解单应性矩阵A时通过会利用RANSAC算法排除这些仍然没有被剔除的特征点,以减小其对求解结果的影响. RANSAC算法是随机抽样一致性算法(Random Sample Consensus)的简称,它由Fischler和 Bolles于1981年提出[7],它主要用于对存在外点(Outlier)的数据集进行迭代模型参数估计,它是一种非确定性的算法但随着迭代次数的增加能够得到精确的估计结果. 反映在本算法中则是将所有正确匹配的特征点看作是内点(Inlier)即符合整个模型要求解的参数,则那些误匹配的特征点则看作是外点,在求解单应性矩阵时将这些外点排除在外以精确求解两幅图像间的运动参数. 利用RANSAC算法求解单应性矩阵A的流程如下:(1)从匹配的ORB特征点对中随机抽4个匹配的特征点对作为一个RANSAC样本. (2)利用这4个匹配的ORB特征点对计算单应性矩阵A. (3)利用ORB特征点对集、单应性矩阵A及误差度量函数计算满足当前单应性矩阵.A的一致集consensus,并返回一致集中元素个数. (4)如果当前一致集中元素个数大于某个阈值,则认为它是最优一致集,并利用此一致集对当前最优一致集进行更新. (5)更新当前错误概率p,如果p大于设定的最小错误概率则重复(1)至(4)继续迭代,直到当前错误概率p小于最小错误概率. 得到单性矩阵A值后,便可以得到其两幅图像间相应的运动参数,设前一帧图像为I,当前帧图像为J,则其运动参数可以通过下列公式求解. (X,Y)=■,■ (11) Dx=(m11*X+m12*Y+m13)-XDy=(m21*X+m22*Y+m23)-Y(12)其中X、Y分别表示原始图像I的中心点,Height、Width分别表示图像的高、宽,Dx、Dy分别表示图像水平、垂直方向的位移,θ表示图像间的旋转角度变化. 1.4 视频抖动检测将视频序列中所有两两相邻图像间的位移及旋转角度求解出来便得到整个视频序列的平移、旋转轨迹,记D=[Dx,Dy] 有 DTajectory=(D1,D2,…,DN-1)(13) θTajectory=(θ1,θ2,…,θN-1)(14)其中N表示视频序列总帧数,DN-1表示第N-1幅视频图像与第N幅视频图像间的平移向量,θN-1表示第N-1幅视频图像与第N幅图像间的旋转角度. K. Y Lee 等[8]指出,如果视频序列中图像存在抖动,则其估计得到的运动轨迹包含高频噪声部分,这部分高频噪声是视频获取过程中摄像机随机抖动所产生的,这些高频噪声可以通过低通滤波器进行去除. 去除噪声后的运动轨迹反映的是摄像机自然运动轨迹,而不包括随机抖动,有多种低通滤波器可以进行该操作,最常用的主要包括:均值滤波器、卡尔曼滤波器、扩展的卡尔曼滤波器及高斯滤波器等. 其中高斯滤波器由于其简单、高效且可以消除累积误差等优点,被广泛用于图像处理及信号滤波等应用场景[9],高斯滤波器的定义如下: θTajectory=(θ1,θ2,…,θN-1)(15) 对视频序列的运动轨迹进行高斯平滑有: DSTajectoty=■DTajectoty?茚G(16) θSTajectoty=■θTajectoty?茚G(17)其中DSTajectoty、θSTajectoty表示平滑后的平移、旋转运动轨迹,N表示与图像前后两相邻的若干幅图像,例如对于第i幅图像,N取值可以为2M,即图像i前M幅图像与i后M幅图像间的运动轨迹都被高斯滤波器覆盖.图3给出了无抖动的Bolt视频序列部分图像. 该视频序列用于对百米赛跑道上的参赛者进行跟踪监控,摄像头变化比较平滑,视频不存在抖动,视频质量较高. 图4给出了利用前述基于ORB特征点的视频运动估计得到的图像平移运动轨迹,观察其轨迹可以清晰地看出视频序列位移变化比较均匀、有规律,视频中各帧图像间的位移不存在突变情况,从图4中可以看出,该视频序列不存在平移抖动. 图5给出了高斯平滑后的平移轨迹. 对比图4和图5可知,高斯平滑前后的轨迹变化较小,即平滑后与平滑前的轨迹差异较小,这主要是因为Bolt视频序列中几乎不存在抖动情况,从而其平移运动轨迹中不存在高频噪声. 图6给出了利用前述基于ORB特征点的视频运动估计得到的图像旋转运动轨迹(图像值均为sinθ值),从图6中可以看出图像旋转变化也很有规律,解度变化突变情况几乎不存在,由图6可以判断,该视频序列不存在旋转抖动. 图7给出了Bolt视频序列平滑后的旋转运动轨迹,对比图6与图7可以看到,平滑前后其运动轨迹差异比较小,原因在于视频旋转变化比较均匀有规律,视频中不存在因为旋转抖动而造成的高频噪声. 图3 无抖动的Bolt视频序列部分图像Fig. 3 Some images Jitter?鄄free Bolt video sequence part of the image图4 无抖动的Bolt视频序列对应的平移运动轨迹Fig. 4 Translational trajectory for the jitter-free Bolt video sequence.图5 无抖动的Bolt视频序列对应平滑后的平移运动轨迹Fig.5 Smoothed translational trajectory for the jitter-free Bolt video sequence.图6 无抖动的Bolt视频序列对应的旋转运动轨迹Fig.6 Rotational trajectory for the jitter-free Bolt video sequence图7 无抖动的Bolt视频序列对应平滑后的旋转运动轨迹Fig.7 Smoothed rotational trajectory for the jitter-free Bolt video sequence图8给出了存在比较严重的抖动的移动视频的平移运动轨迹,从图8中可以看出,图像间的平移变化是不均匀的,某些帧间的平移变化突然变小,某些帧间的平移变化又突然变大,这种平移变化是跳跃性的,直观地看,该视频序列明显存在抖动;图9给出了抖动的视频序列平滑后的平移运动轨迹,对比图8与图9可以明显发现,平滑前后的运动轨迹有着非常显著的差异,平滑后的平移运动轨迹中平移变化的突变明显减少,运动轨迹更为平滑有序,分析其原因不难发现,视频序列中存在着较为严重的平移抖动,这些抖动包括在高频噪声部分,利用高斯滤波器能够将这些高频噪声去除从而反映自然状态下摄像机的运动轨迹. 图10给出了抖动的移动视频序列的旋转运动轨迹(图中给出的是sinθ值的变化),从图10中也可以看出,某些帧间旋转角度变化较小,某些帧间的旋转变化角度又太大,也呈跳跃性的变化,产生这一问题的原因在于视频序列中的图像间存在着一定的旋转抖动,这些抖动造成旋转角度不规则变化;图11给出了抖动的移动视频序列平滑后的旋转运动轨迹,对比图10与图11可知,平滑后的旋转运动轨迹更为平滑、有序列,不存在平滑前的跳跃式变化的情况,原因在于视频序列图像间存在着一定的旋转抖动,这些抖动包含在运动轨迹的高频噪声部分,利用高斯低通滤波器处理能够有效地去除这部分高频噪声,从而还原真实的旋转运动轨迹. 综上分析可知,要检测视频中是否存在抖动,只要利用提取视频序列中各图像中的ORB特征点,并通过相邻两幅图像间匹配的特征点求取其运动参数(平移、旋转),得到整个视频序列的运动参数之后,生成其运动轨迹,利用高斯滤波器对运动轨迹进行滤波处理,得到平滑后的平移运动轨迹、旋转运动轨迹,其符号定义为:DSTajectoty=(DS,1,DS,2,…,DS,N-1)(18)θSTajectoty=(θS,1,θS,2,…,θS,N-1)(19)求解平滑后帧间运动的平均值为Daverage=(DS,1+DS,2+…DS,N-1)/(N-1)(20)θaverage=(θS,1+θS,2+…θS,N-1)/(N-1)(21)若图像中存在DS,i>m·Daverage(i=1,…N-1)则表示视频序列中存在平移抖动,若图像中存在θS,i>m·θaverage(i=1,…N-1)则表示视频序列中存在旋转抖动,m表示调整系数,取值范围一般为1~1.2. 图8 带抖动的移动视频的平移运动轨迹Fig.8 Translational trajectory for the mobilevideo containing jitter图9 带抖动的移动视频平滑后的平移运动轨迹Fig.9 Smoothed translational trajectory for themobile video sequence containing jitter图10 带抖动的移动视频的旋转轨迹Fig.10 Rotational trajectory for the mobilevideo containing jitter图11 带抖动的移动视频平滑后的旋转运动轨迹Fig.11 Smoothed rotaational trajectory for the mobilevideo sequence containing jitter1.5 平滑度评价对移动视频进行平滑度评价,可以反映行动监控设备的性能,为设备的改进及相应参数的调整起着重要的作用. 在前述抖动检测的基础上,使用欧氏距离法通过分别计算高斯滤波前后平移及旋转的距离,如果距离值越大表明视频抖动越厉害,视频平滑度较差;这种方法明显的缺点在于其输出的值范围不确定,只能一定程度说明视频平滑度情况. 为解决这个问题,本文采用抖动计数法对视频序列中的抖动进行计数,算法思想是:如果DS,i>m·Daverage,则认为视频序列第i帧与第i+1帧间存在平移抖动,则平移抖动计数器加1;如果θS,i>m·θaverage则认为视频序列第i帧与第i+1帧间存在旋转抖动,则旋转抖动计数器加1;最后,将平移抖动计数器、旋转抖动计数器与N-1作商便得到平移抖动程度及旋转抖动程度值. 公式表示如下: count_R=■[θS,i-m*θaverage]count_T=■[DS,i-m*Daverage](22) ?啄(x)=1 x>00 x≤0(23)其中count_T表示平移抖动数,count_R表示旋转抖动数,?啄(x)表示判断函数. 平移抖动程度Tmeasure及旋转抖动程度值Rmeasure计算公式为 Tsmoothness=■Rmeasure=■(24)因此,其水平平滑度值Tsmoothness及旋转平滑度值Rsmoothness为 Tsmoothness=1-TsmoothnessRmeasure=1-Rmeasure(25)其中Tsmoothness与Rsmoothness的值介于0~1之间,越接近于0表示视频序列中不存在抖动,视频平滑度好,越接近于1表示视频序列中抖动帧数越多视频平滑度越差. 2 结果与讨论本节对前面提出的移动视频平滑度评价算法进行实验验证,以证明本算法的有效性. 表1给出了无抖动Bolt视频序列及移动视频序列得到的评价结果. 图8、图9分别给出了移动视频序列帧间平移运动轨迹图、移动视频序列帧间高斯平滑滤波后的平移运动轨迹图. 对比滤波前后的平移运动轨迹图可知,视频序列中存在着比较严重的抖动,表1中第三行第一列、第二列给出了检测出的水平抖动帧数、垂直抖动帧数,表1第三行第四列给出了视频平移平滑度结果. 从结果来看,本文提出的算法能够有效地对视频中旋转抖动进行检测并对其平移平滑度进行计算. 图10与图11给出了移动视频序列帧间旋转运动轨迹图、移动视频序列帧间高斯平滑滤波后的旋转运动轨迹图,对比滤波前后的旋转运动轨迹图可知,移动视频中存在着比较严重的旋转抖动(表1第三行第三列给出了旋转抖动帧数),表1第三行第五列给出了视频旋转平滑度结果,从算法结果来看,本算法能够有效地对旋转抖动进行检测并对其平滑度进行计算. 图4与图5分别给出了无抖动Bolt视频序列帧间平移运动轨迹图、无抖动Bolt视频序列帧间高斯平滑滤波后的平移运动轨迹图. 对比两幅图可以看出:无抖动Bolt视频序列水平方向不存在抖动,只有垂直方向存在着少量的抖动帧,表1中第二行第一列、第二列给出了算法得到的水平方向抖动帧数及垂直方向抖动帧数,表1第二行第四列给出了视频平移平滑度值,该结果进一步证明了本算法能够有效地对视频序列中的抖动帧进行检测计数,得到的平滑度结果能够准确地反映视频序列的状态. 图6与图7给出了无抖动Bolt视频序列帧间旋转运动轨迹图、无抖动Bolt视频序列帧间高斯平滑滤波后的旋转运动轨迹图,对比两幅图可以看出,无抖动Bolt视频序列中不存在旋转抖动,表1第二行第三列给出了算法得到的旋转抖动帧数,表1第二行第五列给出了视频旋转平没度值,该结果进一步说明了算法对旋转抖动检测、计数及平滑度度量的有效性. 表1 无参考视频平滑度的值Table 1 Measure results of no-reference video smoothness 3 结 语上述提出的一种基于ORB特征算子的检测视频平滑度的算法,属于无参考的视频质量检测的方法. 首先使用ORB特征算子对视频帧进行描述,然后使用FLANN算法将相邻视频帧的特征点两两匹配,再去筛选匹配效果好的特征点,使用仿射变换对视频序列进行二维平面运动建模,这一过程中利用RANSAC算法求解运动参数视频帧的水平位移和旋转角度,同时,RANSAC算法也对匹配后的特征点有再次筛选的效果,得到运动参数序列水平位移序列和旋转角度序列,最后对运动参数序列进行高斯滤波处理,计算出平均水平位移和平均旋转角度,将序列与这两个平均参数比较,判定抖动帧的数量,即可计算出平滑度的值,平滑度是应当介于0~1之间,越接近于0表示视频序列中不存在抖动,视频平滑度好,越接近于1表示视频序列中抖动帧数越多,视频平滑度越差. 实验结果证明该算法不需要借助任何参考图像,依靠待评价图像本身各种信息进行质量评价,对视频平滑度检测有一定效果. 致 谢感谢湖北省高等学校优秀中青年团队计划项目(T201206)的资助!