news 2026/4/18 10:28:17

使用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/18 5:10:02

在线电影购票系统

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

作者头像 李华
网站建设 2026/4/18 8:18:39

能否接入RAG系统?VibeThinker增强检索问答场景探索

VibeThinker能否接入RAG系统?增强检索问答场景的深度探索 在当前大语言模型(LLM)遍地开花的时代,我们越来越习惯于让一个“全能型”模型处理从写诗到编程、从翻译到数学推导的一切任务。然而现实是:这种“通才”模式虽…

作者头像 李华
网站建设 2026/4/18 6:28:55

5种C++变量交换方法,中小学生也能轻松掌握!

编程入门必学小技巧,CSP竞赛高频考点拆解在C编程学习中,变量交换是最基础的操作之一,也是CSP入门竞赛里的常客。很多同学只知道用临时变量交换,却不知道还有更巧妙的方法。今天就给大家整理了5种变量交换的实现方式,每…

作者头像 李华
网站建设 2026/4/18 6:28:58

【Docker与Git工作树切换实战】:掌握高效开发环境切换的5大核心技巧

第一章:Docker与Git工作树切换的核心价值在现代软件开发中,环境一致性与版本控制的高效管理是保障协作流畅的关键。Docker 通过容器化技术将应用及其依赖打包成可移植的镜像,确保开发、测试与生产环境的一致性。与此同时,Git 的工…

作者头像 李华
网站建设 2026/4/18 4:10:50

第三方审计邀请:请独立机构验证声明真实性

第三方审计邀请:请独立机构验证声明真实性 在当前大语言模型“军备竞赛”愈演愈烈的背景下,参数规模动辄数百亿、千亿,训练成本以百万美元计已成为常态。然而,这种“越大越好”的范式正面临现实拷问:我们真的需要如此…

作者头像 李华