57行代码,复制甲方8600万的项目,so easy

作者: Tait Brown

来源: 优达学城Udacity

发布日期: 2019-08-07

本文讲述了一个关于使用57行代码复制价值8600万美元的车牌扫描系统的故事,通过开源技术和现有组件,作者成功实现了类似的功能,并探讨了其潜在的应用和成本效益。

先别急,慢慢听这个故事。事情从维多利亚警察局说起。这是澳大利亚维多利亚州的主要执法机构。去年维多利亚州有超过16,000辆汽车被盗,价值约1.7亿美元。警察部门正在试验各种技术解决方案,以打击汽车盗窃行为。他们称这个系统为BlueNet。为了防止被盗车辆的翻新出售,已经有一项称为VicRoads的网络服务,用于检查车辆的登记状态。

警察局还投资了一个固定式车牌扫描仪——一个固定三脚架相机,扫描过往车辆,自动识别是否被盗。不要问我为什么,但是突然有一天下午,我想搞个车载车牌扫描仪,如果车辆被盗或者没注册,它会自动发通知给你。扫描仪元件市面上都有,但我想知道将它们连接在一起是多么困难。在网上搜了下之后,我发现维多利亚警方最近搞过类似设备的试验,预期费用大约在8600万美元左右。

一个刁钻的评论者指出,在220辆汽车上装扫描仪的成本为8600万美元,相当于每辆汽车390,909美元。但是我们可以做得更好。产品设计的一些关键要求:图像处理必须在本地执行,将实时视频传给处理器处理应该是解决这个问题最没用的方法。除了高昂的数据流量费用之外,你还会将网络延迟引入到可能已经很慢的处理流程中。虽然机器学习算法会随着时间的推移变得更加准确,但我想了解在本地设备上的实现是否“足够好”。

必须使用低质量图像,由于我没有树莓派摄像头或USB网络摄像头,所以我将使用dashcam摄像头——它使用要求低,是样本数据的理想来源,它能代表了你对车载摄像头所期望的整体质量。需要使用开源技术构建,使用专用软件意味着您每次请求更改或增强时都会遇上些问题——并且此后每次请求都会继续产生问题,但使用开源技术就不用费脑子。

我的解决方案概括来说,我的解决方案是从dashcam视频中获取图像,通过本地设备安装的开源车牌识别系统,查询车牌是否有问题,然后返回结果进行显示。返回的数据包括车辆的品牌和型号(仅用于验证车牌是否被盗),登记状态以及被盗车辆信息。这事儿听起来很简单,那是因为它确实就这么简单,例如图像处理都可以由openalpr库处理。

这真的是识别车牌上的内容所涉及的所有信息:VicRoads的API不能被公开访问,所以我们通过网络爬虫对进行车牌检查。虽然这样做不太好,但这就是一个概念证明,我也不会攻击任何人的服务器。下面是我的代码:我得说结果出乎我的意料。我原本预计开源牌照识别系统会非常垃圾。此外,图像识别算法可能未针对澳大利亚车牌进行优化。但结果表明它能够识别的视野范围特别广。

为了最终效果添加些注释,尽管有反射和镜头失真,但仍能识别车牌。但是算法遇上特定字母也会出错。将M误认为是H。多训练几次之后也能辨识清楚。几帧之后,M被正确识别,置信度更高。如上图所示,图像处理几帧后,从87%的置信度评分跳到91%以上。我很有信心,只要通过提高采样率,然后按最高置信度排序就能提高准确性。或者可以设置阈值,只有置信度超过90%才能进行检验。

这些问题从代码层面上就能直接改,并且不妨碍数据集的训练。8600万美元的问题老实说,我完全不知道8600万美元到底包括什么,我也不能将我的开源软件的准确性和试点的BlueNet系统相提并论。我只希望预算的一部分包括更换几个祖传数据库和软件,来支持每辆车高频率、低延迟地查询车牌。

另一方面,每辆车约39.1万美元的成本似乎相当宽裕——前提是BlueNet不是特别准确,并且没有大规模的IT系统的更换与升级。未来的应用情况虽然很容易陷入奥威尔式的“老大哥在看着你”车牌检测网络,但这种技术有许多积极的应用。想象一下,这个系统发现哪家人的车被撬了,就能自动通知警察和主人车的当前位置。

特斯拉汽车就已经装上了能够无线更新的摄像头和传感器,Ubers和Lyft司机也可以配备这些设备,以大幅增加覆盖范围。再加之使用开源技术和现有组件,似乎可以提供一种回报率更高的解决方案——投资远低于8600万美元。好了,今天的故事说到这里。后续究竟如何,我们等着看。

UUID: 13d1a9e9-91ed-45ae-b03e-492d19afaf1d

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2019/2019-08-07_57行代码,复制甲方8600万的项目,soeasy.txt

是否为广告: 否

处理费用: 0.0040 元