65.9K
CodeProject 正在变化。 阅读更多。
Home

完成 AI 交通速度检测器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2021年1月22日

CPOL

5分钟阅读

viewsIcon

8151

在本篇中,我们将讨论如何在性能或准确性方面改进我们的软件。我们还将把我们自制的开源系统与商业车辆测速系统进行比较。

引言

交通速度检测是一个大生意。世界各地的市政当局利用它来阻止超速行驶并通过超速罚单创收。但传统的测速仪,通常基于 RADAR 或 LIDAR,价格昂贵。

本系列文章将向您展示如何仅使用深度学习构建一个相当准确的交通速度检测器,并在像树莓派这样的边缘设备上运行它。

欢迎您从 TrafficCV Git 仓库 下载本系列文章的代码。我们假设您熟悉 Python,并具备 AI 和神经网络的基础知识。

在本系列文章的前几部分,我们已经学习了如何在Python中通过各种计算机视觉和深度学习模型实现一个车辆“测速陷阱”,并结合了校准物理常数以转换距离和时间间隔的程序。这为我们提供了一种自动估算车辆通过我们摄像头视野(FOV)时的速度的方法。使用我们的树莓派4 + ArduCam摄像头硬件,以及可选的Coral USB AI加速器,我们可以跟踪多辆车并估算它们的速度。

在本文中,我们将讨论改进我们已创建程序的方面。我们还将把我们的系统与基于LIDAR或RADAR的其他自动测速执法(ASE)系统,以及VASCAR等半自动或手动测速系统进行比较。

多线程

在整个TrafficCV Python程序的开发过程中,我们一直受限于单线程视频处理和推理。这意味着从SD卡读取视频数据、在视频帧上运行目标检测和目标跟踪,以及显示视频数据,都在同一个线程的单个Pi核心上完成,而其他核心则保持空闲。我们之前已经看到这在通过网络流式传输视频数据时对性能产生了负面影响。

我们可以将视频数据读取和视频数据输出移至单独的线程并利用FIFO队列来提高我们探测器的性能。我们的数据输入线程从存储中读取视频数据,解码它,并将视频帧写入队列。我们的探测器循环线程从这个队列读取数据——而不是直接从存储中读取——并将边界框和速度估算叠加到输出帧上。然后,探测器线程将这些输出帧放入另一个队列,数据输出线程从中取出并显示它们,或者将它们发送到网络,或者将它们写入存储。这样,Pi的三个核心就可以被利用,而第四个核心则保留用于额外任务(如运行车牌识别)。

我们的ArduCam摄像头可以在较低的640x480分辨率下以90 FPS运行。我们可以利用这个更高的FPS视频源来提高我们测量时间间隔的准确性,前提是我们的多线程Python软件足够快以跟上。

相关跟踪器 vs 模型推理

我们做出的一个关键假设是,我们的dlib目标相关跟踪器在计算上比模型推理成本更低。这正是我们每帧使用跟踪器更新目标位置,而只在每10帧运行一次目标检测推理的原因。但这个假设可能是错误的!事实上,我们发现在使用Coral USB设备等AI加速器时,CPU会达到100%负载,并且FPS限制在13,无论我们是否在CPU上运行推理。在CPU上每帧运行的dlib跟踪器是一个主要的瓶颈,它限制了整个系统的性能。

我们需要在我们的探测器中添加一个选项,禁用目标跟踪,而改为每帧运行目标检测推理。这可能会带来更高的FPS,尤其是在多线程程序中。

Robic秒表,通常用于手动VASCAR系统

我们的测速探测器如何与“常规”系统相比

许多市政当局将ASE和其他测速执法系统视为通过向超速者开罚单和征收罚款来获得收入的重要来源,同时减少因超速造成的事故数量。最便宜的手动VASCAR系统只需要一个高质量的秒表,成本可能低至60美元,但这要求操作员手动完成所有任务,包括精确测量距离和在正确的时间点启动秒表。VASCAR系统一次只能跟踪一辆车。此外,基于VASCAR的超速罚单是最容易出错且在法庭上最常受到质疑的。

VASCAR系统的局限性导致许多市政当局转向RADAR或LIDAR测速枪。执法级别的测速枪起价可能在1000美元左右——但它们一次只能跟踪一辆车,并且仍然需要人工操作员。全自动独立的ASE系统,仅硬件成本就可能从几千美元起,而高端系统能够跟踪多辆车。在考虑培训和人员成本时,在市政当局部署传统的LIDAR和RADAR ASE系统的成本可能从数十万到数百万美元不等。此外,许多司法管辖区禁止使用基于RADAR和LIDAR的车辆测速。

在我们的基于Pi的系统中,硬件成本低于200美元。我们的系统使用商品化硬件,并运行标准的Debian“Buster”Linux版本。因此,我们可以预期部署和维护成本,以及培训人员管理此类系统的成本,将远低于传统ASE系统使用的专用硬件和软件的成本。TrafficCV是GPL许可的免费软件,可以轻松扩展到诸如实时传输被监控汽车视频,或将车辆数据和视频通过电子邮件发送到中央服务器,并自动化大部分开具罚单的流程等任务。我们的系统可以同时跟踪多辆车,同时保留执行额外计算机视觉任务的能力,例如使用Coral USB AI加速器进行车牌识别。

我们的测速系统是全自动的,并且在任何时候都不需要人工操作员的干预。如果我们仔细校准用于从我们的摄像机视频计算车辆速度的常数,这可以显著减少错误或偏见的说法。它也不依赖于RADAR或LIDAR,从而消除了实施的任何法律障碍。

人工操作的车辆测速系统中潜在的错误

下一步?

实际上,没有了:我们完成了。在本系列文章中,我们看到了在边缘设备上使用深度学习比现有测速系统在实施和维护方面可以便宜几个数量级,同时在程序功能和准确性方面提供了许多优势。祝您测速愉快!

© . All rights reserved.