文章快速检索     高级检索
  华东师范大学学报(自然科学版)  2018 Issue (2): 63-76, 100  DOI: 10.3969/j.issn.1000-5641.2018.02.007
0

引用本文  

李敏茜, 毛嘉莉, 袁培森, 等. 基于卡口监测数据流的套牌车检测[J]. 华东师范大学学报(自然科学版), 2018, (2): 63-76, 100. DOI: 10.3969/j.issn.1000-5641.2018.02.007.
LI Min-xi, MAO Jia-li, YUAN Pei-sen, et al. Detection of fake plate vehicles based on traffic data stream[J]. Journal of East China Normal University (Natural Science), 2018, (2): 63-76, 100. DOI: 10.3969/j.issn.1000-5641.2018.02.007.

基金项目

国家重点研发计划重点专项(973)(2016YFB1000905);国家自然科学基金(61370101,61532021,U1501252,U1401256,61402180)

第一作者

李敏茜, 女, 硕士研究生, 研究方向为基于位置的服务.E-mail:minxli@stu.ecnu.edu.cn

通信作者

金澈清, 男, 教授, 博士生导师, 研究方向为基于位置的服务.E-mail:cqjin@sei.ecnu.edu.cn

文章历史

收稿日期:2017-06-19
基于卡口监测数据流的套牌车检测
李敏茜1, 毛嘉莉2, 袁培森3, 金澈清1     
1. 华东师范大学 计算机科学与软件工程学院, 上海 200062;
2. 华东师范大学 数据科学与工程学院, 上海 200062;
3. 南京农业大学 信息科学技术学院, 南京 210095
摘要:套牌车行为不仅扰乱公共交通秩序,还危害了真实车主的利益,给社会带来了极大危害,整治套牌车刻不容缓.广泛使用的卡口时间对比法使用统一的速度阈值检测套牌车辆,一旦阈值设置不当,容易造成套牌误判和漏检,导致检测结果准确率低.针对这样的问题,本文提出了一种两阶段的套牌车检测框架.离线部分根据历史卡口摄像头监测数据分时段对各路段建立速度分布,确定不同时段各路段的正常速度阈值;在线部分基于滑动窗口模型,根据正常速度阈值,对各路段实时通行车辆进行持续监测,将高频度出现速度异常的车辆判定为套牌车.最后使用真实卡口监测数据集对所提方法进行有效性验证,实验结果表明该方法能够有效避免噪声数据干扰,从而显著提升了套牌车检测的准确率.
关键词套牌车    异常检测    速度分布    滑动窗口    
Detection of fake plate vehicles based on traffic data stream
LI Min-xi1, MAO Jia-li2, YUAN Pei-sen3, JIN Che-qing1    
1. School of Computer Science and Software Engineering, East China Normal University, Shanghai 200062, China;
2. School of Data Science and Engineering, East China Normal University, Shanghai 200062, China;
3. College of Information Science and Technology, Nanjing Agricultural University, Nanjing 210095, China
Abstract: Since vehicles using fake plate violate traffic laws and regulations, infringe the rights of legal license owners and harm social benefits, it is therefore of great urgency to solve this social problem. In current detection methods, unified speed threshold is used to detect fake plate vehicles. Once an inappropriate threshold was set, it would lead to misjudgements and omissions, and thereby results in a low judgement accuracy. To solve this problem, we propose a two-phase fake plate vehicles detection framework. In the offline part, we train a distributed speed model based on sparse traffic trajectory data to calculate time-dependent thresholds for different roads. In the online part, we apply a sliding-window method to monitor whether a car is an outlier. If a car is continually detected as an outlier, it will be judged as a fake, and vice versa. We then use a real dataset to evaluate our method. The results demonstrate negative influences of noise data can be avoided by our method, so the accuracy of fake plate vehicles detection can be improved significantly.
Key words: fake plate vehicle    anomaly detection    speed distribution    sliding window    
0 引言

套牌车是使用违法途径盗取真牌车的号牌、型号, 使走私、拼装、报废等车辆在表面披上了"合法"的外衣.近年来, 由于机动车牌号管理不当, 套牌行为已有愈演愈烈的趋势.据报道, 在2017年3月上旬, 北京市已查处套牌违法行为371起.绝大部分套牌车没有合法的牌照, 当出现违法行为肇事逃逸时, 不仅增加了公安机构侦破难度, 而且还危害真实车主的利益, 因此, 套牌车已给社会带来巨大危害, 整治套牌车迫在眉睫.目前主要检测套牌车的途径包括硬件、软件和软硬件结合3类.基于硬件[1-2]或者软硬件结合[3]的方法能够准确地发现套牌车, 但是这些方法需要硬件支持, 成本高, 难以在现实生活中推广使用.随着车牌识别技术的完善以及卡口摄像头监控系统的普及, 以卡口时间对比法[4]为代表的软件套牌车检测技术因其成本低且实效性强的优势被广泛使用.利用时空矛盾对卡口监测数据进行处理监测时通常采用统一的速度阈值, 在阈值设置不当的情况下容易造成套牌车辆的漏检或误判.特别是当阈值设置过小时, 易将正常行驶或超速车辆误判为套牌车, 这些车辆的轨迹数据会成为噪声干扰检测结果.在实际应用中, 同一时段下的不同路段以及相同路段在不同时段下的速度分布均具有显著差异.如图 1所示, $A$$B$$C$分别为城市中3条路段, $A$为邻近市区的普通道路, $B$为城市中心主干道路, $C$为城郊普通道路.图 1是通过这3个路段的车辆的日平均速度的统计结果, 可以发现, 路段$B$的速度最低, $A$$C$路段在高峰期与非高峰期时的速度明显不同.图 2为通过路段$A$的车辆分时段的平均速度统计结果, 可以看出, 上下班高峰期的车速显著低于非高峰期.因此, 不同时段的各路段车路段车辆行驶速度差异较大.不分时段/路段地使用统一的速度阈值不能准确地甄别噪声数据与套牌车辆, 降低了套牌车检测的精度.现有的卡口时间对比法正面临使用统一速度阈值带来的低检测精度的问题.鉴于上述问题, 我们提出了一个两阶段套牌车检测框架, 通过有效识别套牌车的异常行为提升检测的准确率.

