毕业设计--具有车流量检测功能的智能交通灯设计

embedded/2025/1/31 23:02:45/

摘要:

随着21世纪机动车保有量的持续增加,城市交通拥堵已成为一个日益严重的问题。传统的固定绿灯时长方案导致了大量的时间浪费和交通拥堵。为解决这一问题,本文设计了一款智能交通灯系统,利用车流量检测功能和先进的算法实现了动态绿灯时长的分配。

该系统采用面向对象设计,基于嵌入式系统,使用 Python 编程语言开发。我们使用了YOLOv5-Lite深度学习算法,通过对UA-DETRAC数据集的训练,得到了高效的目标检测模型。在树莓派4B硬件平台上进行前向推理,实现了对交叉路口图像中车辆的准确识别。此外,我们采用了SORT算法进行车流视频的目标追踪,并结合掩膜,实现了不同方向上的车流量检测。

通过实时检测和分析交通流量,我们设计了三阶段绿灯调整算法,结合车辆通行时的加速模型,计算出了合理的绿灯时长,并动态调整了交叉路口各个方向的交通信号。实验结果表明,该智能交通灯系统能够有效缓解交通拥堵,减少司机和乘客的等待时间。

综上所述,本研究提出的智能交通灯系统为解决城市交通拥堵问题提供了一种创新的解决方案,并具有广阔的应用前景。未来的研究可以进一步优化算法和模型,以提高系统的性能和稳定性。

关键词:

智能交通灯;车流量检测;YOLOv5-Lite; SORT;树莓派 4B

1 绪论

1.1 研究背景及意义

21世纪以来,机动车保有量不断攀升,截至2023年9月底,全国驾驶人达5.2亿人,机动车达4.3亿辆。此外,新能源汽车保有量达1821万辆。在我国685个城市中,其中90个城市汽车保有量超过100万辆,更有成都、北京、重庆等25个一二线城市超过300万辆。\cite{公安部交通管理局2023}
如图~\ref{fig:fig1}所示,与2022年相比,全国50个主要城市中有2\%的城市路网高峰行程延时指数有所下降,14\%的城市基本持平,而84\%的城市则出现了拥堵上升的情况~\cite{gaode2024}。在这些拥堵上升的城市中,乌鲁木齐的涨幅最大,其次是兰州、哈尔滨和北京.

不难看出,城市的交通堵塞问题日益凸显。然而,目前很多城市的交通信号灯,包括一些主要道路上的,都是固定的。它们不能根据路口车流量的变化来调整通行时间。这种交通信号灯只能按照预设的模式工作,不够灵活。结果是,在交通高峰期,如果某个方向的车流量很大,这些信号灯无法有效地调整通行时间来缓解交通拥堵,导致交通堵塞的情况比较严重。而在交通低峰期,如果某个方向的车流量很少,这些信号灯却浪费了大量的车辆通行时间,导致交通管理效率低下。改善该问题的关键在于判断道路的拥堵程度并以此动态调整各路口红绿灯时长,来实现更高效的路口交通。

1.2 国内外研究现状

不难看出,城市的交通堵塞问题日益凸显。然而,目前很多城市的交通信号灯,包括一些主要道路上的,都是固定的。它们不能根据路口车流量的变化来调整通行时间。这种交通信号灯只能按照预设的模式工作,不够灵活。结果是,在交通高峰期,如果某个方向的车流量很大,这些信号灯无法有效地调整通行时间来缓解交通拥堵,导致交通堵塞的情况比较严重。而在交通低峰期,如果某个方向的车流量很少,这些信号灯却浪费了大量的车辆通行时间,导致交通管理效率低下。改善该问题的关键在于判断道路的拥堵程度并以此动态调整各路口红绿灯时长,来实现更高效的路口交通。

1.2.1 基于传感器的车流量检测技术

一种广泛采用的传统方法是磁感应车辆检测器\cite{QCWS201804003}\cite{KJSJ202026047},它主要依赖于埋设在道路下的线圈来探测车辆通行时的电磁变化。这种方式的优点在于即使车辆通行速度较快,也可以准确地感知到。然而,安装这种检测器需要对道路进行刨开或者挖掘,这可能导致一些不良影响。

红外线车辆检测器\cite{QCWS201804003}\cite{ZDHT202310031}\cite{HBGY201002007}利用被检测的物体对光束的反射或遮挡,实现对车辆数据的综合检测。其优点在于可以实现多车道检测,而且某些特定的红外线传感器经过组合计算,还可测量车速。然而,当雨雾天气能见度低于6m,或其他恶劣天气时,检测性能和灵敏度会下降。

此外,还有超声波检测器,它的原理是超声波在传播的过程中遇到障碍物波形会改变,反射来实现车辆检测。检测器配备一个探头,可以同时发送、接收超声波。它的优点在于安装和维修比较简单,并且可以实现对多车道的检测。但是,环境因素如温度变化和强风可能会影响传感器的性能。

虽然传统方法的维护成本高,但对于已经有相关传感器的道路,有很强的实用价值。文献\cite{QCWS201804003}提出了成本较低、功能实用、安装方便、具有实际推广应用价值的基于磁感应和红外线感应器的车流量检测红绿灯。

1.2.2 基于视频图像检测的车流量检测技术

为了提高检测的准确性和效率,研究者们还提出了多种基于视频的车辆检测算法。这些方法包括灰度比较法、路面标记法、边缘检测法、光流法、帧差法等。

灰度比较法是最基本也是应用最为广泛的检测方法,它通过比较一系列图像中的车辆部分与未车辆部分的差异来识别车辆。然而,这种方法在复杂环境下可能不如路面标记法或边缘检测法那样可靠。路面标记法利用地面标线或其他视觉线索对车辆进行分类,而边缘检测法则依赖于图像的边缘特征进行检测。

光流法\cite{JSJC200615065}是一种更为高级的检测技术,它通过分析视频流中的动态光流来识别移动车辆,并提供一个相对准确的速度估计。不过,由于需要高精度的视频捕捉技术,光流法的实现成本较高,而且算法本身也较为复杂。

帧差法是另一种常用的方法,它将两帧图像相减,如果在这两帧之间存在运动车辆的信息,那么就可以检测出这个目标。例如文献\cite{FIVE200405009}中提到的改进版帧差法,通过在检测带内生成数据流来检测车流量。

此外,深度学习也逐渐应用于该领域。大部分涉及到多个阶段:从简单的图像预处理到特征提取,再到目标检测、跟踪和计数。例如文献\cite{9130874}提出了一种结合卡尔曼滤波器和Faster-RCNN的车流量检测方法,但其无法达到实时检测的要求。

文献\cite{8026312}采用改进的SSD算法来检测车辆,并使用核相关滤波器来跟踪车辆及计数,其中引入了类Inception块来替换原SSD中的额外特征层,以处理多尺度车辆检测任务。这样做虽然增强了对较小车辆的检测,但模型参数庞大,计算复杂度高。

