• 训练自己数据-xml文件转voc格式


    首先我们有一堆xml文件 笔者是将mask-rcnn得到的json标注文件转为xml的

    批量json转xml方法:https://www.cnblogs.com/bob-jianfeng/p/11122135.html

    现在我们训练faster-rcnn或者yolo都需要pascal voc格式的数据

    所以我们的任务是将xml转为voc训练格式

    voc格式目录如下:

    VOCdevkit
    ——VOC2018 #文件夹的年份可以自己取,但是要与你其他文件年份一致,看下一步就明白了
    ————Annotations #放入所有的xml文件
    ————ImageSets
    ——————Main #放入train.txt,val.txt文件
    ————JPEGImages #放入所有的图片文件

    Main中的文件分别表示test.txt是测试集,train.txt是训练集,val.txt是验证集,trainval.txt是训练和验证集,反正我只建了两个
    所以新建这几个文件夹 并将原图放入JPEGImages  xml文件放入Annotations  接着生成train.txt和val.txt 

    生成Main中的txt代码 :(我们按照1:3的比例分为训练和验证)

     1 import os
     2 from os import listdir, getcwd
     3 from os.path import join
     4 
     5 if __name__ == '__main__':
     6     source_folder =r'G:jianfengproject
    ubblish_detsource	rain_pic_jsonvoc_allVOC2018JPEGImages'
     7     dest = r'G:jianfengproject
    ubblish_detsource	rain_pic_jsonvoc_all/VOC2018/ImageSets/Main/train.txt'
     8     dest2 = r'G:jianfengproject
    ubblish_detsource	rain_pic_jsonvoc_all/VOC2018/ImageSets/Main/val.txt'
     9     file_list = os.listdir(source_folder)
    10     train_file = open(dest, 'a')
    11     val_file = open(dest2, 'a')
    12     i=0
    13     for file_obj in file_list:
    14         file_name, file_extend = os.path.splitext(file_obj)
    15 
    16         if (i%4 ==0):
    17             val_file.write(file_name + '
    ')
    18         else:
    19             train_file.write(file_name + '
    ')
    20         i+=1
    21     train_file.close()
    22 val_file.close()

    然后完成了voc格式制作 接着可以训练你的数据了

  • 相关阅读:
    业务需求、用户需求和功能需求
    乐观锁的两种实现方式
    数据字典
    freemarker(ftl)标签用法
    commons-lang常用方法
    前端与后端分离
    jar包导入本地maven库的操作
    本地打jar包到本地的Maven出库
    MyEclipse中好用的快捷键汇总整理
    简单的反编译class文件并重新编译的方法
  • 原文地址:https://www.cnblogs.com/bob-jianfeng/p/11123111.html
Copyright © 2020-2023  润新知