UCAS-AOD遥感旋转目标检测数据集——基于YOLOv8obb,map50已达96.7%

2024-01-25 15:36

本文主要是介绍UCAS-AOD遥感旋转目标检测数据集——基于YOLOv8obb,map50已达96.7%,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.UCAS-AOD简介

1.1数据说明

遥感图像,又名高分辨率遥感图像。遥感图像的分类依据是根据成像的介质不同来进行分类的。UCAS-AOD (Zhu et al.,2015)用于飞机和汽车的检测,包含飞机与汽车2类样本以及一定数量的反例样本(背景),总共包含2420幅图像和14596个实例。论文中特别提到了目标检测的方向健壮性,所以在数据集标注过程中作者对数据进行了一定程度的筛选,使得图像中的物体方向分布均匀,数据集具体内容如下:

内容飞机图像飞机实例汽车图像汽车实例反例图像
数量100074825107114910

数据集中目标为航拍图像下的飞机和车辆,使用Google Earth软件在全球部分区域中截取的图像。

1.2数据格式

数据集分为CAR、PLANE、NEG三个文件,CAR、PLANE为正例图像,NEG为反例图像。正例图像以P+数字序号命名,反例图像以N+数字序号命名,所有图像为PNG格式,尺寸为1280x659和1372x941。UCAS-AOD采用HBB(horizontal bounding box)的标注方法,图像的groundtruth采用txt格式保存,以图像的同名文档方式存储。对于整理好的txt文档数据,每列的属性如下:

x1,y1,x2,y2,x3,y3,x4,y4,theta,x,y, width,height

其中,x1,y1,x2,y2,x3,y3,x4,y4为旋转矩形框四个顶点,theta为倾斜角。

2.UCAS-AOD数据处理

2.1处理成如下格式

x1 y1 x2 y2 x3 y3 x4 y4 class class_index

​处理代码如下:

import os# 输入和输出文件夹路径
input_folder_path = 'label'
output_folder_path = 'txt'# 遍历labels文件夹下所有txt文件
for filename in os.listdir(input_folder_path):if filename.endswith('.txt'):input_file_path = os.path.join(input_folder_path, filename)output_file_path = os.path.join(output_folder_path, filename)# 打开原始文件并创建一个新文件用于写入修改后的数据with open(input_file_path, 'r') as input_file, open(output_file_path, 'w') as output_file:for line in input_file:# 在这里你可以对每一行的内容进行处理# 例如,将每一行的数据以制表符分割并转换为浮点数列表data = [float(value) for value in line.strip().split('\t')]# 仅保留每行数据的前8个数data = data[:8]# 将处理后的数据写入新文件output_line = '\t'.join(map(str, data)) + '\tPLANE' + '\t1\n'output_file.write(output_line)print(f"数据已保存到 {output_file_path}")

分别以CAR和PLANE为例,得到:

276.3971  91.25021  291.1375  38.23406  330.8891  49.28647  316.1486  102.3026  CAR  0
254.0147  168.3054  253.027  124.0611  314.917  122.6796  315.9046  166.9239  PLANE  1

2.2进行obb格式的转换

from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb('C:\myyolo\ultralytics-main\dataobb')
#关于dataobb文件下的目录可参考https://blog.csdn.net/qq_41301570/article/details/135540398

以上面CAR和PLANE为例,转换后的结果如下:

0 0.215935 0.138468 0.227451 0.0580183 0.258507 0.0747898 0.246991 0.155239
1 0.198449 0.255395 0.197677 0.188257 0.246029 0.18616 0.2468 0.253299

2.3进行训练

如果你不想浪费时间进行数据的处理,可私戳获取数据集​!!!

2.4进行验证

最后:

小编会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

这篇关于UCAS-AOD遥感旋转目标检测数据集——基于YOLOv8obb,map50已达96.7%的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/643717

相关文章

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用