文献\cite{8990708}提出了一种改进的YOLOv4-tiny算法,对车辆进行跟踪,并利用卡尔曼滤波器跟踪车辆来计算交通流量。然而模型的运算量巨大,需要较高算力的GPU。

为了解决上述问题,文献\cite{DBSZ202303009}\cite{BJHK20240308001}提出了一种基于改进YOLOv5s的轻量化车流量检测算法。该算法的主要创新点为:(1)使用ShuffleNetV2。(2)引入了CBAM。
除此之外,文献\cite{DSSS202305010}还提出了一种基于模糊车流量的拥堵程度估计方法,算法简单,轻量,且有较高的检测精度。

综上所述,尽管目前的车流量检测技术取得了显著进展,但仍面临着诸多挑战。

1.3 本文章节安排

本篇论文结构如下:
1. 摘要(Abstract):对文章全文内容的总结和提要。
2. 绪论:描述课题研究背景及意义,国内外现状,以及文章总体结构。
3. 可行性分析:分析目前系统功能及不足,并进一步归纳问题,推导出几个
合理方案,加以多维度可行性分析,选定最终方案。
4. 需求分析:描述系统的功能需求,性能需求,并合理规划出目标系统的层
次架构图。进一步抽象出逻辑模型,构建出数据流图。
5. 总体设计:划分系统模块,及接口。
6. 详细设计:填充模块细节,分为软硬件两个部分。
软件部分:确定各外设控制算法以及目标检测,目标跟踪,车流统计、绿
灯时间分配四个核心算法的细节。
硬件部分:具体电路模块的选定,电路原理图的设计。
7. 搭建编码:
软件部分:选定合适的编程语言,进行环境的配置以及代码的编写。
硬件部分:根据详细设计的电路原理图进行电路搭建,并进行相关的焊
接。
8. 系统测试:该阶段与搭建编码阶段同步进行,内容包括模块测试、集成测
试等多维度的测试结果。
9. 总结与展望:在整个开发设计过程中的,心得与困惑。以及对系统的进一
步维护,完善的思路和展望。

2 可行性分析


可行性阶段的目的并不是解决问题本身,而是评估问题的解决性和解决的
价值。通过可行性研究,可以评估问题的复杂程度、解决的技术难度、所需资源
以及可能的风险,从而确定是否值得继续投入资源和精力来解决这个问题。[15]

2.1 目前正在使用的系统


现代的红绿灯系统通常由三种颜色的灯组成:红色、黄色和绿色。每种颜色都代表着不同的交通指示。红灯(停):当红灯亮起时,表示车辆需要停下来等待。这是交叉路口的其他某一方向的车辆或行人通行的信号。黄灯(准备):黄灯通常在红灯和绿灯之间的过渡期间亮起,表示红灯即将亮起。绿灯(行):当绿灯亮起时,表示车辆可以通行。也是交叉路口其他方向的车辆需要停下等待的信号。这些信号灯通常根据预设的时间间隔进行切换,例如红灯持续一定时间,然后切换为绿灯,最后切换为黄灯,然后再回到红灯状态。红绿灯作为常见的交通控制设施在十字路口最为常见。目前市场上主要采用两种常见的红绿灯控制方式。直行和左转同时通行:这种控制方式允许车辆在绿灯亮起时同时进行直行和左转。(1)直行车辆可以沿着道路的正常行驶方向前行,而左转车辆则在交叉口时进行左转动作。(2)双向直行/左转通行:这种控制方式将交叉口分为两组车流,分别是双向直行车流和双向左转车流。在绿灯时,双向直行车流可以同时通过交叉口,而双向左转车流则在相应的信号灯亮起时进行左转。无论是采用何种方式,其系统流程都可以由图 2-1表示。


无论以何种顺序分配绿灯,各个方向的绿灯时长为多少,采取何种方式进行控制,均可以抽象为图 2-2所示的环形模型。为方便后文描述,起名交通环模型。其中交通环的周长代表红绿灯循环的周期,四个箭头代表了四个方向,各个箭头的长度代表了各个方向绿灯的时长。黑色指针的指示代表当前交通灯中绿灯的状态,交通环会随着时间做旋转运动。这种模型的引入将可以极大地方便之
后的分析。

2.2 建立预选方案

经过调查,给出以下几种可行方案。

2.2.1 GPS定位

GPS定位,是一种很好的方法。而且高德地图公司因用户数量多,掌握着大量有效数据。该公司经商务合作可以提供以下六种数据:

  •  路口延误指数:提供城市/区域信控路口延误指数,对车辆运行效率量化评价,为管理者路口问题定位、诊断、优化提供支撑。
  • 路口服务水平:提供城市/区域信控路口服务水平等级识别判定,划分A-F6个层级,为管理者路口诊断优化提供数据支撑。
  • 路口失衡诊断:提供城市/区域信控灯失衡路口识别及诊断,为管理者对延误路口识别、诊断、优化提供数据支撑。
  • 路口溢出诊断:提供城市/区域信控灯失衡路口识别及诊断,为管理者对延误路口识别、诊断、优化提供数据支撑。
  • 路口排队长度:提供城市/区域路口排队长度,为管理者对延误路口识别、诊断、优化提供数据支撑。
  • 路口停车次数:提供城市/区域路口停车次数,为管理者对延误路口识别、诊断、优化提供数据支撑。

这六种数据,经过算法融合计算,可以有效的为调整红绿灯等待时间,做出可靠数据支撑。此外,经过调整的红绿灯,还可以对比参数获得改善效果的反馈,从而进一步优化模型。但是因为数据的获取,需要与高德公司进行商务合作,所以会带来更多的成本,以及可能出现的法律纠纷等。

2.2.2 OpenMV可编程摄像头

OpenMV是一款低成本机器视觉模块,集开源精神与强大功能于一身,旨在提供灵活、可靠且易于扩展的硬件平台。模块搭载STM32F427CPU处理器和OV7725摄像头芯片作为核心计算单元,以实现高性能的机器视觉处理。它提供Python编程接口,并允许通过简单配置控制摄像头输出,简化开发流程,符合本设计要求\cite{WXDY202311006}。然而,尽管OpenMV具备诸多优点,但其相对较低的计算能力限制了其在需要更高计算性能的场景中的应用,如深度学习模型的训练和部署。

2.2.3 树莓派4B

如图~\ref{fig:fig4},树莓派4B是一款微型电脑,其主板基于ARM架构,轻巧、高效,吸引技术爱好者。SD卡作为内部存储介质,增强了扩展性。网络接口便于数据传输和远程控制。此外,还提供视频模拟信号、HDMI输出接口、CSI摄像头接口,Type-C供电接口。网卡用于连接互联网,还有XRDP,VNC等服务提供远程桌面访问,无需外接显示屏节省成本。此外还有两个USB3.0接口和两个USB2.0接口,方便连接鼠标、键盘等外设,广泛适用于教育、DIY和专业软件开发。

