停车场车位检测系统 深度学习目标检测YOLOV8 无人机停车场停车位检测数据集停车场空闲车位检测数据集项目内容数据集名称停车场空闲车位检测数据集1总图像数量12,416 张训练集Train8,691 张验证集Val2,483 张测试集Test1,242 张数据场景包括雨天、阴天、晴天等多种天气条件下的停车场图片标注格式YOLO 格式.txt文件类别描述空闲车位检测具体类别标签未详细说明通常为free_space或类似标签适用任务停车场车位占用情况检测、智能停车系统开发特点多样化的天气条件下拍摄适合训练鲁棒性强的车位检测模型数据集划分详情表数据集类型图片数量描述总图像数12,416 张包含多种天气条件下的停车场车位图片训练集Train8,691 张主要用于模型训练验证集Val2,483 张用于模型超参数调整及防止过拟合测试集Test1,242 张用于评估模型性能数据集特性总结多样性涵盖了不同天气条件如雨天、阴天、晴天有助于提高模型在各种环境下的泛化能力。实用性直接提供YOLO格式的标注文件.txt便于快速上手进行目标检测模型的训练与评估。规模适中超过12000张图像的数据集规模足够支持深度学习模型的有效训练。此数据集非常适合用于构建和优化停车场车位检测系统特别是对于那些需要处理复杂天气条件的应用场景。如果你还需要进一步的信息或具体的使用指南请随时告知1\✅ 总计 12,416 张图像训练规模大✅ 已划分 train/val/test✅ 覆盖多种天气晴天、阴天、雨天——鲁棒性强✅ 标注为 YOLO 格式可直接用于 YOLOv8 训练使用Ultralytics YOLOv8框架完成以下全流程环境搭建 → 数据准备 → 模型训练 → 推理识别 → 模型评估 → 模型导出部署✅ 一、环境搭建CUDA Anaconda Python 依赖1. 检查 CUDA 驱动nvidia-smi确保 GPU 正常工作推荐 CUDA 11.8 或 12.12. 安装 Anaconda下载地址https://www.anaconda.com/products/distribution3. 创建虚拟环境# 创建环境conda create-nparking_detectionpython3.9# 激活环境conda activate parking_detection4. 安装必要依赖# 安装 PyTorch以 CUDA 11.8 为例pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装 Ultralytics YOLOv8pipinstallultralytics# 其他工具pipinstallopencv-python numpy matplotlib tqdm pillow seaborn pandas✅ 验证安装importtorchprint(torch.__version__)print(torch.cuda.is_available())# 应输出 True 二、数据集结构已标注YOLO 格式建议组织如下parking_dataset/ ├── images/ │ ├── train/ # 8691 张 │ ├── val/ # 2483 张 │ └── test/ # 1242 张 ├── labels/ │ ├── train/ # 对应 .txt │ ├── val/ │ └── test/ └── data.yaml # 需创建⚠️ 确保.txt文件为 YOLO 格式class_id x_center y_center width height归一化坐标 三、创建data.yaml文件# data.yamltrain:parking_dataset/images/trainval:parking_dataset/images/valtest:parking_dataset/images/testnc:1names:[free_space]# 假设你检测的是“空闲车位” 注意如果你的类别是occupied占用车位请改为对应名称若你的数据集同时包含free和occupied两类请设置nc: 2并修改names: [free, occupied]✅ 请根据你的实际标注类别调整names 四、训练代码train.py—— 使用 YOLOv8 官方预训练模型# train.pyfromultralyticsimportYOLOdeftrain_parking_model():# 加载官方预训练模型推荐使用 yolov8m 或 yolov8l 提升精度modelYOLO(yolov8m.pt)# 可换为 yolov8l.pt 获取更高 mAP# 开始训练resultsmodel.train(datadata.yaml,# 指向 data.yamlepochs200,# 大数据集150~200 足够imgsz640,# 可尝试 1280 提升小车位识别能力batch32,# 显存足够可设为 32 或 64nameparking_yolov8m_640,projectruns/parking,device0,# 使用 GPUworkers8,optimizerAdamW,lr00.001,patience30,# 早停30 轮无提升则停止augmentTrue,# 启用数据增强mosaic1.0,# Mosaic 增强提升多场景泛化mixup0.2,# MixUp 增强copy_paste0.3,# Copy-Paste 增强对小目标有效close_mosaic20,# 最后几轮关闭 Mosaiccachedisk,# 缓存图像到磁盘加速训练valTrue,# 每轮都验证fraction1.0# 使用全部数据)print(✅ 训练完成)returnresultsif__name____main__:train_parking_model() 模型保存路径runs/parking/parking_yolov8m_640/weights/best.pt最佳模型last.pt最后一轮 五、推理代码infer.py—— 检测空闲车位# infer.pyfromultralyticsimportYOLOimportcv2defdetect_free_space(model_path,source,conf0.4,imgsz640): 检测图像或视频中的空闲车位 :param model_path: 训练好的模型路径 :param source: 图像路径 / 视频路径 / 摄像头 0 :param conf: 置信度阈值 :param imgsz: 输入尺寸 modelYOLO(model_path)# 支持图像、视频、摄像头resultsmodel(source,confconf,imgszimgsz,streamTrue)forrinresults:im_arrayr.plot()# 绘制边界框和标签imcv2.cvtColor(im_array,cv2.COLOR_RGB2BGR)# 显示或保存ifisinstance(source,str)andsource.endswith((.jpg,.png,.jpeg)):cv2.imwrite(result_parking.jpg,im)print(✅ 结果已保存为 result_parking.jpg)else:cv2.imshow(Parking Free Space Detection,im)ifcv2.waitKey(1)0xFFord(q):breakcv2.destroyAllWindows()if__name____main__:model_pathruns/parking/parking_yolov8m_640/weights/best.pt# 图像检测detect_free_space(model_path,test.jpg)# 视频检测如停车场监控视频# detect_free_space(model_path, parking_video.mp4)# 实时摄像头检测# detect_free_space(model_path, 0) 六、评估代码evaluate.py—— 获取 mAP、Precision、Recall# evaluate.pyfromultralyticsimportYOLOdefevaluate_model():modelYOLO(runs/parking/parking_yolov8m_640/weights/best.pt)metricsmodel.val(datadata.yaml,splittest,# 使用测试集评估batch32,imgsz640,device0,save_jsonTrue,# 生成 COCO 风格 JSON用于进一步分析conf0.001)print(fmAP50:{metrics.box.map50:.4f})print(fmAP50-95:{metrics.box.map:.4f})print(fPrecision:{metrics.box.p:.4f})print(fRecall:{metrics.box.r:.4f})print(fF1-score:{metrics.box.f1.mean():.4f})returnmetricsif__name____main__:evaluate_model() 七、主流程脚本main.py# main.pyimportosdefmain():print( 停车场空闲车位检测系统启动...)print(️ 正在训练模型...)os.system(python train.py)print( 正在评估模型...)os.system(python evaluate.py)print( 正在进行推理测试...)os.system(python infer.py)print(✅ 全流程完成)if__name____main__:main() 八、模型导出ONNX / TensorRT / CoreML用于部署# export.pyfromultralyticsimportYOLO modelYOLO(runs/parking/parking_yolov8m_640/weights/best.pt)model.export(formatonnx,dynamicTrue,simplifyTrue,imgsz640)print(✅ 已导出为 ONNX 模型可用于边缘设备部署如 Jetson、树莓派、IPC)支持格式formatonnx→ ONNX Runtimeformatengine→ TensorRT高性能formatcoreml→ iOSformattflite→ Android / Edge TPU✅ 九、关键建议提升性能与实用性问题建议车位较小或密集使用imgsz1280或启用copy_paste增强雨天反光影响检测在训练中增加 HSV 增强、模糊增强误检地砖、阴影收集负样本加入“no_free”类或后处理过滤部署到停车场摄像头导出为 ONNX 使用 OpenVINO / TensorRT 加速实时性要求高使用yolov8s或yolov8n精度与速度平衡需要统计车位数量在推理代码中添加len(results[0].boxes)统计 十、应用场景智慧停车场管理系统商场/医院/机场车位引导屏无人值守停车场城市级智慧交通平台移动巡检车自动识别空位 预期性能基于 1.2W 高质量图像指标预期值mAP50-95≥ 0.80大数据集 多天气推理速度640p50 FPSRTX 3060可靠性支持雨天、低光照场景可扩展性可扩展为多类别free/occupied/disabled如果你需要我提供Flask Web 系统展示车位状态WebSocket 实时推送空位信息与停车场闸机联动控制自动标注工具用模型预标新图模型量化INT8用于 Jetson Nano欢迎继续提问祝你在智慧城市、智能停车、AIoT领域取得成功