[英]Image classification model
我的目标是为花卉建立一个图像分类 model。 数据 RAR 文件由一个名为 train data 的文件夹组成,该文件夹包含大约 16000 张从 0 到 16000 标记的图像。同样,还有一个用于测试数据的文件夹。
除此之外,还有两个 csv 工作簿。 第一个 csv 工作簿包含两个属性 - label 和花 class。 有 104 个标签和 104 个花类。 第二个工作簿还包含两个属性 - id 和花 class。 该数据集对应于火车数据,并且具有与火车数据文件夹相同数量的数据点(大约 16000)
例如,假设火车数据文件夹中标记为 10 的图像是向日葵。 因此,在(第二个)工作簿中,对应于 id =10 的花 class 条目是向日葵。
我发现第一步是将不同花类的图像存储到不同的目录中。 我已经创建了 104 个文件夹,但我正在努力重命名我的图像。 只有重命名后,我才能将它们移动到各自的目录中。
数据可在此处获得 https://www.kaggle.com/ianmoone0617/flower-goggle-tpu-classification
dire = r'C:\Users\Ben\Desktop\Flower classification\flower_tpu\trial_2\\'
for i in range(0,7,1):
fl_name = flowers_idx['flower_cls'][flowers_idx['id'] == i].iloc[0]
for count, filename in enumerate(os.listdir(dire)):
dst = fl_name + ' ' + str(count) + ".JPEG"
src = dire + filename
dst = dire + dst
os.rename(src, dst)
这是我根据从 csv 查询的花 class 名称重命名的尝试。 但它将所有花重命名为最后一朵花的名称。
欢迎来到这个社区。 您无需将图像重新组织到不同的文件夹中。 使用 pandas 读取两个 CSV 文件
import pandas as pd
label_csv = pd.read_csv("flowers_label.csv")
flowers_csv = pd.read_csv("flowers_idx.csv")
现在您可以循环遍历 flowers_csv 并将图像加载为 numpy 数组。 这是代码片段。
from PIL import Image
X = [] #images
y = [] # labels
base_url = "flowers_google/"
row = 0;
for idx in range(len(flowers_csv)):
# get the flower row
flower = flowers_csv.iloc[idx]
# create flower path
path = f"{base}{flower.id}.jpeg"
#load image
img = Image.open(path)
# convert to numpy
img = np.array(img)
#save to X
X.append(img)
# get label
label = label_csv[label_csv['flower_class'] == flower.flower_cls].label.values[0]
# save to y
y.append(label)
您还可以创建自己的自定义 Keras 数据集 class。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.