Skip to content

使用Ultralytics YOLO11进行队列管理 🚀

什么是队列管理?

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



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

队列管理的优点?

  • 减少等待时间: 队列管理系统有效地组织队列,最大限度地减少客户的等待时间。这导致满意度水平的提高,因为客户花费更少的时间等待,更多的时间与产品或服务互动。
  • 提高效率: 实施队列管理使企业能够更有效地分配资源。通过分析队列数据和优化员工部署,企业可以简化运营,降低成本,并提高整体生产力。

现实世界应用

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

使用YOLO11进行队列管理示例

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("Path/to/video/file.mp4")

assert cap.isOpened(), "错误读取视频文件"
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))

queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    model="yolo11n.pt",
    region=queue_region,
)

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

    if success:
        out = queue.process_queue(im0)
        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("视频帧为空或视频处理已成功完成。")
    break

cap.release()
cv2.destroyAllWindows()

```python import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("Path/to/video/file.mp4")

assert cap.isOpened(), "错误读取视频文件" 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))

queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager( model="yolo11n.pt", classes=3,

``` )

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

        if success:
            out = queue.process_queue(im0)
            video_writer.write(im0)
            if cv2.waitKey(1) & 0xFF == ord("q"):
                break
            continue

        print("视频帧为空或视频处理已成功完成。")
        break

    cap.release()
    cv2.destroyAllWindows()
    ```

参数 QueueManager

名称 类型 默认值 描述
model str None Ultralytics YOLO 模型文件路径
region list [(20, 400), (1260, 400)] 定义队列区域的点列表。
line_width int 2 边界框的线条厚度。
show bool False 控制是否显示视频流的标志。

参数 model.track

参数 类型 默认值 描述
source str None 指定图像或视频的源目录。支持文件路径和URL。
persist bool False 启用帧间对象的持续跟踪,在视频序列中保持ID一致。
tracker str botsort.yaml 指定要使用的跟踪算法,例如 bytetrack.yamlbotsort.yaml
conf float 0.3 设置检测的置信度阈值;较低的值允许更多对象被跟踪,但可能包含误报。
iou float 0.5 设置用于过滤重叠检测的交并比 (IoU) 阈值。
classes list None 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。
verbose bool True 控制跟踪结果的显示,提供被跟踪对象的视觉输出。

常见问题

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

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

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

以下是一个最小示例:

import cv2

from ultralytics import solutions

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

queue = solutions.QueueManager(
    model="yolo11n.pt",
    region=queue_region,
    line_width=3,
)

while cap.isOpened():
    success, im0 = cap.read()
    if success:
        out = queue.process_queue(im0)
        cv2.imshow("Queue Management", im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break

cap.release()
cv2.destroyAllWindows()

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

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

使用 Ultralytics YOLO11 进行队列管理提供了几个优势:

  • 减少等待时间: 有效组织队列,减少客户等待时间并提高满意度。
  • 提高效率: 分析队列数据以优化员工部署和运营,从而降低成本。
  • 实时警报: 提供长队列的实时通知,实现快速干预。
  • 可扩展性: 轻松扩展到零售、机场和医疗保健等不同环境。

更多详情,请浏览我们的 Queue Management 解决方案。

为什么我应该选择 Ultralytics YOLO11 而不是 TensorFlow 或 Detectron2 进行队列管理?

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,
)

更多关于多样化应用的信息,请查看我们的 Real World Applications 部分。

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

Ultralytics YOLO11 在各种实际应用中用于队列管理:

  • 零售: 监控收银线以减少等待时间并提高客户满意度。
  • 机场: 管理售票柜台和安检点的队列,提供更顺畅的乘客体验。
  • 医疗保健: 优化诊所和医院的患者流动。
  • 银行: 通过高效管理排队提升银行客户服务。

了解更多信息,请查看我们的关于现实世界排队管理的博客


📅 Created 6 months ago ✏️ Updated 5 days ago

Comments