跳转至内容

使用 Ultralytics YOLO11 进行队列管理 🚀

什么是队列管理?

在 Colab 中打开队列管理

使用 Ultralytics YOLO11 进行队列管理包括组织和控制人员或车辆的队伍,以减少等待时间并提高效率。它旨在优化队列,以提高零售、银行、机场和医疗机构等各种环境中的客户满意度和系统性能。



观看: 如何使用 Ultralytics YOLO11 实现队列管理 | 机场和地铁站

队列管理的优势

  • 减少等待时间: 队列管理系统有效地组织队列,从而最大限度地减少客户的等待时间。由于客户花费更少的时间等待,而有更多的时间参与产品或服务,因此可以提高满意度。
  • 提高效率: 实施队列管理使企业能够更有效地分配资源。通过分析队列数据和优化人员部署,企业可以简化运营、降低成本并提高整体生产力。
  • 实时洞察: YOLO11 驱动的队列管理提供关于队列长度和等待时间的即时数据,使管理人员能够快速做出明智的决策。
  • 增强的客户体验: 通过减少与长时间等待相关的挫败感,企业可以显著提高客户满意度和忠诚度。

实际应用

物流 零售业
使用 Ultralytics YOLO11 在机场售票柜台进行队列管理 使用 Ultralytics YOLO11 进行人群队列监控
使用 Ultralytics YOLO11 在机场售票柜台进行队列管理 人群中的队列监控 Ultralytics YOLO11

使用 Ultralytics YOLO 进行队列管理

# Run a queue example
yolo solutions queue show=True

# Pass a source video
yolo solutions queue source="path/to/video.mp4"

# Pass queue coordinates
yolo solutions queue region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# 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("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Define queue points
queue_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]  # region points
# queue_region = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]    # polygon points

# Initialize queue manager object
queuemanager = solutions.QueueManager(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file
    region=queue_region,  # pass queue region points
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = queuemanager(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

QueueManager 参数

这是一个包含以下内容的表格 QueueManager 参数:

参数 类型 默认值 描述
model str None Ultralytics YOLO 模型文件的路径。
region list '[(20, 400), (1260, 400)]' 定义计数区域的点列表。

字段 QueueManagement 解决方案也支持一些 track 参数:

参数 类型 默认值 描述
tracker str 'botsort.yaml' 指定要使用的跟踪算法,例如: bytetrack.yamlbotsort.yaml.
conf float 0.3 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。
iou float 0.5 设置用于过滤重叠检测的 Intersection over Union (IoU) 阈值。
classes list None 按类别索引过滤结果。例如, classes=[0, 2, 3] 仅跟踪指定的类别。
verbose bool True 控制跟踪结果的显示,提供被跟踪对象的可视化输出。
device str None 指定用于推理的设备(例如, cpu, cuda:00)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。

此外,还提供以下可视化参数:

参数 类型 默认值 描述
show bool False 可视化参数: True,则在窗口中显示带注释的图像或视频。这对于开发或测试期间的即时视觉反馈非常有用。
line_width None or int None 指定边界框的线条宽度。 如果 None,则线条宽度会根据图像大小自动调整。 提供视觉自定义以提高清晰度。
show_conf bool True 在标签旁边显示每个检测的置信度分数。 可以深入了解模型对每次检测的确定性。
show_labels bool True 在可视化输出中显示每个检测的标签。 能够立即理解检测到的对象。

实施策略

在使用YOLO11实施队列管理时,请考虑以下最佳实践:

  1. 战略性摄像头位置: 放置摄像头以捕捉整个队列区域,且无遮挡。
  2. 定义合适的队列区域: 根据您的物理空间布局仔细设置队列边界。
  3. 调整检测置信度: 根据照明条件和人群密度微调置信度阈值。
  4. 与现有系统集成: 将您的队列管理解决方案与数字标牌或员工通知系统连接,以实现自动响应。

常见问题

如何使用 Ultralytics YOLO11 进行实时队列管理?

要使用 Ultralytics YOLO11 进行实时队列管理,您可以按照以下步骤操作:

  1. 使用以下方法加载 YOLO11 模型 YOLO("yolo11n.pt").
  2. 使用以下方式捕获视频源 cv2.VideoCapture.
  3. 定义队列管理的感兴趣区域 (ROI)。
  4. 处理帧以检测对象并管理队列。

这是一个最小的例子:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
queue_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

queuemanager = solutions.QueueManager(
    model="yolo11n.pt",
    region=queue_region,
    line_width=3,
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if success:
        results = queuemanager(im0)

cap.release()
cv2.destroyAllWindows()

利用 Ultralytics HUB 可以通过为部署和管理您的队列管理解决方案提供用户友好的平台来简化此过程。

使用 Ultralytics YOLO11 进行队列管理的主要优势是什么?

使用 Ultralytics YOLO11 进行队列管理具有以下几个优势:

  • 等待时间骤降:高效地组织队列,减少客户等待时间并提高满意度。
  • 提高效率: 分析队列数据以优化人员部署和运营,从而降低成本。
  • 实时警报: 为长时间排队提供实时通知,从而能够快速干预。
  • 可扩展性: 易于在零售、机场和医疗保健等不同环境中扩展。

有关更多详细信息,请浏览我们的队列管理解决方案。

对于队列管理,与 TensorFlow 或 Detectron2 等竞争对手相比,为什么我应该选择 Ultralytics YOLO11?

在队列管理方面,Ultralytics YOLO11 比 TensorFlow 和 Detectron2 具有以下几个优势:

  • 实时性能: YOLO11 以其实时检测能力而闻名,可提供更快的处理速度。
  • 易于使用: Ultralytics 通过 Ultralytics HUB 提供从训练到部署的用户友好体验。
  • 预训练模型: 可以访问一系列预训练模型,从而最大限度地减少设置所需的时间。
  • 社区支持: 丰富的文档和活跃的社区支持使问题解决更加容易。

了解如何开始使用 Ultralytics YOLO

Ultralytics YOLO11可以处理多种类型的队列,例如在机场和零售场所吗?

是的,Ultralytics YOLO11 可以管理各种类型的队列,包括机场和零售环境中的队列。通过使用特定区域和设置配置 QueueManager,YOLO11 可以适应不同的队列布局和密度。

机场示例:

queue_region_airport = [(50, 600), (1200, 600), (1200, 550), (50, 550)]
queue_airport = solutions.QueueManager(
    model="yolo11n.pt",
    region=queue_region_airport,
    line_width=3,
)

有关各种应用的更多信息,请查看我们的实际应用部分。

Ultralytics YOLO11 在队列管理中有哪些实际应用?

Ultralytics YOLO11 被广泛应用于各种实际场景中的队列管理:

  • 零售: 监控结账队伍,以减少等待时间并提高客户满意度。
  • 机场: 管理售票柜台和安检站的队列,从而提供更顺畅的乘客体验。
  • 医疗保健: 优化诊所和医院的患者流量。
  • 银行: 通过有效管理银行的队列来增强客户服务。

请查看我们的关于实际队列管理的博客,以了解更多关于计算机视觉如何改变各行业队列监控的信息。



📅 创建于 1 年前 ✏️ 更新于 26 天前

评论