参考darknet自带的voc_label.py

import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import joinclasses = ["dog", "cat"]def convert(size, box):dw = 1./(size[0])dh = 1./(size[1])x = (box[0] + box[1])/2.0 - 1y = (box[2] + box[3])/2.0 - 1w = box[1] - box[0]h = box[3] - box[2]x = x*dww = w*dwy = y*dhh = h*dhreturn (x,y,w,h)def convert_annotation(rootpath,xmlname):xmlpath = rootpath + '/labels'xmlfile = os.path.join(xmlpath,xmlname)with open(xmlfile, "r") as in_file:txtname = xmlname[:-4]+'.txt'txtpath = rootpath + '/labelYOLOs'if not os.path.exists(txtpath):os.makedirs(txtpath)txtfile = os.path.join(txtpath,txtname)with open(txtfile, "w+") as out_file:tree=ET.parse(in_file)root = tree.getroot()size = root.find('size')w = int(size.find('width').text)h = int(size.find('height').text)out_file.truncate()for obj in root.iter('object'):difficult = obj.find('difficult').textcls = obj.find('name').textif cls not in classes or int(difficult)==1:continuecls_id = classes.index(cls)xmlbox = obj.find('bndbox')b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text))bb = convert((w,h), b)out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')if __name__ == "__main__":rootpath='/home/aimhabo/YOLOv3SMP/data'xmlpath=rootpath+'/labels'list=os.listdir(xmlpath)for i in range(0,len(list)) :path = os.path.join(xmlpath,list[i])if ('.xml' in path)or('.XML' in path):convert_annotation(rootpath,list[i])print('done', i)else:print('not xml file',i)

转载于:https://www.cnblogs.com/aimhabo/p/8949837.html

VOC标签转化为YOLO标签相关推荐

  1. 把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签

    把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签 文章目录: 1 用LabelImgvoc和yolo标注标签格式说明 1.1 LabelImg标 ...

  2. 目标检测: Camvid 语义标签转化为bbox标签

    前言 CamVid 数据集是由剑桥大学公开发布的城市道路场景的数据集,它包括 701 张精准标注的图片用于语义分割,如果要使用CamVid数据集做目标检测,就需要bbox标签,本文提供了根据 CamV ...

  3. 把 html标签转化为 html标签代码

    HttpUtility.HtmlEncode(table.Rows[0]["footnote"].ToString()); 转载于:https://www.cnblogs.com/ ...

  4. 深度学习|dota格式的txt文件转化为yolo格式的txt文件

    最近打比赛用到的SAR舰船目标检测集,赛方给出的是dota格式的标签文件,如图: 上图中前8个数据代表真实框四个点的坐标(以左上角坐标顺时针旋转),ship是DOTA数据集的分类,最后的0表示识别难易 ...

  5. json标签批量转为xml标签(VOC数据集制作)

    github链接,里面有我最近写的一些标签的转换脚本 这是一份将json格式的数据集标签转为xml类型标签的脚本,供大家参考 先说下我的应用场景:天池街景识别提供的json文件,用于制作VOC格式数据 ...

  6. 数字标签转化为one-hot形式的tensor

    刚刚入tensorflow的大坑,根据自己的理解今天来记录一下如何将数字标签转化为one-hot形式.有错误的请谅解哈哈哈 what is form of one-hot ?即用包含0和1的tenso ...

  7. tensorflow--之将数字标签转化为one-hot

    如果要用到soft_max函数,就必须将数字标签转化为one-hot,之前用caffe是自动转, 这回使用tensoflow是的自己转: 例子代码如下: import numpy as np labe ...

  8. R语言ggplot2可视化为轴标签添加下标实战:符号下标、百分比下标、带括号的下标

    R语言ggplot2可视化为轴标签添加下标实战:符号下标.百分比下标.带括号的下标 目录

  9. R语言ggplot2可视化:ggplot2可视化为轴标签添加复杂下标(Subscripts)和上标(superscripts)、离子化学符号(ionic chemical notation)等

    R语言ggplot2可视化:ggplot2可视化为轴标签添加复杂下标(Subscripts)和上标(superscripts).离子化学符号(ionic chemical notation)等 目录

最新文章

  1. 赵雅智_android多线程下载带进度条
  2. php表格 单元格,如何更改PHPWord表格单元格高度?
  3. $(@_config=)什么意思?
  4. Flutter+百度人工智能实现测验值app
  5. Request 分别获取具有相同 name 属性表单元素值
  6. (17)FPGA面试技能提升篇(System Verilog)
  7. 使用LD链接时候文件的顺序
  8. 黑客雇佣组织开发出新型的Windows 隐秘后门
  9. 算数or算卦,和业务人谈“预测”到底在谈啥?
  10. SQL中的join总结
  11. Oracle Database 11g Express Edition学习笔记
  12. php花瓣,php 网络爬虫,爬一下花瓣的图片
  13. C++内存分配(operator new)
  14. antd tooltip 修改样式
  15. IMS:InputChannel通过socket发送Input给App
  16. 基于xsh的vbs脚本的使用(条件判断和函数)
  17. DEFCON CTF全球总决赛:三支中国战队进入世界前六
  18. 汽车维修店如何挖掘潜在客户资源
  19. android编译报错(1)
  20. curses编程(一)初识

热门文章

  1. OpenBSD操作系统(1)——服务管理程序rcctl 类似linux下的service或systemctl
  2. qt.qpa.screen: QXcbConnection: Could not connect to display(vnpy,云主机,图形界面)
  3. 走进我的交易室04_成功交易的 3 个 M
  4. 走进我的交易室02_交易什么市场
  5. 这N张模板,做出了秒杀echarts和python的可视化大屏,老板很满意
  6. 4000多人全靠报表自动化,效率提高60%,这套数据平台方法论真强
  7. maven 打包java项目_如何使用maven打包java项目?
  8. vue里面v-cloak/v-text/v-html/v-pre的应用
  9. vue中computed与watch的区别
  10. hadoop配置文件_Hadoop分布式集群