树莓派可通过有线或无线方式连接摄像头,获取摄像头的数据,进行车流检测。\cite{DZZZ202402022}其与OpenMV的性能参数对比可见表~\ref{tab:table1}。

2.2.4 传感器

如绪论中的国内外技术研究现状所言,各种类型的传感器,包括红外传感器,超声波传感器等等,也可以起到车辆计数的功能和效果。

上述几种方案的优势劣势\cite{CCSS201408016},可通过表~\ref{tab:table2}进行详细对比。

通过性能,成本对比,可以看出树莓派+有线摄像头+视频检测技术 相比其他几种方案更佳契合本课题。

2.3 可行性分析

2.3.1 经济可行性

本课题主要的花费成本如表 2-3所示,主要是由树莓派造成的。实际上,使
用简单易学、使用广泛的树莓派进行开发可以提高效率。在日后部署阶段可以使
用达到性能要求的其他芯片代替,比如香橙派等。此外,在实际的十字路口中,
其他基础设备已经存在,不需要太多额外的花销。相较于人工手动调节十字路口
绿灯分配时间,本系统更具有经济可行性。


2.3.2 技术可行性


车流量检测技术:算法上有先进成熟的目标检测,目标跟踪技术可供选择。
硬件上,有多种高像素摄像头可供选择。
数据处理和分析:树莓派可以进行处理和分析车流量数据,并设置相关外
设。


2.3.3 操作可行性


系统稳定:能够在各种交通情况下正常运行。
易于操作:系统操作简洁直观,方便交通管理人员对系统进行监控和调整。
实时:系统能够实时响应交通情况的变化,并及时调整红绿灯信号,以确保
交通畅通和安全。


2.3.4 法律可行性


法律合规性:系统设计和操作符合当地的交通法规和法律法规。
数据隐私保护:在车流量检测和数据处理过程中,可以保护个人隐私和车辆
信息,避免信息泄露。
责任与风险:在使用基于车流量检测的红绿灯系统时,将会明确各方的责任
和风险,包括交通管理部门以及驾驶员等。

3 需求分析

3.1 功能需求

1. 按照正确的逻辑精准地显示交通灯、倒计时和进度条。进度条要求有和交
通灯颜色一致的三种变化。
2. 综合经检测得到的车辆数目和车流量数据,实现红绿灯时间的合理调整。
分为多个状态,拥堵时候用拥堵状态的算法,常规阶段用常规算法,尽可
能的低功耗。需要通过当前等红灯车辆的数目,调整出这些车辆绿灯的时
间长度,即精准控制。
3. 确保系统稳定性,防止出现倒计时跳变现象,以确保交通安全。
4. 提供多种模式选择,包括智能模式、紧急模式、夜间模式和简单模式。
5. 支持夜间模式定时开启,以适应不同时间段的交通需求。
6. 在智能模式下,允许人工调整动态配时的灵敏度,以满足不同交通场景的
需求。
7. 在各种模式下,提供人工设置功能,包括红绿灯顺序和时间默认值,以满
足特定交通管理要求。
功能需求可用图 3-1 系统层次结构图所示的层次结构图表示:

3.2 性能需求


红绿灯,数码管,进度条,不可出现肉眼可识别的闪烁。摄像头目标检测算
法要求帧率 >1, 识别准确率达 80%。车流量检测算法要求误差不大于 10%。

3.3 建立逻辑模型


数据流图是表示逻辑模型的一种有力工具。图 3-2就是根据需求提炼出的数
据流图,它通过简洁的图形展示了系统中交通信息的传递,以及相应的处理。

从图中可以看出,摄像头得到的图像数据将流经车辆数目检测算法,车流检
测算法,并根据两个算法得到的数据、配置信息,计算出合理的绿灯时间,最后
更新到红绿灯,数码管,进度条模块上。

4 总体设计


总体设计阶段旨在概述系统的实现方式,确定系统的物理组成,但并不涉及
具体的内部细节。这一阶段的成果是一个初步的设计方案,为后续的详细设计提
供了基础。


4.1 硬件部分


• 树莓派 4B:作为系统的主控单元,负责整体的控制和协调。
• 四个摄像头:用于采集环境信息和图像数据,提供给系统进行分析和处
理。
• 四组红绿灯:用于模拟交通信号灯,控制交通流量和指示行车状态。
• 四组数码管:用于显示交通灯的倒计时等。
• 四组进度条:用于显示交通灯变色的大致时间,主要是为了避免数码管突
变带来的不安全因素,以及没有数码管显示时候缓解司机焦虑情绪。
在总体设计阶段,我们关注的是系统的整体架构和功能,因此描述的重点在
于列出系统所需的各种硬件组件,并指明它们在系统中的作用和功能。具体的连
接方式、通信协议、电源供应等细节将在详细设计阶段进行进一步考虑和确定。


4.2 软件部分


采用面向对象的设计方法,设计各个模块。


1. 模型类:
• 属性:尺寸、锚框数目、锚框规格、模型名、跟踪器...
• 方法:
目标检测(图片)-> 标注框数组,置信度数组,类别标签
目标跟踪(标注框数组,置信度数组,类别标签)-> 标注框数组,置信度
数组,类别标签,ID 数组
识别车辆数目 (图片)-> 车辆数目
识别车流量(视频)-> 平均车流量


2. 红绿灯类:
• 属性:当前灯色、控制信号
• 方法:
更新灯色(颜色)

3. 数码管类:
• 属性:控制信号、倒计时时间
• 方法:
显示倒计时()
消失倒计时()
开启定时更新显示()


4. 进度条类:
• 属性:灯色、控制信号、灯数、时间、熄灭频率
• 方法:
填满进度条(颜色)
更新熄灭频率(倒计时时间)
开启定时更新()


5. 显示类:
• 属性:灯色、倒计时时间、规定时间、红绿灯、数码管、进度条
• 方法:
定时更新路口显示()
修改路口显示(灯色,时间)


6. 摄像头类:
• 属性:状态、控制信号
• 方法:
开启摄像头()
读取当前帧()-> 图片
录制视频(保存路径,帧率,时长)
关闭摄像头()

5 详细设计


5.1 硬件选定


硬件部分在详细设计阶段的主要任务是选择合适型号的芯片和模块。下文
将依次介绍。


5.1.1 摄像头

OV5647 摄像头模组的标准尺寸是 8.5x8.55 毫米。它可以拍摄 500 万像素的
照片或者高清视频。当它以 720p(1280x720 像素)的分辨率和每秒 60 帧的速度
拍摄视频时,它可以通过一种叫做 2x2 binning 的技术来提高感光度,从而改善
图像质量。
这个摄像头使用了 OmniBSI 技术,这是一种前沿的光学技术。它可以减少图
像中的干扰和不均匀性。此外,摄像头还采用了一些 CMOS 传感器技术, 产生更
清晰的彩色图像。相比直接使用数字信号容易受到外部干扰,其接口协议 CSI-2
使用差分信号,稳定性更好。

