加载图像组并标记它们
loading groups of images and labeling them
我有一个猫狗数据库,我需要对它们进行 class 验证。我想加载我的数据集文件夹中的所有图像并根据 class 生成标签,例如:
Group 1/
Pets 1/
cats/
breeds_1_cats001.jpeg
breeds_1_cats002.jpeg
dogs/
breeds_1_dogs001.jpeg
breeds_1_dogs002.jpeg
Pets 2/
cats/
breeds_2_cats001.jpeg
breeds_2_cats002.jpeg
dogs/
breeds_2_dogs001.jpeg
breeds_2_dogs002.jpeg
Group 2/
Pets 1/
cats/
breeds_3_cats001.jpeg
breeds_3_cats002.jpeg
dogs/
breeds_3_dogs001.jpeg
breeds_3_dogs002.jpeg
Pets 2/
cats/
breeds_4_cats001.jpeg
breeds_4_cats002.jpeg
dogs/
breeds_4_dogs001.jpeg
breeds_4_dogs002.jpeg
Group 3/
Pets 1/
cats/
breeds_5_cats001.jpeg
breeds_5_cats002.jpeg
dogs/
breeds_5_dogs001.jpeg
breeds_5_dogs002.jpeg
Pets 2/
cats/
breeds_6_cats001.jpeg
breeds_6_cats002.jpeg
dogs/
breeds_6_dogs001.jpeg
breeds_6_dogs002.jpeg
我想做的是将数据集中的每张图像加载到一个数组中,然后为每只宠物创建一个 y 标签。
我想要实现的是拥有一个数组 Y,它具有关于 X 的图像标签,以找到的顺序保存图像标签,示例:
Y = [1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0].
但是,由于我拥有的图像数量众多,手动创建此标签并不实用,我该如何实现此结果?
试试这个,首先读取数据集文件夹中的所有文件并遍历文件路径。如果路径包含 cats
,则附加猫标签,如果不包含,则附加狗标签:
import glob
images_paths = []
labels = []
files = glob.glob('./Dataset/**/*.jpeg', recursive=True)
for file_path in files:
if 'cats' in file_path:
labels.append(1)
else:
labels.append(0)
标签 0 - 狗
标签 1 - 猫
我有一个猫狗数据库,我需要对它们进行 class 验证。我想加载我的数据集文件夹中的所有图像并根据 class 生成标签,例如:
Group 1/
Pets 1/
cats/
breeds_1_cats001.jpeg
breeds_1_cats002.jpeg
dogs/
breeds_1_dogs001.jpeg
breeds_1_dogs002.jpeg
Pets 2/
cats/
breeds_2_cats001.jpeg
breeds_2_cats002.jpeg
dogs/
breeds_2_dogs001.jpeg
breeds_2_dogs002.jpeg
Group 2/
Pets 1/
cats/
breeds_3_cats001.jpeg
breeds_3_cats002.jpeg
dogs/
breeds_3_dogs001.jpeg
breeds_3_dogs002.jpeg
Pets 2/
cats/
breeds_4_cats001.jpeg
breeds_4_cats002.jpeg
dogs/
breeds_4_dogs001.jpeg
breeds_4_dogs002.jpeg
Group 3/
Pets 1/
cats/
breeds_5_cats001.jpeg
breeds_5_cats002.jpeg
dogs/
breeds_5_dogs001.jpeg
breeds_5_dogs002.jpeg
Pets 2/
cats/
breeds_6_cats001.jpeg
breeds_6_cats002.jpeg
dogs/
breeds_6_dogs001.jpeg
breeds_6_dogs002.jpeg
我想做的是将数据集中的每张图像加载到一个数组中,然后为每只宠物创建一个 y 标签。
我想要实现的是拥有一个数组 Y,它具有关于 X 的图像标签,以找到的顺序保存图像标签,示例:
Y = [1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0].
但是,由于我拥有的图像数量众多,手动创建此标签并不实用,我该如何实现此结果?
试试这个,首先读取数据集文件夹中的所有文件并遍历文件路径。如果路径包含 cats
,则附加猫标签,如果不包含,则附加狗标签:
import glob
images_paths = []
labels = []
files = glob.glob('./Dataset/**/*.jpeg', recursive=True)
for file_path in files:
if 'cats' in file_path:
labels.append(1)
else:
labels.append(0)
标签 0 - 狗 标签 1 - 猫