自动驾驶:车道线检测、车速检测、实时通行跟踪、基于视频的车辆跟踪及流量统计

article/2025/8/30 0:22:55

日萌社

人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


CNN:RCNN、SPPNet、Fast RCNN、Faster RCNN、YOLO V1 V2 V3、SSD、FCN、SegNet、U-Net、DeepLab V1 V2 V3、Mask RCNN

自动驾驶:车道线检测、车速检测、实时通行跟踪、基于视频的车辆跟踪及流量统计

车流量检测实现:多目标追踪、卡尔曼滤波器、匈牙利算法、SORT/DeepSORT、yoloV3、虚拟线圈法、交并比IOU计算

多目标追踪:DBT、DFT、基于Kalman和KM算法的后端优化算法、SORT/DeepSORT、基于多线程的单目标跟踪的多目标跟踪算法KCF

计算交并比IOU、候选框不同表示方式之间的转换

卡尔曼滤波器

卡尔曼滤波器实践

目标估计模型-卡尔曼滤波

匈牙利算法

数据关联:利用匈牙利算法对目标框和检测框进行关联

SORT、DeepSORT

多目标追踪

yoloV3模型

基于yoloV3的目标检测

叉乘:基于虚拟线圈法的车流量统计

视频中的车流量统计


车道线检测

相机校正、张氏标定法、极大似然估计/极大似然参数估计、牛顿法、高斯牛顿法、LM算法、sin/cos/tan/cot

相机校正和图像校正:图像去畸变

车道线提取:Sobel边缘提取算法

透视变换

车道线定位及拟合:直方图确定车道线位置

车道曲率和中心点偏离距离计算

在视频中检测车道线


汽车的日益普及在给人们带来极大便利的同时,也导致了拥堵的交通路况,以及更为频发的交通事故。智能交通技术已成为推动现代技术交通技术发展的重要力量,智能交通不仅能够提供实时的交通路况信息,帮助交通管理者规划管理策略,而且还能优化出行者的出行策略。还可以减轻交通道路的堵塞情况,降低交通事故的发生概率,提高道路运行的安全系数。

本项目分两个模块:

  • 一个是基于视频的车辆跟踪及流量统计,是一个可跟踪路面实时车辆通行状况,并逐帧记录不同行车道车流量数目的深度学习项目,在视频中可看出每个车辆的连续帧路径,该项目可拓展性强,可根据企业业务外接计费结算系统、LED显示系统、语音播报系统、供电防雷系统等,

  • 另一个是车道线检测项目,是实现自动驾驶的首要任务,广泛应用于自动驾驶厂家,能够根据车载摄像头的输入,对安全驾驶区域进行预判,提醒驾驶员进行安全驾驶,减少交通事故的发生。

该项目的架构图如下所示:

  • 用户层:通过摄像头或人工选择视频送入服务层中进行处理,处理完成后可输出经渲染后的视频,或触发报警装置
  • 服务层:主要包含两个模块,
    • 一是车辆追踪及计数,该模块模块一对输入的视频进行处理,使用yoloV3模型进行目标检测,然后使用SORT进行目标追踪,使用卡尔曼滤波器进行目标位置预测,并利用匈牙利算法对比目标的相似度,完成车辆目标追踪,利用虚拟线圈的思想实现车辆目标的计数,并根据计数完成车道拥堵的判断;
    • 另一个是车道线的检测,该模块使用张氏较正法对相机进行较正,利用较正结果对图像去畸变,然后利用边缘与颜色提取车道线,利用仿射变换转换成鸟瞰图,并利用直方图滑动窗口的算法精确定位车道线,利用最小二乘法进行拟合,实现车道线的检测,并计算车辆偏离车道中心的距离,触发报警装置。
  • 效果展示

2.环境安装

该项目中使用的工具包包含以下:

NumPy 是使用 Python 进行科学计算的基础包。

Numba 是一个开源 JIT 编译器,它将 Python 和 NumPy 代码的子集转换为快速机器码。

