【传知代码】高速公路车辆速度检测软件-论文复现

简介: 该项目是高速公路车辆速度检测软件,融合了无人机、计算机视觉(YOLOv8)和机器学习,用于交通监控和数据收集。它通过无人机航拍获取车辆信息,使用Bytetrack进行跟踪,SG滤波器处理数据,计算速度和加速度,并将数据存储在Excel中。软件包含检测器、跟踪器和注册表组件,可在Pycharm环境中运行。部署时需配置相关依赖,通过主程序`main.py`启动,用户需标定参考距离、ROI和坐标系。随着技术进步,此类系统有望在交通管理中发挥更大作用。参考文献包括YOLOv8和ByteTrack的相关研究。源码和详情见原文链接。
本文涉及的源码可从高速公路车辆速度检测软件该文章下方附件获取

高速公路车辆速度检测软件

image.png

概述

高速公路车辆速度检测软件这个项目是一个结合了无人机技术和计算机视觉以及机器学习算法的交通监控和数据收集系统。通过无人机获取的航拍视角,能够监测高速公路上车辆的速度和加速度,为交通管理和道路安全提供重要的数据支持。以下是项目的主要技术要点:

  1. 计算机视觉技术:使用如YOLOv8这样的检测器来从图像中识别车辆。YOLO(You Only Look Once)是一种实时目标检测系统,可以快速准确地在图像中定位和识别多个目标。
  2. 车辆跟踪:通过Bytetrack等跟踪器对识别出的车辆进行追踪。这样可以维持对每辆车行驶状态的连续观察,即使在它们进入和离开视野时也不会丢失信息。
  3. 数据处理:跟踪结果会更新到一个注册模块中,然后通过SG滤波器(可能是卡尔曼滤波器或其变种)对数据进行平滑处理,从而计算出车辆的速度和加速度。
  4. 数据记录:最后将收集到的数据保存到Excel文件中,以便于后续的分析和使用。
  5. 无人机应用:无人机的使用提供了一个从空中俯瞰的视角,这有助于克服传统地面视角可能遇到的遮挡问题,同时能覆盖更广阔的区域并提供更全面的数据。
  6. 技术发展:随着技术的发展,基于计算机视觉的方法在交通信息采集方面提供了强大的技术支持,而轻便、高效、智能的无人机在交通数据采集中的应用越来越广泛。

原理介绍

使用YOLOv8和BYTETrack进行车辆速度检测的过程涉及以下几个关键步骤:

  1. 对象检测:利用YOLOv8模型对视频帧进行迭代,识别出每一帧中的车辆。YOLOv8是一个高效的实时目标检测系统,能够同时检测多个目标,并且可以针对特定场景或车辆类型进行训练以提高检测的准确性。
  2. 对象跟踪:一旦车辆被检测到,就使用BYTETrack跟踪器对车辆进行追踪。这有助于即使在车辆进入或离开视野时,也能维持对它们的观察,从而不会丢失信息。
  3. 速度估计:在对象跟踪的基础上,可以通过分析车辆在连续帧之间的位置变化来估计它们的速度。这通常涉及到计算车辆通过预定距离所需时间的方法。

此外,为了提高速度估计的准确性,可以使用SG滤波器(可能是卡尔曼滤波器或其他平滑滤波器)对数据进行平滑处理,减少噪声和偶然误差的影响。最终,所有跟踪到的车辆信息,包括它们的速度和加速度数据,都可以保存到Excel文件中,以便于后续分析和使用。

总的来说,这种技术的应用不仅限于高速公路车辆速度的监测,还可以扩展到其他需要车辆监控和管理的场景,如城市道路、停车场等。此外,这种系统的实施可以提高交通管理的效率和水平,有助于减少交通违规行为,提升道路安全。

核心逻辑

软件中关于各个组件及参数配置的定义,项目总共分为检测器、跟踪器和注册表三个部分,检测器把检测的结果输出给跟踪器进行跟踪,跟踪器把跟踪信息传输给注册表,再由注册表进行平滑、计算速度等后处理。可以根据自己需要调整参数。

class APP:
    def __init__(self, yolo_path, save_path, intercoord, roi):
        self.detector_opt = {
   
   'class_names': self.classes, 'n_classes': 3, 'conf_threshold': 0.05, 'iou_thresh': 0.3, 
                             'size': self.size, 'roi': roi}
        self.tracker_opt = {
   
   'track_thresh': 0.35, 'track_buffer': 15, 'match_thresh': 0.6, 'frame_rate': 30,
                    'aspect_ratio_thresh': 1.6, 'min_box_area': 10, 'mot20': False,
                    'class_names': self.classes, 'n_classes': 2, 'iou_thresh': 0.3}
        self.register_opt = {
   
   'dt': 0.1, 'fps': 30, 'x': intercoord['center_x'], 'y': intercoord['center_y'], 'rotation': intercoord['rotation'],
                             'scale': intercoord['scale'], 'roi': roi, 'save_path': save_path}
        self.detector = YOLOv8(yolo_path, self.detector_opt)
        self.tracker = MCOCSort(class_names=self.tracker_opt['class_names'],
                                det_thresh=self.tracker_opt['track_thresh'],
                                iou_thresh=self.tracker_opt['iou_thresh'],
                                max_age=self.tracker_opt['track_buffer'])
        self.register = Register(self.register_opt)

