1.YOLOv5数据集当前的格式
--data-
----images
---train
---val
--test
----labels
---train
---val
--test
关于这一块数据集的分类制作,准备好所有的image 和labels 标签后 分类可以查看下面这篇yolov5 数据集分类,xml转txt,_yolov5的xml转txt_知新_ROL的博客-CSDN博客
补充一点:关于图片批量改名字的快速方法:Bridge(Adobe 旗下的软件)
1.进入到图片窗口
ctrl +A 选中所有图片
然后点击工具
选中批量命名
然后就可以统一批量改图片名字了
这里给出一段代码是批量修改图片名称
import os
path = "D:\\1Aqilei\\data"
filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
count=0
for file in filelist:
Olddir = os.path.join(path, file) # 原来的文件路径
if os.path.isdir(Olddir): # 如果是文件夹则跳过
continue
filename = os.path.splitext(file)[0] # 文件名
filetype = os.path.splitext(file)[1] # 文件扩展名
print(filename)
Newdir = os.path.join(path, str(count).zfill(5) + filetype) # 用字符串函数zfill 以0补全所需位数
os.rename(Olddir, Newdir) # 重命名
count += 1
# os.path.splitext(“文件路径”) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作
print ('END')
count=str(count)
print("共有"+count+"张图片尺寸被修改")
2.批量改图片大小的代码
# coding=utf-8
import os # 打开文件时需要
from PIL import Image
import re
Start_path = 'D:/my_code/FasterRCNN_TensorFlow/Faster_rcnn/data/data_test_faster_rcnn/JPEGImages/' # 你的图片目录
width_max = 375 # 图片最大宽度
depth_max = 500 # 图片最大高度
list = os.listdir(Start_path)
# print list
count = 0
for pic in list:
path = Start_path + pic
print(path)
im = Image.open(path)
w, h = im.size
print (w,h)
#如果图片分辨率超过这个值,进行图片的等比例压缩
if w > width_max:
print(pic)
print("图片名称为" + pic + "图片被修改")
h_new = width_max * h // w
w_new = width_max
count = count + 1
out = im.resize((w_new, h_new), Image.ANTIALIAS)
new_pic = re.sub(pic[:-4], pic[:-4] , pic)
# print new_pic
new_path = Start_path + new_pic
out.save(new_path)
if h > depth_max:
print(pic)
print("图片名称为" + pic + "图片被修改")
w_new = depth_max * w // h
h_new = depth_max
count = count + 1
out = im.resize((w_new, h_new), Image.ANTIALIAS)
new_pic = re.sub(pic[:-4], pic[:-4] , pic)
# print new_pic
new_path = Start_path + new_pic
out.save(new_path)
print('END')
count = str(count)
print("共有" + count + "张图片尺寸被修改")