news 2026/4/25 8: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/4/25 3:43:31

Docker容器 runtime 安全如何保障:3步实现Falco实时威胁检测

第一章:Docker容器 runtime 安全如何保障:3步实现Falco实时威胁检测在现代云原生架构中,Docker容器的运行时安全成为关键防线。一旦攻击者突破应用层防护,缺乏运行时监控将导致威胁无法及时发现。Falco作为开源的运行时安全工具&a…

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

Docker Git 工作树切换全攻略(开发者必藏的4种高阶方案)

第一章:Docker Git 工作树切换全攻略(开发者必藏的4种高阶方案)在现代开发流程中,频繁切换 Git 分支并同步 Docker 环境是常见需求。若处理不当,极易导致容器环境与代码版本不一致。掌握高效的工作树切换策略&#xff…

作者头像 李华
网站建设 2026/4/19 22:41:18

Docker Rollout无停机实践全曝光(从CI/CD到流量切换的完整链路)

第一章:Docker Rollout无停机实践概述在现代微服务架构中,应用的持续交付与高可用性成为核心诉求。Docker Rollout 的无停机部署(Zero-downtime Deployment)技术,能够在不中断用户请求的前提下完成服务更新&#xff0c…

作者头像 李华
网站建设 2026/4/16 13:17:22

分布式追踪:使用Jaeger跟踪请求链路

VibeThinker-1.5B-APP:小模型如何实现大推理 在当前大模型动辄数百亿、上千亿参数的浪潮中,一个仅 1.5B 参数的语言模型能做什么?如果它只是勉强答对几道初中数学题,那或许不值一提。但如果它能在 AIME 这类高难度数学竞赛基准上超…

作者头像 李华
网站建设 2026/4/18 5:30:53

基于springboot + vue英语学习平台系统(源码+数据库+文档)

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

作者头像 李华