基于峰值信噪比评价的运动模糊方向与长度识别
2012-10-21陈从平
陈从平 汪 卫
(三峡大学 机械与材料学院,湖北 宜昌 443002)
在获取一幅图像时,由于成像系统与被拍摄对象之间存在着相对运动,引起所成图像的运动模糊,其中匀速直线运动所造成的运动模糊最为常见,故具有一般性和普遍性.并且由于成像系统取得一幅图像所用时间非常短暂,此时非匀速直线运动可以近似视为匀速直线运动[1].匀速直线运动模糊图像复原的关键主要在于运动模糊方向和长度的识别.根据运动模糊图像和原始图像在频谱上存在的对应关系,常常使用Hough变换[2-3]或 Radon变换[4-6]检测运动模糊图像频谱图上暗条纹的方向和位置,然后根据模糊图像的频谱自动识别模糊方向和长度.虽然该方法较为简单且成熟,但是识别的精度较低,据此识别结果的复原图像效果也不理想.本文使用Hough变换对频谱图进行初次识别,然后以复原图像与原模糊图像的峰值信噪比作为评价标准对初次识别值进行偏差修正,识别结果精度非常高,根据识别结果对运动模糊图像的复原效果较为理想.
1 算法原理
1.1 基于频谱识别运动模糊方向和长度
根据成像系统的一般特性,线性和位置(空间)不变性,图像的退化就是成像系统的退化加上额外的系统噪声而形成的图像的连续图画模型,可用下式描述:
式中,g(x,y)表示所获得的退化图像(模糊图像),h(x,y)表示成像退化的点扩展函数,f(x,y)表示原始图像(清晰图像),n(x,y)表示系统噪声部分,根据经验,这里设置成加性噪声.
在直线运动中,可以将运动分解到x和y方向上,设x0(t)和y0(t)分别是景物运动在x和y方向的运动分量,T是曝光时间长度,在忽略加性噪声的情况下,实际采集到的运动模糊图像为
其中H(u,v)为运动模糊的传输函数.此时若知道了运动分量x0(t)和y0(t),从式(4)中可以求得传递函数h(x,y)的频谱函数H(u,v),进而利用退化的逆过程对退化图像进行复原[7-8].
现在假设运动模糊长度和模糊方向分别为L和θ,在未知其实际值时通过频谱分析对其进行自动识别,在识别模糊长度和方向之后对图像进行复原.
对于任意角度的匀速直线运动模糊,都可以通过图像旋转,将模糊方向转到水平方向上,此时y0(t)=0,可以不考虑y方向分量的影响,x0(t)=tL/T.
此时设置点扩展函数为
其曲线如图1所示.在图1中H(u)随u与原点的距离增加而迅速减小.在实际获取的图像中,噪声n(u,v)分布比较均匀,随u的变化缓慢.如果H(u,v)在UV 平面内取零或很小时,N(u,v)/H(u,v)就会迅速增大,带来严重的噪声,使恢复结果与预期结果有很大差距,图像退化更严重.在这种情况下,恢复只能在与原点较近(接近频域中心)的范围内进行.因此,在测定模糊方向与模糊长度时,取频谱中心区域较暗的条纹进行参数计算,所得结果对恢复情况较为理想.
图1 运动模糊的传输函数
运动模糊图像和原始图像在频谱上存在一定的对应关系,模糊图像频谱存在对应于传递函数零点的暗条纹,通过算法检测运动模糊图像频谱图上暗条纹的方向与距离,可以实现运动方向与长度的识别.同时对中心暗条纹之间的距离测定得到模糊长度.
沿任意方向的直线运动模糊可以近似为沿x轴运动图像的旋转图像.当n=0时幅值H(u)取最大值,对应着频谱图中心亮条纹.当H(u)为零时u依次取±1/L,±2/L,±3/L…,分别对应着频谱中的中心亮条纹两侧对称的暗条纹.两条暗条纹之间的像素距离就是d=1/L,设所取图像大小为N×M,则一个像素的长度为1/N,在曝光时间T内运动的像素个数为n,则L=l/N.
通过对运动模糊图像的频谱图分析其暗条纹的倾斜角可以得知模糊方向,有点扩展函数和线扩展函数傅里叶变换之间的关系可以证明,与x轴成θ夹角的直线的频谱,其傅里叶变换等于在(u,v)平面内,与u轴成(θ+90°)夹角的方向上的截面,对于与x轴成θ角的匀速直线运动,其频谱一定在(θ+90°)方向上存在暗条纹.
用霍夫变换(Hough)在模糊图像中检测暗条纹,取canny算子(敏感度阈值参数)thresh的初始值上限为经验值0.85.
在极坐标中用如下参数方程表示一条直线:
其中,ρ代表直线到原点的垂直距离,θ代表x轴到直线垂线的角度,取值范围为±90°.与直角坐标类似,极坐标中Hough变换也将图像坐标空间中的点变换到参数空间中,在极坐标表示下,图像坐标空间中共线的点变换到参数空间中后,在参数空间都相交于一点,此时得到的ρ、θ即为所求直线的极坐标参数.
在由霍夫变换分割出两条对应于模糊图像中心暗条纹的平行直线后,通过取其平均值,可以减少分割时的误差值.求得该直线的距离和角度参数,由此来反求运动模糊图像的模糊角度与长度.
通过Hough变换求得d的值,故模糊像素长度和方向为
其中,d1,d2表示两条暗条纹到图像原点的距离(pixel),θ1,θ2表示两条直线与x轴正向所成的角度(°).
1.2 基于峰值信噪比对初次识别的模糊长度进行修正
通过Hough变换分割出的平行线[9]检测出图像的模糊方向和模糊长度,由于分割中存在的不准确性,此时的运动方向和长度与真实值之间存在着一定的误差[4].根据上面检查出的初方向和长度值利用维纳滤波对模糊图像进行复原,运动方向和长度与真实值之间的误差导致点扩展函数与真实PSF也产生误差,因而复原图像的清晰度与真实图像之间存在很大的差距,如文献[3]中存在较大误差.为了将图像恢复到最接近原始清晰图像,而对图像的初次识别的方向与长度进行二次识别,当复原点扩展函数与模糊点扩展函数相一致时,复原图像最清晰.由于从原始清晰图像到复原图像的两次变换,基于真实的模糊长度时复原图像的清晰度应该是最低的,同时复原图像与模糊图像的峰值信噪比(PSNR)最大.在初次识别的运动方向与运动角度领域范围内,利用不同的模糊长度对模糊图像进行复原,对应于真实模糊长度的复原图像最清晰,它与模糊图像存在着最大的峰值信噪比.取所有复原图像中,清晰倒数极大值和峰值信噪比极大值图像所对应的方向与长度作为最终识别的模糊方向与长度.
峰值信噪比:
其中,MSE是原图像与处理图像之间均方误差.m,n表示矩阵的行数与列数,PSNR的单位为dB.所以PSNR值越大,就代表失真越少.复原图像与原始清晰图像最接近,复原效果达到最佳.
取初次识别的模糊长度和模糊方向的领域内的一些列值建立点扩展函数对模糊图像进行复原.得到相应的系列复原图像,以检测出的最大峰值信噪比复原图像所对应的模糊长度和方向为真实值,从而对初次识别的模糊长度和方向进行了修正.其中最大峰值信噪比对应的复原图像为清晰复原图像.
2 识别算法流程
图2 模糊方向和长度识别算法流程图
在Matlab(2009)中对模糊图像进行处理的过程为:将原始图像进行任意角度和长度运动模糊,得到模糊图像,对其进行预处理,主要包括傅氏变换,灰度变换,图像去噪.然后对所得频谱图进行霍夫变换再进行直线检测,得到基本重合于中心暗条纹的直线,根据直线的方向和间距计算模糊角度θ和长度L,其为初次识别值.然后在初次识别的基础上根据峰值信噪比进行修正,以减少Hough变换产生的误差.方法为:首先确定模糊方向θ,取初次识别的模糊长度为领域中心点,在一个较小领域[0.6L,1.4L]内对模糊图像复原,求得复原图像与模糊图像的峰值信噪比,将最大峰值信噪比对应的长度确定为模糊长度修正值.然后,在上述识别的模糊长度L的基础上,以初次识别的方向值为领域中心取一个小领域[θ-10,θ+10]对模糊图像进行复原,取复原图像最大峰值信噪比对应角度为方向修正值.本文将以上方法得到的长度与方向修正值作为最终识别结果.
3 图像处理过程
在Matlab(2009)中对多幅图像经由前文所示算法流程进行仿真模拟实验,得到一系列处理图像.其中cameranman图像识别过程图如图3所示.
图3 运动模糊方向与长度识别与复原
图3(a)为灰度图像cameraman.tif的原始图像,图3(b)为图3(a)直线匀速运动、方向为45°、模糊距离为10个像素的模糊图像,图3(c)为图3(a)的频谱图,图3(d)为图3(b)的频谱图,图3(e)为用 Hough变换分割图像时的Hough矩阵和峰值点图,图3(f)为图3(d)经过Hough变换分割出的对应于模糊图像频谱暗条纹的平行直线,图3(g)是利用初次识别的运动参数进行维纳滤波对模糊图像图3(b)的复原图像,图3(h)是利用修正后的模糊方向和长度的最终复原图像.图4为复原图像关于模糊像素的峰值信噪比评价曲线,图5为复原图像关于模糊方向的峰值信噪比评价曲线.
对Cameraman.tif图在Intel(R)Core(TM)2 2.33GHz四核 CPU,2.34GHz 2.0GB内存,Matlab2009a平台下进行仿真,在长度为像素、方向为度的精度级下,基于频域识别运动的模糊方向和模糊度[5]的识别方法耗时1.203 9s,本文方法耗时1.820 7 s,由于计算量的增加使时间增加了51.23%.由于算法的时间复杂度都在1~2s左右,相对于时间的少量增加,算法的识别结果的精度有明显的提高.
4 实验结果分析
通过以上算法进行仿真实验,对cameraman.tif,lena.jpg两幅图像进行任意方向和长度的运动模糊,通过本文算法的模糊方向和长度的识别结果见表1和表2.
表1 cameraman图像任意模糊方向和长度的自动识别结果
续表1 cameraman图像任意模糊方向和长度的自动识别结果
表2 lena图像任意模糊方向和长度的自动识别结果
表1为cameraman图像任意模糊方向和长度的自动识别结果,表2为lena图像任意模糊方向和长度的自动识别结果.
首先通过频谱暗条纹的分割直线检测出运动模糊方向和角度.在初次识别存在误差的情况下,基于复原图像峰值信噪比对初次识别结果进行修正,能使误差降到较小范围,从而实现了运动模糊方向和长度的精确识别.通过本文方法识别的运动长度与方向均在误差范围之内,结果较为精确.在方向为-90°时,由于Hough变换是与90°方向共线,导致识别结果为90°,但是基于-90°与90°复原效果一致,对于-90°识别的结果可以认为是在误差范围之内.
将常用算法和本文算法取实拍模糊图像进行复原效果对比分析.取在高速行驶的车中实拍的窗外模糊景像图分别用基于频谱Radon变换法[5]、神经网络法[4]以及本文算法对其进行复原效果对比,结果如图6所示.
图6 运动模糊图像的复原结果
图6(a)为原始清晰图像经过运动模糊所得的模糊图像,图6(b)为基于频谱Radon变换法对于模糊图像的复原图像,图6(c)为用神经网络法的复原图像,图6(d)为本文算法的复原图像.由以上3种方法对模糊图像的复原效果可看出,用本文算法复原后的图像清晰度比另外两种算法复原后的图像清晰度高.
表3为实拍模糊图像的复原图像与原始模糊图像峰值信噪比(PSNR)对比结果,通过数据比较可以看出本文算法复原后图像的PSNR比其它两种算法高,评定为其复原效果优越,进一步验证了本文算法的有效性.
表3 复原图像峰值信噪比(PSNR)对比(单位:dB)
5 结 语
本文通过峰值信噪比曲线修正初始频谱识别参数误差,可以对任意方向和长度上的匀速直线运动模糊方向和长度进行精确识别.相较于文献[3,5,10,11]所用方法在精度上有了明显的提高.利用本文方法识别的模糊方向和长度与真实值误差基本为零,算法原理简单,准确率高.基于上述识别的模糊方向和长度所得复原图像峰值信噪比高,复原效果较为理想.
[1] 章毓晋.图像工程[M].1版.北京:清华大学出版社,2001.
[2] 蒋岩峰,于起峰,梁永辉.基于频谱分析的匀速运动模糊图像模糊方向识别[J].光学与光电技术,2008,6(4):68-70.
[3] 梁婉玉,孙权森,夏德深.利用频谱特性鉴别运动模糊方向[J].中国图像图形学报,2011,16(7):1164-1169.
[4] 万 里,路林吉.基于频谱参数估计和神经网络的运动模糊图像恢复[J].计算机工程,2004,30(10):132-134.
[5] 梁 宇,钟金荣,林嘉宇.基于频域识别运动模糊的模糊方向和模糊度[J].微处理机,2011(1):59-63.
[6] Mohserz Ebrahmi Mughaddam,Jamzad M.Finding point spread function of motion blur using radon transformand modeling the motion length[J].IEEE,2004:314-317.
[7] 贺卫国,黎绍发.匀速直线运动模糊长度的精确估计[J].计算机应用,2001,21(9):40-41.
[8] 王晓红,赵荣椿.匀速直线运动模糊的PSF之估计[J].计算机应用,2001,21(9):40-41.
[9] 张 铮,王艳平,薛桂香.数字图像处理与机器视觉[M].1版.北京:人民邮电出版社,2012.
[10]郭永彩,郭瑞瑞,高 潮.运动模糊图像点扩展函数的参数鉴别[J].仪器仪表学报,2010,31(5):1052-1057.
[11]陈从平,秦 武,王 健.基于清晰度评价的图像运动模糊图方向鉴别[J].三峡大学学报:自然科学版,2010,32(2):89-91.