SciPy 是数学、科学和工程的开源软件。SciPy 库依赖于 NumPy,它提供方便快捷的 N 维数组操作。

h5py 从 Python 读取和写入 HDF5文件。

pandas 用于数据分析、时间序列和统计的强大的数据结构。

opencv-python 用于 Python 的预构建 OpenCV 包。

moviepy 用于进行视频处理的工具包

Filterpy 实现了卡尔曼滤波器和粒子滤波器等

具体版本见requirements文件中。

安装方法:

# 创建虚拟环境
conda create -n dlcv python
# 激活虚拟环境
source activate dlcv
# 安装对应的工具包
pip install -r requirements.txt

总结

  1. 项目中包含两个模块:多目标车辆跟踪及流量统计和车道线检测

  2. 项目分为用户层和服务层,用户层进行视频或摄像头的操作,服务层对视频进行处理,完成多目标车辆的跟踪及车流量的统计和车道线检测


 


1.SORT核心是卡尔曼滤波和匈牙利算法。流程图如下所示,可以看到整体可以拆分为两个部分,分别是匈牙利匹配过程和卡尔曼预测加更新过程,都用灰色框标出来了。关键步骤:--> 卡尔曼滤波预测出预测框--> 使用匈牙利算法将卡尔曼滤波的预测框和yolo的检测框进行IOU匹配来计算相似度 --> 卡尔曼滤波使用yolo的检测框更新卡尔曼滤波的预测框2.卡尔曼滤波分为两个过程:预测过程和更新过程。SORT引入了线性速度模型与卡尔曼滤波来进行位置预测,先进行位置预测然后再进行匹配。运动模型的结果可以用来预测物体的位置。匈牙利算法解决的是一个分配问题,用IOU距离作为权重(也即cost代价矩阵),并且当IOU小于一定数值(IOU阈值)时,不认为是同一个目标,理论基础是视频中两帧之间物体移动不会过多。在代码中选取的IOU阈值是0.3。scipy库的linear_sum_assignment实现了匈牙利算法,只需要输入cost_matrix代价矩阵(全部预测框和全部检测框两两IOU计算结果)到linear_sum_assignment中就能得到预测框和检测框两两最优匹配的组合。

1.跟踪器链(列表):实际就是多个的卡尔曼滤波KalmanBoxTracker自定义类的实例对象组成的列表。每个目标框都有对应的一个卡尔曼滤波器(KalmanBoxTracker实例对象),KalmanBoxTracker类中的实例属性专门负责记录其对应的一个目标框中各种统计参数,并且使用类属性负责记录卡尔曼滤波器的创建个数,增加一个目标框就增加一个卡尔曼滤波器(KalmanBoxTracker实例对象)。把每个卡尔曼滤波器(KalmanBoxTracker实例对象)都存储到跟踪器链(列表)中。2.unmatched_detections(列表):检测框中出现新目标,但此时预测框(跟踪框)中仍不不存在该目标,那么就需要在创建新目标对应的预测框/跟踪框(KalmanBoxTracker类的实例对象),然后把新目标对应的KalmanBoxTracker类的实例对象放到跟踪器链(列表)中。3.unmatched_trackers(列表):当跟踪目标失败或目标离开了画面时,也即目标从检测框中消失了,就应把目标对应的跟踪框(预测框)从跟踪器链中删除。unmatched_trackers列表中保存的正是跟踪失败即离开画面的目标,但该目标对应的预测框/跟踪框(KalmanBoxTracker类的实例对象)此时仍然存在于跟踪器链(列表)中,因此就需要把该目标对应的预测框/跟踪框(KalmanBoxTracker类的实例对象)从跟踪器链(列表)中删除出去。
DeepSORT是SORT的续作,整体框架没有大改,还是延续了卡尔曼滤波加匈牙利算法的思路,并且在这个基础上增加了鉴别网络Deep Association Metric。
下图是deepSORT流程图,和SORT基本一样,就多了级联匹配(Matching Cascade)和新轨迹的确认(confirmed)。