图 1 不同路段不同时段车速对比示例 Fig.1 An example of speed comparison
图 2 某路段车速随时间变化示例 Fig.2 An example of speed in different time

套牌车检测框架包含离线和在线两个阶段.离线阶段使用历史监测数据建立不同时段下各路段的速度分布, 确定时空限制下的速度阈值; 在线阶段根据离线阶段提取的速度阈值, 基于滑动窗口模型连续观测多个时间窗口, 将具有频繁异常行为的车辆识别为套牌车.

本文的主要贡献如下.

(1) 为及时有效地发现套牌车, 提出了基于卡口监测数据流的套牌车检测问题.

(2) 构建了一个两阶段的套牌车检测框架, 包括离线部分提取了时空限制下的路段速度阈值, 以及在线阶段通过连续监测发现具有频繁异常行为的车辆, 视其为套牌车.

(3) 基于真实的卡口监测数据集进行了大量实验, 对所提套牌车检测方法的有效性和性能进行了验证, 实验结果显示相比其他的套牌车检测方法, 本文所提方法可以有效地避免噪声数据的干扰, 实时发现套牌车辆.

本文余下部分组织为:第1节介绍相关工作; 第2节介绍问题定义与套牌车检测算法框架; 第3节详细阐述离线部分如何根据历史数据建立路段速度分布从而计算出速度阈值、在线部分如何利用路段速度阈值来建立套牌车候选集和从中筛选出套牌车; 第4节给出套牌车检测的实验结果与分析; 第5节总结全文并展望未来工作.

1 相关工作

随着无线通讯技术的广泛应用, 基于位置的服务(Location-Based Service, LBS)通过无线网络使用移动对象的位置信息可以提供各类服务[5].例如利用车辆轨迹数据, 可以为用户规划合适的路径[6]、预测旅行时间[7]、发现热门路径[8]等.

作为位置服务一个新兴应用研究——套牌车检测, 其方法主要包括基于硬件、基于软件和软硬件结合3类.基于硬件方面的有:对每一个车牌边框制作独一无二的缺口和凸起[1], 从而提升车牌的防复制能力; Deng[9]提出了一种基于RFID的套牌车检测技术, 即利用RFID技术将车辆信息存储在标签中, 装有标签读取器的交通卡口可以读取标签中的车牌号并将其与卡口摄像头识别的车牌号进行比对进而检测套牌车.在硬、软件结合方面, 基于物联网的技术[3]将加密过存有车辆信息的电子标签植入机动车中, 当车辆通过被无线覆盖的基站时, 电子标签中的信息将被读取并显示在终端上, 若车辆没有安装电子标签或者电子标签中的信息与车辆不符合时, 该车被判定为套牌车并将该车辆锁定.以上基于硬件或者软硬件结合的技术能够有效准确的发现套牌车, 但是这些方法成本较高, 需要政府和车主的配合, 因此在现实生活中难以快速推广.基于软件的套牌车检测方法主要分为基于图像识别的检测以及利用卡口摄像头的监测数据来检测套牌车.基于车脸识别的套牌车检测方法[10]通过处理摄像头采集的车辆图片信息提取出车脸特征, 并将其与信息库中的车脸特征进行比对从而判断是否为套牌车.此类方法易受光线等环境因素影响, 此外, 当套牌车与原车是同一车型时无法检测出套牌车.文献[4]提出了一种基于历史车牌识别数据集的套牌车检测方法TP-Finder, 利用时空矛盾即同一个车牌不能在短时间内出现在两个距离较远的位置, 对卡口历史监测数据进行处理从而检测套牌车.该方法通过整合历史监测数据得到车牌对应的轨迹, 当检测到任意一段子轨迹的平均速度大于设定好的阈值时, 就判定该车为套牌车.基于时空矛盾的思想可以检测出部分套牌车辆, 但是不分时段对各路段使用同一速度阈值易将非法超速行驶的车辆误判为套牌车.文献[11]在此基础上提出了利用略大于极限速度的阈值来检测套牌车, 在一定程度上避免了超速车辆作为噪声数据对结果判断的影响.上述方法[5, 11]虽然可以检测出部分套牌车, 但各路段不同时段下路况不同, 不分时段的对所有路段设定统一的速度阈值, 会造成漏检许多速度并没有达到设定阈值的套牌车的后果.因此不分时段、路段仅用一个统一的阈值用于套牌车的检测并不合理.

