APP下载

基于LOF算法的规律异常车辆检测

2018-07-16高泽雄福建省晋江市公安局

警察技术 2018年4期
关键词:离群卡口轨迹

高泽雄  福建省晋江市公安局

一、通过LOF算法进行规律异常车辆检测应用思路

不同用途的车辆,其出行规律是不一样的。如朝九晚五的上班族的出行峰值可能集中在早上八点之后及晚上六点之后;蔬果运输车辆峰值可能在早上四、五点;一些私人运营车辆、个体公司送货车辆看似轨迹比较零乱,频率难以归纳,但就其所在村居的卡口数据来看,也存在一个相对固定的每天出发时间及归来时间。本文梳理出每个卡口每辆车的出行规律特征,并通过LOF算法将规律特征相近的车辆进行聚合,而最为离散的几辆车即为该卡口的规律异常车辆。最后对每个卡口的规律异常车辆进行统筹分析,只要一辆车在任一卡口被认定为规律正常车辆,即认定为规律正常车辆,其余即为规律异常车辆。在任一卡口的轨迹数不满100的车辆不参与该卡口的规律异常统计。

(一)数据介绍

本文研究数据来自晋江市公安局社会治理视频监控系统的436个慢速卡口所获取的过车数据。这些卡口主要部署在全市各个村居的主要出入口,基本可以实现对各个村居出入情况的全覆盖。数据时间跨度从2014年8月至2017年10月,总量计8.7千万条。每条数据包括卡口ID、过车时间、过车速度、车道及车辆的型号、车标、颜色、遮阳板等特征,以及车牌的颜色、类型、号码等特征。

本次应用是对规律异常车辆的检测,因此仅需提取卡口ID、过车时间、车牌号码三列数据进行分析。为简化分析模型,假设车牌号码即可唯一确定一辆车,暂不考虑套牌车、车牌识别错误等问题。

(二)特征提取

我们需要把上述轨迹数据转化为可供机器学习模型直接分析的特征向量。因本应用研究的是车辆出行规律,因此需要把轨迹数据转化为车辆的出行规律特征。根据不同的时间维度,可分为特定车辆的每日出行规律、每周出行规律、每月出行规律等。

本文采用的是每日出行规律,即根据特定车辆在特定卡口的历史出行数据,统计各小时段的通过次数,除以总次数,得出每小时的出行概率。

对卡口i的所有轨迹数据进行计算,计算结果以px,t表示第x辆车t时的出行概率,得到某卡口i的所有过车频率特征矩阵Camerai,矩阵中的每一行就是描述第x辆车出行规律的特征向量。

(三)模型分析

LOF算法[1](Local Outlier Factor,局部离群因子检测方法)是基于密度的离群点检测方法中一个比较有代表性的算法。该算法会给数据集中的每个点计算一个离群因子LOF,通过判断LOF是否接近于1来判定是否是离群因子。若LOF远大于1,则认为是离群因子,接近于1,则是正常点。

在Camerai矩阵中,每行数据就是一个特征向量,也就是算法中的一个点。Python的sklearn.neighbors库中有封装好的LocalOutlierFactor类[2],只要调用该类对上述特征矩阵进行分析预测,即可得到一个一维数组,每一个值对应矩阵中的一行,标识该车辆规律特征是否为离散点(-1/1)。

(四)综合分析

通过对各个卡口的数据逐一进行分析,可得所有车辆在各个卡口的检测结果。特定车辆只需在任意一个卡口中被判断为规律正常,即可定为规律正常点。若在所有卡口分析结果中均为异常点,则该辆车即为本应用所探寻的规律异常车辆。

二、技术实现

(一)数据导入

先以376号卡口的数据演示获取单一卡口规律异常车辆的过程,然后再封装整个过程,供其它卡口循环调用。

通过数据库连接先获取376号卡口的所有过车数据。主要取记录ID(VEHICLE_ID)、过车时间(PASS_TIME)和车牌号码(PLATE_INFO)三个字段,写入pandas库的dataframe。数据预览如图1所示。

(二)特征提取

调用pivot_table方法生成数据透视表dfPass。行索引是每辆车的车牌,列索引是过车时间的小时数,统计的数字则是该车辆在该小时内的过车次数。

此后,将每小时的过车次数除以总次数,就得到了该车辆按小时统计的出行规律特征向量。同时,排除掉轨迹条数小于100的车辆,因为2年多的时间内累计过车次数少于100,证明该车辆通过该卡口的频率并不高,难以生成有意义的规律统计。通过计算,我们得到了存有该卡口所有车辆的规律特征向量集,存入dfPassE。此时dfPassE的车辆记录数为2692条。

图4为随机抽取的几张车辆出行规律分布图。

(三)模型分析

调用LocalOutlierFactor模型对dfPassE中的数据进行训练及预测。

模型参数n_neighbors为20,表示取与一个点最临近的20个点(即它的20个相邻点)来计算离群因子。contamination为0.01,表示取1%的点作为离群点。生成结果y即是模型预测结果,是一个一维数组,用-1/1表示对应点是否离群点。

我们可以用kneighbors函数[3]来获取某个点的20个相邻点距离及编号。

例如取一规律正常点68进行计算,可知其相邻点从远到近依次为2153、2126、4270、19888等。画出这几个点的出行规律图,可见他们的规律是几乎一致的。

再取一个检测结果为异常(-1)的点203,查看与其最接近的几个点的出行规律图,可以发现其规律相差较大。

(四)综合分析

将上述过程封装成函数countOutlier(crossing_id),传入卡口id,即可返回该卡口的规律异常过车检测情况。将所有卡口的检测情况汇入总表dfAll,即可得到一张检测总表。

在图9中,行索引是车牌,列索引是卡口ID,若该车辆在该卡口规律正常为1,异常为-1,无记录则为NaN。该表记录累计97448行。

根据上述思路统计卡口规律存入result列,如果某车辆有任一卡口规律正常,则result为0,否则统计在所有卡口出现的异常次数。

查询result大于等于1的车辆,总数为930条。进一步查询result大于等于2的车辆,仅42条。

取其中一辆规律异常次数为4的车辆绘出其在4个卡口的规律分布图如图11所示。

这部分车辆有何特征或有何价值,将移交负责研判的部门进行进一步分析。

三、结语

本文探讨的仅是异常检测在车辆轨迹上的一个应用思路,同样的算法配合不同的应用思路可以产生更多有价值的研究。例如分析特定车辆每周的行动规律特征(几点经过哪个卡口),并以历史特征作为异常检测模型的训练数据,来自动识别该车辆在某时刻是否出现异常行为;或者以特定卡口的每日过车数作为特征,即可以异常检测模型发现其何时发生车流异常,进而判断当日是否有特殊事件发生。

如何更好地挖掘车辆轨迹、人员轨迹是视频大数据深度应用的方向。在更高层面来说,如何更好地利用大数据挖掘不同数据集之间的潜在关联关系为公安工作服务,也是公安大数据未来发展的方向。机器学习的分类、回归、聚类、降维等多种不同算法一旦落地公安已有大数据,必将迸发出无穷的可能性。

猜你喜欢

离群卡口轨迹
轨迹
轨迹
L卡口“马拉松”联盟的前世今生
一种相似度剪枝的离群点检测算法
轨迹
进化的轨迹(一)——进化,无尽的适应
离群数据挖掘在发现房产销售潜在客户中的应用
高速公路车道高清卡口系统实施方案
基于高清卡口识别的高速公路长隧道安全比对系统
RFID与高清卡口技术在广东联网收费的应用