使用 Ultralytics YOLO26 构建停车场管理系统 🚀#
什么是停车场管理系统?#
使用 Ultralytics YOLO26 构建的停车管理系统可实时检测车辆,以跟踪哪些停车位已被占用或可用,然后报告实时的停车场占用情况。它将 YOLO26 object detection 与 JSON 定义的停车布局相结合,让你可以从单个视频流或摄像头画面监控整个停车场。
Watch: How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗
停车管理系统的优势#
- 效率:优化停车位的使用,减少停车场内的拥堵。
- 安全与安保:通过持续监控提高人员和车辆的安全。
- 减少排放:管理交通流量,最大限度地减少停车场内的怠速时间和尾气排放。
现实世界应用#
| 停车管理系统 | 停车管理系统 |
|---|---|
![]() | ![]() |
| 使用 Ultralytics YOLO26 的停车管理航拍视角 | 使用 Ultralytics YOLO26 的停车管理俯视视角 |
停车管理系统代码工作流#
点位选择现在变得简单了
选择停车点位在停车管理系统中是一项关键且复杂的任务。Ultralytics 提供了一个“停车位标注器”(Parking slots annotator)工具,通过它可以定义停车场区域,从而简化了这一流程,这些区域后续可用于进一步处理。
第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 并在安装过程中的可选功能 (Optional Features) 上勾选复选框
tcl/tk and IDLE - MacOS: 从 https://www.python.org/downloads/macos/ 重新安装 Python 或使用
brew install python-tk
from ultralytics import solutions
solutions.ParkingPtsSelection()第三步: 用多边形定义停车区域后,点击 save 将数据作为 bounding_boxes.json 存储在你的工作目录中——即下方管理脚本加载的文件名。

第四步: 你现在可以使用以下代码运行停车管理 solution。
使用 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 文件路径。 |
ParkingManagement 解决方案允许使用几个 track 参数:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 指定要使用的跟踪算法。内置选项:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.1 | 设置检测的置信度阈值;较低的值允许跟踪更多的对象,但也可能包含误报。 |
iou | float | 0.7 | 设置用于过滤重叠检测结果的交并比 (IoU) 阈值。 |
classes | list | None | 按类别索引过滤结果。例如,classes=[0, 2, 3] 仅跟踪指定的类别。 |
verbose | bool | True | 控制跟踪结果的显示,提供被跟踪对象的视觉输出。 |
device | str | None | 指定用于推理的设备(例如 cpu、cuda:0 或 0)。允许用户在 CPU、特定的 GPU 或用于模型执行的其他计算设备之间进行选择。 |
此外,还支持以下可视化选项:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
show | bool | False | 如果为 True,则在窗口中显示带注释的图像或视频。对于开发或测试期间的即时视觉反馈非常有用。 |
line_width | int or None | None | 指定边界框的线条宽度。如果为 None,则线条宽度会根据图像大小自动调整。提供视觉定制以提高清晰度。 |
常见问题解答#
使用 Ultralytics YOLO26 进行智能停车有许多好处:
- 效率:优化停车位使用并减少拥堵。
- 安全与安保:加强监控,确保车辆和行人的安全。
- 环境影响:通过尽量减少车辆怠速时间来帮助减少排放。在停车管理系统优势部分探索更多益处。
使用 Ultralytics YOLO26 定义停车位非常简单:
- 从视频或摄像机流中截取一帧。
- 使用提供的代码启动图形界面(GUI),选择图像并绘制多边形以定义停车位。
- 将标注好的数据以 JSON 格式保存以便进一步处理。有关完整说明,请查阅上方的点位选择部分。
Ultralytics YOLO26 在停车场管理的各种现实应用中都有所利用,包括:
- 停车位检测:准确识别可用和已占用的停车位。
- 监控:通过实时监控增强安全性。
- 交通流管理:通过高效的交通处理减少怠速时间和拥堵。展示这些应用的图片可以在真实世界应用中找到。