基于时空矛盾的套牌车检测方法可视为一种轨迹异常检测.基于历史轨迹相似性的检测方法因检测精度高被广泛应用于生物、航海、路网等领域.该类方法从大规模的历史数据中挖掘轨迹的频繁模式以构建全局特征模型, 并将异于特征模型的数据判定为异常[12].文献[13]提出了一种基于船只历史轨迹数据的异常检测框架.该框架分为轨迹建模和异常检测两个阶段, 由于船只轨迹具有很大的自由度, 在轨迹建模阶段使用一个频繁区域去替代一个船只经过的位置点.通过得到的频繁区域, 将轨迹转换为一个区域序列, 利用序列获取船只的行为特征, 从而进行异常检测.文献[14]利用出租车轨迹提出了一种时间依赖的最受欢迎路线的异常检测方法.首先分时段获得的同目的地-终点的最受欢迎的K条路线, 在检测阶段, 利用两条轨迹间的编辑距离来衡量轨迹之间的差异, 如果同目的地-终点的轨迹在与该时段最受欢迎的轨迹差异明显, 将给此轨迹贴上异常的标签.使用历史轨迹构建的模型对轨迹进行异常检测时, 对模型的精确度要求很高, 利用实时采集的待检测轨迹可以增量更新已构建好的模型以提升准确率.文献[15]提出了一个交通异常检测框架, 在离线部分该框架使用轨迹数据库挖掘不同路径的道路行为模型, 在线部分同时接收车辆GPS数据与社交平台数据, 当在线检测到的轨迹行为明显不同于行为模型时, 则判断此轨迹出现了异常行为, 并尝试用社交平台上的数据来解释这种异常.

本文考虑在套牌车检测方法中, 引入基于历史轨迹相似性的轨迹异常检测思想, 构建两阶段的套牌车检测框架, 离线阶段使用历史卡口监测数据构建路段速度阈值; 在线阶段通过持续观测多个时间窗口内具有异常行为的车辆, 将异常频度高的车辆判定为套牌车, 提升套牌车检测的准确率.

2 问题描述与算法框架

在本节中, 我们将对套牌车检测框架做一个概述.在第2.1节中给出问题的定义, 第2.2节中介绍算法的整体框架.

2.1 问题描述

城市道路的卡口摄像头数据即在城市道路, 高速公路出入口等地段的通过车辆自动识别系统采集到的过往车辆数据.通过卡口摄像头监测数据可以得到该卡口的ID、通过该卡口车辆的车牌号、车辆通过该卡口的时间戳等属性.令$L=\{C_1, C_2, \cdots, C_m\}$为车牌集合, 轨迹集合$I=\{TR_{C_1 }, TR_{C_2 }, \cdots, TR_{C_m }, \}$, 其中$TR_{C_i } (1\leqslant i\leqslant m)$表示车牌号$C_i$对应的轨迹.每条轨迹是多维时间序列, $TR_{C_i }=P_1 P_2\cdots P_{\text{len}{(TR_{C_i })}}$, 其中$P=\{{\rm ID}, t, \rm lon, lat\}$, ID表示该点的卡口摄像头ID, $t$表示经过该卡口的时间戳, lon和lat分别表示该卡口摄像头的经纬度.本文框架每个时段产生一个被套车牌集合$FP=\{C_{F_1 }, C_{F_2 }, \cdots, C_{F_q}, \}$, 其中$C_{F_i }\in L$表示被套车牌.

2.2 套牌车检测算法框架

套牌车检测框架如图 3所示, 包含离线和在线两个阶段.离线阶段, 通过城市卡口摄像头的监测数据可以获得各个车牌的轨迹.根据这些历史轨迹可以计算出各条路段分时段的速度分布, 得到速度阈值, 即认为当车辆经过该路段时, 其平均速度超过速度阈值则认为该段轨迹异常.在线阶段, 根据提取的各路段的速度阈值, 实时检测新采集的车牌轨迹中每一段子轨迹速度是否大于它通过路段的速度阈值, 若大于, 则认为该车牌出现异常, 将其加入套牌车候选集合持续观察.当套牌车候选集合中的车牌速度异常频度超过预设的阈值时, 则视为套牌车.为确保基于历史轨迹数据提取的各路段速度阈值的有效性, 将新采集到的轨迹数据同时用于路段速度分布的更新.

图 3 套牌车检测框架 Fig.3 Framework of fake plate vehicles detection
3 套牌车检测

针对上文所述, 分时段对各路段采用不同的速度阈值能有效提高套牌车检测的准确率.第3.1节介绍基于历史轨迹数据建立分时段的路段速度分布; 第3.2节介绍通过观测连续多个时间窗口下各路段车辆的行为, 以发现具有高频度异常的套牌车辆.

3.1 离线建立分时段的路段速度分布

城市路网中的各路段都依照交通法规设定了相应的车速范围, 但实际中, 由于道路拥堵或其他道路异常事件, 车辆的实际行驶速度应低于规定的最高速度.若仅根据规定的路段最高速度来检测某一车辆是否异常, 会导致漏检从而造成检测准确率低下.根据历史卡口监测数据, 计算更为合理的速度阈值用于异常检测, 能够显著提高检测的准确率.

车辆的行驶速度与道路的地理位置有着较大的相关性, 如在城市的中心地带车辆的平均行驶速度明显低于郊区或高架等地带.因此在进行套牌检测时, 不同的路段应采用不同速度阈值.此外, 1 d中城市的道路状况往往随时间的推移而变化, 在上/下班等高峰时段, 由于车流量大, 车辆的行驶速度通常较闲暇时段慢.针对这种车流量分布不均匀的情况, 应将全天划分为多个时段, 使得同一时间段内的车辆行驶状况相似, 不同时间段内行驶状况差别显著.如图 4所示, 为某路段某天车流量随时间变化示例, 横轴表示时间, 纵轴是每个时段内车流量占全天车流量的百分比.通过观察可知, 白天的车流量较夜间的车流量高, 上下班高峰期的车流量占比最大.因此, 在此例中根据车流量的不同, 将全天划分为00:00~06:00、06:00~07:00、07:00~11:00、11:00~14:00、14:00~18:00、18:00~24:00等6个时段.

