(来源:OpenCV与AI深度学习)

视觉/图像重磅干货,第一时间送达!

计算机视觉领域正在迅速发展,尤其是随着生成式人工智能的出现,它正在推动该领域的进一步发展。当我们考虑检测物体时,通常首先想到的是物体检测。但为了获得更好的结果,应该考虑使用物体跟踪。这种方法不仅可以检测物体,还可以随着时间的推移跟踪它们,为每个物体分配唯一的 ID,以获得更准确、更全面的结果。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

什么是 TrackZone?

顾名思义,区域内跟踪对象是一种 Ultralytics解决方案,旨在关注帧内的特定区域,以优化跟踪过程。

这种方法仅处理帧的一部分而不是分析整个帧,从而显著提高了跟踪速度。

打开网易新闻 查看精彩图片

您可以将Ultralytics支持的任何模型与 TrackZone 一起使用。

TrackZone 的应用

TrackZone 可在各个行业中广泛应用,实现高效的对象跟踪:

  • 智能交通管理:它可以跟踪车辆并预测停车位或公交车站等特定区域内的交通拥堵情况,而不是监控整条道路。

  • 零售和库存管理:它可以监控特定区域(例如零售货架),以有效跟踪商品。由于零售商场摄像头通常不是专门为货架监控而安装的,因此您可以只关注所需区域,而不是分析整个画面。

  • 生产线监控:在生产线场景中,它可用于仅监控活跃的生产区域而不是整个框架,确保在最需要的地方进行精确的跟踪。

代码演示

让我们深入研究代码!Ultralytics 在 Python 中提供 TrackZone 功能,您也可以通过 CLI 使用单行命令轻松执行它。

对于每个解决方案,您都需要配置视频路径,并且(可选)还要配置模型文件。这同样适用于 TrackZone:只需指定视频路径,如果需要,您还可以包含模型文件路径。但是,这是可选的,因为yolo11n.pt将使用默认模型进行处理。

import cv2from ultralytics import solutionscap = cv2.VideoCapture("path/to/video/file.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 pointsregion_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]# Video writervideo_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",  # i.e. YOLOv8, YOLOv9, YOLOv10, YOLO11    # line_width=2,  # line width for bounding boxes and text display    # classes=[0, 2],  # count specific classes i.e. person and car.)# Process videowhile cap.isOpened():    success, im0 = cap.read()    if not success:        break    im0 = trackzone.trackzone(im0)    video_writer.write(im0)cap.release()video_writer.release()cv2.destroyAllWindows()

CLI(命令行界面)与 Python 类似,您可以使用 、 等参数配置 TrackZone 解决方案region。可以在参数source部分找到可用参数的完整列表。

# Run a trackzone exampleyolo solutions trackzone show=True# Pass a source videoyolo solutions trackzone show=Truesource="path/to/video/file.mp4"# Pass region coordinatesyolo solutions trackzone show=True \region=[(150, 150), (1130, 150), (1130, 570), (150, 570)]

打开网易新闻 查看精彩图片

TrackZone 的优势

与传统的对象跟踪模块相比,TrackZone 具有多种优势,其中最重要的优势如下所述。

  • 速度:通过仅处理帧的特定部分,与需要跟踪整个帧内对象的传统对象跟踪相比,它可以提供更快的速度。

  • 准确度:TrackZone 通过聚焦画面的裁剪和放大区域来提高准确度。这使模型能够更有效地检测和跟踪指定区域内的物体。

  • 边缘设备兼容性:TrackZone 可以在NVIDIA Jetson等低功耗边缘设备上表现良好,这使其非常适合物联网系统。