2. 中国科学院大学, 北京 100049
2. University of Chinese Academy Sciences, Beijing 100049, China
运动模糊是日常拍摄的图像和视频中普遍存在的现象,主要是由于在曝光时间内拍摄对象和相机之间存在相对运动。随着技术的发展以及需求的增加,各种低廉的成像设备层出不穷,在方便了大家的同时也使得运动模糊现象变得更加普遍。运动模糊对拍摄的图像和视频辨识造成了很大的影响,有可能会丢失很多核心的信息。
随着各种成像系统的广泛应用,运动模糊检测的研究也在最近几年呈现上升趋势,在图像质量评估、成像系统检测以及各种监控摄像头的状态检查中有着重要的地位,并且在计算机视觉目标识别的预处理阶段有着非常重要的作用,不仅能有效提高图像复原参数的精度来改善复原图像质量,其结果还能够提供有用的高层次的区域性信息,是各种基于图像区域应用的基础。比如:快速目标的检测与跟踪[1]、速度估计[2]、运动分割[3]、场景分类[4]、图像分割等[5]。
目前一些具有代表性的模糊检测方法有:文献[6-7]对图像进行分割,对分割后的区域根据自然图像的统计特征来实现模糊区域的识别;文献[5]中根据颜色、梯度、频谱以及特征训练参数四种特征来对图像块进行模糊分类;文献[8]通过局部傅里叶变换来分析模糊方向,并在此基础上实现区域的分割;文献[9]开发了一个基于alpha通道的两层图像模型来估计部分模糊。
就目前已有成果而言,尚有许多重要的问题需要解决。首先,目前的检测算法大多假设只存在二维的运动导致的模糊,而在实际应用中以包含图像深度信息在内的运动模糊居多。例如现在应用非常普遍的车载摄像机所拍摄的一些镜头就存在这类运动模糊[10]。其次,目前的检测算法大多只针对全局模糊的图像进行检测,当图像只是局部存在模糊时,这种方法的效果就会大打折扣,甚至完全失效;并且大多模糊检测算法使用的是人工合成的模糊图像,与实际应用场景相比太过简单。
本文针对当前局部运动线性模糊检测中普遍存在对单色区域以及散焦模糊误检的情况,提出了一种基于能量估计的局部运动模糊检测方法。通过对局部区域能量分布进行分析,能够有效过滤掉单色区域,再根据运动模糊的能量衰减特征,选择模糊方向与其垂直方向的能量比值来过滤掉散焦模糊区域。
1 基于能量估计的局部运动模糊检测算法 1.1 算法概述算法流程如图 1所示。
该算法先对整幅图像求取Harris特征点,并统计局部区域内的特征点分布,根据统计结果筛选出备选区域;然后根据梯度分布对备选区域进一步筛选,这一步主要是过滤掉大部分容易被误检的单色区域;最后根据备选块的能量来估计运动模糊方向,并计算模糊方向与垂直方向上的能量比值来过滤掉一些难以被过滤掉的单色区域以及散焦模糊区域,最终完成局部运动模糊区域的检测。
1.2 图像特征点提取Harris特征点是图像中表征区域变化明显的点,通常被定义为两条边的交点。图 2中的方块表示参考窗口,其中:图(a)的窗口处在平滑区域,当窗口在图像上移动时,窗口的值在各个方向上都没有明显变化;图(b)的窗口在沿着边缘的方向上移动时,窗口值也没有明显变化;当窗口在图(c)中的位置时,窗口沿任意方向移动都会有明显变化,此时所处位置的点就是Harris特征点。
运动模糊区域是由于在曝光时间内像素点部分延展到相邻区域形成的。通过上面对Harris特征点的定义可以知道,特征点实际上是区域中变化剧烈的点,在该点处,向任意方向的移动都会存在很大变化,这个变化具体表现在与相邻区域像素的差值上。对于运动模糊的块而言,由于相邻像素的叠加造成了一定程度的平滑,模糊区域内特征点数量与清晰区域相比差别非常大。在实验中也验证了这一信息,因此选择使用Harris特征点来初步过滤掉明显清晰的区域。
本文采用文献[11]中的Harris特征点检测算法,该算法通过判断窗口函数在各个方向上的变化程度,来决定当前所处的位置是否为特征点。Harris矩阵定义:
$E\left( {u,v} \right) = \sum\limits_{\left( {x,y} \right) \in \omega }^{} {w\left( {x,y} \right)} {\left[ {I\left( {x + u,y + v} \right) - I\left( {x,y} \right)} \right]^2}$ | (1) |
其中:w(x,y)是窗口函数;ω表示窗口范围内的点。式(1)表示的是将图像窗口平移(u,v)会产生的灰度变化E(u,v)。将式(1)用泰勒展开:
$E\left( {u,v} \right) = {\sum\limits_{\left( {x,y} \right) \in \omega }^{} {w\left( {x,y} \right)\left[ {{I_x}u + {I_y}v + O\left( {{u^2},{v^2}} \right)} \right]} ^2}$ | (2) |
当移动距离(u,v)较小时,可以近似写成矩阵形式:
$E\left( u,v \right)\cong \left[ u,v \right]M\left[ \begin{matrix} u \\ v \\ \end{matrix} \right]$ | (3) |
其中M是自相关矩阵:
$M=\sum\limits_{\left( x,y \right)\in \omega }^{{}}{w\left( x,y \right)\left[ \begin{matrix} {{I}_{x}}^{2} & {{I}_{x}}{{I}_{y}} \\ {{I}_{y}}{{I}_{x}} & {{I}_{y}}^{2} \\ \end{matrix} \right]}$ | (4) |
Harris特征点响应函数的定义是:
$R={{\lambda }_{1}}{{\lambda }_{2}}-k*{{\left( {{\lambda }_{1}}+{{\lambda }_{2}} \right)}^{2}}$ | (5) |
其中:λ1和λ2是自相关矩阵M的两个特征值。从上面可知,计算响应函数的值,最主要的就是矩阵的两个特征值λ1和λ2,直接计算特征值会比较复杂。根据矩阵特征值与矩阵的特殊性,两个特征值的乘积就是矩阵行列式的值,而两个特征值的加法就是矩阵的迹,因此直接使用下面的方法快速计算响应函数值:
$\det M={{\lambda }_{1}}{{\lambda }_{2}}={{I}_{x}}^{2}{{I}_{y}}^{2}-{{({{I}_{x}}{{I}_{y}})}^{2}}$ | (6) |
$\text{trace}M={{\lambda }_{1}}+{{\lambda }_{2}}={{I}_{x}}^{2}+{{I}_{y}}^{2}$ | (7) |
将式(6)和式(7)代入式(5):
$R=\det M-k{{\left( traceM \right)}^{2}}$ | (8) |
根据上面的方法得到的候选块图如图 3所示。
对图像求取特征点之后,统计每个区域内的特征点数量并标记出备选区域。经过大量实验得出,将图像区域大小设为32×32,特征点数量阈值设为Nc≤2能得到较好的效果。
1.3 区域梯度分布通过图像Harris特征点过滤得到的区域包含了运动模糊区域,但是同时也包含了很多单色的非模糊区域(如图 4中白衣男子的衣服)。因此,还需要使用其他评估方法进一步筛选。图 5是两种情况的对比实例。
图 5(a)的两幅运动模糊图像区域平均能量分别是0.0132和0.0133,图 5(b)的两幅清晰单色图像区域平均能量分别是0.0053和0.0038。通过运动模糊图像和清晰单色图像的区域平均能量数据对比可知,清晰的单色区域平均能量会非常小;而如果存在运动模糊,则相对大很多。因此,可以将区域平均能量作为区分单色区域是否模糊的标准。在这里使用平均梯度幅值作为区域的能量估计,采用以下的差分方法来求取图像的梯度:
${{I}_{x}}=\frac{I\left( x+1,y \right)-I\left( x-1,y \right)}{2}$ | (9) |
${{I}_{y}}=\frac{I\left( x,y+1 \right)-I\left( x,y-1 \right)}{2}$ | (10) |
其中:I(x,y)是图像的像素值;Ix是图像水平方向的梯度;Iy是图像垂直方向的梯度。
平均梯度幅值的大小表明了图像所包含层次的丰富程度,与图像所包含的层次成正比[12-13]。对运动模糊的区域来说,由于相邻区域的部分叠加,造成了一定程度的平滑,所以图像所包含的层次大大减少。这一信息体现在平均梯度幅值的大小上。平均梯度幅值公式:
$G\left( x,y \right)=\sqrt{{{I}_{x}}^{2}+{{I}_{y}}^{2}}$ | (11) |
其中:G(x,y)表示的是图像该点处的梯度幅值。
$B\left( u,v \right)=\frac{1}{u\times v}\sum\limits_{i=1}^{u}{\sum\limits_{j=1}^{v}{G\left( i,j \right)}}$ | (12) |
其中:B(u,v)表示的是一个备选区域的平均梯度幅值。
通过对图像库(图像库说明详见2.1节)上得到的实验数据进行统计与分析,阈值范围设为0.01≤Ng≤0.05时能得到较好的效果。
运动模糊的图像在模糊方向的高频信息会严重衰减[1],因此运动模糊方向可以通过计算各个方向上的能量衰减来估计[14-15]。参考文献[16],假设已知模糊方向θ,并将导数的平方和作为能量的参考。图像沿θ方向的定向梯度为:
$\vartriangle I{{\left( x,y \right)}_{k}}=\left[ \begin{matrix} {{I}_{x}} & {{I}_{y}} \\ \end{matrix} \right]\left[ \begin{matrix} \cos \left( \theta \right) \\ \sin \left( \theta \right) \\ \end{matrix} \right]$ | (13) |
其中:Ix和Iy是分别对应水平和垂直方向的梯度。方向估计的目标函数是定向梯度的平方和:
$J\left( k \right)={{\sum\limits_{x=1}^{m}{\sum\limits_{y=1}^{n}{\left( \left[ \begin{matrix} {{I}_{x}} & {{I}_{y}} \\ \end{matrix} \right]\left[ \begin{matrix} \cos \left( \theta \right) \\ \sin \left( \theta \right) \\ \end{matrix} \right] \right)}}}^{2}}$ | (14) |
其中m和n是图像的宽和高。将式(14)展开:
$J\left( \theta \right)=\left[ \begin{matrix} \cos \left( \theta \right) \\ \sin \left( \theta \right) \\ \end{matrix} \right]\left\{ \sum\limits_{x=1}^{M}{\sum\limits_{y=1}^{N}{\left[ \begin{matrix} {{I}_{x}}^{2} & {{I}_{x}}{{I}_{y}} \\ {{I}_{x}}{{I}_{y}} & {{I}_{y}}^{2} \\ \end{matrix} \right]}} \right\}\left[ \begin{matrix} \cos \left( \theta \right) \\ \sin \left( \theta \right) \\ \end{matrix} \right]$ | (15) |
将式(15)中的中间部分用D代替进行简化:
$D=\sum\limits_{x=1}^{M}{\sum\limits_{y=1}^{N}{\left[ \begin{matrix} {{I}_{x}}^{2} & {{I}_{x}}{{I}_{y}} \\ {{I}_{x}}{{I}_{y}} & {{I}_{y}}^{2} \\ \end{matrix} \right]}}=\left[ \begin{matrix} {{d}_{11}} & {{d}_{12}} \\ {{d}_{21}} & {{d}_{22}} \\ \end{matrix} \right]$ | (16) |
将式(16)代入式(15)并展开:
$J\left( \theta \right)=\left( {{d}_{21}}+{{d}_{12}} \right)\frac{1}{2}\sin \left( 2\theta \right)+{{d}_{11}}+\left( {{d}_{22}}-{{d}_{11}} \right){{\sin }^{2}}\left( \theta \right)$ | (17) |
J(θ)的极值要满足
$\left( {{d}_{21}}+{{d}_{12}} \right)\cos \left( 2\hat{\theta } \right)+\left( {{d}_{22}}-{{d}_{11}} \right)\sin \left( 2\hat{\theta } \right)=0$ | (18) |
求解式(18)得:
${{\theta }_{m}}=\frac{1}{2}{{\tan }^{-1}}\left( \frac{{{d}_{21}}+{{d}_{12}}}{{{d}_{11}}-{{d}_{22}}} \right)$ | (19) |
$\hat{\theta }={{\theta }_{m}}+\frac{n\pi }{2};n\in Z$ | (20) |
根据文献[16]中的理论,J(θ)沿
运动模糊与散焦模糊的相同之处是,散焦模糊的能量也会衰减。不同的是,运动模糊的能量在模糊方向和其垂直方向上差异非常大,而散焦模糊在每个方向上的能量值差别都很小,因此,这里选择使用两个方向上的比值来进行比较。公式如下:
${{N}_{d}}=\frac{\max \left( J\left( \theta \right),J\left( \theta +\frac{n\pi }{2} \right) \right)}{abs\left( J\left( \theta \right)-J\left( \theta +\frac{n\pi }{2} \right) \right)}$ | (21) |
其中:max表示求两个方向上最大的能量值;abs是求两个方向上能量的差值;Nd表示比值。对运动模糊区域而言,两个方向上的能量差异越大,则差值越大,相应的比值就会越小。而散焦模糊区域相反,由于两个方向能量相近,差值很小,比值就会很大。经过大量实验可知,将阈值设为Nd≤1能得到较好的效果。
2 实验结果与分析 2.1 实验环境设置本文选择Matlab R2014a作为实验的软件环境,选择了香港中文中学贾佳亚教授建立的模糊图像库作为实验数据库。该库有1000张从网络上获取的图像,包含了直线运动模糊、散焦模糊、旋转运动模糊等多种复杂的模糊,都是非常有挑战的实际场景。本实验从该模糊图像库选取了200张局部直线运动模糊图像,在Flickr上选取了100张局部直线运动模糊图像作为本实验的图像库。
2.2 实验效果展示通过对图像库上得到的实验数据进行统计与分析,算法中采用的阈值分别是:特征点筛选阈值是Nc≤2,区域平均能量筛选阈值范围是0.01≤Ng≤0.05,区域模糊方向能量比值的阈值是Nd≤1。
图 9为本文算法与使用较广泛的Levin算法[7]和Liu算法[5]的检测结果对比(黑色块为检测到的模糊区域)。
从图 9可看出本文算法对运动模糊区域的检测更加精确。
3 结语针对运动模糊区域检测的过程中经常出现对近单色区域以及散焦模糊误检的现象,本文算法根据近单色区域和散焦模糊的局部能量特征,采用了区域能量估计的方法来进行过滤。实验结果表明,本文所描述的方法与已有的方法相比,对这些容易被误检区域的识别准确度有了一定程度的提高,从而证明了本文算法的鲁棒性以及适应性。
[1] | DAI S Y, YANG M, WU Y, et al. Tracking motion-blurred targets in video[C]//Proceedings of the 2006 IEEE International Conference on Image Processing. Piscataway, NJ: IEEE, 2010: 2389-2392. (0) |
[2] | LIN H Y, LI K J. Motion blur removal and its application to vehicle speed detection[C]//Proceedings of the 2004 IEEE International Conference on Image Processing. Piscataway, NJ: IEEE, 2004, 5: 3407-3410. (0) |
[3] | FAVARO P, SOATTO S. A variational approach to scene reconstruction and image segmentation from motion-blur cues[C]//Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2004, 1: 631-6371. (0) |
[4] | DERPANIS K G, LECCE M, DANIILIDIS K, WILDES R P. Dynamic scene understanding: the role of orientation features in space and time in scene classification[C]//Proceedings of the 2012 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2012: 1306-1313. (0) |
[5] | LIU R T, LI Z R, JIA J Y. Image partial blur detection and classification[C]//Proceedings of the 2008 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2008:1-8. (0) |
[6] | LIN H T, TAI Y W, BROWN M S. Motion regularization for matting motion blurred objects[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33 (11) : 2329-2336. doi: 10.1109/TPAMI.2011.93 (0) |
[7] | LEVIN A. Blind motion deblurring using image statistics[M]. Cambridge: MIT Press, 2006 : 841 -848. (0) |
[8] | CHAKRABARTI A, ZICKLER T, FREEMAN W T. Analyzing spatially-varying blur[C]//Proceedings of the 2010 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2010:2512-2519. (0) |
[9] | DAI S Y, WU Y. Removing partial blur in a single image[C]//Proceedings of the 2009 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2009:2544-2551. (0) |
[10] | ZHENG S C, XU L, JIA J Y. Forward motion deblurring[C]//Proceedings of the 2013 IEEE International Conference on Computer Vision. Piscataway, NJ: IEEE, 2013:1465-1472. (0) |
[11] | YARON O, SIDI M. A combined corner and edge detector[C]//Proceedings of the Fourth Alvey Vision Conference, Piscataway, NJ: IEEE, 1988:147-151. (0) |
[12] | 王宇庆. 局部方差在图像质量评价中的应用[J]. 中国光学, 2011, 4 (5) : 531-536. ( WANG Y Q. Application of local variance in image quality assessment[J]. Chinese Optics and Applied Optics Abstracts, 2011, 4 (5) : 531-536. ) (0) |
[13] | CHO S, LEE S. Fast motion deblurring[J]. ACM Transactions on Graphics, 2009, 28 (5) : 89-97. (0) |
[14] | 廖永忠, 蔡自兴, 何湘华. 基于Radon变换的运动模糊图像恢复[J]. 计算机应用, 2014, 34 (7) : 2005-2009. ( LIAO Y Z, CAI Z X, HE X H. Motion blurred image blind restoration based Radon transform[J]. Journal of Computer Applications, 2014, 34 (7) : 2005-2009. ) (0) |
[15] | 廖宇, 郭黎. 一种运动模糊图像的模糊参数估计方法[J]. 计算机工程与科学, 2014, 36 (10) : 2002-2008. ( LIAO Y, GUO L. A novel blur parameter estimation method for blurred images[J]. Computer Engineering & Science, 2014, 36 (10) : 2002-2008. ) (0) |
[16] | CHEN X G, YANG J, WU Q, et al. Motion blur detection based on lowest directional high-frequency energy[C]//Proceedings of the 2010 IEEE International Conference on Image Processing. Piscataway, NJ: IEEE, 2010:2533-2536. (0) |