Ultralytics YOLO27:

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

什么是停车管理系统?#

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



Watch: How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗

停车管理系统的优势#

  • 效率:优化停车位的使用情况,减少整个停车场的拥堵。
  • 安全与安保:通过持续监控提升人员和车辆的安全性。
  • 减少排放:管理交通流,最大限度地减少停车场中的怠速时间和排放。

实际应用#

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

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

现在可以轻松选择点位

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

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

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

Ultralytics YOLO 停车位标注工具
安装 `tkinter` 的其他步骤

通常,tkinter 会随 Python 一起预装。不过,如果没有预装,你可以按照以下突出显示的步骤进行安装:

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

solutions.ParkingPtsSelection()

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

Ultralytics YOLO26 点位选择演示

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

使用 Ultralytics YOLO 进行停车管理
import cv2

from ultralytics import solutions

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

# Initialize parking management object
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # path to model file
    json_file="bounding_boxes.json",  # path to parking annotations file
)

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

    results = parkingmanager(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

ParkingManagement 参数#

下面是 ParkingManagement 参数表:

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

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

参数类型默认值描述
trackerstr'botsort.yaml'指定要使用的跟踪算法。内置选项:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25设置检测的置信度阈值;较低的值允许跟踪更多对象,但可能包含误报。
ioufloat0.7设置用于过滤重叠检测结果的交并比(IoU)阈值。
classeslistNone按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定类别。
devicestrNone指定推理设备(例如 cpucuda:00)。允许用户在 CPU、特定 GPU 或其他计算设备之间进行选择,以执行模型。
imgszint or tuple640目标推理图像大小:用于正方形的整数或 (height, width) 对。形状会根据模型步长进行调整。
max_detint300在跟踪前每帧保留的最大检测数,用于限制解决方案在密集场景中处理的对象数量。
quantizeint or strNone推理精度:针对 PyTorch 和 TorchScript 模型,使用 16 (FP16) 或 32/不设置 (FP32);其他格式则在其工件和运行时选择的精度下进行计算。它替代了已弃用的 half 标志。

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

参数类型默认值描述
showboolFalse如果为 True,则会在窗口中显示带标注的图像或视频。适用于开发或测试期间获取即时视觉反馈。

常见问题#

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

  • 使用 Ultralytics YOLO26 进行智能停车可带来诸多优势:

    • 效率:优化停车位的使用情况,减少拥堵。
    • 安全与安保:增强监控能力,确保车辆和行人的安全。
    • 环境影响:通过最大限度地减少车辆怠速时间来帮助降低排放。你可以在停车管理系统的优势部分中了解更多优势。
  • 使用 Ultralytics YOLO26 定义停车位非常简单:

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

  • Ultralytics YOLO26 可用于停车场管理中的各种实际应用,包括:

    • 停车位检测:准确识别空闲和已占用的停车位。
    • 监控:通过实时监控增强安保能力。
    • 交通流管理:通过高效处理交通来减少怠速时间和拥堵。这些应用的示例图像可在实际应用中找到。

评论