图 4 路段1 d车流量分布示例 Fig.4 Example of a traffic flow distribution

同一时段内, 经过同一路段车辆的速度也存在一定的变化, 例如部分车辆恰好遇到红灯, 则其行驶速度相对于畅通行驶的车辆会较低.如图 5所示, 描述了某路段中午11:00~12:00车速分布.横轴表示速度, 每2 km/h划分一个速度范围; 纵轴表示行驶速度在对应速度范围内的车辆占所有车辆的百分比.在中午11:00~12:00之间, 车辆经过该路段的速度集中在20~30 km/h, 只存在少量车辆速度偏离该范围较大.因此仅使用平均速度无法较好地描述此路段的实际情况; 而统计学上使用速度分布能更好地描述路段上车辆的行驶状况.由图 5可知, 车辆速度的分布呈现中间集中、两侧分散的特点.通过对多个路段数据的统计观察, 可知高斯分布能够较好地拟合同一路段上车辆行驶速度的状况.因此本文采用高斯分布对速度分布进行建模, 进而给出各路段分时段的正常速度阈值, 进行套牌车检测.

图 5 路段速度分布示例 Fig.5 Example of a road's speed distribution

求解各路段分时段的速度分布, 即求解高斯分布中的参数:均值$\mu$和方差$\sigma^2$.本文使用极大似然估计的方法进行高斯分布参数的估计.路段$r$在时段$t$内速度的高斯分布的形式为

$ \begin{align*} p_{(r, t)} (v)=\frac{1}{\sqrt{2\pi } \sigma} \text{ e}^{-\frac{(v-\mu)}{2\sigma^2 }^2 }, \end{align*} $

其中$v$表示车辆在时段$t$内经过路段$r$的速度.高斯分布存在2个参数分别是$\mu$$\sigma^2$, 其极大似然估计分别为

$ \begin{align*} \widehat{\mu}=\, &\frac{1}{n}\sum\nolimits_{i=1}^nv_i, \\ \widehat{\sigma^2}=\, &\frac{1}{n}\sum\nolimits_{i=1}^n v_i^2 -\widehat{\mu}^2, \end{align*} $

其中, $n$表示样本数量, $v_i$表示采样数据.历史数据中车辆的速度可看作对应分布的采样, 因此可以使用历史轨迹数据对高斯分布参数进行极大似然估计, 建立各路段的分时段速度分布.

车辆的轨迹是由卡口信息和对应时间戳组成的序列, 路段即指路网中相邻的卡口对.因此, 只需要计算相邻卡口之间的速度分布即可.针对每个分布, 根据历史数据, 计算在对应时间段经过该路段的所有车辆的平均速度, 进而计算$x=\sum_{i=1}^nv_i$, $y=\sum_{i=1}^n v_i^2$$n$这3个统计量.由这3个统计量可直接计算估计量$\widehat{\mu} $$\widehat{\sigma^2} $, 建立路段各时间段相应的速度分布.所有车辆的平均速度并不需要被保存, 随着数据量的增加, 只需增量更新相应的统计量, 即可计算新的分布的参数.

各路段的速度分布集合为

$ \begin{align*} SDS=\{\langle \text{ID} _{s_1}, \text{ID}_{e_1 }, RDS_1 \rangle, \cdots, \langle \text{ID}_{s_p}, \text{ID}_{e_p}, RDS_p \rangle \} \end{align*} $

其中, $\langle \text{ID}_{s_i}, \text{ID}_{e_i}, RDS_i\rangle(1\leqslant i\leqslant p)$为某路段的各时段速度分布, ID$_{s_i}$, ID$_{e_i }$分别为路段起始点与终点的卡口ID, $RDS_i$表示该路段各时段的速度分布序列.路段各时段的速度分布为$RDS=D_1 D_2\cdots D_M$, 全天被分成$M$个时段, 每个时段的速度分布为$D_i=\langle T_i, x_i, y_i, n_i \rangle $ $(1\leq i\leq M), T_i$表示该分布的时段, $x_i$$y_i$$n_i$分别为描述分布的3个统计量.

算法1描述了基于历史轨迹数据构建分时段路段速度分布的过程.

算法1  构建路段速度分布集合
输入: 轨迹集合$I$
输出: 路段速度分布集合$SDS$
1.   $SDS=\phi$;
2.  $\textbf{for}$ $TR_C\in I$ $\textbf{do}$
3.    $\textbf{for}$ $P_i, P_{i+1}\in TR_C$ $\textbf{do}$
4.     $\textbf{if}$ NOT validate $(P_i, P_{i+1}) $ $\textbf{then}$
5.      continue;
6.     $\textbf{end if}$;
7.     $v:\; P_i, P_{i+1}$之间的平均速度;
8.     $T:\; P_i, P_{i+1}$所在时段;
9.     $\textbf{if}$集合$SDS$中存在$P_i, P_{i+1}$相应路段的速度分布$RDS$ $\textbf{then}$
10.      $D=RDS.\text{get}(T)$;
11.      $D.x=D.x+v; $ $D.y=D.y+v^2$; $D.n=D.n+1$;
12.    $\textbf{ else}$
13.      初始化$RDS$, 将$RDS$中各时段速度分布的$x, y, n$初始化为0;
14.      $D=RDS.\text{get}(T)$;
15.      $D.x=D.x+v$; $D.y=D.y+v^2$; $D.n=D.n+1$;
16.      将$\langle P_i.\text{ID}, P_{i+1}.\text{ID}, RDS\rangle$加入到集合$RDS$中;
17.     $\textbf{end if}$
18.    $\textbf{end for}$
19. $\textbf{end for}$
20. $\textbf{return}$ $SDS$;

