恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

数据集格式转化 xml转换txt xml转换txt 转换代码示例参考 VOC(xml)格式如何转换yolo(txt )格式 (1)

  • 首页
  • 资讯中心
  • /
  • 数据集格式转化 xml转换txt xml转换txt 转换代码示例参考 VOC(xml)格式如何转换yolo(txt )格式 (1)

相关资讯

JavaSE初学(3) 2026/8/7 7:43:08
本地文档智能问答:从RAG原理到Soup实战避坑指南 2026/8/7 7:38:07
iframe 页面采集技巧 2026/8/7 7:38:07

最新资讯

OpenClaw 2026.x在WSL2环境下的部署与优化指南
汽车ECU任务总是“差一点超时”?从编译器层面找回实时性裕量
Linux服务器部署火绒终端安全V2.0:从原理到实践的完整指南
计算机毕业设计之基于Spring Boot的少儿体能训练中心系统设计与实现
刷了 200 道滑动窗口题才发现,核心就这一句话
如何在 Visual Studio 2026 中开始使用 GitHub Copilot

今日推荐

CAD图库管理:从文件归档到设计资产管理的效率革命
5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南
“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

数据集格式转化 xml转换txt xml转换txt 转换代码示例参考 VOC(xml)格式如何转换yolo(txt )格式 (1)

