Python代码xml文件转txt(yolov3)可用格式
说明
首先感谢提供参考与支持!
参考博客 https://blog.csdn.net/u012966194/article/details/80004647
训练自己神经网络模型需要自己标注,像最常用的Yolov3神经网络。标注的缺陷坐标大多是VOC格式的xml文件,Yolov3模型训练,需要将缺陷坐标,VOC格式的xml文件转换为txt文件。这里做一下技术分享。
前期准备:生成xml索引文件
因为代码中有一段
“image_ids_train = open(‘C:/Users/Admin/PycharmProjects/ReadName/ImageXML.txt’).read().strip().split() # 读取xml文件名索引”
所以在运行代码之前需要创建一个txt文件作为读取xml文件名的索引,txt文件里包含了所有需要转换的xml文件名。如下图所示:
需要读取的xml文件:
生成的xml索引文件:
注意:读取的文件名不能带有文件.xml后缀,否则会在读取路径时报错!后续代码在检索时会自动加上.xml后缀。读取文件名的具体操作,详情请见我的另一篇技术分享:
Python批量读取修改文件名 https://blog.csdn.net/GeekYao/article/details/105074574
生成xml索引文件后,就可以愉快的运行代码了。代码如下。
代码
# 缺陷坐标xml转txt
import xml.etree.ElementTree as ET
classes = ["b"] # 输入缺陷名称,必须与xml标注名称一致
def convert(size, box):
dw = 1. / size[0]
dh = 1. / size[1]
x = (box[0