使用 Ultralytics YOLO26 进行队列管理#
什么是队列管理?#
使用 Ultralytics YOLO26 进行队列管理,包括组织和控制人员或车辆队列,以减少等待时间并提高效率。其目标是在零售店、银行、机场和医疗机构等各种场景中优化队列,从而提升客户满意度和系统性能。
Watch: How to Build a Queue Management System with Ultralytics YOLO26 | Real-Time Queue Analytics 🚀
队列管理的优势#
- 减少等待时间: 队列管理系统能够高效组织队列,最大限度地缩短客户等待时间。这样可以让客户减少等待、增加与产品或服务的互动时间,从而提升满意度。
- 提高效率: 实施队列管理可以帮助企业更有效地分配资源。通过分析队列数据并优化人员配置,企业可以简化运营流程、降低成本并提高整体生产力。
- 实时洞察: 由 YOLO26 驱动的队列管理可以即时提供队列长度和等待时间数据,帮助管理者快速做出明智决策。
- 提升客户体验: 通过减少长时间等待带来的挫败感,企业可以显著提高客户满意度和忠诚度。
实际应用#
| 物流 | 零售 |
|---|---|
![]() | ![]() |
| 使用 Ultralytics YOLO26 管理机场售票柜台的队列 | 使用 Ultralytics YOLO26 监控人群中的队列 |
使用 YOLO26 管理队列#
QueueManager 解决方案会统计每一帧中仍处于指定区域内的对象数量,从而实时获取队列长度,并将其写入输出视频。传入一个覆盖等待区域的多边形区域,然后通过 Python API 或 CLI 对视频源运行该解决方案。
# 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)]"QueueManager 参数#
下面是 QueueManager 参数表:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
region | list 或 dict | None | 定义感兴趣区域的点,可以是 (x, y) 元组列表,也可以是将区域名称映射到多区域点列表的字典(仅限 RegionCounter)。当 None 时,需要区域的解决方案会回退到预定义的默认区域。 |
line_width | int | 2 | 解决方案绘制的框、关键点和计数的线条粗细。 |
verbose | bool | True | 启用解决方案逐帧记录输入形状、类别计数和处理速度的日志。跟踪调用本身始终保持静默。 |
该 QueueManager 解决方案还支持 track 参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测结果的交并比(IoU)阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定类别。 |
device | str | None | 指定推理设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。 |
imgsz | int or tuple | 640 | 目标推理图像大小:用于正方形的整数或 (height, width) 对。形状会根据模型步长进行调整。 |
max_det | int | 300 | 在跟踪前每帧保留的最大检测数,用于限制解决方案在密集场景中处理的对象数量。 |
quantize | int or str | None | 推理精度:针对 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/不设置 (FP32);其他格式则在其工件和运行时选择的精度下进行计算。它替代了已弃用的 half 标志。 |
此外,还提供以下可视化参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则会在窗口中显示带标注的图像或视频。适用于开发或测试期间获取即时视觉反馈。 |
show_conf | bool | True | 在每个检测结果旁显示其置信度分数,让你了解模型对每个检测结果的确定程度。 |
show_labels | bool | True | 在可视化输出中显示每个检测结果的标签,帮助你立即了解检测到的对象。 |
实现策略#
使用 YOLO26 实施队列管理时,请考虑以下最佳实践:
- 合理布置摄像头: 调整摄像头位置,确保能够捕捉整个队列区域且不受遮挡。
- 定义合适的队列区域: 根据空间的实际布局,仔细设置队列边界。
- 调整检测置信度: 根据光照条件和人群密度微调置信度阈值。
- 与现有系统集成: 将队列管理解决方案连接到数字标牌或员工通知系统,以实现自动响应。
常见问题#
要使用 Ultralytics YOLO26 进行实时队列管理,你可以按照以下步骤操作:
- 使用
YOLO("yolo26n.pt")加载 YOLO26 模型。 - 使用
cv2.VideoCapture获取视频流。 - 定义用于队列管理的感兴趣区域 (ROI)。
- 处理视频帧以检测对象并管理队列。
以下是一个最小示例:
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="yolo26n.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 Platform,你可以通过一个易于使用的平台部署和管理队列管理解决方案,从而简化这一流程。
- 使用
使用 Ultralytics YOLO26 进行队列管理具有以下优势:
- 大幅缩短等待时间: 高效组织队列,减少客户等待时间并提升满意度。
- 提高效率: 分析队列数据以优化人员配置和运营流程,从而降低成本。
- 实时提醒: 针对过长队列提供实时通知,以便快速采取干预措施。
- 可扩展性: 可轻松扩展到零售店、机场和医疗机构等不同环境。
如需了解更多详情,请查看我们的队列管理解决方案。
在队列管理方面,Ultralytics YOLO26 相比 TensorFlow 和 Detectron2 具有以下优势:
- 实时性能: YOLO26 以实时检测能力著称,能够提供更快的处理速度。
- 易于使用: Ultralytics 通过 Ultralytics Platform 提供从训练到部署的友好使用体验。
- 预训练模型: 提供一系列预训练模型,减少设置所需的时间。
- 社区支持: 完善的文档和活跃的社区支持让问题解决更加容易。
了解如何开始使用 Ultralytics YOLO。
可以,Ultralytics YOLO26 能够管理多种类型的队列,包括机场和零售环境中的队列。通过为 QueueManager 配置特定区域和设置,YOLO26 可以适应不同的队列布局和人群密度。
机场示例:
queue_region_airport = [(50, 600), (1200, 600), (1200, 550), (50, 550)] queue_airport = solutions.QueueManager( model="yolo26n.pt", region=queue_region_airport, line_width=3, )如需了解更多不同应用的信息,请查看我们的实际应用部分。
Ultralytics YOLO26 可用于多种队列管理实际应用:
- 零售: 监控收银队列,减少等待时间并提高客户满意度。
- 机场: 管理售票柜台和安检点的队列,为乘客提供更顺畅的出行体验。
- 医疗: 优化诊所和医院的患者流动。
- 银行: 通过高效管理银行中的队列,提升客户服务水平。
查看我们的实际队列管理博客,详细了解计算机视觉如何改变各行业的队列监控。