5.1.2 树莓派 4B

图 5-2是树莓派 4B 的 GPIO 管脚图,共 40pin。此外,GPIO 引脚还可用于多
种替代功能,如 PWM、SPI、I2C 和串行通信。PWM 功能对所有引脚均可用,但
是硬件 PWM 只可用于 GPIO12、GPIO13、GPIO18、GPIO19。SPI 包括 SPI0 和
SPI1,而 I2C 包括数据和时钟引脚。串行通信由 TX(GPIO14) 和 RX(GPIO15) 实
现。

5.1.3 交通灯

如图 5-3,三色交通灯模块,最大电压 5V, 满足系统要求。

5.1.4 数码管

数码管可分为 7 段和 8 段,8 段数码管比 7 段多一个小数点 (DP)。共阴数码
管, 有一个公共的阴极,应用时将其接地。根据想要输出的数字,设置对应段的
阳极为高电平。我们选择 2 位 8 段共阴数码管 5621AS-1 403 可以满足系统要求。

5.1.5 进度条

进度条要求可以呈现红黄绿三种颜色,并且引脚不能太多,且为了实现进度
条的变化,要求灯条可以实现逐点控制。WS2812B 是一种集成了 RGB-LED 和控
制电路的像素点组成的灯条,其实物图如图 5-5所示。它具有串行级联接口,只
需要一根控制线即可实现逐点控制。每点光色由 24bit 数据决定,结构如图 5-6,
按顺序分别为 G、R、B,高位先发。此外,它内置了信号整形电路,确保输出的
信号不会因线路波形畸变而受到影响。

5.1.6 视频复用器

要想实现 CSI 摄像头的有线连接,首先需要考虑的是树莓派 4B 只有一个
CSI 接口。其 CSI 接口管脚图如下 5-7所示。

有以下几种方案可以解决该问题,现分析如下。
1. 使用 SN74153
SN74153 是双四选一芯片,其管脚如下图5-8所示。

通过 CSI 转接口与 OV5647 连接。由于连线过多,具体电路较为复杂,在焊
接到洞洞板之前,先在洞洞板布局软件 lochmaster 上进行布线,如图 5-9、5-10所
示。

由于 CSI 接口由 15p 1.0mm FPC 软排线引出,还需要通过转接板转接为可
以焊接在洞洞板上的排针形式,转接板的焊接效果如图 5-11。

然而经过测试发现此方案并不能行得通,经查找资料,请教老师,发现问题
出在了频率、数据传输方向和差分信号上。CSI 的 15 条线路中,有的是作为输
出端,有的是作为输入端;有的管脚信号带宽达 400khz,经过 74153 芯片,会出
现频率的衰减;信号中存在着差分信号,图 5-9、图 5-10并没有保证差分信号组
线长一致,这将导致差分信号不能对齐,产生错误。

2. 使用 TMUX646
TMUX646 是专为高速通信设计的解决方案,提升电子设备的数据传输速率。
它拥有 10 通道单极双投双向开关,其中 5 个是差分通道,适用于连接多个兼容
MIPI 接口的器件到单一 CSI/DSI 或 C-PHY/D-PHY 模块上。支持各种接口,包括
传统的串行存储系统和新兴的数字视频广播技术。具备 6GHz 最高带宽和极低通
道间偏差,保证数据传输的高效性和稳定性。
其原理图及管脚如下图 5-12、图 5-13所示。

理论上本系统使用三片该芯片即可,既可以简化方案 1 的连线布局,还可
以保证信号频率不衰减,是一个完美的方法。经查询官网该芯片论坛,涉及到该
类芯片串联的问题,官方人员的回答是:TS5MP646(TMUX646 Pin-to-pin upgrade
supporting 6-GHz bandwidth available) 器件是一个无源场效应管开关,对级联数
量的唯一限制是发送器和接收器在信号路径中的灵敏度以及信号链需要支持的
数据速率或带宽。无源 FET 开关没有任何驱动能力,串行放置的每个开关都
会将这些寄生值添加到信号路径中。在下面的仿真 5-14中可以看到,如果两个
TS5MP646 器件级联,则插入损耗将增加两倍 ( -0.5 dB 至 1.0dB)。还可以看到级
联交换机从 4GHz 到 2GHz 的带宽减少。由于本系统所使用的 CSI 摄像头,频带
在 400kHZ 左右,对信号影响可以忽略。
只是由于其只有 BGA 封装故不能焊接在洞洞板,需要进行 PCB 设计。

3. 使用 CH484M
CH484M,作为一款双向模拟开关芯片,集成了两个差分通道,每个差分通
道均采用 4:1 的四通道多路转换器(MUX)模拟开关机制,可以用于不超过 1.7V
电压及 5Gbps 的差分信号的四选一切换。SSAX 和 SSAY 构成超速差分通道 SSA;
SSBX 和 SSBY 构成超速差分通道 SSB。差分信号 X 和 Y 可以根据 PCB 设计优
化的需要设定为 +/-(p/n)或反之;通道 SSA 和 SSB 可以根据 PCB 设计优化的
需要设定为 TX/RX 或反之。
其原理图及功能示意图如图 5-15、图 5-16所示。

综上,上述方案 2,方案 3 均可以作为预选方案。


5.1.7 其他元件


由于树莓派的管脚有限,为了尽可能减少树莓派的管脚使用,方便日后扩
展,使用译码器、数据分配器,数据分配器等元件。
1. 74LS139
74LS139 为两个 2 线- 4 线译码器。其符号图与原理图如图 5-17、 5-18所
示。利用该芯片,可以实现 4 个信号,控制使能四个数码管、四组交通灯、4 组
进度条。

2. 74LS138
74LS138 为一个 3 线-8 线译码器,其原理与 74LS139 类似。

3. 74LS47
7 段数码管,原本需要 7 个管脚进行控制,也很占用 GPIO 口。74LS47 是七
段显示译码器,其逻辑图如下图所示,译码器有四个二进制码输入端,a g 七个
输出端,输出状态为高阻和低电平两种。除此之外,为了使用方便,增加了灭灯
控制,灭零控制以及灯测试等附加功能的控制端。图 5-20所示为其符号图与管脚
图,图 5-21为其真值表,根据对应关系,可以方便地连线,设计程序,实现倒计
时显示。

4. 74LS373
数码管更新频率的问题需要综合考虑 CPU 资源占用和闪烁情况。传统轮询
方式频率高占用 CPU,频率低则容易闪烁。因数码管更新定时规律,可利用树莓
派的定时器。但译码器每次只能点亮一个数码管,可采用 74LS373 锁存器解决
此问题。
74LS373 锁存器的管脚如下图 5-22所示。

