DOTA数据集是遥感影像目标检测的常用标准数据集,其标签文件以txt的形式存储,一个txt对应一张样本影像,txt中的每一行对应影像中的一个目标,每个目标的外围边界框表示为【 x1 y1 x2 y2 x3 y3 x4 y4 label difficult 】,具体如下所示:

PASCAL VOC也是目标检测、图像分割任务中常用的基准数据之一,其样本标签以xml的文件形式存储,每个xml对应一张样本影像,object的边界框信息由顶点坐标值【xmin ymin xmax ymax】表示,具体如下所示:

有时候,我们同时想用倾斜框和矩形框模型对目标进行检测,就可以将标记的DOTA格式的倾斜框坐标转化为PASCAL VOC格式的矩形框坐标,转化方式如下所示:
import os
from xml.dom.minidom import Document
from xml.dom.minidom import parse
import xml.dom.minidom
import numpy as np
import csv
import cv2
import string
def poly2rect(box_list):
box_list = np.array(box_list)
x, y, w, h = cv2.boundingRect(box_list)
xmin = x - w / 2.0
ymin = y - h / 2.0
xmax = x + w / 2.0
ymax = y + h / 2.0
return xmin, ymin, xmax, ymax
def WriterXMLFiles(filename, path, box_list, label_list, w, h, d):
# dict_box[filename]=json_dict[filename]
doc = xml.dom.minidom.Document()
root = doc.createElement('annotation')
doc.appendChild(root)
foldername = doc.createElement("folder")
foldername.appendChild(doc.createTextNode("JPEGImages"))

该博客介绍了如何在遥感影像目标检测领域中,将DOTA数据集的倾斜框坐标转换为PASCALVOC的矩形框坐标,并提供了相应的Python代码实现。同时,也展示了从PASCALVOC XML格式标签文件转换回DOTA的txt格式。这两个转换函数对于处理不同数据集或模型训练时的目标检测任务非常有用。
最低0.47元/天 解锁文章
1352

被折叠的 条评论
为什么被折叠?



