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

news2024/11/24 12:23:41

 

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 Image
      
      def 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.size
      
          with open(output_path, 'w') as f:
              for obj in root.findall('object'):
                  name = obj.find('name').text
                  bbox = 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 / width
                  y_center = (ymin + ymax) / 2.0 / height
                  w = (xmax - xmin) / width
                  h = (ymax - ymin) / height
      
                  if name == 'space-empty':
                      class_id = 0
                  elif name == 'space-occupied':
                      class_id = 1
                  else:
                      continue
      
                  f.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_split
      
      images = [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.coloradmin.cn/o/2193783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HDLBits中文版,标准参考答案 |3.1.1 Basic Gates | 基本门电路

关注 望森FPGA 查看更多FPGA资讯 这是望森的第 8 期分享 作者 | 望森 来源 | 望森FPGA 目录 1 Wire | 连线 2 GND | 地线 3 NOR | 或非门 4 Another gate | 另外的门电路 5 Two gates | 两个门电路 6 More logic gates | 更多逻辑门电路 7 7420 chip | 7420 芯片 8 …

Crypto虐狗记---”你“和小鱼(外传)

前言:剧情十(我没看见还有一个。。。。) 提示: 下载: 参数有了,直接搞就行。。。 参考: *crypto*练2--攻防世界--easy_ECC - kubopiy - 博客园 (cnblogs.com) 大佬的脚本: 攻防世界 easy_ECC - diakla -…

SpringBoot:让开发更加简单

文章目录 前言什么是 SpringBoot快速启动一个 SpringBoot 项目开发一个登录功能小结 前言 有一天,你脑海中闪现了一个想法:“学了 Java 好像还没怎么使用,今天要不用 Java 开发一个自己的网站?” 你想着不禁激动起来,…

python爬虫案例——处理验证码登录网站(12)

文章目录 前言1、任务目标2、网页分析3、代码编写前言 我们在爬取某些网站数据时,可能会遇到必须登陆才能获取网页内容的情况,而大部分网站登录都需要输入验证码才能登录成功,所以接下来我将会通过实际案例来讲解如何实现验证码登录网站 1、任务目标 目标站点:中文古诗网(…

Codeforces Round 977

这场比赛是晚上vp的,太逆天了自己,给我自己都菜笑了,第二题当时差了一个那个循序渐进的点没想到,关键细节都想到了,当时以为是错的就没写,第二题没做出来确实好久没遇到过了,裂开 话不多说&…

SpringBoot基础(四):bean的多种加载方式

SpringBoot基础系列文章 SpringBoot基础(一):快速入门 SpringBoot基础(二):配置文件详解 SpringBoot基础(三):Logback日志 SpringBoot基础(四):bean的多种加载方式 目录 一、xml配置文件二、注解定义bean1、使用AnnotationCon…

MySQL之复合查询与内外连接

目录 一、多表查询 二、自连接 三、子查询 四、合并查询 五、表的内连接和外连接 1、内连接 2、外连接 前面我们讲解的mysql表的查询都是对一张表进行查询,即数据的查询都是在某一时刻对一个表进行操作的。而在实际开发中,我们往往还需要对多个表…

05:(寄存器开发)定时器一

定时器 1、系统定时器SysTick1.1、SysTick中断的使用1.2、使用SysTick制作延迟函数 2、基本定时器2.1、基本定时器中断的使用2.2、使用基本定时器制作延时函数 1、系统定时器SysTick 1.1、SysTick中断的使用 ①SysTcik系统滴答定时器和片上外设定时器不同,它在CPU…

【c语言——指针详解(3)】

文章目录 一、字符指针变量二、数组指针变量1、 数组指针变量是什么?2、 数组指针变量怎么初始化 三、⼆维数组传参的本质四、函数指针变量1、函数指针变量的创建2、函数指针变量的使⽤3、两段有趣的代码1)typedef 关键字2)typedef和define的…

<<迷雾>> 第8章 学生时代的走马灯(3)--走马灯 示例电路

几个首尾相连的触发器使用同一个控制端,能同时触发 info::操作说明 鼠标单击开关切换开合状态 注: 其中 CP 为按钮开关, 每点击一次, Q 的输出前进一级 注: 第一个触发器的输出端 Q 需要先置入高电平. 如果重置了电路, 可外接电源先使第一个 Q 置入高电平. 另: 因为…

开源跨平台三维模型轻量化软件osgGISPlugins-2、如何编译

上一篇:开源跨平台三维模型轻量化软件osgGISPlugins-1、简介 1、编译前的准备:安装、配置vcpkg包管理器 1)安装及国内镜像替换教程(Windows和Linux环境都有):vcpkg国内镜像源替换 2)下载第三方依赖库(Readme文档中所给出的百度网…

DBCCompare_TreeView中的同步查找功能实现方案

引言 在应用程序中,数据的可视化和交互性至关重要。TreeView 控件作为一种层级数据展示工具,能够有效地展示复杂的数据结构。本文将重点探讨如何在 TreeView 中实现同步查找功能,使得使用人员在操作一个树形结构时,能够自动更新另…

2-114 基于matlab的CA模型

基于matlab的CA模型,Singer模型对单机动目标进行跟踪算法,具有10页实验文档。采用蒙特卡罗方法对一个二坐标雷达对一平面上运动的目标进行观测,得到跟踪滤波结果。程序已调通,可直接运行。 下载源程序请点链接:2-114 …

计算机网络面试题——第三篇

1. TCP超时重传机制是为了解决什么问题 因为TCP是一种面向连接的协议,需要保证数据可靠传输。而在数据传输过程中,由于网络阻塞、链路错误等原因,数据包可能会丢失或者延迟到达目的地。因此,若未在指定时间内收到对方的确认应答&…

【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers

【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers Note: 持续更新中,未完。。。 目录 文章目录 【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers目录1. 引言2. 简介 1. …

Linux文件上传下载与压缩解压

首先用yum命令执行 yum install -y lrzsz 下载lrzaz1.文件上传命令: rz(拖曳方式有时行有时不行的)在终端直接输入rz,直接弹出Windows系统的文件,自行找文件进行上传操作2.下载: sz命令(拖曳方式有时行有时不行的) 用法:sz 下载文件或文件路径 默认下载路径在Windows系统相应的…

自然语言处理问答系统

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

C++(11)——vector的具体实现

目录 1.函数的头文件 2.默认成员函数 2.1构造函数 2.1.1无参的构造函数 2.1.2支持迭代器的构造函数 2.1.3支持n个val的构造函数 2.2拷贝构造函数 2.2.1写法一(传统写法) 2.2.2写法二(现代写法) 2.3赋值运算符重载函数 2…

PGMP01-概述

1.项目集管理绩效域 2.项目集管理标准的目的 the purpose of the standard for program management 定义:为项目集管理原则、时间和活动提供指导。这些原则、实践和活动被公认为在大多时候适用于大多数项目集,并为项目集管理的良好实践提供了支持。 管理…

tldr命令介绍

tldr命令介绍 安装 TLDR使用 TLDR更新命令仓库 TLDR 是 “Too Long; Didn’t Read” 的缩写,在 Linux中是一个非常有用的工具,旨在为用户提供简洁的命令行工具或程序的使用说明,TLDR的目标是解决传统手册页信息过于繁杂的问题,通过…