停车场智能空车位检测系统|YOLOv8 + PyQt5 全流程实战
本项目基于YOLOv8目标检测模型和PyQt5界面,开发了一套智能停车场空车位检测系统。系统可精准识别"已停车辆"和"空车位"两种状态,支持图片、视频、文件夹和实时摄像头等多种输入方式。项目提供完整源码、标注数据集和预训练权重,实现了从数据集构建到可视化应用的全流程解决方案。系统具有高精度、高实时性和易用性等特点,mAP@0.5可达90%以上,为智慧停车管理
停车场智能空车位检测系统|YOLOv8 + PyQt5 全流程实战
项目概述
随着城市机动车数量不断增加,停车难已成为智慧城市建设中的普遍痛点问题。传统的人工巡检或地磁感应方式存在部署复杂、实时性低、维护成本高等缺陷,难以满足现代化智慧停车场的管理需求。
本项目基于 YOLOv8 目标检测模型,实现了一个实时、可视化、工程可落地的停车场空车位检测系统。系统可对监控画面中 已停车辆(Occupied) 和 空车位(Vacant) 进行精确识别,并通过 PyQt5 桌面端界面呈现检测结果,实现图片、视频、文件夹和实时摄像头等多种输入模式的全场景覆盖。
项目提供完整源码、标注数据集、训练权重以及详细部署文档,用户可直接运行或在现有数据基础上进行二次训练,快速搭建智能停车检测原型。
源码下载与效果演示
哔哩哔哩视频下方观看:
https://www.bilibili.com/video/BV1kFrjBQEJv

包含:
📦完整项目源码
📦 预训练模型权重
🗂️ 数据集地址(含标注脚本)
核心功能与技术亮点
1. 双类别停车状态检测
系统通过训练完成的 YOLOv8 模型,实现对停车场目标的双类别识别:
- 已停车辆(Occupied):表示当前车位被占用
- 空车位(Vacant):表示当前车位可供停车
检测结果以彩色框叠加在原始画面上,标注类别与置信度,直观显示车位状态。

2. 多输入源支持
| 输入类型 | 应用场景 |
|---|---|
| 单张图片检测 | 快速验证模型效果 |
| 图片文件夹批量检测 | 批量数据评估与统计分析 |
| 本地视频文件检测 | 模拟监控录像分析 |
| 实时摄像头检测 | 现场实时巡检与智能监控 |
用户可通过 PyQt5 GUI 一键切换,无需修改代码。

3. PyQt5 可视化界面
界面设计直观,核心功能包括:
- 模型权重加载与切换
- 输入源选择与路径管理
- 实时检测结果显示
- 检测日志与车位状态统计
界面简化了操作门槛,即便无深度学习经验的用户,也能轻松完成空车位检测与数据保存。
数据集与训练流程
1. 数据集组织
采用标准 YOLO 格式,包含训练集与验证集:
dataset/
├── images/
│ ├── train/
│ └── val/
├── labels/
│ ├── train/
│ └── val/
每张图片对应 .txt 标签文件,内容示例:
0 0.523 0.341 0.142 0.091
1 0.762 0.432 0.128 0.098
其中,0 = Occupied,1 = Vacant。

2. YOLOv8 模型训练
使用 Ultralytics YOLOv8n 进行迁移训练:
yolo detect train data=parking_dataset.yaml model=yolov8n.pt epochs=100 batch=16 lr0=0.001
训练完成后可生成:
weights/best.pt:最佳模型权重results.png:训练损失及 mAP 曲线confusion_matrix.png:混淆矩阵
当 mAP@0.5 ≥ 90% 时,可直接用于实际部署。
模型推理示例
单图推理
import cv2
from ultralytics import YOLO
# 加载模型
model = YOLO('runs/train/weights/best.pt')
# 推理单张图像
results = model('test_parking.jpg', conf=0.25, save=True)
# 获取保存后的图像
save_path = results[0].save_dir / results[0].path.name
img = cv2.imread(str(save_path))
cv2.imshow('Parking Detection', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
视频与批量推理
- 文件夹批量检测:输出结果图片保存至指定目录
- 视频检测:逐帧识别空车位与车辆状态,并可生成带标注输出视频
- 实时摄像头:支持停车场实时监控与报警触发

系统优势
| 特性 | 优势说明 |
|---|---|
| 高精度 | YOLOv8 提供高可靠性识别准确率 |
| 高实时性 | 推理速度快,可满足实时监控需求 |
| 易用性 | PyQt5 GUI,无需命令行操作即可完成检测 |
| 可复现性 | 数据集、训练脚本、权重、推理程序完整提供 |
| 可扩展性 | 可增加多摄像头协同检测、车位编号绑定或统计分析功能 |
快速部署指南
- 直接运行预训练模型
python main.py
- 自定义训练数据集
yolo detect train data=parking_dataset.yaml model=yolov8n.pt epochs=100 batch=16
- 查看检测结果
- 单图与批量图像:保存于
runs/detect/predict - 视频:输出至用户指定目录
- CSV 日志:统计各车位占用情况

总结
本项目提供了完整的 停车场空车位检测系统,实现了从 数据集构建 → 模型训练 → 推理部署 → 可视化应用 的全流程。
通过 YOLOv8 高效检测能力与 PyQt5 可视化界面,用户可快速识别停车场中空车位和已停车辆,实现高效、实时、直观的停车场管理。
系统可直接开箱使用,也可扩展新功能,如:车位编号绑定、空位统计分析、多摄像头协同感知,以及与智能停车管理系统的数据对接,为智慧停车场景提供完整的工程化解决方案。
更多推荐



所有评论(0)