【比赛】FAIR1M数据转换为yolov8obb格式

只需要将xml转成txt格式即可。

import xml.etree.ElementTree as ET
import os
category_set = set()
category_dict = {}def xml2txt(xml_path):# 解析XML文件tree = ET.parse(xml_path)root = tree.getroot()# 获取width和heightwidth = int(root.find('size/width').text)height = int(root.find('size/height').text)# 提取object信息objects = []for obj in root.findall('objects/object'):points = obj.findall('points/point')[:4]  # 只提取前四个pointpoints_data = [(float(point.text.split(',')[0]) / width, float(point.text.split(',')[1]) / height) for point in points]points_data_txt = [item for sublist in points_data for item in sublist]category = obj.find('possibleresult/name').text# 确定类别IDif category in category_set:category_id = list(category_set).index(category)else:category_set.add(category)category_id = len(category_set) - 1category_dict[category_id] = categoryobjects.append({'points': points_data_txt, 'category_id': category_id, 'category': category})# 将提取的信息保存到txt文件中txt_save_dir = os.path.dirname(xml_path).replace('labelXml', 'labeltxt')txt_name = os.path.basename(xml_path).replace('.xml', '.txt')txt_file_path = os.path.join(txt_save_dir, txt_name)with open(txt_file_path, 'w') as txt_file:for obj in objects:txt_file.write(f'{obj["category_id"]} ')points_str = ' '.join(map(str, obj['points']))txt_file.write(f'{points_str}\n')# txt_file.write(f'Category: {obj["category"]}\n\n')print(f'提取的信息已保存到文件: {txt_file_path}')if __name__ == '__main__':xmls_dir = r'E:\project\Dataset\fairm\train\total\labelXml'all_xmls = os.listdir(xmls_dir)for xml in all_xmls:xml_path = os.path.join(xmls_dir, xml)xml2txt(xml_path)print(category_dict)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807546.shtml

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

相关文章

4.11总结

IO流和网络编程 IO流 IO流根据流的类型分为两种: 一种是输入流,另一种是输出流 输入流只能用来读取数据,输出流只能用来写入数据。 IO流存在两种操作文件类型: 字节流和字符流 字符流只能用于纯文本操作,而字节…

机器学习入门项目一(简单线性回归)

使用numpy写一个线性回归算法, 方程(模型)为 y a x b yaxb yaxb。要求自己设计训练部分并且收敛到满意效果。 以下是数据产生代码: import matplotlib.pyplot as plt import numpy as npclass DataGenerator:""&quo…

SOLIDWORKS特色功能介绍

SOLIDWORKS是一款功能强大的三维CAD设计软件,广泛应用于机械设计、工程分析、产品数据管理和仿真等多个领域。该软件以其用户友好的界面、丰富的功能和性能,赢得了全球数百万工程师和设计人员的青睐。接下来,我们将详细介绍SOLIDWORKS的一些特…

Vue前端框架

1.vue基本使用1 1.vue环境搭建 一般创建vue项目是在cmd命令中用:vue ui 命令,采用ui图形界面的方式直观创建项目。 2.vue基本使用方式:vue组件 3.文本插值 4.属性绑定 5.事件绑定 6.双向绑定 7.条件渲染 2.vue基本使用2 1.axios 安装axios命令…

引领车载影像革命,全链路解决方案助力座舱创新升级

影像技术的创新与突破正在引领各行各业的飞速发展,尤其对于汽车行业来说,车载影像系统已成为衡量车辆智能化水平的重要指标。为了满足这一日益增长的需求,美摄科技凭借深厚的研发实力与创新精神,推出了全链路的车载影像解决方案&a…

uniapp开发小程序,实现堆叠卡片轮播图

一、实现堆叠卡片轮播图: 需求: 实现堆叠轮播图效果堆叠到后面的图片有虚化效果可以在堆叠图片上写文字或叠加图片等效果可以手动滑动&#xff0c;也可以定时自动轮播 二、代码实现&#xff1a; 1.封装一个组件myswiper.vue <!-- 折叠轮播图 组件--> <template>…

如何在SFTP工具中使用固定公网地址远程访问内网Termux系统

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…

AD23原理图导入pcb是元器件位置错乱

