基于深度学习的交通速度检测器构建指南

在许多城市,交通管理部门面临着如何有效监控和管理超速行驶的问题。传统上,他们依赖于昂贵的雷达或激光测速设备来检测超速者并开具罚单。但这些设备成本高昂,且部署和维护复杂。本文系列将向展示如何使用深度学习技术,仅借助树莓派等边缘设备,构建一个成本合理且精度较高的交通速度检测器。

假设已经具备Python编程基础,并对人工智能和神经网络有一定的了解。在本系列的中,讨论了为什么基于普通硬件构建的交通速度检测器是昂贵的专有雷达和激光测速相机的有用替代方案。在本文中,将检查在边缘计算项目中将使用到的硬件组件,并将这些组件组装成一个系统,准备进行软件安装。

基础硬件平台

首先,让来看一下基础硬件平台——树莓派4单板计算机。

树莓派SBC的最新迭代版本将一个现代的ARMv8驱动的64位计算机集成到一张信用卡大小的板上,价格仅为45美元,并且支持高达8GB的DDR4 RAM。它拥有开发计算机视觉和机器学习应用所需的所有I/O端口,并且可以运行一个相对标准的Debian 10 "Buster" Linux安装。这意味着现场人员可以使用他们的Linux/Unix知识来管理和保护交通速度检测系统,而无需特殊的知识或设备。

树莓派4的小巧尺寸和低功耗要求意味着可以灵活地放置检测器,并且可以依赖于替代电源,如可充电电池组或太阳能。树莓派的普及意味着它与众多廉价配件兼容,这些配件可以用于任何边缘AI项目。对于计算机视觉项目,树莓派4的另一个优势是它仍然配备了一个4极3.5mm TRRS AV输出,这使得它更容易重复使用现有的CCTV系统中的旧电视和监视器。

尽管树莓派4的4GB RAM板仅售45美元,但仍然需要一个外壳、电源供应和其他配件。LABISTS树莓派4套件的零售价约为100美元,它包括了Pi驱动开发所需的一切,包括散热器、机箱风扇和高质量的USB-C电源供应,这些对于像计算机视觉这样的CPU密集型应用来说都是重要的组件。

可以根据提供的说明轻松组装LABISTS套件。将风扇固定在上部外壳上,并使用提供的粘合片将散热器固定在芯片上。风扇的前面带有标签,应指向树莓派板的下方。气流是从风扇未标记的背面朝向前面,因此空气将被推向板和散热器。需要注意的一点是:在将板插入外壳的下半部分之前,先将摄像头电缆连接到板的摄像头端口。树莓派的摄像头串行接口(CSI)端口位于HDMI和TRRS端口之间的一个小空间内,当外壳存在时,没有足够的空间来插入电缆。

摄像头

将为基于Pi的项目使用的摄像头是ArduCam镜头板,它带有可调节的M12镜头模块。它在亚马逊上的零售价约为22美元。尽管这款摄像头的静态图像分辨率(5MP 2592×1944)低于其他Pi摄像头,但它提供了两个关键特性,使其几乎成为理想选择。它有一个可调节焦距的镜头(与其他摄像头的固定焦距相比),并且可以购买额外的M12镜头与此摄像头一起使用。由于将进行整个对象的检测(而不是检查细节),将摄像头放置在不同的位置和距离道路的不同距离,然后调节镜头以获得最佳识别图像是很重要的。

安装摄像头是硬件设置中最具挑战性的部分。摄像头电缆很短,提供的3D打印支架的螺丝和螺栓很小,支架在过于用力时会开始剥落层,并且必须准确地握住镜头支架环来旋下摄像头盖并调节镜头焦距。

在转动镜头焦距时要小心,因为用力过猛很容易损坏螺纹。树莓派用于其摄像头的CSI接口比USB摄像头快得多,因此使用专门的Pi摄像头绝对是值得的。

硬件AI加速器

系统的最后一个组件是硬件AI加速器。大多数边缘设备对于使用像CNN和RNN这样的神经网络模型进行推理并不足够强大,这些模型对通用CPU的计算需求很大。

最近,出现了一类新的硬件设备,称为AI加速器,它们专门设计用于加速使用深度学习模型的推理,并允许边缘设备在不需要与集中式云AI服务通信的情况下运行延迟敏感的机器学习和计算机视觉应用。加速器可以作为协处理器插入主机计算机,或者作为独立的系统模块(SOM)运行,并且基于像GPU、FPGA和ASIC这样的微架构。

Coral USB加速器使用谷歌的Edge TPU(张量处理单元)作为协处理器,通过USB 3接口插入主机计算机。Edge TPU是谷歌专门为加速使用TensorFlow创建的神经网络模型的推理而设计的ASIC(特定应用集成电路)。

可以将Coral加速器与另外两个AI加速器进行比较:英特尔的Neural Compute Stick 2(NCS2)和NVIDIA的Jetson Nano。NCS2也是一个USB协处理器,包含英特尔的Movidius Myriad X VPU(视觉处理单元),旨在加速边缘设备上的计算机视觉和深度学习推理。英特尔提供了OpenVINO工具包,用于在英特尔制造的不同硬件平台上优化和部署机器学习模型。OpenVino支持Caffe、TensorFlow、MXNet和其他流行的机器学习框架。NCS2也设计为插入USB 3.0端口,并且可以在Windows、Linux和ARM平台上使用。

Jetson Nano是一个独立的基于GPU的AI加速器,结合了ARM A-57四核CPU和具有128个CUDA核心的NVIDIA Maxwell级GPU。由于Jetson系列基于GPU,它们可以加速广泛的深度学习模型类型和计算工作负载。根据NVIDIA的,Nano在运行像SSD MobileNet-v1这样的模型时,比标准的树莓派4快得多。然而,当在类似的ARM A类嵌入式CPU上运行时,Coral加速器比Jetson Nano快得多。

比较所有三个加速器在MobileNet模型上的性能基准测试表明,当运行TFLite版本的模型时,Coral加速器在性能上优于两个竞争对手。Coral加速器仅支持TFLite模型的加速。这种专业化既有优点也有缺点。

Coral在TFLite模型上运行TensorFlow推理的速度比Nvidia Jetson或Intel Movidius等更通用的AI加速器快得多,同时成本相同或更低。然而,Jetson和Movidius在可以通过NVIDIA的JetPack SDK和英特尔的OpenVino框架使用的深度学习模型类型方面,比Coral更为通用。

对于这个项目,将使用Coral加速器,因为想要使用的计算机视觉模型的TFLite版本是可用的。然而,对于其他项目,NVIDIA和英特尔的加速器是可行的选择。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485