Ultralytics YOLO27:
Get Started

使用 Ultralytics YOLO26 构建停车管理系统#

什么是停车管理系统?#

使用 Ultralytics YOLO26 构建的停车管理系统可实时检测车辆,跟踪各个车位是否被占用或空闲,并实时报告停车场的占用情况。该系统将 YOLO26目标检测与通过 JSON 定义的停车场布局结合起来,让你通过单个视频流或摄像头画面监控整个停车场。



观看: 如何使用 Ultralytics YOLO26 构建停车管理系统 | 实时车位检测 🚗

停车管理系统的优势#

  • 效率:优化车位使用,并减少整个停车场的拥堵。
  • 安全与安保:通过持续监控提高人员和车辆的安全性。
  • 减少排放:管理交通流量,减少停车场内的怠速时间和排放。

实际应用#

停车管理系统停车管理系统
使用 Ultralytics YOLO26 进行停车场分析使用 Ultralytics YOLO26 进行停车场管理俯视图
使用 Ultralytics YOLO26 进行停车场管理航拍视图使用 Ultralytics YOLO26 进行停车场管理俯视图

停车管理系统代码工作流程#

现在选择点位很简单

在停车管理系统中,选择停车位点位是一项关键且复杂的任务。Ultralytics 通过提供“停车位标注器”工具简化了这一流程,你可以用它定义停车区域,以便后续进行进一步处理。

步骤 1: 从要管理停车场的视频或摄像头流中截取一帧。

步骤 2: 使用提供的代码启动图形界面,选择图像,然后通过鼠标点击开始勾勒停车区域并创建多边形。

Ultralytics YOLO 停车位标注器
安装 `tkinter` 的额外步骤

通常,Python 会预先安装 tkinter。如果未安装,可按照以下突出显示的步骤进行安装:

  • Linux:(Debian/Ubuntu):sudo apt install python3-tk
  • Fedora:sudo dnf install python3-tkinter
  • Arch:sudo pacman -S tk
  • Windows:重新安装 Python,并在安装过程中勾选 可选功能 下的 tcl/tk and IDLE 复选框
  • MacOS:从 https://www.python.org/downloads/macos/ 或通过 brew install python-tk 重新安装 Python
from ultralytics import solutions

solutions.ParkingPtsSelection()

步骤 3: 使用多边形定义停车区域后,点击 save,将数据保存为工作目录中的 bounding_boxes.json ——管理脚本将在下方加载同名文件。

Ultralytics YOLO26 点位选择演示

步骤 4: 现在可以使用下面的代码运行停车管理解决方案。

使用 Ultralytics YOLO 进行停车管理
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))
video_writer = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# 初始化停车管理对象
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # 模型文件路径
    json_file="bounding_boxes.json",  # 停车位标注文件路径
)

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    results = parkingmanager(im0)

    # print(results)  # 访问输出

    video_writer.write(results.plot_im)  # 写入处理后的帧。

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # 关闭所有已打开的窗口

ParkingManagement 参数#

下面是 ParkingManagement 参数表:

参数类型默认值说明
modelstrNoneUltralytics YOLO 模型文件的路径。
json_filestrNone包含所有停车位坐标数据的 JSON 文件路径。
line_widthint2解决方案绘制的框、关键点和计数的线条粗细。
verboseboolTrue启用逐帧日志,记录输入形状、类别计数和处理速度。跟踪调用本身始终不会输出日志。

ParkingManagement 解决方案支持使用多个 track 参数:

参数类型默认值说明
trackerstr'tracktrack.yaml'指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。
conffloat0.25设置检测的置信度阈值;较低的值允许跟踪更多物体,但可能会包含误检。
ioufloat0.7设置用于筛除重叠检测结果的交并比 (IoU) 阈值。
classeslistNone按类别索引筛选结果。例如,classes=[0, 2, 3] 只跟踪指定类别。
devicestrNone指定推理设备(例如 cpu、cuda:0 或 0)。用户可以选择 CPU、特定 GPU 或其他计算设备来运行模型。
imgszint or tuple640目标推理图像尺寸:正方形图像使用整数,或使用 (height, width) 对。图像尺寸会调整为模型步幅的整数倍。
max_detint300跟踪前每帧保留的最大检测数量,用于限制解决方案在密集场景中处理的物体数量。
quantizeint or strNone推理精度:对于非 CPU 上运行的 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/unset (FP32) 进行选择;其他格式使用其模型文件和运行时所选的精度。此参数替代已弃用的 half 参数。

此外,还支持以下可视化选项:

参数类型默认值说明
showboolFalse如果 True,则在窗口中显示带标注的图像或视频。适用于在开发或测试期间即时查看结果。

常见问题#

  • Ultralytics YOLO26 为停车系统提供实时车辆检测和监控,可优化车位使用、减少拥堵,并通过持续监控提高安全性。在实时摄像头画面上运行还有助于管理交通流量并减少车辆怠速时间。完整设置请参阅停车管理代码工作流程。

  • 使用 Ultralytics YOLO26 实现智能停车有诸多好处:

    • 效率:优化车位使用并减少拥堵。
    • 安全与安保:加强监控,保障车辆和行人的安全。
    • 环境影响:通过减少车辆怠速时间来帮助降低排放。请在停车管理系统的优势部分了解更多好处。
  • 使用 Ultralytics YOLO26 定义停车位很简单:

    1. 从视频或摄像头流中截取一帧。
    2. 使用提供的代码启动 GUI,选择图像并绘制多边形来定义停车位。
    3. 将标注数据保存为 JSON 格式,以便进一步处理。详细说明请查看上文的点位选择部分。
  • 最需要根据停车场具体情况调整的设置是 json_file:将它指向你使用点位标注器创建的停车区域 JSON 文件,即可适配新的布局。你还可以通过其他参数进一步调整:将 model 设为自定义训练的检测器,将检测范围限制为特定车辆 classes,调整 conf 和 iou 阈值,切换 tracker,使用 line_width 调整画面标签和占用情况读数的大小,或选择推理 device。如需了解基于区域的相关监控,请参阅目标计数指南。

  • Ultralytics YOLO26 用于各种现实世界的停车场管理场景,包括:

    • 车位检测:准确识别空闲和已占用的车位。
    • 监控:通过实时监控提升安全性。
    • 交通流管理:通过高效的交通管控减少空闲时间和拥堵。展示这些应用的图片可在现实世界应用中查看。

评论