赵泽壹,路 纲
(1.陕西师范大学 现代教学技术教育部重点实验室,陕西 西安 710119;2.陕西师范大学 计算机科学学院,陕西 西安 710119)
在计算机视觉领域,运动目标检测是热门的研究方向。解决这个问题的算法有很多,总得来说可以分为三类,分别是光流法[1-2]、帧差法[3-4]、背景消减法[5-14]。在观察者和场景之间发生相对运动时,视觉场景中物体表面和边缘可以建立明显的运动模型。光流法利用这样的运动模型进行运动目标检测,易受到噪声干扰且计算成本高。帧差法通过计算相邻两帧之间的不同信息来捕捉运动目标,具有计算速度快、对光照变化稳定性强的优点,但不能够很好地适用于运动目标快速移动的场景,对于纹理信息较少的运动目标也容易产生空洞。背景消减法通过对当前图像像素强度与相应的背景进行比较,从而实现对运动目标的检测。因为对于运动目标检测具有非常好的鲁棒性,所以应用非常广泛。背景消减法的关键步骤在于背景建模过程。文献[5]提出利用混合高斯方法对背景进行建模。混合高斯方法在视频序列中对运动目标进行检测[11-14],通过对真实场景的背景进行建模并不断更新,可以有效克服因为相机抖动而产生的微小扰动噪声。但是混合高斯方法对于快速的光照变化较为敏感。文献[6-10]提出了对混合高斯方法的改进策略,但这些方法仍然是对图片的每一个像素进行处理,更新每一个像素的概率密度函数,计算代价非常大。
在上述研究基础上,文中提出一种基于块模型的运动目标检测方法。通过帧差法初步确定运动目标在当前帧的位置,利用二值化图像计算当前帧每个网格中动态点的数量,即信息度,将所有图像块分为3类,分别是背景块、运动块、准运动块。针对不同类型图像块构建不同的混合高斯更新策略:背景块中利用较少的像素信息更新混合高斯模型、运动目标块区域不更新混合高斯模型。并通过实验对该算法进行验证。
混合高斯模型的理论基础是任何类型的概率分布模型都能够用多个高斯分布进行近似表示。在场景背景建模过程中,利用多个带有权值的高斯模型之和的形式构建混合高斯模型公式,进而表达在视频图像上相同位置像素的强度值。混合高斯模型中的参数可以在不需要对视频帧进行缓存的条件下对参数自适应地进行更新。以处理灰度图像的视频序列为例对混合高斯模型进行描述,可以根据该例导出彩色图像视频序列混合高斯模型。
在时间维度上捕获图像序列I={I1,I2,…,It},其中t表示采样时间。图像It中每个像素Xt灰度值的概率分布是:
(1)
每个像素的k个高斯分布总是按wi,t/σi,t由大到小排列。
当一个新的图片被捕获时,它的每个像素都需要与其对应的高斯模型进行比较,看像素的灰度是否满足|Xt-μi,t-1|<δσi,t-1,其中r是一个可以根据实际情况设定的阈值,一般取值范围是2.5~3.5。当第i个高斯模型与当前像素Xt匹配时,则对第i个高斯模型的参数均值和协方差进行更新,公式如下:
wi,t=(1-α)wi,t-1+αMi,t
(3)
μi,t=(1-ρ)μi,t-1+ρXt
(4)
(5)
在像素Xt对应的混合高斯模型中没有一个高斯模型满足|Xt-μi,t-1|<δσi,t-1的条件下,判断高斯模型的数目是否等于最大数值K,如果当前模型的数量小于K,则用这个像素的灰度值作为高斯分布的均值,再加上一个较大的协方差、当前最小权值建立一个新的高斯分布。在更新完成后对混合高斯模型的权值进行归一化。
所有的高斯分布函数都按照公式wi,t/σi,t进行从大到小的排序。在k个高斯分布函数中,假设权值最大的M个高斯分布函数构建了背景模型。
(6)
其中,T是一个背景模型中所有高斯模型的权值之和最小值。在像素对应的混合高斯模型中,1-M个高斯模型集合接近于理想背景模型,k-M个高斯模型集合更加接近于运动目标模型。因此可以对每个像素点进行过滤,如果它的灰度与前1-M个高斯模型匹配,那么这个点是背景点,反之是运动目标点,从而实现运动目标的检测。
基于混合高斯模型的运动目标检测算法,对每一个像素都建立混合高斯模型,在求解过程中消耗大量的计算资源。虽然它能够在一定程度上提升算法对环境的适应能力,但仍然具有对光照敏感、静态物体变为运动物体时产生鬼影等缺点。现在有很多改进的混合高斯模型运动目标检测算法,虽然能够在一定程度上克服光照变化、鬼影等问题,但仍然是在时间域上对每一个像素建立混合高斯模型,没有考虑同一帧内像素点在空间域上相邻点具有的相关性。在文中提出的基于分块模型的运动目标检测算法中,利用帧差法对运动目标进行预先估计,从而确定当前帧空间域上像素点之间的相关性,并将其加入到混合高斯模型的参数更新过程中。同时对运动目标所处的图像块进行单独处理而不是对整幅图像进行处理,可以在降低计算复杂性的基础上提升混合高斯模型运动检测算法的性能。
算法大致流程如下:
(1)利用帧差法检测运动目标;
(2)对图像进行分块,计算每个图像块的信息值并对其进行分类;
(3)对不同类别的图像块采用不同的混合高斯模型参数更新策略。
本节使用的图片是视频序列“Intelligent room”中的第108帧和第109帧,如图1所示。
帧差法假设相邻两帧之间背景图像像素点位置不发生变化,而运动点在像素位置发生位移,利用相邻两帧It-1和It的灰度差,通过阈值比较从而估计出运动目标的位置,如式7:
(7)
其中,ac为运动目标位置初步检测范围;T为灰度变化阈值。
T的取值对之后的处理非常关键,当取值太大时运动目标易出现空洞、裂纹等现象。将T设为自适应的阈值后,容易增加算法在此处的计算复杂性,从而造成过多的计算资源浪费。这个步骤中只是对运动目标进行初步的检测,所以设T=3σ+μ。
相邻两帧图像It-1和It通过帧差法获取帧图像It所对应的含有运动目标的二值图像frame_difft,假设图像frame_difft的大小为m×n,那么可以依据尺寸为m'×n'的模板获取m''×n''个图像块m。其中第(k,j)图像块表示为D(k,j),1≤k≤m,1≤j≤n。文中通过式8对背景块、运动块、准动态块进行分类。
(8)
其中,Dbg、Dyd、Dzyd分别表示背景块集合、运动块集合、准运动块集合;T1、T2分别是3类图像块之间的区分阈值。
2.3图像块自适应混合高斯模型构建及其参数更新
当捕获图像后,通过帧差法与网格化可以获得具有信息值的图像块,如图1(c)所示。如果D(k,j)是背景块,如图1(d)中A区域,那么让该块内所有像素点对应一个混合高斯模型。采用5点法对该模型的参数进行更新,公式如下:
(9)
创建新的高斯模型时利用5个点的灰度均值作为高斯模型均值,采用较大的协方差。如果D(k,j)是动态块,图1(d)中B1、B2、B3、B4、B6、B7、B9区域,则混合模型中的参数保持不变,从而保留对静态背景的估计能力。如果D(k,j)是准动态块,图1(d)中B5区域,则选取该块周围的、除去运动块的8邻近图像块,图1(d)中B8区域,作为准动态块处理区域,对该区域进行均值滤波处理,等预处理后,对其块中的每个像素点进行混合高斯模型建立与更新,从而保证算法的性能。
图1 基于信息度的图像块分类过程
如果D(k,j)是背景块,那么该区域大部分像素点属于背景区域,所以将其作为背景区域处理;如果D(k,j)是动态块,那么该区域作为运动目标显示;如果D(k,j)是准动态块,则对该图像块除去运动块的8邻近图像块,作为准动态块处理区域,对该区域进行均值滤波处理,等预处理后,对该区域每个像素对应的混合高斯模型进行排序,依据式6构建背景模型。如果该区域中的像素点满足|Xt-μi,t-1|<δσi,t-1,那么该像素点属于运动目标,否则属于背景。
文中利用从公开数据集中选取的两个室内视频序列和一个室外视频序列,对提出的方法进行有效性和准确性验证。其中视频序列“Intelligent room”和“Laboratory”属于室内场景,视频序列“Campus”属于室外场景。实验程序用C++编写,运行在Intel Core i5-2400,3.10 GHz,4 G内存,64位,unbuntu14.04LTS的PC机上。与相邻帧差法与传统的混合高斯背景建模方法进行对比。
表1中给出了文中算法、相邻帧差法、混合高斯算法在处理不同场景视频序列时的单帧平均运行时间(single frame average run time,SFA)。可以明显看出,文中算法处理速度比混合高斯方法快。主要原因在于文中算法采用了基于信息度的分块处理,对不同类型的图像块采用不同的混合高斯模型,对于静态块和运动块可以花费很少的时间建立构建含有更少噪声的背景模型。
表1 各算法检测时间 ms
文中使用两个标准来评估提出的算法模型。一个是识别率(TPR),另一个是误检率(FPR),公式如下:
(10)
(11)
其中,TP表示检测到的属于运动物体的像素数量;FN表示未检测到的属于运动物体的像素数量;TN表示对实际中属于运动物体的像素数量;FP表示检测到的作为移动对象的属于背景的像素的错误检测数。
表2 识别率
在不同场景下不同算法所对应的TPR与FPR值分别记录在表2、表3中。从表2中可以看出,文中算法相比相邻帧差法、混合高斯算法具有较高的识别率。这主要是因为文中算法对于不同类型的图像块采用不同的混合高斯模型,对于背景块可以除去噪声的干扰,运动块可以加强空洞识别。同时从表3可以看出,文中算法相比相邻帧差法和混合高斯算法还具有较低的误检率。这主要是因为文中算法对于不同类型的图像块采用不同的混合高斯模型,对于背景块与动态块可以在很大程度上除去噪声的干扰。
表3 误检率
将相邻帧差法、混合高斯模型算法与文中算法模型在不同场景下进行运动目标检测,其检测结果如图2~4所示。从实验结果可以看出,文中算法能够较为良好地检测运动目标,消除不明显的阴影干扰,但对于明显阴影的检测可用性没有得到改善。该算法的结果中存在一些空洞。总体而言,该算法的检测可用性优于相邻帧差法与混合高斯模型算法。
图2 视频序列“Intelligent room”中第109帧
图3 视频序列“Laboratory”中第93帧
图4 视频序列“Campus”中第58帧
提出了一种基于信息度对图像进行分块的混合高斯模型运动检测算法。相比传统的混合高斯模型运动检测算法,该算法场景中不同区域采用不同的模型构建方法,从而提高运动目标检测算法的性能。对于准运动块及其邻域块的单独处理可以在减少计算资源的情况下采用更多的算法策略提升性能。通过实验参数化比较表明,该算法具有较好的效果。