停车位识别数据集 图片数量12416张YOLO,xml和txt标签都有; 2类类别:space-empty,space-occupied;

embedded/2024/10/18 22:31:11/

 

YOLO停车位识别 图片数量12416张,xml和txt标签都有; 2类类别:space-empty,space-occupied;

用于yolo,Python,目标检测,机器学习,人工智能,深度学习,停车场空位检测,停车场空位识别,智慧停车场

包含从监控摄像头帧中提取的 12,416 张停车场图像。有晴天、阴天和雨天的图像,并且停车位被标记为已占用或空置 

停车位识别数据集介绍

数据集名称

YOLO停车位识别数据集 (YOLO Parking Space Detection Dataset)

数据集概述

本数据集是一个专门用于训练和评估停车位识别模型的数据集,特别适用于基于YOLO(You Only Look Once)系列的目标检测任务。数据集包含12,416张高分辨率的停车场图像,这些图像从监控摄像头帧中提取,并且涵盖了不同天气条件下的场景(晴天、阴天和雨天)。每张图像都标注了停车位的状态,分为“空闲”(space-empty)和“已占用”(space-occupied)两类。数据集提供了XML和TXT两种格式的标注文件,方便用户根据需要选择。

数据集特点
  • 大规模:包含12,416张高分辨率图像,适合深度学习模型的训练。
  • 多样化天气条件:图像涵盖晴天、阴天和雨天等多种天气条件,提高了模型的鲁棒性。
  • 详细标注:每张图像都有详细的标注信息,包括停车位的位置和状态(空闲或已占用)。
  • 多种标注格式:提供XML和TXT两种标注格式,便于不同工具和框架的使用。
  • 适用广泛:适用于目标检测、机器学习、人工智能、深度学习等领域的研究和应用,特别是停车场空位检测和智慧停车场系统。
数据集结构
parking_space_detection_dataset/
├── images/                           # 图像文件
│   ├── 00001.jpg                     # 示例图像
│   ├── 00002.jpg
│   └── ...
├── labels_xml/                       # XML标注文件
│   ├── 00001.xml                     # 示例标注
│   ├── 00002.xml
│   └── ...
├── labels_txt/                       # TXT标注文件
│   ├── 00001.txt                     # 示例标注
│   ├── 00002.txt
│   └── ...
├── data.yaml                         # 类别描述文件
└── README.md                         # 数据集说明
数据集内容
  1. images/

    • 功能:存放图像文件。
    • 内容
      • 12,416张高分辨率的停车场图像,涵盖不同天气条件下的场景。
  2. labels_xml/

    • 功能:存放XML格式的标注文件。
    • 内容
      • 每张图像对应的XML标注文件,包含停车位的位置和状态信息。
  3. labels_txt/

    • 功能:存放TXT格式的标注文件。
    • 内容
      • 每张图像对应的TXT标注文件,适用于YOLO系列模型的训练。
  4. data.yaml

    • 功能:定义数据集的类别和其他相关信息。
    • 内容
      train: ./images/train
      val: ./images/val
      nc: 2
      names: ['space-empty', 'space-occupied']
  5. README.md

    • 功能:数据集的详细说明文档。
    • 内容
      • 数据集的来源和用途。
      • 数据集的结构和内容。
      • 如何使用数据集进行模型训练和评估。
      • 其他注意事项和建议。
使用说明
  1. 环境准备

    • 安装依赖库:
      pip install -r requirements.txt
    • 确保安装了YOLOv8所需的库,例如ultralytics
  2. 数据集路径设置

    • 将数据集解压到项目目录下,确保路径正确。
  3. 转换标注格式(可选)

    • 如果需要将XML标注转换为YOLO格式的TXT标注,可以使用以下脚本:
      import os
      import xml.etree.ElementTree as ET
      from PIL import Imagedef convert_xml_to_yolo(xml_path, image_path, output_path):tree = ET.parse(xml_path)root = tree.getroot()image = Image.open(image_path)width, height = image.sizewith open(output_path, 'w') as f:for obj in root.findall('object'):name = obj.find('name').textbbox = obj.find('bndbox')xmin = int(bbox.find('xmin').text)ymin = int(bbox.find('ymin').text)xmax = int(bbox.find('xmax').text)ymax = int(bbox.find('ymax').text)x_center = (xmin + xmax) / 2.0 / widthy_center = (ymin + ymax) / 2.0 / heightw = (xmax - xmin) / widthh = (ymax - ymin) / heightif name == 'space-empty':class_id = 0elif name == 'space-occupied':class_id = 1else:continuef.write(f"{class_id} {x_center} {y_center} {w} {h}\n")# 批量转换
      for filename in os.listdir('labels_xml'):if filename.endswith('.xml'):xml_path = os.path.join('labels_xml', filename)image_path = os.path.join('images', filename.replace('.xml', '.jpg'))output_path = os.path.join('labels_txt', filename.replace('.xml', '.txt'))convert_xml_to_yolo(xml_path, image_path, output_path)
  4. 划分数据集

    • 可以使用train_test_split函数来划分训练集和验证集:
      import os
      import random
      from sklearn.model_selection import train_test_splitimages = [f for f in os.listdir('images') if f.endswith('.jpg')]
      train_images, val_images = train_test_split(images, test_size=0.2, random_state=42)with open('train.txt', 'w') as f:for img in train_images:f.write(f'./images/{img}\n')with open('val.txt', 'w') as f:for img in val_images:f.write(f'./images/{img}\n')
  5. 训练模型

    • 使用YOLOv8或其他目标检测模型进行训练。以下是一个示例命令:
      python train.py --data data.yaml --weights yolov8n.pt --epochs 100 --img 640 --batch 16
  6. 验证模型

    • 使用验证集进行模型验证:
       Bash 

      深色版本

      python val.py --data data.yaml --weights runs/train/exp/weights/best.pt --img 640 --batch 16
  7. 推理模型

    • 使用训练好的模型进行推理:
       Bash 

      深色版本

      python detect.py --source test_images/ --weights runs/train/exp/weights/best.pt --img 640 --conf 0.5
