停车场智能空车位检测系统|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 = Occupied1 = 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,无需命令行操作即可完成检测
可复现性 数据集、训练脚本、权重、推理程序完整提供
可扩展性 可增加多摄像头协同检测、车位编号绑定或统计分析功能

快速部署指南

  1. 直接运行预训练模型
python main.py
  1. 自定义训练数据集
yolo detect train data=parking_dataset.yaml model=yolov8n.pt epochs=100 batch=16
  1. 查看检测结果
  • 单图与批量图像:保存于 runs/detect/predict
  • 视频:输出至用户指定目录
  • CSV 日志:统计各车位占用情况

在这里插入图片描述

总结

本项目提供了完整的 停车场空车位检测系统,实现了从 数据集构建 → 模型训练 → 推理部署 → 可视化应用 的全流程。

通过 YOLOv8 高效检测能力与 PyQt5 可视化界面,用户可快速识别停车场中空车位和已停车辆,实现高效、实时、直观的停车场管理

系统可直接开箱使用,也可扩展新功能,如:车位编号绑定、空位统计分析、多摄像头协同感知,以及与智能停车管理系统的数据对接,为智慧停车场景提供完整的工程化解决方案。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