HRSID数据集介绍参考原文:https://ieeexplore.ieee.org/document/9127939

数据集下载链接:https://github.com/chaozhong2010/hrsid

雷达目标检测学习交流群私信加v,《招学术兼职,论文指导老师》

原数据集为COCO格式,标签信息全部存在train_test2017.json中,本代码将其转为VOC格式的标签,每个jpg对应一个xml,转换代码如下,仅供参考:

import xml.dom
import xml.dom.minidom
import os
# from PIL import Image
import cv2
import json_IMAGE_PATH = r'F:\SAR_Ship\HRSID\JPEGImages'_INDENT = ' ' * 8
_NEW_LINE = '\n'
_FOLDER_NODE = 'HRSID'
_ROOT_NODE = 'annotation'
_DATABASE_NAME = 'Unknown'
_ANNOTATION = 'VOC'
_AUTHOR = 'zc'
_SEGMENTED = '0'
_DIFFICULT = '0'
_TRUNCATED = '0'
_POSE = 'Unspecified'# _IMAGE_COPY_PATH= 'JPEGImages'# 封装创建节点的过程
def createElementNode(doc, tag, attr):  # 创建一个元素节点element_node = doc.createElement(tag)# 创建一个文本节点text_node = doc.createTextNode(attr)# 将文本节点作为元素节点的子节点element_node.appendChild(text_node)return element_nodedef createChildNode(doc, tag, attr, parent_node):child_node = createElementNode(doc, tag, attr)parent_node.appendChild(child_node)# object节点比较特殊
def createObjectNode(doc, attrs):object_node = doc.createElement('object')print("创建object中")midname = "ship"createChildNode(doc, 'name', midname,object_node)createChildNode(doc, 'pose',_POSE, object_node)createChildNode(doc, 'truncated',_TRUNCATED, object_node)createChildNode(doc, 'difficult',_DIFFICULT, object_node)bndbox_node = doc.createElement('bndbox')# print("midname1[points]:",midname1["points"])createChildNode(doc, 'xmin', str(int(attrs[0])),bndbox_node)createChildNode(doc, 'ymin', str(int(attrs[1])),bndbox_node)createChildNode(doc, 'xmax', str(int(attrs[2]) + int(attrs[0])),bndbox_node)createChildNode(doc, 'ymax', str(int(attrs[3]) + int(attrs[1])),bndbox_node)object_node.appendChild(bndbox_node)return object_node# 将documentElement写入XML文件
def writeXMLFile(doc, filename):tmpfile = open('tmp.xml', 'w')doc.writexml(tmpfile, addindent=' ' * 8, newl='\n', encoding='utf-8')tmpfile.close()# # 删除第一行默认添加的标记fin = open('tmp.xml')fout = open(filename, 'w')lines = fin.readlines()for line in lines[1:]:if line.split():fout.writelines(line)fin.close()fout.close()if __name__ == "__main__":##json文件路径和图片路径,json_path = r"F:\SAR_Ship\HRSID\json/train_test2017.json"img_path = r"F:\SAR_Ship\HRSID\JPEGImages"Annotations_save_path = r'F:\SAR_Ship\HRSID\Annotations'fileList = os.listdir(img_path)# print(".....::")# print("fileList:", fileList)if fileList == 0:os._exit(-1)# 对于每一张图都生成对应的json文件for imageName in fileList:saveName = imageName.strip(".jpg")print(imageName)# 得到xml文件的名字xml_file_name = os.path.join(Annotations_save_path, (saveName + '.xml'))img = cv2.imread(os.path.join(img_path, imageName))height, width, channel = img.shapemy_dom = xml.dom.getDOMImplementation()doc = my_dom.createDocument(None, _ROOT_NODE, None)# 获得根节点root_node = doc.documentElement# folder节点createChildNode(doc, 'folder', _FOLDER_NODE, root_node)# filename节点createChildNode(doc, 'filename', saveName + '.jpg', root_node)# source节点source_node = doc.createElement('source')# source的子节点createChildNode(doc, 'database', _DATABASE_NAME, source_node)# createChildNode(doc, 'annotation', _ANNOTATION, source_node)# createChildNode(doc, 'image', 'flickr', source_node)root_node.appendChild(source_node)size_node = doc.createElement('size')createChildNode(doc, 'width', str(width), size_node)createChildNode(doc, 'height', str(height), size_node)createChildNode(doc, 'depth', str(channel), size_node)root_node.appendChild(size_node)# 创建segmented节点createChildNode(doc, 'segmented', _SEGMENTED, root_node)# print("创建object节点")ann_data = []# print(json_path1)with open(json_path, "r") as f:ann = json.load(f)# print(ann)for i in range(5603):        # 0 ~ 5603  寻找与jpg_image同名的列表# 从第一个filename 第一个id开始循环# i就是图片image_idfilename = ann["images"][i]   # 字典file_name = filename["file_name"]if imageName == file_name:id = filename["id"]annotations = ann["annotations"]     # len(annotations) = 16951for j in range(len(annotations)):    # 0 - 16951image_id = annotations[j]["image_id"]if image_id == id:                      # 说明annotations中的该行信息属于该图片annotations2 = annotations[j]              # 将image_id等于id的取出来object_node = createObjectNode(doc, annotations2["bbox"])root_node.appendChild(object_node)else:continuecontinue# 构建XML文件名称# 写入文件writeXMLFile(doc, xml_file_name)