1、原因是原理图和PCB没有进行连接导致的&#xff0c;可通过以下方法解决&#xff1a; 1>PCB返回到初始的形态&#xff0c;不可出现报错等问题&#xff0c;选择器件连结&#xff1b; 执行快捷键C --> K&#xff0c;将所有匹配组件进行回退&#xff0c;如下图&#xff1…

【Python】类和对象

类和对象 构造方法封装继承多继承 多态 类&#xff1a; 类是一个模板&#xff0c;描述一类对象的行为和状态。 有了模板我们就可以根据这个模板创建具体的对象。 对象&#xff1a; 对象是类的一个具体实例&#xff0c;有状态和行为。 class 类名称: 类的属性类的行为 # 其中 c…

头歌-机器学习 第14次实验 主成分分析PCA

第1关:维数灾难与降维 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 相关知识 为了完成本关任务,你需要掌握维数灾难与降维的相关基础知识。 维数灾难 在机器学习中,我们不仅需要学习怎样进行分类、回归或者聚类,我们更要学习怎样对数据进行更好的…

如何在公网环境远程管理内网Windows系统部署的MongoDB数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

阿里面试总结 一

写了这些还是不够完整&#xff0c;阿里 字节 卷进去加班&#xff01;奥利给 ThreadLocal 线程变量存放在当前线程变量中&#xff0c;线程上下文中&#xff0c;set将变量添加到threadLocals变量中 Thread类中定义了两个ThreadLocalMap类型变量threadLocals、inheritableThrea…

深度学习八股文

Bert旨在通过联合左侧和右侧的上下文&#xff0c;从未标记文本中预训练出一个深度双向表示模型。因此&#xff0c;BERT可以通过增加一个额外的输出层来进行微调&#xff0c;就可以达到为广泛的任务创建State-of-the-arts 模型的效果&#xff0c;比如QA、语言推理任务。Bert的构…

【ROS2笔记二】使用colcon构建ROS2工作空间

2.使用colcon构建ROS2工作空间 2.1一个构建的示例 在ROS1中&#xff0c;我们使用catkin_make 、catkin_tools、和catkin_make_isolated作为ROS的构建工具&#xff0c;但在ROS2中&#xff0c;我们使用colcon来作为构建工具&#xff0c;具体的原因可以参考该文档A universal bu…

数据知识产权登记前为何需要区块链存证_存储在国外的数据可以做数据资产登记证申请码

各地已公布的管理办法中&#xff0c;均把“数据区块链存证或公证”证明材料做为向各地数据知识产权登记部门提交登记申请表中必要材料之一。北京市数据知识产权登记管理办法要求&#xff1a;有下列情况之一的&#xff0c;不予登记&#xff1a;&#xff08;三&#xff09;登记前…

mashgrid函数到底有啥作用?好处究竟在哪?

在用matlab的时候经常看到mashgrid函数这个函数&#xff0c;但是即使看过很多遍其底层源码&#xff0c;也难以理解他到底好在哪&#xff0c;有啥具体作用。今天终于搞明白了&#xff0c;现在记录一下。 mashgrid函数到底有啥作用&#xff1f;好处究竟在哪&#xff1f; 先说结…

LeetCode-热题100:32. 最长有效括号

题目描述 给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 示例 1&#xff1a; 输入&#xff1a; s “(()” 输出&#xff1a; 2 解释&#xff1a; 最长有效括号子串是 “()” 示例 2&#xff1a; 输入&…

【SpringBoot】-- mapstruct进行类型转换时Converter实现类不能自动生成代码问题解决

问题描述 我的问题如下&#xff1a; 应该在红色区域生成对应的转换细节&#xff0c;但是这里只返回了一个空对象 问题解决 加入lombok-mapstruct-binding依赖,也要注意依赖引用顺序问题 <dependency><groupId>org.projectlombok</groupId><artifactId&…

uniapp项目引入组件

1、在项目新建文件uni_modules 2、通过uniapp官网查找组件 uni-app官网 3、下载组件 4、将下载好的组件放到步骤1创建的uni_modules目录下 5、在hbuilderX中重新运行小程序

LangFriend - 一款Long-Term Memory 的日历应用

文章目录 学术工作公司为什么要使用日记应用程序&#xff1f;定制总结 本文翻译整理自&#xff1a; https://blog.langchain.dev/langfriend/ (发布于2024 年 3 月 28 日) 在LangChain我们最感兴趣的概念之一就是内存。 每当我们对一个概念感兴趣时&#xff0c;我们都喜欢构建一…