对每条历史轨迹, 遍历其所有连续的轨迹点.首先通过validate()函数判断这两个轨迹点的有效性(行4), 若两个轨迹点的时间间隔过长或车辆经过两个轨迹点之间的平均速度过大, 表明车辆可能中途停车或出现套牌现象, 则该车辆的速度并不能用于估计对应时段该路段的速度分布; 反之, 用其平均速度更新对应路段相应时间段的统计量.首先判断速度分布集合$SDS$中是否存在该路段对应的速度分布$RDS$(行9), 若存在, 则获取对应路段对应时段的分布(行10), 用新的速度更新分布的统计量(行10-11);若不存在, 则初始化对应路段的速度分布$RDS$.将其各时段速度分布的3个统计量$x, y, n$初始化为0(行13), 再将新获取到的速度更新其对应时段的速度分布, 最后将该路段的速度分布$RDS$加入至集合$SDS$中(行14-16).由于卡口对是有序的, 卡口对$\langle A, B\rangle$与卡口对$\langle B, A\rangle $是不同的, 需要建立两个速度分布.如前文所述, 每个分布只需要记录$\sum_{i=1}^nv_i$, $\sum_{i=1}^n v_i^2$$n$这3个统计量即可估计分布的参数.需要注意的是如果一个分布中$n$较小, 该分布就没有实际意义, 一方面样本过小时极大似然估计的结果并不准确, 另一方面$n$较小表明很少有车连续经过这两个卡口, 实际有可能这两个卡口并不相邻.因此只有当$n$大于一个固定的阈值$N$时, 该分布才具有实际意义, 否则认为一辆车连续经过这两个卡口的概率为0, 即该分布无效.

通过估计的分时段的路段速度的分布, 能够计算各路段在不同时段的正常速度阈值.由高斯分布的性质可知$Pr(\mu-3\sigma \leq v\leq \mu+3\sigma)=99.7\%$, 这就表明车辆在指定时段经过该路段时, 其行驶速度在$(\mu-3\sigma, \mu+3\sigma)$之间的概率为99.7%, 那么其行驶速度超过$\mu+3\sigma$为小概率事件(0.15%).当速度超过$\mu+3\sigma$时, 表明在该路段该车牌出现异常情况, 因此本文将路段的正常速度阈值设置为

$ \begin{align*} {\rm Threshold}=\widehat{\mu}+3 \widehat{\sigma}. \end{align*} $

例如某路段在某一时段, 其参数估计量为$\widehat{\mu}=30$, $\widehat{\sigma}=4$, 那么该路段正常速度的阈值为42 km/h.当车辆经过该路段的速度超过42 km/h时, 则认为该车辆经过该路段时出现了异常.

3.2 在线频繁速度异常车辆检测

结合城市各个卡口的监测数据可以构建车辆的轨迹序列, 通过车辆的轨迹计算出车辆在各个卡口间的平均速度, 并利用平均速度检测该车辆是否出现异常行为.车辆经过两个连续卡口的平均速度超过当前时段该路段的正常速度阈值, 则判定该车辆发生了一次异常行为, 因此将该车辆视为候选套牌车, 并放入套牌车候选集合E中.例如车牌为A3AP63的车辆经过卡口00006157与卡口00006230的时间间隔为56s(23: 03: 21和23: 04: 15), 两个卡口相距1.3 km, 根据第3.1节计算的路段速度阈值可知在晚上23: 00该路段的正常速度阈值为40 km/h, 而该车辆在此路段行驶的平均速度(86 km/h)远超该路段的速度阈值, 因此判断该车辆在此时出现一次异常行为.同一车牌车辆的轨迹可能存在多次异常行为.若仅根据车辆的一次异常行为就判定为套牌车, 极易造成误判情况的发生.因此只将其标记为异常, 加入套牌车候选集合$E$中, 持续观察该车辆的情况, 以确定是否为真实的套牌车.

据观察, 若车辆被套牌, 即存在多辆车使用同一车牌在道路上违法行驶.因此, 套牌车的轨迹在一段时间内出现异常的频度远大于违法超速的车辆.利用滑动窗口模型持续观察实时采集的数据, 当同一个车牌的轨迹在连续$W$个时段内, 出现异常的频度超过$K$, 则判定该车牌被套牌.采用此判定准则, 能有效避免仅因一次异常行为而将超速车辆误判为套牌车的情况.为此, 一种基于滑动窗口模型的实时套牌车检测算法被用于本文的套牌车检测.对于候选套牌车, 记录其在时间窗口内的异常频度, 窗口大小为$W$个时间段.当滑过一个时段, 删除过期时段的数据, 添加新时段的数据.如图 6所示, 为某车牌的轨迹在各个时段内异常频度.若窗口大小$W$为3个时段, 异常频度阈值$K$为14, 即当在一个窗口的连续3个时段内检测该车牌发生的异常行为的频度和超过14时, 将该车牌判定为被套车牌.

图 6 滑动窗口 Fig.6 Sliding window

当检测到车辆产生1次异常行为时, 则将该车牌放入套牌车候选集合$E$中, 套牌车候选集合为

$ \begin{align*} E=\{\langle C_{e_1 }, C\text{List}_{e_1} \rangle, \langle C_{e_2 }, C\text{List}_{e_2} \rangle, \cdots, \langle C_{e_q }, C\text{List}_{e_q } \rangle \}, C_{e_i }\in L, 1\leq i\leq q, \end{align*} $