5.2 电路设计


经过合理设计可得到电路原理图,如图 5-23所示。

5.3 算法部分

5.3.1 目标检测算法


1. YOLOv5


该网络模型是 YOLO 系列迭代后的经典之作[19],可视为对之前 YOLO 系列
的综合总结和突破,是一种非常杰出的网络模型框架。
YOLOv5 有多个版本,其中 YOLOv5n 网络是 YOLOv5 系列中深度和特征图
宽度最小的网络,准确率虽不及其他版本,但模型参数少适合部署在计算能力弱
的机器上。YOLOv5 的网络结构图如图 5-24所示,分为四个主要部分,分别是:
输入端、Backbone、Neck 以及 Prediction。

图 5-25是 YOLOv5 不同版本的的算法性能测试对比图。截至目前,YOLOv5
已经更新至 v9.0 版本,科研学术界以 YOLOv5 为基础框架进行了大量的改进研
究。

2. YOLOv5-Lite


考虑到实际情况,部署于树莓派的计算能力通常不如 PC 端强大。因此,为
了保证目标检测系统的稳定运行,往往需要牺牲网络模型的精度以换取足够快
的检测速度。因此,还需要更加轻量化的部署。YOLOv5-Lite 网络模型便是轻量
化部署网络的典范之一。
YOLOv5-Lite 算法是 YOLOv5 算法的一种轻量级版本,其模型结构如下图 5-
26所示,经过了一些优化和简化:去除了 Focus 结构层,去除了 4 次 slice 操作,
避免反复使用 C3 Leyer 模块。这三个主要的改进,使得模型更加轻量化。

在主干网络结构(Backbone)与检测头(Head)之间的过渡区域内,一个关
键的组成部分—特征增强融合网络层(Neck)—逐渐成为了研究的焦点。这一层
不仅仅是为了增强特征的表达能力,更重要的是它能够有效地融合不同层次上
提取的信息,从而达到更为精确和高效的图像识别效果。YOLOv5-Lite 算法采纳
了 FPN+PAN(Feature Pyramid Pooling + Panning)结构,并针对输出端(Head)
部分进行了精心设计的通道剪枝处理。具体表现在两个方面[20]。(1)通道数量
相同的优化。(2)PANet 结构改进。
YOLOv5-Lite 借鉴了 YOLOv5 的许多思想和结构,使得两者在一定程度上
有所关联。然而,YOLOv5-Lite 并非简单地复制了 YOLOv5 的结构,而是针对移
植部署的需求进行了一系列的改进和优化,专注于快速推理和网络模型的轻量
化,以便在移动设备或资源受限的环境中进行部署和应用。

5.3.2 目标跟踪算法


车流量,是指在单位时间内通过某一路段的车辆数量。YOLOv5-Lite 模型只
能实现目标检测,也就是只能识别车辆,但是并不能追踪车辆。想要检测车流量,
必须先实现目标跟踪。然后计算按照特定顺序经过两个掩码的汽车数量,除以总
时间就可以知道某一行驶方向上的平均车流量。由于树莓派的计算能力相对 PC,
服务器还是较低,YOLOv5-Lite 模型的帧率经过部署检测,也不是很高。所以我
们要找尽可能简单,速度较快,较轻量的算法。


1. Deep SORT


车辆追踪算法中应用较为广泛的是 Deep SORT[21],Deep SORT 是一种用于目
标跟踪的算法[22],它是由 SORT(Simple Online and Realtime Tracking) 发展而来
的。Deep SORT 在 SORT 的基础上引入了一个深度学习模块,旨在改进目标遮挡
和长时间不见目标时的跟踪性能。
首先,Deep SORT 先进行目标检测,获得每个目标的位置信息(检测框)。
接下来,针对每个检测到的目标,Deep SORT 利用一个深度学习模块提取其特征
信息。然后,Deep SORT 将每个检测到的目标的特征与已经跟踪的目标的特征进
行比较。通过比较特征,Deep SORT 可以确定新检测到的目标是否与已跟踪的目
标匹配, 确保系统能够处理目标出现、消失、遮挡等情况,实现对目标的持续稳
定跟踪。
Deep SORT 的一个主要优点是它可以处理目标遮挡和目标暂时消失的情况。
但是正如他的名字,Deep 表示其运用了深度学习算法,这将导致算法由目标检
测,目标跟踪两个很大的模型组成,将会使得视频检测的帧率进一步下降,尽管
可以先录制再检测,其检测效率也远不能满足要求。


2. Sort


相比于 Deep Sort, SORT(Simple Online and Realtime Tracking)是一种简单
易懂、实时操作的目标跟踪技术[23]。它非常的轻量,源代码只有 300 多行,不涉
及深度学习。其目标在于为计算边缘设备,提供一种高效的方式进行目标跟踪。
该技术的核心思想是结合目标检测和目标运动预测来实现跟踪。它利用目标检
测获取目标物体的边界框的坐标。然后,利用卡尔曼滤波器来预测该目标的可能
位置,并对原先的检测结果进行一个修正。
SORT 技术还引入了一种基于匈牙利算法的数据关联方法。其核心在于处理
和分析数据之间的关联性,以实现对物体或目标位置的精确定位。匈牙利算法需
要解决的问题是找到两帧之间(当前帧与上一帧)的边界框的最佳匹配项。找匹
配项的准则是:损失最小。损失代表的是在匹配两个集合元素时所花费资源的度
量。损失矩阵是一个特殊的数学结构,用来表示匹配过程中的成本。通过不断地
计算矩阵中每个匹配项的相对损失,算法可以逐步缩小候选匹配集的范围,直到
找到最优解。
我们只需要找到 Sort 源代码中的输入检测框接口,即可进行检测。找到输
出 ID 标号接口,即可进行锁定对应坐标的 ID 标号,然后根据不同的 ID 标号给
他们画出不同颜色的标注框进行测试。


5.3.3 绿灯时间调整算法


绿灯时间的调整算法要从之前建立的交通环模型来考虑。任一时刻,一个方
向为绿灯/黄灯,另外三个方向为红灯。为了简化模型,不妨将黄灯归在绿灯中
进行考虑。
路口时间的分配取决于两个因素:一是单位时间有效通行量。其计算方法
为,一个周期内四个路口通行车辆总数/路口通行周期;二是各路口司机等待最
大时长。前者数值越高,表明交通越高效,后者数值越低,表明司机等待出现焦
虑烦躁的情绪的可能性越低。两个因素是相互矛盾和制约的,在设计绿灯时间调
整算法时候,要尽可能的兼顾两者。
以前文所述交通环模型进行分析,路口时间的分配取决于两个因素:交通环
周长、交通环各方向比例。这两个因素的确定,可以确定唯一的交通环模型,也
即确定了实际路口绿灯时间的分配方案。
假设各方向路口司机等待红绿灯时间的最大耐心时间为 t. 则交通环最大周
长为:T = t + t/3。假设某一方向路口长度 l1, 车辆正常通行时速度为 v, 车身平均
车长为 l2, 由停止到正常通行加速度不变,加速路程长度为 l3。
那么 n 辆汽车通过该路口所花费的时间为:

