1、首先将类别目录下的具体类别的数据集转移到一个大部目录下
这是鸟的数据集,下面分成200类。将这200类下的图片全部按照voc数据集命名格式转移到bird_image文件目录下:
from PIL import Image
import glob
url = '/home/lf/桌面/bird_image/images/'#图片存储的文件夹名称
n=11788#图片的数量
array = np.arange(n)#产生长度为n的序列
np.random.shuffle(array)#将arrray序列随机排列
#把path文件夹下以及其子文件下的所有.jpg图片移动到new_path文件夹下
def moveImg(path,new_path):
img=Image.open(path)
img.save(os.path.join(new_path,os.path.basename(path)))
bird_path="/home/lf/桌面/bird_image/bird_image"
listName=os.listdir(url)
#转移数据集
for i in range(len(listName)):
name=listName[i]
image_files=url+name
for image_name in glob.glob(image_files+"/*.jpg"):
moveImg(image_name,bird_path)
bird_list=os.listdir(bird_path)
#将转移的数据集规范命名格式
for i in range(len(bird_list)):
if bird_list[i].endswith(".jpg"):
src=os.path.join(os.path.abspath(bird_path),bird_list[i])
dst=os.path.join(os.path.abspath(bird_path),(str(i).zfill(6)+'.jpg'))
os.rename(src,dst)
2、将数据集分别按照7:3的比例分成训练集、测试集,并将数据集图片的名称分别保存到txt文件下
new_path=’/home/lf/桌面/bird_image/bird_test’
# 30%的数据生成测试集
new_path='/home/lf/桌面/bird_image/bird_train/'
dir1="/home/lf/桌面/bird_image/bird_train/"
fp1=open("/home/lf/桌面/bird_image/train.txt","a")
for filename in os.listdir(dir1):
# print(filename)
fp1.write(filename)
fp1.write("\n")
fp1.close()
dir2="/home/lf/桌面/bird_image/bird_test/"
fp2=open("/home/lf/桌面/bird_image/test.txt","a")
for filename in os.listdir(dir2):
fp2.write(filename)
fp2.write("\n")
fp2.close()

博客内容讲述了如何将200类鸟的图片数据集进行整理,统一转移到一个目录下,并按照VOC数据集的命名规范进行命名。接着,数据集被划分为70%的训练集和30%的测试集,每部分的图片名被记录到相应的txt文件中。

1万+

被折叠的 条评论
为什么被折叠?