HRSID舰船检测数据集标签格式转换,json转为xml相关推荐

  1. 如何利用python将NWPU VHR-10目标检测遥感数据集的格式转换成VOC目标检测数据集的格式

    VOC目标检测数据集的格式 其中图片存放在JPEGImages文件夹中,标注是xml文件,存储在Annotations文件中 关于train集和val集的txt划分存放在ImageSets文件夹下面的 ...

  2. nuScenes自动驾驶数据集:格式转换,模型的数据加载(二)

    文章目录 一.nuScenes数据集格式精解 二.nuScenes数据格式转换(To COCO) 数据格式转换框架 2.1 核心:convert_nuScenes.py解析 其他格式转换文件 2.1. ...

  3. JSON-lib框架,转换JSON、XML不再困难

    Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象. 一. 准备工作 ...

  4. 目标检测: 数据集转换txt转为xml格式

    目录 1.txt数据集格式 2.xml数据集格式 3.转换代码 4.根据xml标签分割出图像中的目标物体 5.效果展示 1.txt数据集格式 第1元素代表类别,第2,3表示目标框的中心位置,第4,5表 ...

  5. 使用YOLOv3训练BDD100K数据集之标签格式转换

    BDD100K数据集介绍: BDD100K的道路目标检测部分总共有10类:bus,traffic light,traffic sign,person,bike,truck,moter,car,trai ...

  6. [数据集][目标检测]天牛数据集目标检测数据集VOC格式3050张

    数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):3050 标注数量(xml文件个数):305 ...

  7. php代码实现xml格式转换,PHP实现XML与数据格式进行转换类实例

    PHP实现XML与数据格式进行转换类实例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  PHP实现XML与数据格式进行转换类实例.txt ] (友情提示:右键点上 ...

  8. php json转为XML

    function jsonToXML($source) {$string = "";foreach ($source as $k => $v) {$string .= &qu ...

  9. 目标检测数据集转换 json文件转换为txt文件格式

    目标检测任务中,制作数据集或寻找合适的数据集是极为重要的一项工作.我们需要就数据集标签格式调整模型代码,亦或是改动数据集标签的格式以满足模型需求. 本帖子所述的方法是:使用数据集制作工具labelme ...

最新文章

  1. 结构事物 java uml,UML考试试题及答案7讲解
  2. 4.6、Libgdx线程介绍
  3. 移动开发必须要了解的易盾加固生态
  4. GTD (Getting Things Done)时间管理 提高效率 简介
  5. WordPress-基础设置之固定链接设置
  6. 我们再来玩游戏(博弈)
  7. android多音字排序,Android拼音排序
  8. 幽默:程序员背后的心酸日常,你懂多少?
  9. C# 读取app.config配置文件 节点键值,提示 配置系统未能初始化 错误的解决方案...
  10. CentOS 7 LNMP环境搭建 Zabbix3.4
  11. ajax(3)---Conmon.js
  12. hero登录器服务器列表为空,Hero引擎登陆器配置图文教程
  13. python组合数据类型实验报告_Python程序设计实验七:组合数据类型
  14. Mac PyCharm下numpy安装
  15. 笔记本重装win7旗舰版原版操作系统
  16. 倩女手游怎么查看服务器信息,倩女幽魂手游新增互通服务器 互通服务器信息介绍[图]...
  17. z-index ios失效
  18. 如何在A4相纸上打印4张5寸相片
  19. 使用Java编写爬虫,下载百度图片
  20. 微信小程序推荐大全之201~300个

热门文章

  1. 12[红+绿+蓝+Alpha]
  2. 要闻君说:阿里云联合8家芯片模组商推出“全平台通信模组”;北汽与小桔车服联合“京桔”;IBM要帮助印度公司打造5G战略!...
  3. 3D游戏设计-智能巡逻兵
  4. 数据驱动的营销方式和加拿大禁止Clearview AI
  5. xmlhttp的实际使用
  6. 在云服务器搭建vulhub靶场
  7. 百度网盘限速解决方案--motrix
  8. 医疗IT系统在手术部供配电间的应用
  9. PyCharm中光标变粗的解决方法
  10. @Scheduled注解详解