一种非常简单的速度检测器

邮寄人

我和我的家人最近搬进了大学城中心的一所新房子。我们喜欢它,但是我们的新位置也把我们放在一条繁忙的住宅区街道旁边。太多的时候,路人会撕开远远超过张贴25英里每小时的限制。它激发了我的潜能脾气暴躁的一面

作为一个以数据为导向的人,我想知道有多少人在超速行驶,我不会花几百美元在雷达系统上。因此,我把一个网络摄像头、一些简单的视频处理和异常检测拼凑在一起,制作了一个跟踪车辆速度的系统。下面的图表从较高的层次展示了这个过程,但是我也将深入讨论一些细节。

工作流程图v03

我之前尝试过将视频和beplay2网页登陆BigML的异常检测(各种各样的隔离林)作为一种运动检测方法。通过拼接视频并为每个瓷砖构建一个异常检测器,我制作了一个可以忽略常见运动的运动检测器。例如,在这个视频中,每个瓷砖检测器不会触发摆动风扇,但它们会触发邪恶的熊猫入侵者(从我女儿那里借来)。

为此,我提取了每个图块的特征,例如平均的红、绿和蓝像素值(呼出)OpenIMAJ让这变得简单)。这给了我一个特定的数据集,每一行代表一个视频帧,像这样:

红色的意思是 绿色平均 蓝色的意思是 灰色的意思是 灰色StdDev
0.489 0.471 0.369 0.443 0.073
0.475 0.461 0.356 0.431 0.078
0.500 0.484 0.381 0.455 0.088
0.506 0.489 0.391 0.462 0.089
0.514 0.496 0.389 0.466 0.095
0.486 0.466 0.362 0.438 0.078
0.471 0.459 0.354 0.428 0.073
0.492 0.475 0.374 0.447 0.109
0.475 0.462 0.358 0.432 0.078
0.531 0.517 0.443 0.497 0.089
0.494 0.483 0.379 0.452 0.075

以行/列形式收集数据后,使用beplay2网页登陆BigML语言绑定.我用Clojure做我的爱好项目,所以beplay2网页登陆BigML Clojure绑定让我仅使用以下代码片段将上述数据转换为异常检测函数:

(ns探测器
(:需要(beplay2网页登陆bigml.api(核心:asapi]
[来源:as来源]
[数据集:as数据集]
[异常检测器]:as异常检测器]
[异常评分]:asanomaly-score])
(clojure.data[csv:ascsv))))
(德芬数据- >探测器(数据)
(->(来源/创建(数据)
(api/获取最终版本)
(数据集/创建)
(api/获取最终版本)
(异常检测器/创建:森林面积64)
(api/获取最终版本)
(异常评分/检测器)))
;一个小例子…
(def我的探测器
(->(吃的声音"https://goo.gl/79KsJ4")
(csv/读取csv)
(数据- >探测器)))
(普林顿(我的探测器[0.50.450.40.440.01)))
; 0.3936344773676654

上面的小示例加载上一个gist中的数据,构建一个异常检测器作为Clojure函数,并使用该函数为新分数打分。BigML异常检测器的分数始终在0到1之间。分数越高,分数越大。通常大于0.6的分数是有趣的。绿色突出显示的ti熊猫示例中的les表示得分高于0.65。beplay2网页登陆

所以我采用了这种贴片+探测器的方法,并将其应用到汽车经过我家的视频中。我的直觉是,虽然跟踪汽车可能很棘手,但学习常规背景应该很容易。那我只需要追踪那些代表汽车的异常点。

而不是平铺整个视频,我只平铺了两行。每一排占据了一条车道。我追踪了异常点并计算了他们扫过视频所花的时间。这些时间让我估计一下车速。

通过跟踪异常团块,该系统对个别瓦片探测器偶然失败的情况更加稳健。此外,正如预期的那样,探测器帮助忽略了常见的运动,比如前景中摇曳的小树。

这样的方法远非完美。它可能会被变道、自行车或高大的卡车(它们可以注册为两辆车或遮挡其他汽车)混淆。

卡车

尽管如此,考虑到它的简单性,我还是惊喜地发现它做得很好。偶尔对探测器进行再训练,它还能处理阴影和变化的光照条件。在某些情况下,它追踪车辆,即使我很难找到他们。信不信由你,这张照片里有一辆车:

影子

因此,我用一个网络摄像头安装了一个可通行的车辆计数器/速度检测器。为了完成这个项目,我收集了一个典型的周六下午的车辆速度。结果让我大吃一惊。

speed-bars

我认为超速驾驶比实际情况要普遍得多。事实上,重要的超速驾驶(我认为是30+英里/小时)只占总数的3%左右。所以我已经尽了最大努力发脾气.没有这些数据,我只是又一个确认偏见的受害者。

对于clojure友好和好奇的人,请随意查看GitHub上的项目

留话

在下面填写详细信息或单击图标登录:

掘墓人
WordPress.com徽标

您正在使用WordPress.com帐户进行评论。(注销/改变)

谷歌图片

您正在使用您的Google帐户进行评论。(注销/改变)

Twitter图片

你在用你的推特账号评论。(注销/改变)

Facebook的照片

您正在使用您的Facebook帐户评论。(注销/改变)

正在连接到%s