选择用于 AI 交通速度检测的硬件





5.00/5 (2投票s)
在本文中,我们为基于AI/Pi的解决方案选择硬件组件,并将它们组装成一个功能系统。
引言
交通速度检测是一个大生意。世界各地的市政当局利用它来阻止超速行驶并通过超速罚单创收。但传统的测速仪,通常基于 RADAR 或 LIDAR,价格昂贵。
本系列文章将向您展示如何仅使用深度学习构建一个相当准确的交通速度检测器,并在像树莓派这样的边缘设备上运行它。
欢迎您从 TrafficCV Git 仓库 下载本系列文章的代码。我们假设您熟悉 Python,并具备 AI 和神经网络的基础知识。
在上一篇文章中,我们讨论了为什么基于商用硬件构建的交通速度检测器将是高成本专有雷达和激光雷达测速摄像头的有用替代方案。在本文中,我们将研究用于我们边缘计算项目的硬件组件,并将这些组件组装成一个可进行软件安装的系统。
基础硬件平台
首先,让我们看看基础硬件平台——树莓派4单板计算机。
树莓派SBC的最新迭代将一台现代ARMv8驱动的64位计算机塞进一张45美元大小的信用卡尺寸板上,配备高达8GB的DDR4内存。它拥有开发计算机视觉和机器学习应用所需的所有I/O端口,并且可以运行一个或多或少标准的Debian 10 "Buster" Linux安装。这意味着现场人员可以使用他们的Linux/Unix知识来管理和保护我们的交通速度检测系统,而无需专门的知识或设备。
Pi 4的小尺寸和低功耗需求意味着我们可以灵活地定位我们的检测器,并且可以依赖备用电源,如可充电电池组或太阳能。树莓派的巨大普及意味着它兼容大量可用于任何边缘AI项目的廉价配件。Pi 4在计算机视觉项目中的另一个优势是它仍然带有一个4极3.5毫米TRRS AV输出,这使得重用现有的CCTV系统中的旧电视和显示器更加容易。
尽管4GB内存的Pi 4主板仅售45美元,但我们仍然需要一个外壳、一个电源和其他配件。LABISTS树莓派4套件零售价约为100美元,它包含了Pi驱动开发所需的一切,包括散热器、风扇和高质量的USB-C电源,这些都是CPU密集型应用(如计算机视觉)的重要组件。
我们可以使用提供的说明轻松组装LABISTS套件。将风扇固定在上壳上,并使用提供的粘合标签将散热器附着在芯片上。风扇正面带有标签的一侧应朝向Pi板下方。
气流从风扇未标记的背面流向正面,因此空气会被推向主板和散热器。需要注意的一点是:在将主板插入机箱下半部分之前,请先连接相机到Pi主板上的相机端口。Pi的相机串行接口(CSI)端口位于HDMI和TRRS端口之间的一个小空间里,当机箱安装好后,就没有足够的空间来连接线缆了。
相机
我们将用于我们基于Pi的项目的是ArduCam镜头板,它带有一个可调M12镜头模块。它在亚马逊上的零售价约为22美元。虽然这款相机的静态图像分辨率(5MP 2592×1944)低于其他Pi摄像头,但它提供了两个关键功能,使其成为我们的理想选择。它具有可调焦距镜头(与其他固定焦距摄像头不同),并且可以购买额外的M12镜头与此相机配合使用。由于我们将进行整个物体的检测(而不检查精细细节),因此将摄像头放置在不同的位置和离车道不同的距离,然后调整镜头以获得最佳识别图像非常重要。
安装摄像头是我们硬件设置中最困难的部分,毫无疑问。相机线缆很短,提供的3D打印支架的螺丝和螺母很小,如果你用力过猛,支架会开始分层剥落,你必须准确地握住镜头座环才能拧下相机盖并聚焦镜头。
转动镜头对焦时要轻柔,因为用力过猛很容易损坏螺纹。Pi用于其相机的CSI接口比USB相机快得多,因此使用专用的Pi相机绝对是值得的。
硬件AI加速器
我们系统的最后一个组件是硬件AI加速器。大多数边缘设备不足以处理使用像CNN和RNN这样对通用CPU有高计算需求的神经网络模型的推理。
最近,出现了一类名为AI加速器的新型硬件设备,它们专门用于加速深度学习模型的推理,并允许边缘设备运行延迟敏感的机器学习和计算机视觉应用,而无需与集中的云AI服务通信。加速器要么作为协处理器插入主机,要么作为独立的系统模块(SOM)运行,并且基于GPU、FPGA和ASIC等微架构。
Coral USB加速器使用Google的EdgeTPU(张量处理单元)作为协处理器,通过USB 3接口插入主机。Edge TPU是由Google专门为加速使用TensorFlow创建的神经网络模型推理而设计的ASIC(应用专用集成电路)。
我们可以将Coral加速器与其他两个AI加速器进行比较:Intel的Neural Compute Stick 2(NCS2)和NVIDIA的Jetson Nano。NCS2也是一个USB协处理器,它包含Intel的Movidius Myriad X VPU(视觉处理单元),旨在加速边缘设备的计算机视觉和深度学习推理。Intel提供OpenVINO工具包,用于优化和部署Intel生产的不同硬件平台上的机器学习模型。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的基准测试,在运行SSD MobileNet-v1等模型时,Nano比标准树莓派4快得多。然而,在运行类似的ARM A类嵌入式CPU上时,Coral加速器比Jetson Nano快得多。
对MobileNet模型性能的三种加速器进行的基准测试表明,Coral加速器在运行模型的TFLite版本时,性能优于另外两个竞争对手。Coral加速器仅支持TFLite模型的加速。这种专业化相对于更通用的处理器既有优点也有缺点。
Coral在TFLite模型上运行TensorFlow推理的速度比Nvidia Jetson或Intel Movidius等更通用的AI加速器快得多,而成本相同或更低。然而,在你可以使用的深度学习模型类型方面,Jetson和Movidius比Coral更加通用,通过NVIDIA的JetPack SDK和Intel的OpenVino框架。
对于这个项目,我们将使用Coral加速器,因为我们想要使用的计算机视觉模型的TFLite版本是可用的。然而,对于其他项目,NVIDIA和Intel的加速器是可行的选择。
安装Coral加速器非常简单——我们只需要安装Edge TPU运行时,然后将Coral插入Pi的USB 3.0端口之一。
下一步
在下一篇文章中,我们将介绍在Pi上安装操作系统、进行安全设置以及通过WiFi配置远程访问。敬请关注!