news 2026/5/16 2:22:53

基于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/14 8:15:16

超级逃顶【顶底先知优化、源码、副图、说明】

{}VAR2:LLV(LOW,10); VAR3:HHV(HIGH,25); 阶段卖出: 3.2,COLORCYAN; 3.5,COLOR0088FF; 清仓卖出: 3.5; 动力线: EMA((CLOSE-VAR2)/(VAR3-VAR2)*4,4); STICKLINE(动力线>REF(动力线,1) ,动力线 ,REF(动力线,1),8 ,1),COLORRED; STICKLINE(动力线<REF(动力线,1) ,动力线 ,R…

作者头像 李华
网站建设 2026/5/15 11:41:26

springboot+vue开发实现新能源汽车4s店销售管理系统应用和研究

文章目录摘要项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 随着新能源汽车市场的快速发展&#xff0c;传统4S店销售管理模式面临信息化、智能化转型需求…

作者头像 李华
网站建设 2026/5/1 9:19:39

基于SpringBoot和Vue的公司文档档案借阅管理系统设计与开发应用和研究

文章目录摘要项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 公司文档档案借阅管理系统基于SpringBoot和Vue技术栈开发&#xff0c;旨在提升企业文档管理…

作者头像 李华
网站建设 2026/5/8 20:40:34

【用友U8cloud】修改Server和Data Source 访问IP地址

访问路径 C:\U8CloudCERP5.1\U8CERP\bin 运行u8SysConfig配置修改完成后&#xff0c;点击保存 运行启动U8cloud这块启动时间稍微长一些&#xff0c;配置好的电脑可能1-3分钟左右&#xff0c;配置不好的可能更长

作者头像 李华
网站建设 2026/5/9 14:49:59

DeepSeek辅助编写的计算数独可选数的python程序第3部分

就是增加了批处理在第2个程序的基础上&#xff0c;增加功能函数&#xff0c;读入换行分隔的文本文件&#xff0c;输出行号、原文本、迭代后文本、原已知数、现已知数的csv文件&#xff0c;只给出新增的代码&#xff0c;以及调用的命令行&#xff0c;例如 sudofill.py input.txt…

作者头像 李华