注意事项
  • 数据格式:确保输入的数据格式正确,特别是图像和标注文件的格式。
  • 超参数调整:根据实际情况调整学习率、批大小等超参数,以获得最佳训练效果。
  • 硬件要求:建议使用GPU进行训练,以加快训练速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
  • 平衡数据:注意数据集中各类别之间的不平衡问题,可以通过过采样、欠采样或使用类别权重等方式来解决。

通过上述步骤,你可以成功地使用这个高质量的停车位识别数据集进行模型训练和评估。这个数据集不仅适用于学术研究,还可以应用于实际的智慧停车场系统中,帮助提升停车场管理的效率和用户体验。希望这个数据集能帮助你更好地理解和应用最新的目标检测技术。


http://www.ppmy.cn/embedded/126328.html

相关文章

Mysql(索引与事务)

索引查询与普通查询的区别 普通查询 :执行步骤为先对表进行遍历,然后把当前的行带入条件中进行判断,符合条件执行,不符合跳出。这种情况在遇见数据较多的情况下就会出现问题,效率太低。 索引查询:是对查询…

10.11 Qt

数据库查询案例 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlRecord> #include <QSqlError> #include <QInputDialog>QT_BEGIN_NAMESPACE namespace Ui { …

04_23 种设计模式之《单例模式》

文章目录 一、单例模式基础知识单例模式有 3 个特点&#xff1a; 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取这个实例。这种模式通常用于管理共享资源&#xff0c;如…

【C++设计模式】行为型模式:中介者模式

行为型模式&#xff1a;中介者模式 中介者模式通过引入一个中介者对象来集中控制对象之间的交互。这样可以解耦多个对象之间的复杂交互关系&#xff0c;使系统更易于维护和扩展。 假设我们有一个简单的聊天室应用&#xff0c;其中有每个用户可以发送群聊消息给其他用户&#…

FiBiNET模型实现推荐算法

1. 项目简介 A031-FiBiNET模型项目是一个基于深度学习的推荐系统算法实现&#xff0c;旨在提升推荐系统的性能和精度。该项目的背景源于当今互联网平台中&#xff0c;推荐算法在电商、社交、内容分发等领域的广泛应用。推荐系统通过分析用户的历史行为和兴趣偏好&#xff0c;预…

Django ORM - 聚合查询

Django ORM - 聚合查询 Django ORM&#xff08;对象关系映射&#xff09;是一个强大的工具&#xff0c;它允许开发人员通过Python代码而不是SQL语句来操作数据库。在Django中&#xff0c;聚合查询是一种用于对数据库中的数据进行统计和分析的功能。通过使用Django ORM的聚合查…

你真的了解Canvas吗--解密七【ZRender篇】

书接上文你真的了解Canvas吗--解密六【ZRender篇】 目录 ❓解惑环节 再次梳理流程 step - 1 step - 2 step - 3 step - 4 冒泡函数dispatchToElement 总结 ❓解惑环节 首先来回答一下 先来看看目前调用on函数的地方 Eventful的属性_$handlers的key就有click, dbcl…

Golang 垃圾回收机制

垃圾回收机制 垃圾回收是程序语言自行管理内存的一种机制,它的主要原理是检测哪些内存块已经不再被使用的情况,然后回收这些内存块,以供后续程序使用. GC和手动释放内存的比较 GC的优势在于不需要程序员在编写程序时关心内存分配问题,只需专注于程序的编写即可,而手动释放内…