处理txt文本,得到需要的字符串(根据训练集合验证集文本,生成对应的文件名)


原来用的yolov3的代码,是直接按0.9和0
1的比例,划分训练验证集和测试集。所以得到的是两个文件 tranval.txt 和test.txt。yolov3的代码训练的时候会吧trainval.txt按0.9和0.1的比例划分好训练集和验证集。现在yolov5和yolov7的代码需要提前划分好训练集和验证集和测试集。所以需要转化一下数据集

yolov3的数据集格式

在这里插入图片描述
已经转化成2007_train.txt 可以直接用来训练

yolov5 需要的数据集格式

在这里插入图片描述
需要得到对应的文件名

2007_train.txt

F:\WorkSpace\Python\yolo3-pytorch/VOCdevkit/VOC2007/JPEGImages/1_Handshaking_Handshaking_1_410.jpg 413,69,529,226,1 69,20,94,55,1 43,189,70,223,1
F:\WorkSpace\Python\yolo3-pytorch/VOCdevkit/VOC2007/JPEGImages/1_Handshaking_Handshaking_1_411.jpg 22,62,134,212,1 260,6,414,178,1 670,64,750,262,1 862,114,992,352,1
F:\WorkSpace\Python\yolo3-pytorch/VOCdevkit/VOC2007/JPEGImages/1_Handshaking_Handshaking_1_417.jpg 258,30,296,77,1 221,93,272,160,1 132,189,208,295,1 459,61,576,215,1 665,55,774,201,1 476,512,569,622,1 606,536,668,634,1 238,699,278,806,1 388,1098,434,1159,1 153,1188,182,1229,1 183,1179,203,1208,1 239,1151,265,1186,1 670,1161,699,1213,1 832,1124,866,1186,1 911,1162,968,1221,1 833,219,919,338,1 972,138,1023,249,1 273,864,342,942,1 398,823,460,906,1 740,1164,771,1219,1 712,1213,748,1261,1 42,1182,72,1224,1 109,1218,132,1271,1 418,5,489,97,1 534,1154,565,1196,1 483,1147,522,1197,1 992,1162,1024,1203,1
F:\WorkSpace\Python\yolo3-pytorch/VOCdevkit/VOC2007/JPEGImages/1_Handshaking_Handshaking_1_42.jpg 200,44,356,214,1

只需要文件名 1_Handshaking_Handshaking_1_417 ,写入到val.txt 文件中,生成yolov5的label文件。

划分文件

import os
import random

wd = os.getcwd()

saveBasePath = 'val'
ftrain = open('val.txt', 'w')

# count = len(open("2007_train.txt",'r').readlines())
# print(count)

with open('./2007_val.txt', 'r') as f:
    for num, line in enumerate(f):
        name = line.split('/')[4].split('.')[0]+'\n'
        print(name)
        ftrain.write(name)
ftrain.close()

train.txt 文件

1_Handshaking_Handshaking_1_281
1_Handshaking_Handshaking_1_288
1_Handshaking_Handshaking_1_289
1_Handshaking_Handshaking_1_292
1_Handshaking_Handshaking_1_306

利用data_transfer项目得到yolov5对应的数据集格式

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41398619/article/details/127471411