news 2026/4/15 18:19:48

使用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/4/3 6:30:08

研究生科研助手:借助VibeThinker完成数学建模推导

研究生科研助手:借助VibeThinker完成数学建模推导 在研究生阶段,尤其是参与数学建模竞赛、撰写理论论文或准备算法面试时,一个常见的痛点是:如何快速、准确地完成复杂的逻辑推导? 传统的做法依赖大量人工计算和反复验证…

作者头像 李华
网站建设 2026/4/9 19:06:36

揭秘Docker健康检查成功背后的秘密:你不可不知的3大配置技巧

第一章:Docker健康检查的核心价值与应用场景在容器化部署日益普及的今天,确保服务持续可用成为运维的关键目标。Docker 健康检查(HEALTHCHECK)机制为此提供了原生支持,它能够自动判断容器内应用的运行状态,…

作者头像 李华
网站建设 2026/4/11 15:10:38

UltraISO注册码最新版不香了?这个15亿参数模型更值得拥有

VibeThinker-1.5B:一个15亿参数的小模型,为何在数学与编程推理中反超大模型? 在AI圈,“越大越好”似乎早已成为共识。动辄百亿、千亿参数的模型轮番登场,训练成本动辄百万美元起步,部署更是依赖多张高端GPU…

作者头像 李华
网站建设 2026/4/3 16:51:27

基于java+ vue饮食营养管理系统(源码+数据库+文档)

饮食营养管理系统 目录 基于springboot vue饮食营养管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue饮食营养管理系统 一、前言 博主介绍&…

作者头像 李华
网站建设 2026/4/11 8:40:23

【生产环境避坑指南】:Docker网络配置中不可忽视的7大雷区

第一章:Docker微服务网络配置的核心挑战在构建基于Docker的微服务架构时,网络配置是决定服务间通信效率与安全性的关键因素。容器动态启停、IP地址动态分配以及服务发现机制的复杂性,共同构成了网络管理的主要难点。服务间通信隔离与互通的平…

作者头像 李华