每次切换路口绿灯会带来时间损耗为:

因此在保证乘客最大等待时间内,应该尽可能增大每次绿灯时间,减少绿灯次
数,从而避免带来较多的时间损耗。在此基础上,检测车流量,根据车流量来分
配时间,避免出现空等,尽一步提高了单位时间有效通行量,降低了司机等待时
长。

假设路口绿灯方向依次为 a,b,c,d, 检测算法分三阶段进行,如图 5-27。常规
阶段:a 黄灯时(b 红灯 3s 时),检测 b 路口车辆数目,假设 n 辆,则由公式 5-1,
计算得接下来的绿灯时长。若路口因为车辆数过多超出摄像头检测范围,将会提
高拥堵指数,拥堵指数达到一定阈值进入拥堵阶段。
拥堵阶段:首轮各路口均匀分配绿灯时间为最大值,检测绿灯时期车流量。
在之后轮中按照该车流量比例进行分配时间。进入调整阶段。
调整阶段:按照拥堵阶段中车流量比例进行分配时间。并在绿灯结束时,检
测路口车辆数目,若各个路口车辆数目相差达到较小的阈值,按照相差数目调整
时间,若各个路口车辆数目相差达到较大的阈值,重新进入拥堵阶段。红灯结束
时,检测路口车辆数目,若各个路口车辆数目均小于摄像头检测范围,回到常规
阶段。

需要注意的是,由于树莓派检测时速度较慢,拥堵阶段的调整需要录制视频
后进行统计,否则可能因为车辆行驶过快,出现漏帧等现象,因此可能需要 2˜3轮
时间进行录制 + 检测。由于现实中拥堵阶段往往发生在上下班高峰期,故只需
要进入几次拥堵阶段,之后由调整阶段进行低计算量的调整即可。

5.4 数据集


为了保证目标检测模型的识别准确性,使用多个符合应用场景的交通类数
据集进行模型训练,并挑选在模型车上识别率较高的模型进行后续开发。本文共
训练以下 3 个数据集。


5.4.1 UA-DETRAC


该数据集拍摄于天津和北京的 24 个不同道路,总时长为 24 小时,帧率为 25
帧。共有超过 14 万张的图片和 121 万个标记的对象边界框,分为训练集和测试
集两大部分。训练集约 82085 张图片,测试集约 56167 张图片。车辆分为四个类
别:小汽车、货车、公共汽车和其他。

下图 5-29展示了 DETRAC 数据集中带注释的帧。其中,不同的边界框颜色
代表了不同的遮挡程度

5.4.2 BIT-Vehicle


BIT-Vehicle 数据集是由北京理工大学发布的国内车辆检测数据集,共包含
9850 幅汽车图像。数据集中的所有车辆分为 6 类:轿车 (Sedan)、SUV(SUV)、公
共汽车 (Bus)、微型客车 (Microbus)、小型货车 (Minivan)、和卡车 (Truck)。该数
据集部分图片如图 5-30所示。

5.4.3 自制模型车数据集


由于汽车模型和现实中汽车还是存在着不少差距,所以考虑自制一个较小
的数据集进行训练。通过代码编写一段定时拍照的程序,定时截取不同的车辆照
片,并保存至相应路径下。之后将保存好的文件通过 SFTP 协议传输到具有显卡
的 NVIDIA GeForce RTX 4090 服务器。首先通过 CONDA 创建 labelmen 的虚拟
环境,并进行相关包安装、Labelme 项目 clone。之后打开 labelme 软件进行标签
的标注,如图 5-31所示。最后,保存自动生成的 json 文件。

6 电路搭建和算法实现

6.1 电路搭建

6.2 模型训练


采 用 三 个 数 据 集 UA-DETRAC, BIT-Vehicle, 自 制 模 型 车 数 据 集 分 别 进
行 训 练。 训 练 环 境 为 WSL2(windows subsystem of linux): Ubuntu 22.02LTS,
GPU:NVIDIA GeForce RTX 4090, CUDA:12.3, Anaconda 虚拟环境, Python:3.8。训
练版本:YOLOv5-Lite-v1.4。
训练开始前,首先要处理数据集,将其转化为 YOLO 格式。之后配置相关
的 yaml 文件指定数据集路径,配置相应的预训练模型 YOLOv5-s,以及 num-
workers=2,否则 GPU 会报超出内存。最后使用命令 python train.py –weights
data/UA-DETRAC.yaml –img-size 320, 进行训练即可。训练结果默认保存在 runs/-
exp 文件夹下,自制数据集由于数据太少,经检验训练效果太差,放弃使用。其
他两个数据集的训练结果分别如下图 6-3, 图 6-4所示。

两个模型的测试预览如图 6-5, 图 6-6所示:

6.3 模型部署


ONNX 是一个开放的生态系统,它支持不同框架之间的相互操作,使得从
研究到生产的过程更加简化。通过 ONNX,来自各种框架(如 PyTorch、Keras、
TensorFlow、MxNet、MATLAB 等)的模型都可以导出或转换为标准的 ONNX 格
式。转化为 ONNX 模型后,就可以实现在任意平台上部署。
YOLOv5-Lite 作者已在其项目中预留了导出接口。使用 export.py 文件,指
定对应的训练好的 best.pt 模型,即可导出为 best.onnx 模型。
要使用导出的模型进行预测还需要配置树莓派的 opencv,numpy 等库,要特
别注意版本问题。包括树莓派操作系统版本,系统类型,python 版本,等等。最
后调用模型,编写前向推理程序即可。


6.4 目标检测


在有了 best.onnx 模型后,只需要在树莓派中调用该模型,进行前向推理, 即
可实现检测,输出对应的坐标框。其核心代码片段及注释如下所示。

判断该函数返回值的大小即可判断静态照片中的车辆数目。

6.5 目标追踪


目标追踪基于 Sort 源码,但其对应的输入接口只有坐标值,输出接口只有
坐标值和 ID 标号,且输入输出顺序不同。这将导致经过目标追踪,丢失目标的
置信度,所属类别。故修改接口,使输入接口为:坐标值,置信度,类别。使输
出接口为:坐标框、置信度、类别、ID 标号。将模型检测的结果输入,更新追踪
器,将可以获得对应目标的所有信息,调用方法如下所示。

6.6 车流量检测


有了目标追踪,划分掩码,判断车辆某点经过掩码的顺序即可进行某一方向
上车辆总数统计,其流程如图 6-7所示。

有了车辆总数,除以对应时间即可计算得到平均车流量。

