使用 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 通过提供“停车位标注工具”简化了这一过程,你可以使用它定义停车场区域,以便后续进行其他处理。
步骤 1: 从你要管理停车场的视频或摄像头流中截取一帧画面。
步骤 2: 使用提供的代码启动图形界面,在其中选择图像,然后通过鼠标点击开始勾勒停车区域以创建多边形。
Ultralytics YOLO 停车位标注工具
安装 `tkinter` 的其他步骤
通常,tkinter 会随 Python 一起预装。不过,如果没有预装,你可以按照以下突出显示的步骤进行安装:
- 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/ 重新安装 Python,或使用
brew install python-tk
from ultralytics import solutions
solutions.ParkingPtsSelection()步骤 3: 使用多边形定义停车区域后,点击 save,将数据以 bounding_boxes.json 的形式存储在工作目录中——管理脚本将在下方加载同名文件。

步骤 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 windowsParkingManagement 参数#
下面是 ParkingManagement 参数表:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | None | Ultralytics YOLO 模型文件的路径。 |
json_file | str | None | 包含所有停车坐标数据的 JSON 文件路径。 |
line_width | int | 2 | 解决方案绘制的框、关键点和计数的线条粗细。 |
verbose | bool | True | 启用解决方案逐帧记录输入形状、类别计数和处理速度的日志。跟踪调用本身始终保持静默。 |
ParkingManagement 解决方案支持使用多个 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,则会在窗口中显示带标注的图像或视频。适用于开发或测试期间获取即时视觉反馈。 |
常见问题#
使用 Ultralytics YOLO26 进行智能停车可带来诸多优势:
- 效率:优化停车位的使用情况,减少拥堵。
- 安全与安保:增强监控能力,确保车辆和行人的安全。
- 环境影响:通过最大限度地减少车辆怠速时间来帮助降低排放。你可以在停车管理系统的优势部分中了解更多优势。
使用 Ultralytics YOLO26 定义停车位非常简单:
- 从视频或摄像头流中截取一帧画面。
- 使用提供的代码启动 GUI,选择图像并绘制多边形来定义停车位。
- 将标注数据以 JSON 格式保存,以便进一步处理。有关完整说明,请参阅上面的点位选择部分。
Ultralytics YOLO26 可用于停车场管理中的各种实际应用,包括:
- 停车位检测:准确识别空闲和已占用的停车位。
- 监控:通过实时监控增强安保能力。
- 交通流管理:通过高效处理交通来减少怠速时间和拥堵。这些应用的示例图像可在实际应用中找到。

