一种基于GLCM的运动目标检测新方法
2015-06-23姬丽娜陈庆奎赵永涛刘伯成陈圆金
姬丽娜,陈庆奎,赵永涛,刘伯成,陈圆金,高 倩
(1.上海理工大学 a.光电与计算机工程学院,b.管理学院,上海 200093;2.陕西师范大学 计算机科学学院,西安 710100)
一种基于GLCM的运动目标检测新方法
姬丽娜1a,陈庆奎1,赵永涛1a,刘伯成1,陈圆金1a,高 倩2
(1.上海理工大学 a.光电与计算机工程学院,b.管理学院,上海 200093;2.陕西师范大学 计算机科学学院,西安 710100)
基于GMM(Gaussian Mixture Model,混合高斯模型)的物体识别基础上,利用GLCM(Gray-level co-occurrence matrix,灰度共生矩阵)及基于GLCM提取的纹理特征来解决当前运动目标检测所存在的问题,如动态场景的变化,光照突变及天气变化等。GLCM在局部区域的往复运动具有相对不变性,因此利用这个特点对基于GMM检测的前景进行再判断以解决动态场景的问题,将检测窗口中当前帧和前两帧的GLCM特征值进行比较,如果其GLCM特征值的差值小于给定的阈值,那么可以判断当前区域为背景,反之则为前景。图像的纹理特征具有抗光照突变性,经过分析其中的4个特征值并阈值化最终得到更加纯净的前景和更加准确的检测结果。通过CPU/GPU(Central Process Unit/Graphic Processing Unit)协同并行计算大大加速了运动目标检测过程。实验证明这种新的检测算法在检测精度和处理速度上比其他算法有明显改善。
灰度共生矩阵;运动目标检测;纹理特征;混合高斯模型;协同计算
近几年来,由于在军事视觉制导、医疗诊断、视频监控、人类行为分析、机器人导航、异常检测、视频会议、智能交通等多个领域的应用,运动目标检测引起越来越广泛的关注。运动目标检测就是在指定区域能识别图像的变化,检测运动物体的存在。根据视觉平台的运动情况,运动目标检测又分为静态背景下运动检测和动态背景下运动检测。本文主要考虑静态背景的情况,即摄像头固定为前提。此外,运动目标检测是计算机视觉及视频处理领域非常重要和有效的研究课题,因为它是许多复杂处理过程如视频对象分类和视频跟踪活动中的关键环节。
然而运动目标检测任务面临着诸多挑战如动态场景变化、光照变化、出现影子以及复杂背景下的伪装色等问题。很多学者针对上述问题提出了很多不错的算法。背景差分法已成为运动目标检测中最常用的方法,它利用当前图像与背景图像的差分来检测出运动区域的一种技术[1]。跟其他算法相比,该算法简单易于实现、定位准确,然而在实际应用中,对于动态场景的变化如光照和背景扰动等特别敏感。复杂场景中摇动的树叶等变化会被检测为前景,产生混乱的运动前景。而且室内外监控视频中光线变化也会对检测造成一定干扰,产生漏检和虚警区域。背景差分法中最常用的描述场景背景点颜色分布的概率密度模型就是高斯分布。因此本文将基于GMM针对这两个问题展开研究。
本文在基于GMM的物体识别基础上,利用GLCM提取图像纹理特征对检测结果进行二次加工,以得到更加纯净的背景和更准确的结果,同时为了检测速度在实时应用系统中也是一个关键的因素,因此利用CPU/GPU协同并行计算,加快图像处理速度。实验证明本文提出的这种新的检测算法在检测精度和处理速度上都比其他算法有明显改善。
1 相关工作
目前主要有三种常用的运动目标检测方法:帧间差分法、背景差分法以及光流法。光流法采用了运动目标随时间变化的光流特性,但是大多数的光流算法复杂度高,且抗噪性差[2]。文献[3]提出帧间差分法,利用连续的图像帧之间采用基于像素的高度差,并阈值化来提取出目标区域。时间差分法只对运动物体敏感,但复杂场景下的检测效果较差。
很多学者致力于解决动态场景变化和光照变化,影子等问题。文献[4]采用GMM与色度亮度比模型消除快速光照变化,但是在复杂背景如下雪、车窗玻璃反光、水坑或镜面地区情况下,检测结果不是很理想。文献[5]用局部强度比消除影子然后利用GMM检测目标,在光照变化下能成功检测目标,但是当背景类似于前景或者前景类似于影子时,检测性能明显下降,且无法适应连续的光照变化如灯开/关。文献[6]解决了标准三帧差法的空洞现象和边缘缺失问题,消除了鬼影,但是当在强光下检测结果不理想。因此本文将基于上述讨论中针对视频中存在局部背景干扰运动和光照变化的问题展开研究。
纹理是图像分析和分类中很重要的一种特征,它具有很强的抗光照突变特征和局部序列性等良好属性[7],尤其适用复杂场景下进行目标的分类和检索,因此本文利用GLCM的这一特性对检测前景进行再判断,将检测窗口中当前帧和前两帧的GLCM特征值进行比较,如果其GLCM特征值的差值小于给定的阈值,那么可以判断当前区域为背景,反之则为前景,这样二次加工后的算法在光照变化和场景变化情况下都能得到相对其他算法更加纯净的背景和更准确的结果。实验中并行计算部分在GPU端实现,串行部分在CPU端执行,CPU和GPU协同计算大大提高了处理速度。
2 算法分析
背景模型是背景差分法分割运动前景的基础,背景模型主要有单模态和多模态两种,前者在每个背景像素点上的颜色分布比较集中,可以用单分布概率模型来描述,后者的分布较分散,需用多分布概率模型来共同描述,在许多应用场景,比如水面的波纹、摇摆的树枝,飘扬的红旗,监视器屏幕等,像素点的值都呈现出多模态特性,最常用的描述场景背景点颜色分布的概率密度模型是高斯分布。常用的背景建模包括单高斯模型和GMM法,但是使用传统的单高斯模型检测的目标物体有拖尾和鬼影问题,此外在现实应用场景像素点都呈现多模态特性[8],因此为了更好地改善背景差分法性能,本文采取在GMM进行物体识别的基础上进行二次处理。
基于GMM的运动目标检测算法采用多个高斯分布加权建模,能够描述像素值分布的双峰或多峰状态,而在实际应用中,虽然GMM相对其他方法表现较好,但是并不适合于所有情况,例如摇摆的树枝和光线变化等。而GLCM是反映图像灰度关于方向和变化幅度和分析图像局部模式和排列规则的不错方法,因此作者认为计算图像局部GLCM,复杂背景中的小幅度往复运动的物体的GLCM是几乎不变的,那么我们可以通过阈值化将被误检测为前景的干扰运动置为背景。此外,由GLCM提取出来的纹理特征具有很强的抗光照突变特征和局部序列性,尤其适用复杂场景下的目标分类和检索。因此为了使我们的算法对光线变化具有鲁棒性,我们利用计算的GLCM提取出具有抗光照突变的纹理特征,通过分析纹理特征对检测结果进一步优化,以得到更精确的结果和更纯净的背景。
此外,另外一个值得讨论的重要因素是图像的处理速度,随着图像分辨率的增长,GLCM的计算复杂度会越来越大,假如计算N×N图像的GLCM需要进行2N(N-1)+G×G次加法操作,其中G是图像的最大灰度值。例如,在PeWium4工作频率为2.4 GHz的硬件平台下的计算大小为5 000×5 000图像的灰度共生矩阵的时间为350 s[7],如何提高GLCM的计算速度,对图像处理的实时性具有重要的意义。
基于GLCM和GMM的运动目标检测算法流程大致如下。视频传感器获取图像后,第一步通过GMM进行背景建模,通过背景减除分割出前景图像;第二步计算图像的GLCM;第三步利用GLCM提取灰度图像的四个局部特征量,用阈值化法剔除干扰获取最终目标检测结果。
2.1 利用GMM初步提取前景
基于GMM的前景提取算法包括4个核函数。首先为了降低图像噪声,对图像进行平滑处理;其次我们在建立背景模型前先把输入图像灰度化从而节约存储资源和加快计算速度;然后为每个像素建立K个模型,需要对背景模型进行初始化和不断更新;最后提取前景图像。
2.1.1 图像平滑
若输入的对象为宽度为width,高度为height的图像,在GPU实现的平滑处理中,GPU启动width×height个线程,每个线程处理一个像素点,用输出像素点8领域窗口内的像素均值代替输出点像素值,如图1所示。B通道的像素处理如图2所示。其中
intx=blockDimx×blockIdxx+threadIdxx;inty=blockDimy×blockIdxy+threadIdxy.表示全局内存中的线程坐标,G通道和R通道操作和上述原理相同,不再赘述。
图1 平滑操作示例图
图2 B通道的像素处理部分核函数
2.1.2 图像灰度化
对RGB图像的灰度化就是对图像的R,G,B三个分量进行加权平均得到最终的灰度值。本文使用的比较常见的基于OpenCV开放库所采用的灰度权值的加权平均法,即:
Wgray=0.072 169B+0.715 160G+0.212 671R.
(1)
式中:Wgray表示灰度化后的像素值;B,G,R是源图图像的三通道像素值,在GPU实现的灰度化处理中,GPU启动weight×height个线程,每个线程处理一个像素点,对源图像中每个线程进行式(1)的操作,得到结果存到目标图像的缓存中。
2.1.3 模型初始化和更新
接下来为灰度图像中每一个像素背景建立的K个高斯分布,初始化时,将第一帧或最初几帧图像对应像素点的平均值赋给每一个像素点的第一个高斯分布的均值,并赋予第一个高斯分布一个较大的方差和一个较大的权值,而将其他几个高斯分布的权值和均值都初始化为零,而分布一个较大的方差。每读入一帧新的图像,使用这幅图像的像素值更新原有的背景模型。对每一个像素点,如果它的当前像素值与某个高斯分布的均值之差的绝对值小于λ(2≤λ≤3)倍的标准差,则认为当前像素值和这个高斯分布相匹配,对与当前像素xi匹配的高斯分布的各参数进行更新以增加权重。如果K个高斯分布都不与当前帧像素匹配,则出现了新的分布,那么就用新的高斯分布替换权重最小的高斯分布,新的高斯分布的均值初始化为一个较大的标准差σ0和一个较小的权重w0,其余的高斯分布保持相同的均值和方差,并对其权重进行衰减化更新[9-10]。
2.1.4 前景提取
图3 GMM算法
2.2 计算GLCM
2.2.1 概念
GLCM是基于在纹理中某一灰度级结构重复出现的情况,定义为图像中相距为δ=(Δx,Δy)的两个灰度像素同时出现的联合概率分布。它反映了图像灰度关于方向和变化幅度等综合信息,是分析图像局部模式和排列规则的基础。图像的纹理越粗,共生矩阵的变化越慢,图像的纹理越细,共生矩阵的变化越快[12]。对M×N大小的图像I(x,y),如图1所示,其灰度级为P(i,j|d,θ),GLCM为:
P(i,j|d,0)=#{(x1,y1),(x2,y2)∈M×N|I(x1,y1)=i,I(x2,y2)=j,|x1-x2|=0,|y1-y2|=d}
(2)
P(i,j|d,45)=#{(x1,y1),(x2,y2)∈M×N|I(x1,y1)=i,I(x2,y2)=j,|x1-x2|=d,|y1-y2|=-d}
(3)
P(i,j|d,90)=#{(x1,y1),(x2,y2)∈M×N|I(x1,y1)=i,I(x2,y2)=j,|x1-x2|=d,|y1-y2|=0}
(4)
P(i,j|d,135)=#{(x1,y1),(x2,y2)∈M×N|I(x1,y1)=i,I(x2,y2)=j,|x1-x2|=d,|y1-y2|=d}
(5)
式中:#{}表示从灰度级i到j灰度差为d的个数;θ表示灰度变化的方向,θ有0°,45°,90°,135°四个方向。图4说明了求图像I的灰度共生矩阵的具体过程。
图4 GLCM 示例图
2.2.2 计算GLCM
前面通过GMM得到前景和背景分离的二值图像,我们首先利用GLCM能够表征图像灰度关于方向和变化幅度的特征来改善动态场景的反复变化造成的把背景误检为前景的问题。
首先,GLCM计算对象为灰度图像,可以把图像看成是width×height的矩阵,在GPU端开启width×height个线程,线程划分如下:
dim3 block(8,8);
dim3 grid((width+blockx-1)/blockx,(height+blocky-1)/blocky).
首先为了便于得到后续的GLCM,对灰度图像中每个浮点型像素值进行开方根处理以得到整型数据并存储到dd-GrayData缓冲池中,然后对该整型矩阵中每个元素的0°,45°,90°,135°四个方向计算GLCM,其中0°方向的GLCM计算核函数如算法1所示,其他三个方向计算同理。
2.2.3 去除动态场景的干扰运动
对于上述操作中得到每个像素的GLCM,观察和分析视频图像中局部动态场景的相邻帧间的GLCM差值变化如算法2所示,可见动态场景中往复运动的图像GLCM几乎不变,因此我们设定一个阈值T,通过多次实验发现T=5.03时效果较好,对于相邻帧的局部区域的GLCM 变化在这个阈值内,我们认为它是背景。
算法1 计算水平方向GLCM核函数GrayMatrix-0INPUT:dd-GrayData,width,height,x,yOUTPUT:d-0-GrayMatrixFUNCTIONGrayMatrix-0() IFx>0&&x 算法2 GLCM阈值法去除动态背景INPUT:d-0-GrayMatrix、OUTPUT:f-0-GrayMatrixFUNCTIONremoveDynamic() ComputingVALUEt,VALUEt-1andVALUEt-2 IFd-0-GrayMatrix≥TTHEN ELSE LETf-0-GrayMatrixBE1; END LETf-0-GrayMatrixBE0; ENDIF RETURN;ENDFUNCTION 2.3 提取特征量 2.3.1 概念 为了增加对抗光照变化的鲁棒性,接下来在上述得到的四个方向的GLCM基础上提取具有抗光照突变性的纹理特征诸如角二阶局矩、熵、对比度等14种基本特征量,由于特征量内部相关性,实验中只分析灰度共生矩阵中4种常用的统计量来表征图像的纹理特征[12],下面分别将分别描述计算过程。 为了便于后续处理,在计算四个特征向量之前,先对前面提取的四个方向的GLCM进行归一化处理,线程分布如下: dim3 block1(MATRIXDIMENSION,MATRIXDIMENSION); dim3 grid1(1,1); 其中MATRIXDIMENSION表示GLCM的维数,本文GLCM是在灰度图像上计算得到的因此维度为8维。 1) 能量: (6) 能量通过GLCM元素值的平方和得到,是对图像灰度分布均匀性的度量,如果GLCM以对角线区域为主要元素分布位置,说明图像中位置接近的像素点其灰度值也接近。局部区域的图像纹理均匀,突变很小,这时图像的纹理细,能量较小。 2) 熵: (7) 图像的熵表示图像所包含信息量的多少。熵值较大说明图像中纹理较细,熵值较小说明图像纹理信息较少。 3) 关联性: (8) 图像的相关度表征GLCM元素在水平方向和垂直方向的相似程度,CON值反映了图像中局部灰度相关性,如果GLCM中元素值均相等,CON值最大。 4) 对比度: (9) 对比度指一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大。图像纹理沟纹越深,图像越清晰,其对比度也越大。GLCM中远离对角线的元素值越大,对比度值越大。 2.3.2 提取特征向量 提取GLCM水平方向上的上述四个纹理特征量核函数如算法3所示,其他三个方向的纹理特征提取同理。其中输入f-0-GrayMatrix是前面归一化GLCM函数的输出,featureVector-0存储水平方向的四个特征量。Entropy,eng,contrast,homogenity 分别表示熵、能量、对比度、关联性4个特征量。 算法3 提取纹理特征INPUT:f-0-GrayMatrix,width,heightOUTPUT:TEXTUREFUNCTIONTextureComputing() IFenergy=(-pixel*log(pixel))THEN Compute f-0-GrayMatrixwith(5),forallx; ENDIF IFentropy=(-pixel*log(pixel))THEN Computef-0-GrayMatrixwith(6),forallx; ENDIF IFhomogenity=pixel/(1+(x-y)*(x-y))THEN Computef-0-GrayMatrixwith(7),forallx; ENDIF IFcontrast=(x-y)*(x-y)*pixelTHEN Computef-0-GrayMatrixwith(8),forallx; ENDIF RETURN; ENDFUNCTION 2.3.3 纹理特征值抗光照变化 根据上述所得纹理特征,根据所求得的能量、熵、关联度、和对比度值,对于判断该区域是否属于前景从而适应光照变化,光照变化不仅改变了图像的灰度空间分布,而且促使图像的纹理结构也发生变化,具体表现在上述四种特征向量的变化中,因此我们通过阈值化在找出因光照变化而被误检的背景,具体执行过程如算法4所示,其中threshold1和threshold2在试验中利用试凑法得到分别为0.05和0.02。 算法4 纹理特征值适应光照变化INPUT:energy,entropy,homogenity,contrastOUTPUT:OUTDATAFUNCTIONAnti-light() IFenergy>Threshold1&homogeneity>Threshold1THEN LETOUTDATABE1;ELSEIFentropy>Threshold2&contrast>Threshold2THEN LETOUTDATABE0; ENDIF ENDIF RETURN;ENDFUNCTION 3.1 实验平台及对象 图5 不同测试场景下视频截图原图 图6 不同场景下运动目标检测结果对比 本文实验所采用的处理器为Intel(R) Core(TM)2 E8400,2核2线程,主频为3.00 GHz,物理内存为4 GB;显卡采用NVIDIA GeForce GTX 670,频率为1.06 GHz,1344 CUDA Cores;操作系统为Windows 7,64位旗舰版,CUDA版本为5.5。本文选用文献[13]中的测试视频数据集分别进行试验,分别选择了office,fall,PET2006,Pedestrians,tramStation和skating6个视频数据集用以测试以下问题:动态场景变化;光照变化;天气变化。另外测试时间没有将数据在Host端和GPU端之间的内存拷贝时间计算在内,因为这些操作是计算无关的。 3.2 实验结果与分析 由于本文算法是基于GMM的改进算法,因此本文实验对比选择和测试视频数据集的标准结果和GMM测试结果进行对比(如图6所示)。图5是选取的测试视频数据集的部分实验截图,图5-a与图6-a行相对应,图5-b与图6-b行相对应,以此类推。首先,从图中可以看出静态场景下本文算法也能有很纯净的检测背景,没有任何噪声干扰。其次,动态场景下GMM由于视频中树叶的剧烈晃动而导致检测结果包含较多的虚警点,而本文算法几乎没有虚警点,因此GLCM很好的解决了动态背景干扰的问题。此外,在室内外、白天、夜晚场景下,光线变化比较大,GMM均出现了很多误检情况,而本文算法表现良好,这说明本文算法对各种场景下的光照变化具有鲁棒性。最后,本文算法在雨雪天气下没有虚警点,说明本文算法对天气变化也有很好的处理能力。 图7 GMM和文本算法不同分辨率视频的执行时间对比 此外为了分析本文算法在GPU上执行的时间性能,GMM算法和本文算法在不同分辨率视频上的执行时间对比结果如图7所示。可以看出本文算法执行时间最短。图8展示了本文算法在不同分辨率的视频下测试的加速比对比SP(即,算法CPU和算法GPU平台处理一帧图像的平均时间之比),SP随着分别的增加而增加,说明该算法在CUDA上的并行执行能力也在不断增加。实验证明本文提出的这种新的检测算法在检测精度和处理速度上都比其他算法有明显改善。 图8 GLCM在不同分辨率视频上执行时间的加速比对比 本文提出了一种改善运动目标检测效果的新方法,即利用图像的GLCM特征对检测的前景进行分析和研究,显著改善了目标检测的效果和提高了检测精度,但也存在一些问题,对此还有很多方面需要广大研究学者继续研究探索。 目前纹理特征的提取主要针对灰度图像,但随着计算机计算能力的提高,基于彩色图像的纹理提取技术应当成为该领域研究的重点。本文实验表明针对单一的GLCM特征的去干扰技术在对较大物体的不规则反复运动的检测效果仍然不是很理想。 [1] Lipton A,Fujiyoshi H,Patil R S.Moving target classification and tracking from real-time video[C]∥IEEE.Proceedings of the Fourth IEEE Workshop on Applications of Computer Vision.Princeton:1998:8-14. [2] Marko D,Michael Z.Performance of optical flow techniques on graphics hardware[C]∥IEEE.International Conference on Multimedia and Expo.Canada:Toronto,2006:241-244. [3] Hu Weiming,Tan Tieniu,Wang Liang.A Survey on Visual Surveillance of Object Motion and Behaviors[J].IEEE Trans.on Systems,Man,and Cybernetics-Part C:Applications and Reviews,2004,34(3):334-352. [4] Jain R,Nagel H.On the Accumulative Difference Pictures for the Analysis of Real World Scene Sequences[J].IEEE Tran.on Pattern Anal.Mach.Intell,1979:206-221. [5] Prem Kumar Bhaskar,Suet-Peng Yong.Image Processing Based Vehicle Detection and Tracking Method[C]∥IEEE.2014 Internetional Conference on Computer and Information Science.Malaysia:Kuala Lumpur,2014. [6] Choi JinMin,Chang Hyungjin,Yoo Yungjun,et al.Robust moving object detection against fast illumination change[J].Computer Vision and Image Understanding,2012:179-193. [7] 王典.基于混合光高斯的背景建模与阴影抑制算法研究[D].西安:西北工业大学,2006. [8] 郑红,李钊,李俊.灰度共生矩阵的快速实现和优化方法研究[J].仪器仪表学报,2012,33(11):2509-2515. [9] 刘贵喜,邵明礼,刘先红,等.真实场景下视频运动目标自动提取方法[J].光学学报,2006,26(8):1150-1155. [10] Staulfer C,Grmson W.Adaptive background mixture models for real-time tracking[C]∥IEEE Computer Society.Proceeding of IEEE International Conference on Computer Vision and Pattern Recognition.Fort Colin,Colorado,USA,[S.l.],1999,2:246-252. [11] 马德智,李巴津,董志学,等.基于高斯混合模型的运动目标检测方法研究[J].电子测量技术,2013,36(10):47-50. [12] 葛静祥.图像纹理特征提取及分类算法研究[D].天津:天津大学,2010. [13] Goyette N,Jodoin P M,Porikli F,et al.Changedetection.net:A new change detection benchmark dataset[C]∥IEEE.Proc.IEEE Workshop on Change Detection (CDW-2012) at CVPR-2012.Providence RI,2012:1-8. (编辑:朱 倩) A Novel Detection Method of Moving Object Based on GLCM JI Lina1a,CHEN Qingkui1,ZHAO Yongtao1a,LIU Bocheng1,CHEN Yuanjin1a,GAO Qian2 (1.a.SchoolofOptical-ElectricalandComputerEngineering,b.BusinessSchoolUniversityofShanghaiforScienceandTechnology,Shanghai200093,China;2.SchoolofComputerScienceofShaanxiNormalUniversity,Xi’an710100,China) For current moving object detection algorithms,therexist three main issues,including dynamic scene,sudden illumination changes,and bad weathers.These problems reduce the performance of video segmentation.The Gaussian Mixture Model algorithm is widely used currently.The improved moving object detection algorithm based on GLCM for video surveillance is presented in this paper.The proposed algorithm computes the Gray-level co-occurrence matrix (GLCM) to eliminate the effect of dynamic background by threshold firstly.Secondly,it extracts the texture which has the property of resisting sudden change in light according to the GLCM.Finally,cleaner foreground and more accurate results are obtained.What’s more,the algorithm runs efficiently through CPU/GPU collaborative computing in parallel. GLCM; Moving Object Extraction; Texture; Gaussian Mixture Model; Collaborative Computing 1007-9432(2015)06-0719-08 2015-05-25 国家自然科学基金项目:面向实时并发数据流的能耗优化的GPU集群可靠处理机制研究(61572325);高等学校博士学科点专项科研博导基金(20113120110008);上海重点科技攻关项目(14511107902);上海市工程中心建设项目(GCZX14014);上海智能家居大规模物联共性技术工程中心项目(GCZX14014);上海市一流学科建设项目(XTKX2012);沪江基金研究基地专项(C14001)资助 姬丽娜(1990-),女,河南信阳人,硕士生,主要从事模式识别、并行计算、计算机视觉方面的研究,(E-mail)coldpoint@sina.cn 陈庆奎,教授,博士生导师,中国计算机学会(CCF)会员,(E-mail)chenqingk@tom.com TP301 A 10.16355/j.cnki.issn1007-9432tyut.2015.06.0163 实验结果
4 总结与展望