叶庆伟,谢永昌,狄红卫
视频监控以其直观、方便、信息内容丰富而广泛应用于安防、监控等场合,成为金融、商业、交通乃至住宅、社区等领域安全防范的重要手段,为这些行业的安全防范和环境监控起到了不可忽视的作用。然而受监控环境、光照变化等影响,噪声一直是实时视频监控中不可回避的问题,也成为影响视频质量的重要因素。
在视频监控应用中,降噪技术是增强视频质量的一种非常重要的手段。目前降噪方法大多是在空域内基于低通滤波的方法,这些方法去除了主要集中在信号高频内的噪声,可是也造成了集中在信号高频内视频细节的丢失,导致了降噪和保护细节的矛盾。视频在帧间具有很强的相关性,时域降噪法既可以有效地去除噪声也可以很好地保护图像的细节,可是单纯的时域滤波会引入运动拖影现象。文献[1]提出了一种基于运动补偿的时域自适应视频降噪算法,由于是基于运动补偿,该算法时间复杂度相对较高,为了满足实时性,不能结合多帧数据进行滤波,只考虑了前一帧数据,因而影响了降噪效果。文献[2]提出结合运动检测区分每帧图像的运动区域和非运动区域,再分别对不同的区域采用不同的滤波策略。这种结合了时域、空域的视频滤波降噪算法,充分利用了视频的时域、空域信息,能够避免使用单个算法的缺点,得到了不错的效果,然而,这种时空联合去噪方法的效果取决于运动检测的精确度。
针对监控视频图像的特点,本文提出了一种基于Non_local means的时空联合实时视频降噪算法。通过结合多帧图像采用基于区域相似程度的运动检测方法进行运动检测,自适应地区分图像的运动区域和静止区域,对静止区域采用时域加权均值滤波,对运动区域采用空域ANL滤波。实验结果表明,该方法能够显著提高视频的信噪比和图像的主观质量,而且没有造成运动拖影和明显的细节信息丢失,并已在视频监控系统中得到商业化的应用。
在空域降噪的算法中,Non_local means是一种性能优良的算法,特别是基于Non_local means的邻域自适应算法简称ANL算法[3],这种算法降噪效果很好。借鉴ANL算法的思想,本文利用区域的相似程度进行运动检测,使运动检测的结果更准确。
其中:
式(1)中,w(x,y)是权值,根据像素点x和像素点y之间的相似程度来计算,并且满足。这种相似程度并不是简单对这两个像素点的直接差值进行度量,而是通过比较v(Nx)和v(Ny)的相似程度以求得权值,v(Nk)表示以像素k为中心的一个矩形区域。像素之间的相似程度的判定是根据这个矩形区域内的对应像素相减之后的平方和的大小来度量的,差值的平方和越小,表明像素越相似,则相对应的权值就会越大,相反,差值的平方和越大,表明像素的相似程度就小,相对应的权值就会越小。dis小于阈值T1的像素,可以认为是由于噪声带来的影响,其区域是相对比较平坦的区域,因此可以直接求其平均,这样就会较好地去除噪声,而对dis大于阈值T2的像素,其权值为0,这样的截断会减少图像模糊现象,较好地保持图像的边缘,而对大于T1小于T2的像素,可以按照其实际的dis来计算其权值。
如图1所示:
图1 对应像素示意图
中粗线区域中心A表示待处理点,其右上方邻域的点B为要加权平均的点,即虚线区域中心像素点,为了计算此点的权值,以待处理点A为中心的3×3的矩形窗口和B点为中心的3×3矩形窗口内像素点对应相减的平方和,即来度量权值。本文采用9×9大小的搜索范围,相似矩形区域为3×3。
运动检测算法是本算法的核心,它决定整个算法的性能。运动检测的方法主要有:背景差分法、时间差分法和光流法。光流法计算方法复杂而且抗干扰性差,一般无法做到实时处理。帧间差分法只检测相对运动的物体,因两幅图像之间的时间间隔较短,差分图像受光线变化影响小,检测有效而稳定,但该方法存在忽视两帧间物体重叠部位形成空洞和检测出的物体的位置不精确的缺陷。与帧间差分法相比,背景差分法一般能够提供较完全的特征数据,得到较精确的目标图像,但在实际应用中,由于进行比较的两幅图像摄自不同的时刻,因此容易受光照变化、风等自然因素和其他人为因素的影响,出现许多伪运动目标点,影响目标检测的效果[4]。
在视频监控中,时域降噪的效果远比空域降噪要好,在不造成运动拖影的前提下应以时域降噪为主,使降噪的效果最优,因此运动检测相当关键。文献[2]采用帧间差分法,但是该文献判断运动和静止块的准则是:若当前帧的当前子块与前L帧对应子块中超过80%的块满足设定条件,当前子块才被判断为静止区域。这种方法使得很多静止的区域被误判为运动的区域,从而降低了去噪的效果,同时带来过多的使用空域降噪而引起的在视频序列应用上的闪烁问题。本文提出只要当前帧的当前子块与前L帧对应子块中有一个子块满足设定条件,当前子块就被判断为静止区域,进而采用加权时域均值滤波[5]。
首先将待处理的视频帧划分成4×4的宏块。宏块的大小选取不宜过大也不宜过小,宏块越大检测出来的运动区域越不精细,从而导致运动的区域过多影响降噪的效果。宏块选取过小会造成运动检测不准确,特别是在高噪声背景下检测。为了进一步减少噪声的干扰,一般采用宏块的像素值之和或者是平均值作为运动检测的判断准则,这相当于做了一次简单的均值滤波。但是若当前宏块已经受到严重的污染时还使用这个宏块的像素值之和或均值作为运动检测的判断准则,必然会导致运动检测的不准确,而且不一样的宏块同样会有一样的像素值之和或均值,例如对称的宏块。因此,本文并不是直接对两帧图像当前对应宏块的像素值之和的差值进行比较,而是以宏块为单位,结合两帧图像以当前宏块为中心3×3个宏块的区域,通过ANL算法中的相似程度来进行运动检测。这里相似程度的判定是根据3×3宏块区域内的对应宏块像素和相减之后的平方和的大小来度量的,平方和小于阈值T,表明两帧图像的当前对应宏块很相似没有运动,否则表明两帧图像的当前对应宏块的相似程度很小,即产生了运动。具体的步骤如下(记当前帧为k,宏块的横坐标和纵坐标分别为i,j):
(1)初始化前L帧的每个宏块的运动状态为静止状态,为0时表示为静止状态,为1时表示运动状态。
(2)求当前宏块B(i,j,k)的像素值之和SB(i,j,k)。
(3)若完成所有宏块像素值之和的计算则转到(4),否则转到(2)进行下一个宏块的计算。
(5)若l>L,则转到(6);否则l=l+1,转到(4)进行下一帧对应宏块的检测。
(6)若完成所有宏块的检测则转到(7);否则转到(2)进行下一个宏块的检测。
(7)完成所有宏块的运动检测。
基于运动检测的时空联合视频降噪流程,如图2所示:
图2 基于时空联合的实时视频降噪算法流程图
具体步骤如下:
(1)以4×4像素大小的宏块为基本处理单位,进行噪声方差的估计。
(2)结合噪声方差设置运动检测的阈值T。
(3)利用宏块相似程度进行运动检测。
(4)针对不同的区域,对运动区域进行ANL滤波,对非运动区域进行时域均值滤波。
对于当前帧中判定为静止区域的块,采用时域加权均值滤波实现降噪。具体如下:
式中:
ANL降噪算法,如图3所示:
图3 ANL降噪算法流程
为了说明算法的有效性,本文对添加了高斯噪声的bridge-far测试序列进行了仿真实验,实验结果,如图4所示:
图4 实验结果
图4中,从(c)和(d)的背景可以发现(d)的去噪效果比(c)的要好,说明本文提出的运动检测算法对运动和静止区域的判断更合理。对于(e)和(f)两种空域降噪算法,ANL算法明显要比空域自适应降噪算法好很多。从(g)和(h)中可以看出,本文提出的时空联合降噪算法比文献2中的算法更好,而且从快速飞入的小鸟和缓慢前进的大船可以看出本算法可以准确检测出运动区域,没有造成运动拖影;从湖面的波纹可以说明本算法没有造成明显的细节信息丢失。相应的实验数据,如表1所示:
表1 实验数据PSNR比较(单位:dB)
针对监控视频图像的特点,提出了一种基于时空联合的实时视频降噪算法。通过结合多帧图像采用区域相似程度进行运动检测,分别对非运动区域做时域均值滤和对运动区域做空域ANL滤波。实验结果表明本文提出的降噪算法不仅可以实时有效地去除噪声,而且没有造成运动拖影和明显的细节信息丢失。提出的算法已在视频监控系统中得到商业化的应用。
[1]李岩,乔彦峰,高丰端,等.一种基于运动补偿的时域自适应视频降噪算法[J].电子器件,
[2]2007,3(5):166-169.
[3]张文杰.一种基于运动检测的智能视频序列降噪算法[J].电子工程师,2007,33(12):37-39.
[4]Buades A,Coll B,Morel J M.A non-local algorithm for image denoising[A].IEEE Proceeding of Computer Society Conference on Computer Vision and Pattern Recognition.San Diego,USA,2005,2:60-65.
[5]Chen Zihui,Wang Li,Yu Youjian.Algorithm study of motion detection based on background
[6]difference and time difference[J],Journal of Tianjin Institute of Urban Construction 2009,15(4):298-300
[7]Dabov,K.Foi,A.and Egiazarian.K.Video denoising by sparse 3D transform-domain collaborative filtering[A].Proc.15th European Signal Processing Conference.EUSI- PCO 2007,Poznan,Poland,September 2007.