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

 

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.mzph.cn/pingmian/55588.shtml

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

相关文章

vSAN06:ESA与OSA对比、ESA安装、新架构、工作方式、自动策略管理、原生快照、数据压缩、故障处理

目录 vSAN ESAvSAN ESA 安装ESA新架构ESA工作方式ESA自动策略管理自适应RAID5策略 原生快照支持数据压缩的改进ESA故障处理 vSAN ESA vSAN ESA 安装 流程和OSA完全一致,但要注意要勾选启用vSAN ESA ESA和OSA的底层架构不一样,但是UI上是一致的。 生产环…

【2024最新】华为HCIE认证考试流程

HCIE是华为认证体系中最高级别的ICT技术认证,表示通过认证的人具有ICT领域专业知识和丰富实践经验。 HCIE认证方向:最高认证级别HCIE的技术方向有13个 下面以HCIE-Datacom为例给大家介绍一下: HCIE-Datacom认证考试流程: 1.笔试…

Hive3.x版本调优总结

文章目录 第 1 章 Explain 查看执行计划(重点)1.1 创建测试用表1)建大表、小表和 JOIN 后表的语句2)分别向大表和小表中导入数据 1.2 基本语法1.3 案例实操 第 2 章 Hive 建表优化2.1 分区表2.1.1 分区表基本操作2.1.2 二级分区2.…

vmvare虚拟机centos 忘记超级管理员密码怎么办?

vmvare虚拟机centos 忘记超级管理员密码怎么办?如何重置密码呢? 一、前置操作 重启vmvare虚拟机的过程中,长按住Shift键 选择第一个的时候,按下按键 e 进入编辑状态。 然后就会进入到类似这个界面中。 在下方界面 添加 init=/bin/sh,然后按下Ctrl+x进行保存退出。 init=/bi…

本田汽车投资SiLC Technologies:携手共促自动驾驶技术新飞跃

SiLC Technologies获本田汽车投资:加速自动驾驶技术革新 近日,硅谷光子学初创公司SiLC Technologies宣布获得本田汽车的投资,这一合作标志着双方将共同推进自动驾驶技术领域的革新与发展。本田此次投资不仅体现了对SiLC Technologies技术实力的认可,也彰显了本田在自动驾驶…

昇思学习打卡营第31天|深度解密 CycleGAN 图像风格迁移:从草图到线稿的无缝转化

1. 简介 图像风格迁移是计算机视觉领域中的一个热门研究方向,其中 CycleGAN (循环对抗生成网络) 在无监督领域取得了显著的突破。与传统需要成对训练数据的模型如 Pix2Pix 不同,CycleGAN 不需要严格的成对数据,只需两类图片域数据&#xff0c…

IDEA:增加类注释模板和方法注释模板

文章目录 概要配置类注释模板配置方法模版 概要 配置类注释和方法注释 配置类注释模板 点击setting->Editor->File and Code Templates,然后找到Class,如下图: 注意勾掉Reformat according to style,否则会格式化。 注…

动态规划算法专题(四):子串、子数组系列

目录 1、最大子数组和 1.1 算法原理 1.2 算法代码 2、环形子数组的最大和 2.1 算法原理 2.2 算法代码 3、乘积最大子数组 3.1 算法原理 3.2 算法代码 4、乘积为正数的最长子数组长度 4.1 算法原理 4.2 算法代码 5、等差数列划分 5.1 算法原理 5.2 算法代码 6、…

COSPLAY大赛静态HTML网页模板源码

源码名称:COSPLAY大赛静态HTML网页模板 源码介绍:一款cosplay大赛HTML网页模板源码,过往参赛选手会自动从腾讯大赛获取,可用于cosplay大赛,漫展等。 需求环境:H5 下载地址: https://www.5188…

k8s的控制节点不能访问node节点容器的ip地址

master控制node服务器添加容器后,访问不了该node服务器容器的ip,只能在node服务器访问 排查后发现是k8s的master服务器和node节点的网址网段和k8s初始化时提示的ip网段不一致 我之前是192.168.137.50, 实际上master主机期望的是192.168.1.50 解决方案: 1.删除服务器后重建ma…

【api连接ChatGPT的最简单方式】

通过api连接ChatGPT的最简单方式 建立client 其中base_url为代理,若连接官网可省略;配置环境变量 from openai import OpenAI client OpenAI(base_url"https://api.chatanywhere.tech/v1" )或给出api和base_url client OpenAI(api_key&…

Redis:string类型

Redis:string类型 string命令设置与读取SETGETMSETMGET 数字操作INCRINCRBYDECRDECRBYINCRBYFLOAT 字符串操作APPENDSTRLENGETRANGESETRANGE 内部编码intembstrraw 在Redis中,字符串string存储的是二进制,以byte为单位,输入的二进…

Pikachu-Unsafe FileUpload-客户端check

上传图片,点击查看页面的源码, 可以看到页面的文件名校验是放在前端的;而且也没有发起网络请求; 所以,可以通过直接修改前端代码,删除 checkFileExt(this.value) 这部分; 又或者先把文件名改成…

java代理模式(动态代理、静态代理、需要实现类的JDK代理、不需要实现类的JDK动态代理、CGLIB代理)

静态代理简单使用 静态代理是代理模式的一种实现方式,它在编译时就已经确定了被代理对象和代理对象的关系。在静态代理中,需要手动创建一个代理类,该代理类与被代理对象实现相同的接口或继承相同的父类,并在代理类的方法中调用被…

C++基类构造器的自动调用

C基类构造器的自动调用 虽然基类的构造器和解构器不会被派生类继承,但它们会被派生类的构造器和解构器自动调用,今天我们用代码实证一下。 验证代码 源代码,仔细看注释内容: D:\YcjWork\CppTour>vim c2004.cpp #include &l…

《RabbitMQ篇》基本概念介绍

MQ功能 解耦 MQ允许不同系统或组件之间松散耦合。发送者和接收者不需要直接连接,从而提高了系统的灵活性和可维护性。异步处理 使用MQ可以实现异步消息传递,发送者可以将消息放入队列后立即返回,不必等待接收者处理。这提高了系统的响应速度…

Windows下Jenkins控制台中文乱码

问题描述 问题情况如下图: 环境信息 Windows 11 家庭中文版java 21.0.4 2024-07-16 LTSJenkins 2.452.3 解决方法 增加系统JAVA_TOOL_OPTIONS,并设置值为-Dfile.encodingGBK。 打开设置方法:桌面上右键点击“此电脑”图标,选…

算法笔记(十三)——BFS 解决最短路问题

文章目录 迷宫中离入口最近的出口最小基因变化单词接龙为高尔夫比赛砍树 BFS 解决最短路问题 BFS(广度优先搜索) 是解决最短路径问题的一种常见算法。在这种情况下,我们通常使用BFS来查找从一个起始点到目标点的最短路径。 迷宫中离入口最近的出口 题目:…

Android SystemUI组件(11)SystemUIVisibility解读

该系列文章总纲链接:专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明: 说明:本章节持续迭代之前章节思维导图,主要关注左侧最上方SystemUiVisibility解读部分即可。 本章节主要讲解SystemUiVisibility的概念及其相…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表

一. 使用工具和命令 1.1 使用的工具 Navicat Premium 17 :“Navicat”是一套可创建多个连接的数据库管理工具。 MySQL版本8.0.39 。 1.2 使用的命令 Navicat中使用的命令 命令命令解释SHOW DATABASES;展示所有的数据库CREATE DATABASE 数据库名称; 创…