news 2026/7/1 9:27:53

使用Ultralytics YOLO11的TrackZone

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用Ultralytics YOLO11的TrackZone

什么是TrackZone?

TrackZone 专门用于监控框架内指定区域的对象,而不是整个框架。基于 Ultralytics YOLO11,它在视频和实时摄像头流中特定区域的物体检测和跟踪中进行了集成。YOLO11 的高级算法和 深度学习 技术使其成为实时用例的完美选择,在人群监控和监控等应用中提供精确和高效的物体跟踪。

区域物体跟踪(TrackZone)的优势

  • 目标分析:在特定区域跟踪物体可以提供更专注的见解,使对感兴趣区域(如入口或限制区域)的精确监控和分析成为可能。
  • 提高效率:通过将跟踪范围限制在定义的区域,TrackZone减少了计算开销,确保了更快的处理速度和最佳性能。
  • 增强的安全性:区域跟踪通过监控关键区域来改善监控,有助于早期发现异常活动或安全漏洞。
  • 可扩展解决方案:能够专注于特定区域的能力使TrackZone能够适应各种场景,从零售空间到工业环境,确保无缝集成和可扩展性。

实际应用

使用Ultralytics YOLO的TrackZone

# Run a trackzone example yolo solutions trackzone show=True # Pass a source video yolo solutions trackzone source="path/to/video.mp4" show=True # Pass region coordinates yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"

使用代码实现:

import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" # Define region points region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)] # Video writer w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Init trackzone (object tracking in zones, not complete frame) trackzone = solutions.TrackZone( show=True, # display the output region=region_points, # pass region points model="yolo11n.pt", # use any model that Ultralytics supports, e.g., YOLOv9, YOLOv10 # line_width=2, # adjust the line width for bounding boxes and text display ) # Process video while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or processing is complete.") break results = trackzone(im0) # print(results) # access the output video_writer.write(results.plot_im) # write the video file cap.release() video_writer.release() cv2.destroyAllWindows() # destroy all opened windows

TrackZone论据

这里有一个表格,列出了TrackZone的论据:

争论类型默认描述
modelstrNone通往超预测 YOLO 模型文件的路径。
regionlist'[(20, 400), (1260, 400)]'定义计数区域的点列表。

TrackZone解决方案包括对track参数的支持:

争论类型默认描述
trackerstr'botsort.yaml'指定使用的跟踪算法,例如,bytetrack.yamlbotsort.yaml
conffloat0.3设置检测的置信阈值;较小的值允许跟踪更多的物体,但也可能包括假阳性。
ioufloat0.5设置交并比 (IoU) 用于过滤重叠检测的阈值。
classeslistNone通过类索引过滤结果。例如,classes=[0, 2, 3]只跟踪指定的类。
verboseboolTrue控制显示跟踪结果,提供跟踪对象的视觉输出。
devicestrNone指定推理设备(例如,cpucuda:00)。允许用户在CPU、特定GPU或其他计算设备之间选择用于模型执行的设备。

此外,以下可视化选项可用:

争论类型默认描述
showboolFalse如果True,在窗口中显示标注的图像或视频。在开发或测试期间提供即时视觉反馈。
line_widthint or NoneNone指定边界框的线宽。如果None,线宽将根据图像大小自动调整。提供视觉定制以提高清晰度。
show_confboolTrue显示每个检测的置信分数以及标签。深入了解模型对每个检测的确定性。
show_labelsboolTrue在视觉输出中为每个检测显示标签。提供对检测到的物体的即时理解。

常见问题

如何使用Ultralytics YOLO11在视频帧的特定区域或区域中跟踪物体?

使用Ultralytics YOLO11在视频帧的定义区域或区域跟踪物体非常简单。只需使用下面提供的命令来启动跟踪。这种方法确保了高效分析和准确结果,使其成为监控、人群管理或任何需要区域跟踪的应用的理想选择。

yolo solutions trackzonesource="path/to/video.mp4"show=True

如何在Python中使用Ultralytics YOLO11和TrackZone?

只需几行代码,您就可以在特定区域设置物体跟踪,使它易于集成到您的项目中

import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) # Define region points region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)] # Video writer video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) # Init trackzone (object tracking in zones, not complete frame) trackzone = solutions.TrackZone( show=True, # display the output region=region_points, # pass region points model="yolo11n.pt", ) # Process video while cap.isOpened(): success, im0 = cap.read() if not success: print("Video frame is empty or video processing has been successfully completed.") break results = trackzone(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows()

如何使用Ultralytics TrackZone配置视频处理的区域点?

使用Ultralytics TrackZone进行视频处理的区域点配置简单且可定制。您可以直接通过Python脚本定义和调整区域,从而精确控制您希望监控的区域。

# Define region points region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)] # Initialize trackzone trackzone = solutions.TrackZone( show=True, # display the output region=region_points, # pass region points )
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 18:43:48

教育大模型的认知过载风险:个性化推荐与学习者自主性的矛盾

教育大模型的认知过载风险:个性化推荐与学习者自主性的矛盾 引言:智能教育的双刃剑 随着教育大模型(Educational Large Language Models)的快速发展,个性化学习推荐系统已成为智能教育的核心组件。这些系统通过分析学习…

作者头像 李华
网站建设 2026/6/26 18:43:47

unique_lock<mutex> uLock 的用法

std::unique_lock<std::mutex> 是 C11 提供的一种更灵活的互斥锁管理器&#xff0c;常用于多线程同步场景。std::unique_lock<std::mutex> uLock; 本质上是一个可控制加锁/解锁时机、可转移所有权的锁对象。一、unique_lock 是干什么的&#xff1f;一句话总结&…

作者头像 李华
网站建设 2026/6/30 7:26:35

探索金属凝固的奥秘:三维枝晶相场模拟的奇妙旅程

三维凝固金属枝晶生长相场模拟&#xff01; 首次实现三维凝固枝晶相场模拟&#xff5e; 根据经典三维模型 实现枝晶的各项异性凝固生长 完成相场和温度场变化情况&#xff01; 源代码实现&#xff0c;且可修改相关参数对应实际实验情况&#xff01; 增加维度 增加可能性&#x…

作者头像 李华
网站建设 2026/6/30 19:36:11

成本核算模型:每千次调用消耗多少电费

成本核算模型&#xff1a;每千次调用消耗多少电费 在AI推理成本高企的今天&#xff0c;一个现实问题摆在开发者面前&#xff1a;我能不能负担得起每天成千上万次的模型调用&#xff1f;尤其是当任务只是解一道算法题或写一段函数时&#xff0c;是否真的需要动用GPT-4级别的“重…

作者头像 李华
网站建设 2026/6/28 23:54:10

8 款 AI 开题报告工具测评:让论文开篇快人 N 步

论文开题到底能多轻松&#xff1f;现在的 AI 工具已经把 “烧脑写框架” 变成了 “填空式出稿”。今天就盘点 8 款实用的 AI 开题报告工具&#xff0c;PaperXie直接拿下 “性价比王者”&#xff0c;剩下 7 款各有特色 —— 看完这篇&#xff0c;你选工具再也不用踩坑&#xff0…

作者头像 李华
网站建设 2026/7/2 2:44:50

基于springboot + vue二手电子产品系统(源码+数据库+文档)

二手电子产品 目录 基于springboot vue二手电子产品系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue二手电子产品系统 一、前言 博主介绍&…

作者头像 李华