6.7 其他算法


其他算法的编写有相应工具包:neopixel、gpiozero、threading.Timer 等等,较
为简单,不再赘述。严格按照总体设计中类的划分和定义进行即可。需要注意,
进度条的代码编写不能使用 rpi_ws281x,因为其只能在命令行运行,且与 opencv
不兼容。使用该包将导致无法观察检测结果。

7 测试


测试环境如图 7-1所示

首先进行模块测试。

7.1 连接树莓派


首先利用树莓派官方镜像安装软件 imager 在 sd 卡进行系统下载,并配置
WIFI 及 SSH。安装 SD 卡后,通过局域网 IP 扫描器,找到树莓派 IP 地址后。使
用 XShell, 通过 SSH 连接后,在设置中开启 VNC 服务。之后使用 VNC-Viewer 进
行连接。如图 7-2所示连接成功。

7.2 红绿灯,数码管模块测试


红绿灯模块,数码管模块可以正常显示。如图 7-3, 7-4, 7-5所示。

7.3 进度条测试


经过测试,灯条可以实现红绿黄三种灯色,并根据系统需求,按照一定速度
进行依次熄灭对应像素点,实现进度条的提示功能,如图 7-6、 7-7所示。

7.4 摄像头-目标检测测试


最开始的时候,只训练了 UA-DETRAC 数据集和 BitVehicle 数据集,其中表
现较好的是 UA-DETRAC。但其测试准确率依然较低,只有 60% 左右,如图 7-
8, 7-9所示。此外,开启计数模式后,有很多边界框也计数在内。说明 IOU 阈值
设置较高。经过调整阈值后,边界框计数准确程度有所提升。但车辆设别精度还
是较低,考虑是现实车辆数据集和模型车数据集不匹配造成的。

之后制作了该玩具车的数据集,但由于数据较少,且只有玩具车一种,模型
泛化程度很低而且识别率更低了。后来经过认真分析了 UA-DETRAC 数据集,发
现了问题所在:角度。

7.5 摄像头-车辆静态计数测试

调整角度后模型识别准确率就提升至 80% 了,且能精准计数。根据测试技
术中边界值分析法,测试 0 辆和 6 辆,结果如图 7-10、 7-11所示。

经合理调整阈值,对于部分挨着的模型车也能正确识别并计数,如图 7-12。

7.6 目标跟踪测试


经过测试,车辆移动的时候,Sort 算法依然可以追踪对应目标,保持相同 ID
标号,不同的 ID 标号在图中用标注框的颜色表示。如图 7-13, 7-14对比所示,
黄色的车的位置发生了变化,依然可以识别到它原来的 id,故其标注框依然是原
来的颜色。

7.7 车辆动态计数测试


绘制的掩码如图 7-15所示。
由于模型没办法动起来,导致动态计数测试很难实现。所以采用在天桥录制
好的一段视频进行检验测试。测试结果如下图 7-16、 7-17、 7-18所示。

帧率虽然有所下降,但是经测试,对于该视频,每 5 帧检测 1 帧时,不会出
现误差。在检测图像展示的情况下,原视频时长为 23s, 检测时长为 60s。如果不
展示检测图像,则检测时长为 50s,共计检测 146 帧,平均帧率为 4.0228,最大
瞬时帧率为:5.04。只有在维护时期,才需要对检测结果进行展示,且实际应用
场景中,可以根据车辆速度来调整跳帧数,IOU 等参数,在保证模型准确率的基
础上进一步提高跳帧数。此外,拥堵阶段往往只有几个连续时间段,该动态检测
只需要在进入拥堵阶段时使用一次,之后进入调整阶段进行静态检测即可。并且
由于动态检测时采取边录制边检测,未在本轮检测完的部分,将在下轮中继续检
测。因此不用担心因为检测较慢导致错过信息。


7.8 集成测试


经过测试,系统可以在红灯最后一秒准确识别静态照片中车辆数目,并根据
该数目决定进入哪个阶段。在常规阶段,如图 7-19可以根据静态数目计算出绿
灯时间,并进行调整。在拥堵阶段,可以录制车流量视频,并根据车流视频在之
后几个周期中检测车流量,如图 7-20。根据检测到的结果,调整下个周期绿灯时
间,如图 7-21。在调整阶段,可以综合判断红灯最后车辆数与绿灯最后车辆数,
来实现微调或进入其他状态,如图 7-22。测试图中,为了显示模型实时的检测结
果,下轮绿灯时间在输出窗口可见,要等到下轮绿灯才会显示到数码管上。本系
统功能较为完善,可以显著减少等红灯平均时间,提高单位时间通行量,缓解了
城市十字路口拥堵问题。

8 总结与展望


8.1 总结


在进行需求分析阶段,可以查到的公开数据很少,很难定量说明现实生活中
交通灯情况,最后找到了高德地图部分公开数据,才侧面印证了十字路口交通堵
塞问题的日益凸显。
树莓派的计算能力相对较低,平均帧率只有 4 左右。虽能完成需求,但进一
步优化模型也有着很大价值。
此外摄像头接口一接四,尝试了多种方案,从最开始的想当然去用 SN74153,
而懒于查找 CSI 协议的细节,树莓派 CSI 接口的各个引脚作用,导致了战略上的
轻视。尽管战术上,勤勤恳恳的购买元件,设计电路,焊接板子,最后到头来却
是一场空。懒于查找资料的一大原因便是不想去看官方文档,既怕专业术语晦涩
难懂,又怕英文理解不了。只想看现成的 csdn 等博客。当博客内容充足时,不妨
为好的选择,但是当博客内容不足以支撑实验时候,就必须要克服畏难清晰,积
极查阅官方文档。
训练模型的时候,最开始使用的是 Windows 操作系统,问题频出,但是双系
统又不能满足日常生活需要。经查阅资料,发现有 Linux 子系统的存在,即 WSL,
成功安装后,配置好 CUDA、CUDNN、Anaconda、PyTorch 包等花费了大量时间。
好在磨刀不误砍柴工,后边训练模型的时候很快。
部署的时候各种包版本匹配问题,以及使用的 64 位树莓派最新系统对其的
兼容问题。最后实在找不到合适匹配的包,只好降低树莓派系统。之后几乎一路
顺风。给我的启发是,最新版本的系统未必是最好的,可能会有很多 bug 还没有
解决,其次是使用他的人还较少,网络上的教程也很少,但相对旧一些的稳定版
本就没有这类问题。选择版本时,如果没有硬性要求,现阶段使用人数最多的版
本不妨为一种好的选择。


8.2 展望


核心算法上:可以进一步优化模型,适配更符合应用场景的数据集;使用形
式上:可以使用 PYQT 画出 GUI, 方便交警同志以及相关部门的使用。此外,可
以做出机械外壳,方便模型的展示;测试维护上:要在更多不同环境,不同车流
情况下进行测试,保证算法的鲁棒性、稳定性;硬件电路上:可以适配算法在其
他性能更高或性价比更高的芯片上进行测试,便于大范围部署。

