刘艳萍,崔 彤,周长兵,李小翠,刘 甜
(1.河北工业大学电子信息工程学院,天津 300401;2.中国地质大学(北京)信息工程学院,北京 100083)
在禁止车辆行驶的场景中对异常车辆的检测具有现实意义,物联网节点进行数据的监控、收集之后将数据传输到本地终端进行异常车辆的检测,检测到异常车辆后将此时的数据上报到云端,在云端进行异常报警处理,对车辆进行警告,同时提醒行人注意违规车辆。异常的定义存在很大的主观性,异常是根据研究的具体问题做的规定,根据本文的具体研究背景,本文定义的异常事件为在步行街或者校园等禁止车辆行驶的场景中出现车辆的事件,这里的车辆包括汽车和自行车。正常车辆的检测直接根据车辆的形状特征进行检测即可;对于本文定义的异常车辆的情况,异常车辆周围会出现许多行人,所以进行异常车辆检测时需要先将行人和车辆从场景中提取出来,再通过特定的方法来将行人和车辆进行区分,从而检测出异常车辆。实际生活中,我们需要利用计算机自动识别出人群中出现的异常车辆[1],以降低人工检测所带来的漏检测和误检测,并达到节省人力的目的。对人群中出现异常车辆的正确检测在保障人们生命安全方面具有重要意义,但光照和实际环境的变化会导致实际进行异常车辆检测时出现误检测,如何提高检测准确度和效率是目前研究的重要问题。
运动目标检测方法主要有背景减除法[2]、帧间差分法和光流法。背景减除法是通过当前帧与背景模型做差分的方法来得到运动目标,随着研究的持续推进,混合高斯建模不断地被应用于运动物体的检测。Indrabayu等人[3]将混合高斯模型用于车辆检测,使用ROC分析对检测系统进行验证,可以有效地将车辆检测出来。Syed等人[4]提出使用高斯分量和动态学习率对像素块的强度值进行建模,改进混合高斯模型用于运动目标检测,实验结果显示该模型比已有算法花费的时间少4倍,并且性能与已有算法几乎相似。宋怀波等人[5]通过对像素点建立Horn-Schunck光流场,实现了对奶牛嘴部的自动检测。光流法的计算复杂、抗噪性差,故而在实际目标检测中使用较少。Rojas等人[6]利用背景减除法和光流法获取前景区域,之后通过混合高斯模型GMM(Gaussian Mixture Model)对正常行为模式进行编码。检测到异常行为,将样本中像素值与混合模型的进行比较,获取前景区域。与其他算法进行实验比较,结果表明其算法性能优于其他算法。Li等人[7]使用基于最小生成树的聚类算法对所有特征向量进行分组,并使用改进的SVM进一步对所有组进行建模,构建集成分类器进行异常检测。该方法已经在帧级和像素级上进行了测试,并且检测结果优于其他算法的。Jin等人[8]将视频序列划分为时空斑点,采用基于半参数模型的统计方法检测最有可能出现异常行为的斑点,之后利用最大光流能量和局部描述符来确定这些可疑斑点是否真的包含异常行为,实验结果显示了该算法的有效性。帧间差分法[9]是通过对连续帧作差分来获得运动目标区域,该算法在很大程度上易受光线和目标运动状态的影响,导致得到不完整的物体轮廓。相比较于光流法,混合高斯模型计算量较小,所以本文选择采用混合高斯建模来提取运动的前景物。
结构相似性SSIM(Structural SIMilarity index)[10]是一种全参考的图像质量评价指标,分别从亮度、对比度和结构3个方面度量图像相似性,有助于解决图像间亮度变化问题。相较于余弦相似度,SSIM运算量较小。而传统的直方图过于简单,只要颜色分布相似,就会判定二者相似度较高,显然不适合本文。相较于大多数的基于误差敏感度的图像质量评估算法,如均方误差MSE(Mean Squared Error)和峰值信噪比PSNR(Peak Signal to Noise Rate),SSIM不会出现评价结果与人的主观感觉不一致的情况。
由于忽略了各像素在空间上的邻域信息,且像素值通常会受到随机噪声、光照变化和背景相对运动的影响,利用传统混合高斯模型提取出的前景目标会出现不完整、产生空洞和重影现象。针对上述不足,本文提出了一种基于SSIM的混合高斯建模的异常车辆检测算法,采用SSIM计算2幅图像像素点间的相似度,在高斯建模后进行二次背景建模,同时引入指数函数来优化高斯建模过程中的权值更新过程,提高了更新速度。引入SSIM进行背景建模解决了亮度变化问题和重影问题。提取出的前景图像与Canny边缘检测得到的结果图像做与运算,结合边缘信息[11]很好地解决了重影问题。由于正常的车辆检测大多数是仅仅根据前景物的位置信息进行简单的标注,当位置信息不准确或者阈值的设置不合适时易出现将行人误检测为车辆的情况。本文采用图形句柄函数[12]优化连通域的方法对前景区域进行异常车辆检测,通过图形句柄函数对异常车辆进行标注时的细微优化,达到了从人群中检测出异常车辆且标注框更加贴近车辆形状的目的。
采用混合高斯建模GMM进行前景物的提取,可以将晃动的树叶等不属于前景的物体剔除出去。图像中每个像素点的值在短时间内都是围绕某1中心值在一定距离内呈高斯分布,通常,中心值可以用均值来代替,一定距离用方差来代替。对于随机变量X的观测数据集{x1,x2,…,xN},其中xt为t时刻像素的样本,其服从的混合高斯分布概率密度函数如式(1)所示:
(1)
其中,K为分布模式总数,mk,t为t时刻匹配k模型时像素的均值,σk,t为t时刻匹配k模型时像素的标准差 ,I为三维单位矩阵,wk,t为t时刻第k个高斯模型的权重。
与建立好的模型进行匹配时,如果像素点的值偏离中心值较远,则这个像素值属于前景点;如果像素点的值与中心值的偏差在一定方差范围内时,则这个点属于背景点。匹配规则如式(2)所示:
|Ik(x,y)-mk|≤2.5σk
(2)
其中,mk和σk分别为匹配k个高斯模型时像素的均值和标准差。
当像素点与第k个高斯模型匹配时,分别采用式(3)~式(6)更新权值、均值和标准差;当像素点与第k个高斯模型不匹配时,按式(7)降低其权重。
ρ=α/wk
(3)
w′k=(1-α)*wk+α
(4)
m′k=(1-ρ)*mk+ρ*Ik(x,y)
(5)
(6)
w′k=(1-α)*wk
(7)
其中,ρ为此时根据权值得到的均值和方差的学习率,α为未更新之前的初始学习率。
之后根据权重进行模型优先级排序,再依据此时的优先级进行像素值重置,完成重置即完成了前景与背景的区分。当像素值与模型匹配时,则为背景点;反之,则为前景点。
SSIM由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Image and Video Engineering)提出,该指标分别从亮度、对比度和结构3方面度量图像的相似性,即SSIM测试系统由3种对比模块组成,其结构图如图1所示。
Figure 1 SSIM test system structure图1 SSIM测试系统结构图
利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用高斯加权计算每一窗口的均值、方差以及协方差;然后计算对应块的结构相似度SSIM;最后将平均值作为2幅图像的结构相似性度量,即平均结构相似性SSIM如式(8)所示:
(8)
其中,uX、uY分别表示图像X和Y的像素均值;σX、σY分别表示图像X和Y的标准差;σXY表示图像X和Y的协方差;C1和C2为常数,是为了避免分母为0而设计的。通常取C1=(K1*L)2,C2=(K2*L)2,一般地K1=0.01,K2=0.03,L=255。
混合高斯模型使用K个高斯模型来表征图像中各个像素点的特征,一般K取值为3~5。本文分别采用3个和5个高斯模型进行建模测试后发现,二者进行建模的效果相同,但是由于增加1个模型,建模所消耗的时间就大大增加,所以本文选择使用3个高斯模型进行建模。模型建立之初,需要有较快的更新速度来加速重影的消除,所以本文采用较大的学习速率;一段时间以后,模型趋于稳定,学习速率维持在一个较小值。同时,由于权值变大会使得优先级变高,从而使得更新参数的速度加快,所以增大学习率可以达到加速背景更新的目的。本文采用指数函数对权值的更新进行改进,以提高算法的收敛速度,改进后的权值更新公式分别如式(9)和式(10)所示:
w′k=e(1-α)*wk+eα
(9)
w′k=e(1-α)*wk
(10)
在进行模型匹配时,当像素值与K个高斯模型都不匹配时,此时没有匹配模型的均值和方差仍为当前帧的均值和方差,使用式(11)降低此时模型的权重,同时建立新的高斯模型取代排序在最后的高斯模型。
(11)
其中,matchcntmink为像素值与排序位于最后的模型匹配的次数。
在重置背景点前先根据优先级的排序结果对参数顺序进行调整,当最优高斯模型的权重大于前景阈值thresh时,按照式(12)更新背景;当最优高斯模型和次优高斯模型的权重和大于thresh时,按式(13)更新背景;其他情况按式(14)更新背景。
bg_bw=w1*m1
(12)
bg_bw=w1*m1+w2*m2
(13)
(14)
其中,bg_bw为背景点,此时的w1、w2、w3分别为最优高斯模型、次优高斯模型以及最低高斯模型的权重,m1、m2、m3分别为最优高斯模型、次优高斯模型以及最低高斯模型的均值。
为了解决建模过程中空洞和重影现象的问题,先根据上述改进的混合高斯模型得到的背景点组成候选背景点集,采用SSIM计算相邻2幅图像中同一像素处2个矢量的相关性ssim,对候选背景像素点进行二次判别。当ssim不等于1时,判断像素点发生了变化,判断此点为前景点;当ssim等于1时,判断此点为背景点,进而抑制了重影现象。
高斯建模提取前景图像时并不能解决重影问题,而重影问题加大了物体的连通域面积,容易将有重影的人群一起检测出来。本文采用Canny边缘检测提取边缘信息,将得到的边缘信息与改进的混合高斯建模得到的前景图像进行逻辑与运算,进一步细化了前景图像的边界范围,解决了重影问题。
上述算法不仅提取出了前景物体,还准确地提取到了前景图像区域。本文采用图形句柄函数对采用连通域进行异常车辆检测和标注时的结果进行优化。首先计算图像中的连通区域,得到图像的输出矩阵L和连通区域个数num,之后使用stats=regionprops(L,‘all’)测量L中每1个连通区域的一系列属性,返回值stats是1个长度为max(L(:))的结构数组。使用函数q=get(gca,‘position’)来优化坐标轴位置,q(1)=0即边框左边距离标注物的距离值为0,q(2)=0即边框右边距离标注物的距离值为0,可以实现在实际标注时系统自动优化标注的位置,使得物体边框更加贴合异常车辆。使用gca得到最近绘制图像的句柄,再使用函数set(gca,‘position’,q)将图像的坐标轴按q的值进行优化,之后计算连通域中的像素数目,当第i个连通域中像素数大于阈值时,根据第i个区域的stats中优化过的位置信息,自动进行图像的标注,更精确地贴合实际车辆区域,达到精准检测车辆的同时误检测到行人的可能性最小的目的。
根据文中对异常车辆的定义,本文研究的实验场景包括:行人与车辆相邻程度较大,即异常车辆周围行人较多时;行人与车辆相邻程度较小;车辆品种不唯一,即人群中既出现汽车又出现自行车;只有行人没有车辆,此场景可用于验证本文算法是否会误将行人检测为车辆。仿真环境采用Matlab 2014a平台。从UCSD_Anomaly_Dataset数据库中挑选出具有上述场景的3个测试集对本文算法的准确率和检测标注的准确度进行验证,这3个测试集分别为Test020、Test019和Test004,前2者共包含400幅图像,后者包含180幅图像,其中有354幅图像是包含检测车辆的。
对上述3个测试集进行背景建模,并与传统混合高斯建模进行对比,结果如图2所示。从图2中可以看出,传统算法检测的目标重影十分明显,而本文算法可以有效抑制重影,检测到的前景目标也很完整,减少了空洞现象。表明改进的背景建模算法能为后续进行异常车辆检测提供更精确的背景信息。
通过在权值更新时引入指数函数来获得动态的学习速率,即在模型建立之初,得到较快的更新速度,从而获得较大的学习速率;一段时间以后,模型趋于稳定,学习速率维持在较小值。 通过与传统混合高斯模型进行实验对比,对ped1中Test020测试集中的200幅图像进行建模,得到的建模时间对比如表1所示。从表1中可以看出,平均每幅图像的建模时间降低了15.3%。经过实验可知,改进的权值更新公式对学习率迭代没有影响。
连通域阈值的选取一般根据被检测目标物的实际情况进行设定,图3给出了当阈值选取为550,600,650时检测效果对比图。从图3中可以看出,当阈值为550时(即图3a),可以发现此时出现了误检测现象;当阈值为600时(即图3b),可以精确地检测到异常车辆,没有漏检测和误检测的现
Table 1 Comparison of modeling time 表1 建模时间对比表 s
象;当阈值为650时(即图3c),可以发现此时出现了漏检测现象。通过实验验证,当连通域中像素数大于600时,即阈值选取为600时,根据第i个区域的stats中优化过的位置信息,自动进行图像的标注,可以实现异常车辆的精确检测。
Figure 3 Detection effect comparison under different thresholds图3 不同阈值时的检测效果对比
图4为采用本文算法进行异常检测得到的效果图,共检测到5种出现异常车辆的情况。图4a显示行人和车辆在图像中紧挨着;行人和车辆相邻程度不大且异常车辆的周围人群密度小时,如图4b所示;异常车辆周围行人较多且距离车辆较近时,如图4c和图4d所示;人群中既出现汽车又出现自行车时,如图4e所示。在这5个场景中,本文算法可以准确检测出异常车辆,对于既出现汽车又出现自行车的情况,可以同时将自行车和汽车都检测出来,且又不会误检测到行人。
Figure 4 Abnormal detection effect图4 异常检测效果图
Figure 5 Abnormal detection effect comparison between the proposed algorithm and traditional GMM图5 本文算法与传统混合高斯建模法的异常检测效果对比图
图5为本文算法和传统混合高斯建模法进行异常检测得到的效果对比图。图5a和图5b显示当行人和车辆在图像中紧挨着的时候,本文算法可以精确检测到车辆,没有误检测到挨着的行人。在行人和车辆相邻程度不大且异常车辆的周围人群密度小时(图5c和图5d),本文通过结合边缘信息并使用图形句柄函数优化连通域检测对异常车辆进行检测,能够准确地检测到异常车辆,且物体标注边框也更贴合实际车辆外形,标注区域更小。当异常车辆周围行人较多且距离车辆较近时,如图5e~图5h所示,本文算法没有误检测到行人,且标注框更小,检测区域更精确。当人群中既出现汽车又出现自行车时,如图5i和图5j所示,本文算法可以同时将自行车和汽车都检测出来,且又不会误检测到行人。所以,与未改进的传统混合高斯建模检测算法相比,本文算法对异常车辆检测时误检测到行人的情况更少,且在标注区域大小方面也更优。
本文将所提算法与以下4种算法进行对比实验,分别为:(1)在连通域进行异常检测之后直接进行标注,即未使用图形句柄函数对简单标注进行优化,简称普通标注检测算法;(2)直接采用Horn-Schunck光流法,利用像素间速度差异进行异常车辆检测,简称Horn-Schunck光流法;(3)传统混合高斯建模法[6];(4)MDT[13]。
本文通过准确率A(Accuracy)和召回率又称查全率TPR(True Positive Rate)对以上5种算法的准确度进行对比。准确率A从总体上衡量检测性能,计算公式如式(15)所示;召回率TPR用来计算所识别出的正实例占所有正实例的比例,计算公式如式(16)所示。
A=(TP+TN)/(TP+FN+FP+TN)
(15)
TPR=TP/(TP+FN)
(16)
其中,如果实例是正样本但被预测成正样本,即为真正类TP(True Positive);如果实例是负样本但被预测成正样本,称之为假正类FP(False Positive);如果实例是负样本但被预测成负样本,称之为真负类TN(True Negative);如果实例是正样本但被预测成负样本,则为假负类FN(False Negative)。
准确率反映了分类器系统对整体样本的判定能力,即能将正样本判定为正样本,负样本判定为负样本的能力。根据图4的异常车辆检测结果,统计测试的580幅图像中,含有354幅异常图像,异常图像被检测为异常图像的有318幅,异常图像误检测成为正常图像的有36幅,正常图像被检测为正常图像的有206幅,正常图像被检测为异常图像的有22幅。与采用混合高斯模型、Horn-Schunck光流法、MDT进行异常检测的结果进行对比分析,表3给出了对选取的580幅测试样本进行异常检测的准确率A和召回率TPR。
Table 2 Accuracy and TPR comparison of five algorithms表2 5种算法的准确率、召回率比较 %
从表2中可看出,本文算法的TPR和A均高于其他对比算法的,说明其异常车辆检测的准确度在这5种算法中是最优的;就TRP而言,本文算法是MDT算法的2倍多,而本文算法也均高于另外3种算法,说明另外3种算法对正样本的误检测较高。本文算法的准确率为90.3%,Horn-Schunck光流法的准确率为77.2%,普通标注检测法的准确率为70.2%,混合高斯建模法的准确率为68%,MDT算法的检测准确率为44%,本文算法分别高出这4种算法13.1%,20.1%,22.3%和46.3%。实验对比说明,在本文改进的混合高斯模型下进行背景建模,并采用图形句柄函数优化连通域的算法进行异常车辆检测,检测准确率和查全率具有明显优势。
本文首先对传统的混合高斯建模进行了改进,本文算法提高学习率的同时提出了非线性变化的权重,在权重计算时,引入了指数函数。本文算法提高了建模整体速度,加快了重影的消除;采用SSIM计算2幅图像像素点间的相似度,在高斯建模后进行二次背景建模,再一次精确地设置了背景点;改进后的混合高斯建模较传统的混合高斯建模很好地消除了重影问题,建模时间缩短了15.3%。之后采用图形句柄函数对连通域进行异常车辆检测和标注时的结果进行优化,可以实现程序自动调用函数,进而达到对标注框位置优化的目的, 消除了标注时易产生的冗余区域,使得标注区域更加贴合异常车辆区域。在采用相同前景预处理方法的情况下,本文算法与不采用图形句柄函数的算法相比,提高了检测的准确度,降低了误检测到人群的可能性。实验结果显示,本文算法在多运动目标下检测异常车辆的准确率更高、效果更好、鲁棒性更高。将异常图像保存至本地节点,可为后续的异常上报至云端提供异常处理数据。