python生成xml格式字符串,python xml文件转化为excel

  python生成xml格式字符串,python xml文件转化为excel

  VOC的标签是xml格式的,而YOLO是。txt格式,所以要实现VOC数据集到YOLO数据集的转换,只能用代码。所以本文介绍了Python中xml转txt的示例代码,有需要的可以参考一下。

  00-1010 1、前言2、xml和txt数据分析3、转换过程4、最终结果对比。

  

目录

  最近学习Yolo v5遇到一个问题。我找到的数据集都是xml文件,VOC标签都是xml格式的,而YOLO是在。txt格式。那么问题来了,手工提取肯定不行,只能借用程序解决。

  

1、前言

  这是一个xml树结构

  这是txt格式

  总结:

  1.选择对象名称、bndbox-xmin、ymin、xmax和ymin。

  2.格式转换需要公式转换。

  YOLO数据集txt格式:

  X_center:归一化中心点的x坐标。

  Y_center:归一化中心点的y坐标。

  W:标准化目标帧宽度

  h:标准化目标条件高度

  (这里的归一化是指除以图片的宽度和高度)

  VOC数据集xml格式

  yolo的四个数据xml-txt公式是x _ center((x _ min x _ max)/2-1)/w _ imagey _ center((y _ min y _ max)/2-1)/h _ imagew(x _ max-x _ min)/w _ imageh(y _

  

2、分析xml、txt数据

  定义了两个文件夹,train用于xml数据,labels用于txt数据。

  代码解析:

  导入操作系统

  将xml.etree.ElementTree作为ET导入

  导入io

  其中find_path=的文件。/train/ #xml位于

  保存路径=。/labels/ #保存文件

  类别Voc_Yolo(对象):

  def __init__(self,find_path):

  self.find_path=find_path

  def Make_txt(self,outfile):

  out=open(outfile, w )

  打印(成功创建:{} 。格式(输出文件))

  退回去

  定义工作(自我,计数):

  #查找文件路径

  对于os.walk(self.find_path):中的根目录、目录和文件

  #在文件目录中查找每个xml文件

  对于文件:中的文件

  #记录已处理的文件

  计数=1

  #输入和输出文件定义

  输入文件=查找路径文件

  outfile=savepath文件[:-4]。文本

  #新建一个txt文件,确保文件正常保存。

  out=自我。Make_txt(输出文件)

  #分析xml树,取出w_image和h_image

  tree=ET.parse(input_file)

  root=tree.getroot()

  size=root.find(size )

  w_image=float(size.find(width )。正文)

  h _ image=float(size . find( height )。正文)

  #继续提取有效信息来计算txt中的四个数据

  for obj in root . ITER( object ):

  #提取类型。不同的目标类型是不同的。这篇文章中只有一个类别-0

  classname=obj.find(name )。文本

  cls_id=classname

  xmlbox=obj.find(bndbox )

  x_min=float(xmlbox.find(xmin )。正文)

  x_max=float(xmlbox.find(xmax )。正文)

  y_min=float(xmlbox.find(ymin )。正文)

  y_max=float(xmlbox.find(ymax )。正文)

  #计算公式

  x _ center=((x _ min x _ max)/2-1)/w _ image

  y _ center=((y _ min y _ max)/2-1)/h _ image

  w=(x_max-x_min)/w_image

  h=(y_max-y_min)/h_image

  #文件写入

  out . write(str(cls _ id) str(x _ center) str(y _ center) str(w) str(h) \ n )

  out.close()

  返回计数

  if __name__==__main__:

  数据=Voc_Yolo(查找路径)

  数字=数据。工作(0)

  打印(数字)

  

3、转换过程

  已成功创建。

  与真实数据相比,误差很小。

  关于Python将xml格式转换为txt格式的示例代码的文章到此结束。关于Python的XML转txt的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: