news 2026/5/3 18:34:46

基于yolov11实现车辆速度估计+距离测量+轨迹跟踪+区域进出统计python源码实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于yolov11实现车辆速度估计+距离测量+轨迹跟踪+区域进出统计python源码实现

这个是网上目前可能唯一一个使用不足一百行代码实现了复杂车辆速度估计+距离测量+轨迹跟踪+区域进出统计系统。之所以这么简单是因为ultralytics模块现在已经成熟而且强大,不需要从头开始写车辆速度估计、距离测量、轨迹跟踪、区域进出统计系统代码,因为里面逻辑比想象要复杂不少,不是有经验程序员无法短时间从逻辑代码解放出来。因此代码对小白十分友好,而且我们只需要关注功能结果本身不必注重细节,即使考虑细节我们也只需要查阅ultralytics资料即可。

效果展示

代码调用

from yolov11_speed_distance_tracking_countingimportYOLOv11Trackerif__name__=='__main__':# 创建并运行YOLOv11跟踪器,使用视频文件 tracker=YOLOv11Tracker(model_path='yolo11n.pt',video_path=r'car2.mp4',# 视频文件路径 region=[(0,360),(1280,360),(1280,500),(0,500)],# 感兴趣区域 classes=[2,5,7]# 检测人和汽车)tracker.run()

需要安装的模块

opencv-python==4.11.0.86torch==2.3.1+cu118 torchvision==0.18.1+cu118 ultralytics==8.3.248

功能介绍

本项目基于 Ultralytics YOLOv11 实现了以下功能:

  1. 速度估计:实时计算检测到的物体移动速度
  2. 距离测量:估算物体之间的相对距离
  3. 轨迹跟踪:记录并绘制物体的运动轨迹
  4. 对象计数:统计特定区域内的物体数量

安装依赖

pipinstallultralytics==8.3.248 pipinstallopencv-python pipinstallnumpy

使用方法

1. 使用视频实时检测

python yolov11_speed_distance_tracking_counting.py

2. 使用视频文件检测

首先将视频文件命名为test_video.mp4并放在项目目录下,然后运行:

python main.py

3. 自定义参数

yolov11_speed_distance_tracking_counting.py文件中,你可以修改以下参数:

  • model_path:YOLOv11模型路径,默认使用yolo11n.pt(nano版本,速度最快)
  • video_path:视频源,0表示摄像头,也可以是视频文件路径
  • region:感兴趣区域,用于速度估计和计数
  • classes:要检测的类别,默认检测所有类别

模型选择

YOLOv11 提供了多种模型大小,你可以根据需要选择:

  • yolo11n.pt:Nano版本,速度最快,适合实时应用
  • yolo11s.pt:Small版本,平衡速度和精度
  • yolo11m.pt:Medium版本,精度更高
  • yolo11l.pt:Large版本,精度更高
  • yolo11x.pt:Xtra Large版本,精度最高

输出结果

程序会显示一个窗口,实时展示检测结果,包括:

  • 检测框:显示物体位置和类别
  • 速度标签:显示物体移动速度
  • 距离线:显示物体之间的距离(小于50米时)
  • 轨迹线:显示物体的运动轨迹
  • 计数信息:显示进入和离开区域的物体数量

同时,程序会将结果保存为output.avi文件(注意代码暂时屏蔽,如需保存只需要取消注释)。

按 ‘q’ 退出程序

注意事项

  1. 首次运行时会自动下载YOLOv11模型,请确保网络连接正常
  2. 速度估计和距离测量的准确性取决于摄像头校准和参数设置
  3. 对于不同的场景,可能需要调整感兴趣区域和检测类别
  4. 建议使用高性能GPU以获得最佳实时性能

技术原理

速度估计

使用 Ultralytics 的SpeedEstimator类,基于物体在连续帧中的位置变化计算速度。

距离测量

  1. 基于物体宽度和已知焦距计算与摄像头的距离
  2. 基于像素距离估算物体之间的相对距离

轨迹跟踪

使用 YOLOv11 的track方法,结合persist=True参数实现多对象跟踪,并记录历史位置数据绘制轨迹。

对象计数

使用 Ultralytics 的ObjectCounter类,基于物体是否穿过预定义区域进行计数。

应用场景

  • 交通监控:车辆速度检测、流量统计
  • 人群管理:人数统计、社交距离监测
  • 工业自动化:生产线上的物体计数和跟踪
  • 安防监控:异常行为检测
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 12:32:36

通达信【超级主图源代码发放】

{}MA5:MA(C,5); MA6:MA(C,6); MA10:MA(C,10); MA20:MA(C,20);A2:REF(MA20,1);J1:(MA20-A2)/A2*100;MJ1:MA(J1,3); MA30:MA(C,30); MA60:MA(C,60); MA120:MA(C,120); 乖离2:(MA20-MA30)/MA30*100; VAR1:IF(BETWEEN(乖离2,-2,5),2,0); MAX1:MAX(MA20,MA30); MAX2:MAX(MAX1,MA60);…

作者头像 李华
网站建设 2026/4/18 11:12:48

vue+spring boot 的宠物领养管理系统沙箱支付应用和研究

文章目录研究背景与意义技术架构设计核心功能实现创新点与验证应用价值项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!研究背景与意义 宠物领养管理系统结合V…

作者头像 李华
网站建设 2026/4/29 12:42:58

GitHub精选----从监控到黑苹果:盘点5个让你相见恨晚的硬核开源项目

摘要:作为技术折腾党,我们的收藏夹里永远缺一个“更顺手”的工具。今天为大家挖掘了 GitHub 上 5 个各具特色的开源项目:有的能让你一眼看穿 VPS 的真实状态,有的能利用 AI 自动解密,还有的能让你的 Proxmox 服务器秒变…

作者头像 李华
网站建设 2026/4/29 15:49:29

直接上干货!这个通信信号调制识别数据集生成工具能让你摆脱数据荒,咱们从核心代码开始拆解。先看信号生成器的核心逻辑

通信信号调制识别所用数据集生成代码 Matlab自动生成数据集,打标签,绘制不同训练策略和不同训练样本数量的对比曲线图,可以绘制模型在测试集上的虚警率,精确率和平均误差。 可以绘制不同信噪比下测试集各个参数的直方图。 注释非常…

作者头像 李华
网站建设 2026/5/3 5:24:29

web自动化测试窗口框架与验证码登录处理

前言 selenium的作用域切换 selenium在处理元素时遇见新窗口、网页嵌套网页、网页的原生弹窗,无法进行直接处理作用域里元素的内容,需要通过切换作用域来处理此类问题。 selenium三种作用域切换: ①、window窗口切换 ②、iframe切换 ③、al…

作者头像 李华