发布时间:2026/8/7 7:43:08
数据集格式转化 xml转换txt xml转换txt 转换代码示例参考 VOC(xml)格式如何转换yolo(txt )格式 (1) 如何三图 一套代码 来进行xml转换txt 转换代码示例参考。VOCxml格式如何转换yolotxt 格式 的转换首先你得有数据集吧。然后先进行数据集的标注在分类到训练集 测试集 验证集。最起码要搞个yaml,里面路径和yaml搞好对不。然后训练不会出现路径报错类似于这样的问题对不对答疑解惑同学经常问的问题另外VOC格式XML和YOLO(txt)格式可以互转,不要忘记了还有YOLO数据集通用YOLOV5-YOLOV12都可以。另外呢附一个代码让你知道如何XML格式转换TXT的yolo格式。这里以 帽子和人 CLASSES [“hat”, “person”] 两类数据集作为示例如何转换格式**第一步**第二步这里假设hat person 是smoke 和 fire第三步修改路径importxml.etree.ElementTree as ETimportpickleimportos from osimportlistdir, getcwd from os.pathimportjoinimportrandom from shutilimportcopyfile from PILimportImage只要改下面的CLASSES和PATH就可以了其他的不用改这个脚本会自动划分数据集生成YOLO格式的标签文件分类名称 这里改成数据集的分类名称一定要改请查看数据集目录下的txt文件CLASSES[hat,person]数据集目录 这里改成数据集的根目录根目录下有两个文件夹Annotations和JPEGImages一定要改PATHrC:\Users\87018\Desktop\xml2txt训练集占比80% 训练集:验证集8:2 这里划分数据集 不用改TRAIN_RATIO80def clear_hidden_files(path): dir_listos.listdir(path)foriindir_list: abspathos.path.join(os.path.abspath(path), i)ifos.path.isfile(abspath):ifi.startswith(._): os.remove(abspath)else: clear_hidden_files(abspath)def convert(size, box): dw1. / size[0]dh1. / size[1]x(box[0] box[1])/2.0y(box[2] box[3])/2.0wbox[1]- box[0]hbox[3]- box[2]xx * dw ww * dw yy * dh hh * dhreturn(x, y, w, h)def convert_annotation(image_id):# Assuming the image format is jpgimage_pathos.path.join(image_dir, f{image_id}.jpg)imgImage.open(image_path)w, himg.size in_fileopen(PATH/Annotations/%s.xml% image_id,encodingutf-8)out_fileopen(PATH/YOLOLabels/%s.txt% image_id,w,encodingutf-8)treeET.parse(in_file)roottree.getroot()sizeroot.find(size)# w int(size.find(width).text)# h int(size.find(height).text)difficult0forobjinroot.iter(object):ifobj.find(difficult): difficultobj.find(difficult).text clsobj.find(name).textifcls notinCLASSES or int(difficult)1:continuecls_idCLASSES.index(cls)xmlboxobj.find(bndbox)b(float(xmlbox.find(xmin).text), float(xmlbox.find(xmax).text), float(xmlbox.find(ymin).text), float(xmlbox.find(ymax).text))bbconvert((w,h),b)out_file.write(str(cls_id) .join([str(a)for a in bb])\n)in_file.close()out_file.close()wdos.getcwd()wdos.getcwd()work_sapce_diros.path.join(wd,PATH/)annotation_diros.path.join(work_sapce_dir,Annotations/)if not os.path.isdir(annotation_dir):os.mkdir(annotation_dir)clear_hidden_files(annotation_dir)image_diros.path.join(work_sapce_dir,JPEGImages/)if not os.path.isdir(image_dir):os.mkdir(image_dir)clear_hidden_files(image_dir)yolo_labels_diros.path.join(work_sapce_dir,YOLOLabels/)if not os.path.isdir(yolo_labels_dir):os.mkdir(yolo_labels_dir)clear_hidden_files(yolo_labels_dir)yolov5_train_diros.path.join(work_sapce_dir,train/)if not os.path.isdir(yolov5_train_dir):os.mkdir(yolov5_train_dir)clear_hidden_files(yolov5_train_dir)yolov5_images_train_diros.path.join(yolov5_train_dir,images/)if not os.path.isdir(yolov5_images_train_dir):os.mkdir(yolov5_images_train_dir)clear_hidden_files(yolov5_images_train_dir)yolov5_labels_train_diros.path.join(yolov5_train_dir,labels/)if not os.path.isdir(yolov5_labels_train_dir):os.mkdir(yolov5_labels_train_dir)clear_hidden_files(yolov5_labels_train_dir)yolov5_test_diros.path.join(work_sapce_dir,val/)if not os.path.isdir(yolov5_test_dir):os.mkdir(yolov5_test_dir)clear_hidden_files(yolov5_test_dir)yolov5_images_test_diros.path.join(yolov5_test_dir,images/)if not os.path.isdir(yolov5_images_test_dir):os.mkdir(yolov5_images_test_dir)clear_hidden_files(yolov5_images_test_dir)yolov5_labels_test_diros.path.join(yolov5_test_dir,labels/)if not os.path.isdir(yolov5_labels_test_dir):os.mkdir(yolov5_labels_test_dir)clear_hidden_files(yolov5_labels_test_dir)train_fileopen(os.path.join(wd,yolov5_train.txt),w,encodingutf-8)test_fileopen(os.path.join(wd,yolov5_valid.txt),w,encodingutf-8)train_file.close()test_file.close()train_fileopen(os.path.join(wd,yolov5_train.txt),a,encodingutf-8)test_fileopen(os.path.join(wd,yolov5_valid.txt),a,encodingutf-8)list_imgsos.listdir(image_dir)# list image files probrandom.randint(1,100)print(数据集:%d个%len(list_imgs))foriinrange(0, len(list_imgs)): pathos.path.join(image_dir, list_imgs[i])ifos.path.isfile(path): image_pathimage_dir list_imgs[i]voc_pathlist_imgs[i](nameWithoutExtention, extention)os.path.splitext(os.path.basename(image_path))(voc_nameWithoutExtention, voc_extention)os.path.splitext(os.path.basename(voc_path))annotation_namenameWithoutExtention .xmlannotation_pathos.path.join(annotation_dir, annotation_name)label_namenameWithoutExtention .txtlabel_pathos.path.join(yolo_labels_dir, label_name)probrandom.randint(1,100)print(Probability: %d% prob, i, list_imgs[i])if(probTRAIN_RATIO):# train datasetifos.path.exists(annotation_path): train_file.write(image_path \n)convert_annotation(nameWithoutExtention)# convert labelcopyfile(image_path, yolov5_images_train_dir voc_path)copyfile(label_path, yolov5_labels_train_dir label_name)else:# test datasetifos.path.exists(annotation_path): test_file.write(image_path \n)convert_annotation(nameWithoutExtention)# convert labelcopyfile(image_path, yolov5_images_test_dir voc_path)copyfile(label_path, yolov5_labels_test_dir label_name)train_file.close()test_file.close()

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号