zoukankan      html  css  js  c++  java
  • 训练自己数据-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格式制作 接着可以训练你的数据了

  • 相关阅读:
    centos 用户管理
    rsync 实验
    文件共享和传输
    PAT 1109 Group Photo
    PAT 1108 Finding Average
    PAT 1107 Social Clusters
    PAT 1106 Lowest Price in Supply Chain
    PAT 1105 Spiral Matrix
    PAT 1104 Sum of Number Segments
    PAT 1103 Integer Factorization
  • 原文地址:https://www.cnblogs.com/bob-jianfeng/p/11123111.html
Copyright © 2011-2022 走看看