其中, $C\text{List}_{e_i }$为长度不超过$W$列表, 列表中的元素分别记录车牌$C_i$在窗口内各时段被检测到的异常的频度.随着新的数据到来, 窗口不断滑动, 同时更新套牌车候选集中的相关数据.如图 6(a)所示, 窗口滑动至时段1、2、3时, 此时$C$List中分别记录该车牌的轨迹在时段1、2、3内的异常频度.窗口滑动至虚线位置即时段2、3、4时, 删除$C$List中过期数据即时段1中记录的异常频度2, 增加新时段即时段4中的异常频度5, 此时时间窗口内异常频度总和为15, 超过异常频度阈值14, 因此该车牌被判定为被套车牌, 并将该车牌放入套牌车集合FP中.如图 6(b)所示, 当窗口滑动至时段8、9、10时, 此时$C$List中记录该车牌的异常频度总和为0, 则将该车牌从套牌车候选集$E$中删除.

套牌车检测如算法2所示, 该算法用于在线检测连续时段内具有高频度异常的车辆, 并将其视为套牌车.

算法2 在线高频度异常车辆检测
输入: 一个时段摄像头数据集合$\mathcal{L}$, 套牌车候选集合$E$, 速度分布集合$SDS$, 窗口大小$W$, 异常频度阈值$K$
输出: 套牌车集合$FP$, 套牌车候选集合$E$, 速度分布集合$SDS$
1.  由$\mathcal{L}$构建轨迹集合$I$
2.  $\textbf{for}$ $\langle C_i, C\text{List}_i \rangle \in E$ $\textbf{do}$
3.   $\textbf{if}$ len($C\text{List}_i$)==$ W$ $\textbf{then}$
4.     $C\text{List}_i$.Delete(0);
5.   $\textbf{end if}$
6.  $C\text{List}_i$.insert(len($C\text{List}_i$), 0);
7. $\textbf{end for}$
8. $\textbf{for}$ $TR_C\in I$ $\textbf{do}$
9.   num=OutlierNum$(TR_C, SDS)$;
10.   Update$(TR_C, SDS)$;
11.   $\textbf{if}$ num==0 $\textbf{then}$
12.     continue;
13.  $\textbf{end if}$
14.   $C$:轨迹$TR_C$的车牌;
15.   $\textbf{if}$ $E$中不含车牌$C$的记录 $\textbf{ then}$
16.     $C\text{List}_C=\phi$;
17.     $C\text{List}_C.\rm insert(0, num)$;
18.     将$\langle C, C\text{List}_C \rangle$加入到套牌车候选集合$E$中;
19.   $\textbf{else}$
20.     $C\text{List}_C [\text{len}(C\text{List}_C)-1]$=num;
21.   $\textbf{end if}$
22.   $\textbf{if}$ $C\text{List}_C$中元素之和超过$K$ $\textbf{then}$
23.     将车牌$C$加入到套牌车集合$FP$中;
24.   $\textbf{end if}$
25. $\textbf{end for}$
26. 将$E$中所有异常频度之和为0的车牌移除;
27. $\textbf{return}$ $FP, E, SDS$;

给定一个时间段内的卡口摄像头检测数据集$\mathcal{L}$, 当前套牌车候选集合$E$, 路段速度分布集合$SDS$, 以及窗口大小$W$.将摄像头监测数据$\mathcal{L}$按车牌划分, 对同一车牌的轨迹数据根据时间进行排序, 构建所有车牌在该时间段内的轨迹集合$I$, 其格式如第2.1节所述(行1).然后对当前套牌车候选集合$E$中的每个车牌对应的列表$C$List的长度进行判断(行3), 若列表长度即$C$List中记录的时间段数目等于$W$, 表明当前该车牌的$C$List已满, 则删除该车牌$C$List中的过期数据, 并将$C$List的长度减1(行4).接着将$C$List中记录的新时段即当前时段的异常频度初始化为0(行6).遍历轨迹集合$I$中各条轨迹, 根据各路段的速度分布集合$SDS$, 使用函数OutlierNum($T\!R_C, SDS$)计算各条轨迹在该时段的异常频度(行9), 函数Update($T\!R_C, SDS$)同时将当前轨迹用于更新对应路段速度分布的统计量(行10).若轨迹在该时段异常频度大于0, 则判断该轨迹对应的车牌是否已经存在于套牌车候选集合$E$中, 若不存在则将该车牌加入套牌车候选集合$E$, 在后续时段持续监测(行15-18);若存在, 更新该车牌在套牌车候选集合$E$$C$List记录的当前时段的异常频度(行20).计算窗口内该车牌在多个时段内异常频度的总和, 若超过阈值$K$则判定该车牌被套, 加入到套牌车集合$FP$中(行22-23).若检测到车辆在窗口内多个时段的异常频度之和为0, 则将该车牌从套牌车候选集合$E$中移除(行26).最后返回当前时段的套牌车集合$FP$, 套牌车候选集合$E$, 与更新后的路段速度分布集合$SDS$.当新时段的卡口摄像头检测数据$\mathcal{L}$来临时, 将更新后的套牌车候选集$E$和路段速度分布集合$SDS$作为输入, 继续调用算法2进行新时段的套牌车检测.

本文套牌车检测算法对不同路段分时段采用不同的速度阈值以防止漏检, 同时使用滑动窗口模型持续监测异常车牌以避免误判的发生.新的数据除了用于套牌车的检测, 同时还用于增量更新路段速度分布模型, 这使得速度分布能不断调整以反映路段的真实的行驶情况.窗口长度$W$和阈值$K$的设置在第4节实验中讨论.