环境配置

Pycharm编译器

根据requirements.txt完成相关依赖配置

下载权重文件:请阅读附件中README.md的这一部分。

部署方式

详细过程的项目源码可从高速公路车辆速度检测软件文章下方附件获取

1)开始运行软件

python main.py

2)选择视频路径

image-20240516153229053.png

3)标注参考距离

  • 点击标定参考线,在图中标出长度,起点按住左键,光标移动到终点时,松开左键。回车进行确认。
  • 直线真实距离一栏中填入参考线真实长度。

image-20240516153318293.png

4) 标定ROI(感兴趣区域)

点击标定ROI,左键确定边界点,右键取消上一个边界点,回车进行确认。
image-20240516153343122.png

5)坐标系标定
填入目标坐标系在图像坐标系下的XY位移以及X轴转角

6)应用

点击应用后,再点击确认按钮,检测随即开始。

!注意软件会进行两次检测,第二次检测主要是进行平滑处理和重识别。

小结

随着人工智能、大数据等技术的不断发展,车辆速度检测技术也将迎来新的发展机遇。我们可以将这些先进技术应用于车辆速度检测软件中,实现更智能、更高效的交通管理。例如,通过机器学习算法对车速数据进行挖掘和分析,可以预测交通拥堵、事故风险等情况,为交通管理部门提供决策支持。同时,我们还可以将车辆速度检测软件与其他智能交通系统相结合,实现更全面的交通监控和管理。

参考文献

@article{
   
   yolov8,  
  title={
   
   YOLOv8: Ultralytics Real-time Object Detection with YOLOv8},  
  author={
   
   Jocher, Glenn},
  year={
   
   2023},  
  url={
   
   https://github.com/ultralytics/ultralytics} 
}

@article{
   
   zhang2022bytetrack,
  title={
   
   ByteTrack: Multi-Object Tracking by Associating Every Detection Box},
  author={
   
   Zhang, Yifu and Sun, Peize and Jiang, Yi and Yu, Dongdong and Weng, Fucheng and Yuan, Zehuan and Luo, Ping and Liu, Wenyu and Wang, Xinggang},
  booktitle={
   
   Proceedings of the European Conference on Computer Vision (ECCV)},
  year={
   
   2022}
}
相关文章
|
域名解析 网络协议 缓存
|
5月前
|
人工智能 自然语言处理 安全
AutoGen框架入门:5个核心概念搭建智能体协作系统
AutoGen是微软开源的多智能体AI框架,支持多个AI智能体与人类协作,通过对话完成复杂任务。各智能体具备不同角色与能力,可调用工具、执行代码,并在群聊中辩论、推理、纠错,实现无需人工干预的自动化协作,适用于复杂问题求解与团队化AI应用开发。
601 13
AutoGen框架入门:5个核心概念搭建智能体协作系统
|
人工智能 算法 安全
基于YOLOv8的交通车辆实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv8的交通车辆实时检测系统,使用5830张图片训练出有效模型,开发了Python和Pyside6的GUI界面系统,支持图片、视频和摄像头实时检测,具备模型权重导入、检测置信度调节等功能,旨在提升道路安全和改善交通管理。
2483 1
基于YOLOv8的交通车辆实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
机器学习/深度学习 人工智能 监控
基于YOLOv8的交通车辆(12种常见车型)实时检测系统识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8目标检测框架,结合PyQt5图形界面,实现了对12类交通车辆的高精度实时检测。无论是图片、视频,还是摄像头输入,系统都能高效完成车辆定位与分类。通过集成训练流程、标注数据集、权重文件与可视化界面,极大降低了使用门槛,用户无需编程经验即可开箱即用、快速部署。
|
8月前
|
存储 人工智能 决策智能
你的AI系统该如何"组队"?多智能体架构选择指南
想知道AI代理如何组队变得更强大?本文深入解析多智能体系统的核心概念、常见架构和通信模式,帮你轻松理解如何构建更复杂、更高效的AI系统。告别单一代理的局限,迎接AI协作的新时代!
732 1
|
数据采集 Python
Python:某市公交线路站点的爬虫实现
Python:某市公交线路站点的爬虫实现
235 1
|
运维 监控 网络协议
在Linux中,有哪些系统管理和配置工具?
在Linux中,有哪些系统管理和配置工具?
|
数据采集 算法 搜索推荐
Python基于RFM模型和K-Means聚类算法进行航空公司客户价值分析
Python基于RFM模型和K-Means聚类算法进行航空公司客户价值分析
|
机器学习/深度学习 监控 并行计算
yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)
yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)

热门文章

最新文章