1.UCAS-AOD简介
1.1数据说明
遥感图像,又名高分辨率遥感图像。遥感图像的分类依据是根据成像的介质不同来进行分类的。UCAS-AOD (Zhu et al.,2015)用于飞机和汽车的检测,包含飞机与汽车2类样本以及一定数量的反例样本(背景),总共包含2420幅图像和14596个实例。论文中特别提到了目标检测的方向健壮性,所以在数据集标注过程中作者对数据进行了一定程度的筛选,使得图像中的物体方向分布均匀,数据集具体内容如下:
内容 | 飞机图像 | 飞机实例 | 汽车图像 | 汽车实例 | 反例图像 |
数量 | 1000 | 7482 | 510 | 7114 | 910 |
数据集中目标为航拍图像下的飞机和车辆,使用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仿真......希望能帮到你!