4 实验

在本节中, 我们对套牌车检测框架进行了实验评估.所有算法均由Java语言实现且运行在处理器为Intel Core i5-4460 3.20 GHz、内存8 GB的Windows操作系统的PC机上.实验分为3部分:第一部分利用历史数据建立路段速度分布, 计算各路段分时段的正常速度阈值; 第二部分分析不同窗口长度$W$和异常频度阈值$K$的设置对套牌检测的准确率和召回率的影响, 并分析在不同数据规模下的算法性能; 第三部分将本文算法与TP-Finder[4]进行比较, 验证本框架的有效性.

4.1 实验设置

我们使用某市2014年9月1号到9月30号535个卡口摄像头监测数据, 每天产生的约530万条监测数据, 数据量约为7 GB, 记录了280万个不同的牌照.卡口摄像头采集数据主要包含卡口ID、车牌号、时间戳、车道号、卡口朝向、经纬度等16个属性.我们使用9月1日到9月20日的数据进行路段速度分布建模, 得到各路段分时段的正常速度阈值.对9月21日至9月30日的数据进行标注, 共标注5 000条轨迹, 其中人工标注获得104辆套牌车的954条轨迹.套牌车检测包含两个重要参数:滑动窗口大小$W$和异常频度阈值$K$.在不同大小$W$$K$下, 我们观察检测结果的召回率和准确率, 对参数敏感性进行分析, 并且进行在不同数据规模下算法的性能分析.其中$W$的取值范围为2~7d, $K$的取值范围为5~75次.在不同规模的数据集下, 将本文算法与TP-Finder算法进行准确率和召回率的对比分析.

4.2 路段阈值

实验统计了16万个不同的路段, 将1 d分为6个时段, 约产生了96万个速度分布.对于每个速度分布, 我们不仅计算出其对应的正常速度阈值, 还计算对应时段内经过该路段所有车辆的平均速度.各路段分时段平均速度分布如图 7(a)所示, 横轴表示速度的区间, 纵轴表示速度在对应区间的占比, 如平均速度在10~20 km/h大约总体的41.7%.由图可知超过98%的路段的平均速度都在60 km/h以下, 且所有路段的平均速度均在80 km/h以下.卡口时间对比法设置统一的速度阈值如120 km/h来检测套牌车, 但不同时段各路段的平均速度不同且远小于120 km/h, 因此统一的速度阈值并不能有效地进行套牌车检测.各路段分时段的速度阈值分布如图 7(b)所示, 纵轴表示速度阈值在对应区间的占比, 其中各路段分时段的速度阈值主要集中在20~60 km/h, 速度阈值在80 km/h以下的超过90%, 仅存在极少的速度阈值超过100 km/h.对比两张图, 发现由各路段速度分布计算出的速度阈值明显大于平均速度, 但又远小于统一速度阈值(如120km/h).与平均速度相比, 各路段分时段的速度阈值比其平均速度快出29.1 km/h, 因此使用高斯分布对路段速度分布进行建模能够计算出更为合理的路段速度阈值.分时段的路段速度阈值能够有效地检测轨迹异常, 提高套牌车检测的准确性.

图 7 (a)、(b)各路段平均速度与速度阈值 Fig.7 (a)、(b)Average speed and threshold speed of every road
4.3 套牌车检测

套牌车检测实验中, 我们在不同窗口大小$W$和不同的异常频度阈值$K$下, 观察检测结果, 实验结果如图 8中所示.图 8(a)为算法的召回率, 图 8(b)为算法的准确率.如图 8(a)所示, 在窗口$W$不变的情况下, 随着阈值$K$的增加, 算法的召回率不断下降, 这是由于异常频度阈值$K$越高, 所需异常频度总和就越高, 能够检测出的套牌车就越少.当阈值$K$小于15时, 算法的召回率较高, 且随$W$的无显著变化.当$K$不变时, 窗口$W$越大, 算法的召回率越高, 这是由于窗口$W$越大, 观测的时间就越长, 检测到的异常频度总和就越高, 检测出的套牌车数目也就越多.在图 8(b)中, 窗口$W$长度固定, 随着阈值$K$的增加, 算法的准确率不断提高, 这是由于阈值$K$的提高, 车辆只有出现更多次的异常情况, 才能被判定为套牌.当阈值$K$大于45时, 算法的准确率接近于100%, 此时准确率随窗口大小$W$的变化不大.由于存在少量车辆在一段时间内频繁出现高速行驶的行为, 因此会被检测出多次异常, 而该车辆会被本文算法判定为套牌车, 造成检测的准确率无法达到100%.当$K$不变时, 窗口$W$越小, 算法的准确率就越高, 这是因为窗口越小观测时间越短, 单位时间内发生异常的频度就越高.

图 8 参数敏感性 Fig.8 Parameter effects

图 9显示了参数$K$$W$在不同数据规模下对算法效能的影响.图 9(a)中, 阈值$K$设置为30, 分别比较不同窗口大小$W$在不同的数据规模下的检测效能, 其中横轴表示每个时间段内数据的规模, 纵轴表示处理该时间段内数据所需时间.实验结果表明检测时间随数据规模呈线性增长.同时, 在相同数据规模下, 随着$W$的增大, 检测所需时间略有增长.这是因为$W$越大, 窗口内的数据量越大, 所需时间相应增加.图 9(b)中, 窗口大小$W$设置为6, 分别比较不同的阈值$K$在不同数据规模下的检测效能.实验结果表明, 在相同数据规模下, 检测的效能与阈值$K$无关, 这是因为当$K$的增大时, 算法在窗口内所需要处理的数据量并没有发生变化.实验中, 所有的检测均可在1s内完成, 验证了本算法的实时性.