关键步骤:--> 卡尔曼滤波预测出预测框--> 使用匈牙利算法将卡尔曼滤波的预测框和yolo的检测框进行级联匹配加IOU匹配两者分别来计算相似度 --> 卡尔曼滤波使用yolo的检测框更新卡尔曼滤波的预测框级联匹配计算相似度的流程图如下所示:上半部分为相似度估计,也就是计算这个分配问题的代价矩阵。下半部分依旧是使用匈牙利算法进行检测框和预测框的匹配。

  


http://chatgpt.dhexx.cn/article/x9yoZ5ei.shtml

相关文章

yolo-车辆测距+前车碰撞预警(追尾预警)+车辆检测识别+车辆跟踪测速(原创算法-毕业设计)

目录 前言一、环境配置二、车辆检测、实时跟踪测速算法及代码解读1、主函数各参数含义2、算法实现3、核心代码4、效果展示 二、跟车距离测量算法及代码解读1、主函数各参数含义2、算法实现3、效果展示 三、前车碰撞预警(追尾预警)算法及代码解读1、算法实…

车辆跟踪技术概述zt

摘 要 基于视频的车辆检测器近年来在智能交通系统(ITS)中得到了越来越广泛的应用。本文介绍了近年来提出的一些主要的基于视频的车辆检测与跟踪技术,并对这些技术进行了分类。同时分析比较了各种方法的优缺点。最后,说明了这一领域仍然存在的问题和对可能…

车辆跟踪检测

这个是GUI的界面,我们分别对这个界面做介绍。 第一个窗口显示的是原始的视屏 第二个窗口是提取视屏的背景。 第三个窗口是汽车跟踪,将汽车跟踪效果显示。 第四个窗口是画线,将用户画线后的区域分为两个区间,通过检测区间后&…

【车辆行人检测和跟踪数据集及代码汇总】

车辆行人检测和跟踪数据集和代码汇总 1. 车辆检测和跟踪1.1 车辆检测数据集和训练权重1.2 车辆跟踪 2. 行人检测和跟踪2.1 行人检测数据集和训练权重2.2行人多目标跟踪 3. 车辆行人检测和跟踪3.1车辆行人检测数据集和训练权重3.2 车辆行人多目标跟踪 1. 车辆检测和跟踪 1.1 车…

自动驾驶路径跟踪控制——纯追踪控制

文章目录 1.自行车模型(汽车二自由度模型)注意点Point1Point2 2.纯追踪控制注意点Point1Point2Point3 3.相关代码参考文献声明 全局路径由一系列路径点构成,这些路径点只要包含 空间位置信息即可,也可以包含 姿态信息&#xff0…

超强实时跟踪系统首次开源!支持跨镜头、多类别、小目标跟踪!

在琳琅满目的视觉应用中,对车辆、行人、飞行器等快速移动的物体进行实时跟踪及分析,可以说是突破安防、自动驾驶、智慧城市等炙手可热行业的利器。 但要实现又快又准的持续跟踪,往往面临被检目标多、相互遮挡、图像扭曲变形、背景杂乱、视角差…

车辆路径跟踪算法及数学模型

一、纯追踪算法 基于当前车辆后轮中心位置,在参考路径上向Ld(自定义)的距离匹配一个瞄准点,假设车辆后轮中心点可以按照一定的转弯半径R行驶抵达该瞄准点,然后根据预瞄准距离Ld,转弯半径R,车辆…

五、车辆轨迹追踪的优化控制

5.1、车辆横向动力学模型 车辆动力学模型一般包括用于分析车辆平顺性的质量-弹簧-阻尼模型和分析车辆操纵稳定性的车辆-轮胎模型。两者研究的侧重点不同,平顺性分析的重点是车辆的悬架特性,而车辆的操纵稳定性分析的重点是车辆纵向和侧向力学特性。车辆…

