运动目标检测是数字图像处理和计算机视觉中研究的热点之一, 主要是从视频序列中提取出当前场景中的前景区域, 被广泛应用于视频监控、交通检测、导航等领域。当前, 比较常用的运动目标检测方法主要有:背景差分法[1]、光流法[2]和帧差法[3]。背景差分法在运动目标检测方面被广泛使用, 它从背景中选取几幅图像进行平均,产生背景图像, 将当前帧与背景图像进行差分, 然后选择一个合适的阈值, 将所得到的像素与该阈值进行比较,得到运动目标, 但是对于光照、树叶等外部干扰条件比较敏感; 光流法将图像中每一个像素点描述为速度矢量, 从而近似估计运动场, 但是光流法计算量大, 抗噪能力差, 若是没有特别的硬件设施, 很难达到实时检测的要求; 帧差法是通过判断前后两帧图像对应的像素点的灰度差值来确定运动目标, 该算法比较简单, 但是检测到的运动目标会有空洞现象。
针对上述算法的不足, VanDroogenbroeck和Olivier Barnich[4]提出了Vibe算法。Vibe算法计算量小, 减少了背景建模的过程, 使得检测速度大大提高, 但是会引进鬼影, 并且不能够很好地抑制阴影以及噪声干扰。因此,本文提出了融合混合高斯模型的改进的Vibe算法, 采用五帧差分与八邻域的像素值填充的方法抑制鬼影, 通过混合高斯模型权值与Vibe随机取样概率相结合进行背景更新, 然后在YCbCr颜色空间进行阴影的消除。
1 Vibe运动目标检测算法Vibe是一种涉及像素级视频背景建模及前景检测的算法, 背景模型的更新策略是该算法的一大特点, 其核心是随机选择需要替换的像素样本, 随机选择邻域像素进行背景更新。当不能准确地判断像素变化的模型时, 采用随机的更新策略, 能够在一定程度上模拟像素变化的不确定性。算法的基本思想是为每一个像素点存储一个样本集, 这个样本集所包含的采样值就是这个像素点过去的像素值及其邻域点的像素值, 当出现一个新的像素值时, 将它与这个样本集中所包含的采集点进行对比, 判断这个新的像素值是否属于背景点。该算法主要包括3个步骤:背景建模、背景初始化、背景更新。
1) 背景建模
Vibe背景模型是通过N个样本建立的背景模型, 通常情况下N取20, 在欧氏色彩空间中v(x)为图像中像素点x在该空间中的值, 则背景模型为
|
(1) |
2) 背景初始化
背景的初始化是从视频的第1帧进行的, 对于每一个像素点,随机地选取它的邻域点的像素值填充像素的样本集作为背景模型。实验中选取的是8邻域, 通过x的8邻域QG(x)邻域像素点初始化背景模型, 即
|
(2) |
3) 背景更新
背景模型的更新选取随机子采样的方法, 如果对背景模型的每一个像素点都进行更新会影响算法的效率, 因此选用随机取样更新。当一个像素点被判断为背景时, 有1/ϕ的概率来更新背景模型(二次抽样因子ϕ取16), 同时用1/ϕ的概率对它的邻域点的像素值进行填充更新。
Vibe算法自身也存在着一些局限性, 该算法通过视频第一帧进行背景建模, 若在第一帧中存在待检测的运动目标, 就会导致所检测到的前景中含有该背景像素, 从而形成了鬼影。同时, Vibe算法没有考虑到运动目标在实际环境中的阴影干扰, 使得检测到的运动目标不完整, 并且检测画面经常出现噪声, 这些干扰使得实验结果不够准确。
2 改进的Vibe算法文中在原始的Vibe算法背景建模的基础上结合五帧差分进行背景的初始化, 在运动目标检测阶段融合混合高斯模型进行噪声以及阴影的抑制, 然后在YCbCr颜色空间消除阴影。
2.1 基于五帧差分的背景初始化文献[5]中利用三帧差分进行预处理来获得背景。虽然该方法能快速地获得运动目标, 但是得到的运动目标轮廓不连续, 会出现很大的空洞, 当运动目标和背景颜色相近时, 检测效率变低, 影响了背景的提取。因此,文中提出了运用五帧差分进行背景提取。首先提取连续的5帧图像并分别记为Tt-2(x,y), Tt-1(x,y), Tt(x,y), Tt+1(x,y), Tt+2(x,y), 然后利用中间帧分别对前两帧和后两帧进行差分运算, 结果为
|
(3) |
将差分后结果进行与运算,
|
(4) |
然后, 将F1和F2进行中值滤波处理后再次进行与运算, 最后,采用文献[5]中的方法进行运动目标位置的填充, 得到运动目标的位置, 获得真实的背景。
图 1(a)是运用原始Vibe算法提取的背景, 图 1(b)是使用文中算法提取的背景。可以看出图 1(a)中存在运动目标, 这导致在运动目标检测时产生鬼影。
|
图 1 背景图像 Fig. 1 Background image |
传统的Vibe算法是在RGB空间对运动目标进行检测, 不能很好地消除阴影及噪声的干扰, 严重影响了检测的真实性。因此,本文提出了融合混合高斯模型的噪声及阴影的抑制,并在YCbCr颜色空间消除阴影。
2.2.1 混合高斯模型混合高斯模型是通过K(通常为3~5)个高斯模型来给出图像中每个像素点所具有的特征。设在t时刻, 对于像素点I(x,y)取值序列为{X1,X2, …, Xt}={I(x,y,i)|1≤i≤t}, 则像素点Xt的概率密度函数可通过加权函数表示,
|
(5) |
其中, ωk, t表示第k个高斯模型的权重, 
|
(6) |
为了简化计算, 取K为3并且假设RGB颜色通道是相互独立的, 则协方差矩阵为
|
(7) |
将当前像素点与对应的K个已知高斯分布进行匹配, 若匹配成功(该像素值与某个分布均值的偏差小于其标准差的2.5倍), 则该像素属于背景, 否则属于前景。匹配成功后, 需要将模型权值进行更新, 表示为
|
(8) |
其中, α为模型的学习速率。
若当前像素点与K个已知高斯分布不存在匹配的高斯分量, 则重新构建一个高斯分布, 将ωk/σk由大到小进行排序, 背景像素模型由上面所述序列中前L个高斯模型决定,
|
(9) |
其中, TB为背景模型阈值。
2.2.2 YCbCr颜色空间阴影消除在光照情况下, 运动目标检测得到的前景图像总是伴随着阴影, 阴影的存在会对运动目标的分类造成错误。目前阴影的消除大多是基于RGB颜色空间, 该空间的各个分量是融合在一起表示的, 并且受亮度的影响很大, 各分量会随着亮度的变化而变化。阴影区域的特性是像素亮度低于背景像素和前景像素, 色度与背景像素相等, 而在YCbCr颜色空间中, 亮度分量和色度分量是相互独立, 并且形成阴影的过程使得物体的亮度发生变化, 但是其纹理特征并没有改变, 因此本文在YCbCr颜色空间进行阴影区域检测并利用改进的LBP算子对阴影区域进行优化分割达到消除阴影的目的。
YCbCr颜色空间是由YUV空间衍生出的一种颜色空间, 可以用来对视频图像进行处理, 其中Y表示亮度分量, Cb表示蓝色色度分量, Cr表示红色色度分量。YCbCr颜色空间与RGB颜色空间之间的相互转换是线性的, 换算关系也相对简单, 并且可以把色彩中的亮度分离出来。相对于其他颜色空间, RGB转换成YCbCr的过程比较简单且符合人们对色彩的感知。RGB颜色空间转换成YCbCr颜色空间公式为
|
(10) |
一般情况下阴影部分的亮度信息改变很大, 但是色度信息基本不变。通过阴影区域在YCbCr颜色空间的共性对阴影部分进行分析判断, 当每一个像素的各个分量满足下述条件时, 将其判断为阴影。
|
(11) |
其中, IY(xy),ICb(x,y)和ICr(x,y)分别为当前帧图像中像素点(x,y)的Y,Cb和Cr分量; BY(x,y),BCb(x,y)和BCr(x,y)分别为当前时刻背景图像中相对应像素点的Y,Cb和Cr分量; TY,TCb,TCr分别为Y,Cb和Cr差分分量的阈值, 通过文献[6]的研究, 当TY=50,TCb=10,TCr=15时,满足阴影在YCbCr差分空间的共性, 因此本文选用以上3个值来进行阴影判断, 确定候选阴影区域。
LBP算子[7]主要是反映图像中的局部纹理特征, 通过比较像素点与相邻像素点之间像素值的大小来反映图像的局部纹理信息, 计算复杂度低。对于像素点(xc,yc), 其LBP值公式为
|
(12) |
|
(13) |
其中,LBPP, R(xc,yc)是图像中像素点c的LBP值; gc表示像素点c的灰度值; P表示相邻像素点的个数; gp表示相邻像素点的像素值。s(x)是一个判别函数, 当邻域像素点灰度值大于c点灰度值时,其取值为1, 否则为0。
传统的LBP算子没有考虑中心像素点的信息, 且容易受噪声的干扰, 不能够很好地反映中心像素和邻域像素的灰度差别。针对以上缺点, 对LBP进行改进,
|
(14) |
|
(15) |
|
(16) |
其中,gi表示中心像素点和P个邻域像素点的灰度值; gm表示P+1个像素点的灰度均值; T为阈值常数, 用来消除噪声的影响。
根据阴影覆盖前后图像的纹理特征不会发生改变, 利用改进的LBP算子对候选阴影区域进行判断,比较图像中任意一个像素与背景图像对应像素的LBP值, 若相等, 则该像素点为阴影点。通过该方法准确地确定了阴影区域, 并对阴影区域进行分割, 获得真实的运动目标。
|
(17) |
其中,SD表示阴影部分; LBPc(x)和LBPb(x)分别是当前帧和背景模型中像素x处的LBP值。
2.2.3 阴影及噪声检测与去除算法步骤如下:
步骤1 利用2.1节建立的背景模型进行运动目标检测, 对于视频中的每一帧图像, 计算每一个像素点与背景样本中对应像素点的欧氏距离, 并将当前像素点与对应的K个已知高斯分布进行匹配, 并且至少有2个分类阈值#min小于匹配阈值R=20, 若匹配成功, 则该像素属于背景, 否则属于前景;
步骤2 当一个像素点被判定为背景时, 用1/ϕ的概率来更新背景模型, 并将高斯模型权值进行更新;
步骤3 将检测到的运动目标进行腐蚀与膨胀, 并进行形态学闭运算处理;
步骤4 将第3步得到的视频序列在YCbCr空间进行阴影检测, 利用改进的LBP算子对阴影区域进行优化分割, 去除阴影部分。
3 实验结果及分析采用Visual Studio 2010和计算机视觉库Opencv 2.3.1进行程序编写, 在操作系统为Windows7,处理器为Intel(R) Core(TM) i5-2430M CPU @2.40GHZ,内存为2.0GB的戴尔笔记本上实现本文算法, 并将实验结果与VanDroogenbroeck和Olivier Barnich提出的Vibe算法[4]、混合高斯模型GMM算法[8]进行了对比。本实验中ϕ=16, K=3, T=25, R=20, #min=2。
图 2(a)为原始Vibe算法检测到的运动目标, 图中灰框是图像中出现的鬼影, 是实验时误判的结果。图 2(b)为利用2.1节进行背景提取后再进行运动目标检测得到的结果, 可以看出在检测到的前景图像中该方法成功地消除了鬼影, 获得了真实的运动目标。
|
图 2 鬼影消除 Fig. 2 Ghost removal |
图 3为本文使用的一段交通视频, 即视频1, 从实验结果可以看出, Vibe算法检测到的运动目标存在着很多噪声和阴影的干扰; GMM算法检测的结果存在大面积的阴影, 并且噪声干扰很严重, 影响了运动目标的检测。从图 3中本文算法可以看出,采用混合高斯模型与Vibe算法相结合并在YCbCr空间进行视频序列处理,较好地消除了噪声和阴影干扰, 与Vibe算法和GMM算法的结果比较, 有效地抑制了阴影以及噪声的干扰, 使得运动目标检测更加准确。
|
图 3 不同算法实验结果(Ⅰ) Fig. 3 The test results of different algorithm(Ⅰ) |
为了更加客观地评价该算法的性能, 使用公开测试视频highwayI_raw和Laboratory_raw进行进一步的实验分析。从图 4可以看出, 使用本文方法得到的检测结果优于Vibe算法和GMM算法, 虽然在对highwayI_raw视频序列检测时, 还残留小部分阴影, 但是对于大面积的阴影取得很好的效果, 检测到的运动目标较为完整, 虽然从检测结果上看不是很完美, 但是相对前两种方法还是取得了较理想的结果。
|
图 4 不同算法实验结果(Ⅱ) Fig. 4 The test results of different algorithm(Ⅱ) |
为了能够定量分析该算法的性能优劣, 本文采用PCC来评估本文提出的算法, 公式为
|
(18) |
其中, TP,TN分别表示正确检测到的前景像素的个数和背景像素的个数; FN和FP分别表示误判的前景像素的个数和背景像素的个数。
利用上述评判标准对本文使用的视频序列进行分析, 表 1为3种方法处理本文使用的视频得到的结果。从表 1可以看出, 本文使用的算法优于Vibe算法和GMM算法。
|
|
表 1 3种方法PCC对比 Tab. 1 The PCC contrast of three methods |
本文提出了一种融合混合高斯模型的改进的Vibe算法, 在原始Vibe算法的基础上结合五帧差分法进行背景初始化, 有效地抑制了鬼影, 准确地检测到了运动目标。由于原始Vibe算法没有考虑到实际环境下阴影的存在, 导致检测出的运动目标粘连着阴影, 并且伴随着噪声的干扰, 降低了算法的效率和准确性, 因此本文提出了将混合高斯模型的前景检测与背景更新方法与Vibe算法相结合, 并在YCbCr空间进行阴影消除, 对处理后的视频序列再进行形态学处理, 达到了消除阴影及噪声的效果。通过3种方法对视频序列进行了验证, 实验结果表明, 本文提出的算法能够更加准确地检测出运动目标,并且消除噪声和阴影的干扰, 但是,检测到的运动目标还存在空洞、残缺现象, 阴影消除不够完全, 这些问题是今后的工作重点。
| [1] |
CHIU C C, KU M Y, LIANG L W. A robust object segmentation system using a probability based background extraction algorithm[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2010, 20(4): 518-528. DOI:10.1109/TCSVT.2009.2035843 |
| [2] |
GOYETTE N, JODOIN P M, PORIKLI F, et al.Change detection.net: A new change detection benchmark dataset[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops. Providence: IEEE, 2012: 1-8.
|
| [3] |
张玲, 陈丽敏, 何伟, 等. 基于视频的改进帧差法在车流量检测中的应用[J]. 重庆大学学报, 2004, 27(5): 31-33. |
| [4] |
BARNICH O, VAN DROOGENBROCCK M. ViBe:A universal background subtraction algorithm for video seq-uences[J]. IEEE Transactions on Image Processing, 2011, 20(6): 1709-1724. DOI:10.1109/TIP.2010.2101613 |
| [5] |
胡小冉, 孙涵. 一种新的基于Vibe的运动目标检测方法[J]. 计算机科学, 2014, 41(2): 149-152. DOI:10.3969/j.issn.1002-137X.2014.02.033 |
| [6] |
邓亚丽, 毋立芳, 李云腾. 一种有效的图像阴影自动去除算法[J]. 信号处理, 2011, 27(11): 1725-1728. |
| [7] |
OJALA T, PIETIKAINEN M, MAENPAA T. Multiresolution gray scale and rotation invariant texture analysis with local binary patterns[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(7): 971-987. DOI:10.1109/TPAMI.2002.1017623 |
| [8] |
ZIVKOVIC Z.Improved adaptive Gaussian mixture model for background subtraction[C]//Proceedings of the 17th International Conference on Pattern Recognition.IEEE, 2004: 28-31. https://wenku.baidu.com/view/28f0290bf12d2af90242e611.html
|
| [9] |
杨勇, 孙明伟, 金裕成. 一种改进视觉背景提取(Vibe)算法的车辆检测方法[J]. 重庆邮电大学学报(自然科学版), 2014, 26(3): 397-403. |
| [10] |
卢清华, 吴志伟, 范彦斌, 等. 基于混合高斯模型的运动车辆检测方法[J]. 光电子·激光, 2013, 24(4): 751-757. |
| [11] |
李鸿.基于混合高斯模型的运动检测及阴影消除算法研究[D].天津: 中国民航大学, 2013. http://cdmd.cnki.com.cn/Article/CDMD-10532-2010237938.htm
|
| [12] |
房正华.基于视频图像的车辆阴影检测方法研究[D].青岛: 中国海洋大学, 2007. http://cdmd.cnki.com.cn/Article/CDMD-10423-2008011336.htm
|
| [13] |
甘玲, 赵华翔. 一种改进的ViBe算法结合多特征融合的阴影移除方法[J]. 微电子学与计算机, 2015, 32(11): 152-157. |
| [14] |
SANIN A, SANDERSON C, LOVELL B C.Improved shadow removal for robust person tracking in surveillance scenarios[C]//Proceeding of the 20th International Conference on Pattern Recognition.IEEE, 2010: 141-144. https://ieeexplore.ieee.org/document/5597618
|
| [15] |
LI Y Q, CHEN W Z, JIANG R.The integration adjacent frame difference of improved ViBe for foreground object detection[C]//The 7th International Conference on WiCOM.Piscataway: IEEE, 2011: 1-4. https://ieeexplore.ieee.org/document/6040640
|
| [16] |
徐久强, 江萍萍, 朱宏博, 等. 面向运动目标检测的ViBe算法改进[J]. 东北大学学报(自然科学版), 2015, 36(9): 12271231. |
| [17] |
DROOGENBROECK M V, PAQUOT O.Background subtraction: Experiments and improvements for ViBe[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops(CVPRW).Providence: IEEE, 2012: 32-37. https://orbi.uliege.be/bitstream/2268/117561/1/VanDroogenbroeck2012Background.pdf
|
| [18] |
JENIFA R A T, AMALI J R, AKILA C, KAYITHA V.Rapid background subtraction from video sequences[C]//IEEE International Conference on Computing, Electronics and Electrical Technologies.Kumaracoil: IEEE, 2012: 1077-1086. https://ieeexplore.ieee.org/document/6203780
|
| [19] |
HEIKKILA M, PIETIKAINEN M, SCHMID C. Description of interest regions with local binary patterns[J]. Pattern Recognition, 2009, 42(3): 425-436. DOI:10.1016/j.patcog.2008.08.014 |
| [20] |
XIA Y Q, NING S H, SHEN H.Moving targets detection algorithm based on background subtraction and frames subtraction[C]//IEEE International Conference on Industrial Mechatronics and Automation.Wuhan: IEEE, 2010: 122-125. https://ieeexplore.ieee.org/document/5538075
|
2017, Vol. 47