参考文献


[1] 公安部交通管理局. 全国机动车达 4.3 亿辆,驾驶人达 5.2 亿人,新能源汽车保有量达
1821 万辆 [J/OL], 2023. https://mp.weixin.qq.com/s/VfeDkgvdv1XhsC_xhFu6XQ5.
[2] 高德公司. 2023 年度中国主要城市交通分析报告. 2 2024. https://report.amap.com/
share.do?id=a1be56248c8cccc9018d68e8010a6c1a.
[3] 黄慧喜. 基于车流量监测的智能交通灯控制设计 [J]. 汽车维修, 2018 (04): 6–8.
[4] 马勇平. 车流量检测技术及相关专利分析 [J]. 科技视界, 2020 (26): 118–119.
[5] 陈青霞. 基于车流量监测技术的智能交通灯控制系统的开发 [J]. 自动化应用, 2023,
64 (10): 91–93+96.
[6] 姜文东, 贾辉然, 折志伟, et al. 基于热释电红外传感的智能交通系统研究 [J]. 河北工业科
技, 2010, 27 (02): 94–96+117.
[7] 杨国亮, 王志良, 牟世堂, et al. 一种改进的光流算法 [J]. 计算机工程, 2006 (15): 187–
188+226.
[8] 张玲 , 陈丽敏. 基于视频的改进帧差法在车流量检测中的应用 [J]. 重庆大学学报 (自然科
学版), 2004 (05): 31–33+73.
[9] Liu C, Huynh D Q, Sun Y, et al. A Vision-Based Pipeline for Vehicle Counting, Speed Esti-
mation, and Classification [J]. IEEE Transactions on Intelligent Transportation Systems, 2021,
22 (12): 7547–7560.
[10] Ning C, Zhou H, Song Y, et al. Inception Single Shot MultiBox Detector for object detec-
tion [C]. In 2017 IEEE International Conference on Multimedia Expo Workshops (ICMEW),
2017: 549–554.
[11] Oltean G, Florea C, Orghidan R, et al. Towards Real Time Vehicle Counting using YOLO-Tiny
and Fast Motion Estimation [C]. In 2019 IEEE 25th International Symposium for Design and
Technology in Electronic Packaging (SIITME), 2019: 240–243.
[12] 王晨曦, 鲍泓, 梁天骄. 基于改进 YOLOv5s 的轻量化车流量检测算法 [J]. 东北师大学报
(自然科学版), 2023, 55: 56–63.
[13] 王坤, 冯康威. 基于改进 YOLOv5 的交通场景小目标检测算法 [J]. 北京航空航天大学学
报: 1–16.
[14] 苏德福, 陈彬晖, 林诗雨, et al. 基于模糊车流量估计的智能交通系统 SOPC 设计 [J]. 电视
技术, 2023, 47 (05): 41–44+50.
[15] 齐治昌, 谭庆平, 宁洪. 软件工程 [M]. 高等教育出版社, 2019.
[16] 韩立立, 刘晓然, 刘文杰, et al. 基于 OpenMV 的智能交通灯系统设计 [J]. 微型电脑应用,
2023, 39 (11): 22–26.
[17] 尹延龙, 丁瑞好, 董铮. 基于树莓派的交通灯实时控制系统设计 [J]. 电子制作, 2024,
32 (02): 89–93.
[18] 谢金生, 官飞. 基于云计算的智能交通信号灯控制系统设计与实现 [J]. 长春师范大学学
报, 2014, 33 (08): 57–60.
[19] Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object
Detection [C]. In 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR),
2016: 779–788.
[20] Huang R, Pedoeem J, Chen C. YOLO-LITE: A Real-Time Object Detection Algorithm Opti-
mized for Non-GPU Computers [C]. In 2018 IEEE International Conference on Big Data (Big
Data), 2018: 2503–2510.
[21] 张宇豪, 肖新宇, 李欣雪, et al. 一种可移动的车流量实时检测系统设计 [J]. 现代信息科技,
2023, 7 (21): 131–135.
[22] Wojke N, Bewley A, Paulus D. Simple online and realtime tracking with a deep association
metric [C]. In 2017 IEEE International Conference on Image Processing (ICIP), 2017: 3645–
3649.
[23] Bewley A, Ge Z, Ott L, et al. Simple online and realtime tracking [C]. In 2016 IEEE Interna-
tional Conference on Image Processing (ICIP), 2016: 3464–3468.


http://www.ppmy.cn/embedded/158469.html

相关文章

Linux MySQL离线安装

一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站,选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包,例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…

SpringCloudAlibaba 服务保护 Sentinel 项目集成实践

目录 一、简介1.1、服务保护的基本概念1.1.1、服务限流/熔断1.1.2、服务降级1.1.3、服务的雪崩效应1.1.4、服务的隔离的机制 1.2、Sentinel的主要特性1.3、Sentinel整体架构1.4、Sentinel 与 Hystrix 对比 二、Sentinel控制台部署3.1、版本选择和适配3.2、本文使用各组件版本3.…

es数据同步

Logstash 是 Elastic 技术栈中的一个技术,它是一个数据采集引擎,可以从数据库采集数据到 ES 中。可以通过设置 自增 ID 主键 或 更新时间 来控制数据的自动同步: 自增 ID 主键:Logstatsh 会有定时任务,如果发现有主键…

在汇编语言中,ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令

在汇编语言中,ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令。它主要用于定义代码段、数据段和栈段等的段寄存器使用方式,帮助编译器生成正确的代码。 具体到 ASSUME DS:DATA, CS:CODE, SS:STACK,这行代码的作用如下&…

deepseek关于蒸馏的通俗讲解

好的!我用一个**做奶茶**的比喻来解释「知识蒸馏」,保证通俗易懂~ --- ### **第一步:先理解什么是蒸馏技术** 想象你有一杯超级浓的奶茶(**大模型**),味道复杂又醇厚,但太浓了喝起…

手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码)

手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码) 目录 手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码)Stable Diffusion 原理图Stable Diffusion的原理解释Stable Diffusion 和Di…

【2】阿里面试题整理

[1]. 说一下Java与C的区别。 Java和C是两种在软件开发领域应用非常广泛的语言,但它们的设计理念和应用场景有所不同。 Java是一种基于JVM的解释型语言,具有跨平台性,使用自动垃圾回收机制,这使得开发者可以更专注于业务逻辑&…

Learning Vue 读书笔记 Chapter 2

2. Vue 基本工作原理 2.1 Virtual DOM 概念: DOM: DOM以内存中树状数据结构的形式,代表了网页上的HTML(或XML)文档内容。它充当了一个编程接口,将网页与实际的编程代码(如JavaScript)连接起来…