图 9 性能分析 Fig.9 Efficiency evaluation

我们使用人工标注轨迹将本文检测框架与TP-Finder进行对比, 实验结果如图 10所示.图 10(a)中, 我们评估两个算法在不同的数据规模下的准确率.本文算法将窗口大小$W$设置为2d, 分别计算$K$为25、35和45时检测的准确率.实验结果表明, 当$K$大于25次时, 本框架的准确率高于TP-Finder, 这是因为TP-Finder仅考虑一次异常就判定车辆为套牌车辆, 易受到违法超速的车辆所产生的噪声数据的影响, 造成了误判情况, 降低了检测的准确率.而本文的检测方法在多个时间段内连续观察车辆, 能够有效避免噪声数据的干扰.当$K$为45时, 本文算法的准确率比TP-Finder高出接近20%.图 10(b)评估了两个算法在不同的数据规模下的召回率, 本文算法窗口大小$W$为5d, 分别计算$K$为5、10和15的召回率.实验结果表明, 当$K$小于15次时, 本框架的召回率高于TP-Finder, 当$K$为5时, 本文算法的召回率接近于1;而TP-Finder算法召回率仅为82%左右, 这是由于TP-Finder无法检测出未达到统一阈值的异常, 造成了漏检.本文算法对各路段分时段使用不同的速度阈值, 能够有效地检测出轨迹中的异常, 提高检测的召回率.

图 10 实验结果正确性对比 Fig.10 Comparisons of two method
5 总结

本文提出了一个两阶段的套牌车检测框架:离线阶段使用历史监测数据建立不同时段下路段的速度分布, 确定时空限制下的速度阈值; 在线阶段根据离线阶段构建的速度阈值, 基于滑动窗口模型连续观测多个时间窗口, 将具有频繁异常行为的车辆判定为套牌车.最后通过实验验证框架的有效性和实时性, 结果表明本框架能够有效避免噪声数据干扰, 实时进行套牌车的检测.在离线阶段, 对于时段的划分可以考虑使用MDL方法, 使划分结果更为合理.在处理海量数据时, 可使用Spark或Storm等分布式系统提升框架的处理性能.未来的工作主要包括套牌车轨迹的模式挖掘以及区分套牌车轨迹中的原车辆和套牌车.

参考文献
[1] 唐晓东. 套牌机动车辆检测方法分析[J]. 中国人民公安大学学报(自然科学版), 2013, 19(2): 76-79.
[2] 吴俊文, 范大伟. 一种汽车牌照防套牌装置: 中国, 200720000158. 4[P]. 2007-12-19.
[3] 杨博. 物联网ZigBee技术在套牌车监管中的应用研究[J]. 制造业自动化, 2012, 34(17): 41-43. DOI:10.3969/j.issn.1009-0134.2012.9(s).14
[4] 李悦, 刘晨. 基于历史车牌识别数据的套牌车并行检测方法[J]. 计算机应用, 2016, 36(3): 864-870. DOI:10.11772/j.issn.1001-9081.2016.03.864
[5] 周傲英, 杨彬, 金澈清, 等. 基于位置的服务:架构与进展[J]. 计算机学报, 2011, 34(7): 1155-1171.
[6] LIU H P, JIN C Q, ZHOU A Y. Popular route planning with travel cost estimation[C]//Proceedings, Part Ⅱ, of the 21st International Conference on Database Systems for Advanced Applications-Volume 9643. New York: Springer-Verlag Inc, 2016: 403-418.
[7] WU C H, HO J M, LEE D T. Travel-time prediction with support vector regression[J]. IEEE Transactions on Intelligent Transportation Systems, 2004, 5(4): 276-281. DOI:10.1109/TITS.2004.837813
[8] CHEN Z B, SHEN H T, ZHOU X F. Discovering popular routes from trajectories[C]//2011 IEEE 27th International Conference on Data Engineering (ICDE). 2011: 900-911.
[9] DENG C Y, XUE L F, LI W Q, et al. The real-time monitoring system for inspecting car based on RFID, GPS and GIS[C]//2010 International Conference on Environmental Science and Information Application Technology. IEEE, 2010: 772-775.
[10] IQBAL U, ZAMIR S W, SHAHID M H, et al. Image based vehicle type identification[C]//2010 International Conference on Information and Emerging Technologies. IEEE, 2010, Page(s): 1-5. DOI: 10.1109/ICIET.2010.5625675.
[11] 卢晓春, 周欣, 蒋欣荣, 等. 基于网格化监控的套牌车检测系统[J]. 计算机应用, 2009, 29(10): 2847-2848.
[12] 毛嘉莉, 金澈清, 章志刚, 等. 轨迹大数据异常检测:研究进展及系统框架[J]. 软件学报, 2017, 28(1): 17-34.
[13] LEI P R. A framework for anomaly detection in maritime trajectory behavior[J]. Knowledge and Information Systems, 2016, 47(1): 189-214. DOI:10.1007/s10115-015-0845-4
[14] ZHU J, JIANG W, LIU A, et al. Time-dependent popular routes based trajectory outlier detection[C]//International Conference on Web Information Systems Engineering-WISE 2015. Berlin: Springer International Publishing, 2015: 16-30.
[15] PAN B, ZHENG Y U, WILKIE D, et al. Crowd sensing of traffic anomalies based on human mobility and social media[C]//Proceedings of the 21st ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems. 2013: 344-353.