PyCharm Professional 2016.1 破解 激活

接上一篇博文,尝试着激活一下 PyCharm Professional 2016.1, 居然也成功了。 方法同样来自 Rover12421 大神。 1.从官网下载 PyCharm Professional 2016.1 安装。 2.下载 破解补丁 并解压,记住路径 3.编辑 PyCharm 安装目录下 bin 文件夹中的…

Python:PyCharm 永久破解方法,真的超超超超超超超超超级简单!!!

准备工作: 1.破解包 >>>下载链接>>> 提取码:jjbf 2.注册码 .>>>获取地址>>> 第一步 进入PyCharm 的安装目录的bin文件夹下,把破解包放到该目录。 第二步 把bin 目录下的 pycharm.exe.vmoptions 和…

Pycharm Professional(专业版)完美破解,永久激活

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Djang…

【pycharm】WiFi密码破解【简单易学】

文章目录 前言一、环境搭建准备好密码的字典包安装pywifi 二、破解源码三、实现结果总结 前言 今天断网,突然想借一下邻居的WiFi,居然破天荒的成功了,感觉也是很幸运吧,所以就来分享一下 一、环境搭建 准备好密码的字典包 假设…

linux下载安装pycharm专业版(含破解)

参考: https://blog.csdn.net/sinat_41029600/article/details/80594993 https://blog.csdn.net/c2366994582/article/details/79146370 下载 https://www.jetbrains.com/pycharm/download/#sectionlinux 安装 进入到pycharm下载目录,将软件移动到/o…

pycharm解密

第一题 Y3liZXJwZWFjZXtXZWxjb21lX3RvX25ld19Xb3JsZCF9 要求我们将上面这串东西用base64解密 我们在第一行调用base64,将上面那串字符赋值给a,再用 base64.b64decode(a).decode("utf-8") 对a进行解密,然后赋值给b,最…

Pycharm 2017.3.3永久破解

目录 一、文档编写的目的 二、破解步骤 2.1 下载ideaIU-2017.3.5.exe安装包 2.2 下载破解码 JetbrainsCrack-2.6.10-release-enc.jar 2.3 安装pycharm-professional-2017.3.3.exe 2.4 启动激活 一、文档编写的目的 PyCharm是一种Python IDE,带有一整套可以…

linux下安装和破解pycharm专业版

首先在官网下载pycharm专业版,网址:http://www.jetbrains.com/pycharm/download/#sectionlinux通过右键提取到此处,可以解压缩(.tar.gz格式相当于Windows下的.rar/.zip),或者通过命令行解压缩(先cd 到文件所…

Python的下载与Pycharm安装以及破解

python的安装 1.访问python官网https://www.python.org/,选择Downloads,选择Windows,然后点击Python 3.6.4; 2.打开下载好的安装包,勾选Add Python 3.6 to PATH ,然后选择默认路径或者其他路径安装。如果选择其他路…

pycharm for ubuntu的永久破解

结合自己走的流程,网上资料有些不全,自己没截图就借用下他们的,自己亲自操作了,没问题, 以上是我自己搭建好的环境; 下面介绍步骤: 1.下载安装python 网址:http://www.jetbrains…

【20190320】pycharm 永久破解(推荐第二种)

PyCharm是由著名的JetBrains公司所打造的一款功能强大的Python IDE,它具有一般IDE都具备的功能,并且使用起来非常方便好用。最近需求PyCharm激活码的网友非常多,小编就在这里给大家分享一下PyCharm2019最新可用的激活注册码。激活Pycharm专业…

安装专业版Pycharm并破解激活

1.下载pycharm的profession版本:http://www.jetbrains.com/pycharm/download/ 2.下载到本地后解压提取文件然后用命令进入到/pycharm-professional-2018.3.2/pycharm-2018.3.2/bin下: 3.到http://idea.lanyus.com/网址下下载破解补丁,直接下…