如何使用坐标 X、Y 和图像训练深度学习模型?

问题描述 投票:0回答:1

我的任务是头影测量地标定位。 我的图像路径和坐标显示在此数据框中。

文件名 X1 Y1
/Images_data/binary0006.png 89 80
/Images_data/binary0008.png 37 70
/Images_data/binary0007.png 50 76
/Images_data/binary0003.png 55 92
/Images_data/binary0005.png 91 64
/Images_data/binary0004.png 100 76

如何准备用于 model.fit 训练的数据集? 我尝试使用 ImageDataGenerator 创建用于训练的图像数据集。

  train_ds = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir,
  label_mode=None,
  validation_split=0.2,
  subset="training",
  seed=123,
  image_size=(img_height, img_width),
  batch_size=batch_size)

但现在我陷入困境,因为我不知道如何将坐标与图像匹配。

python machine-learning deep-learning conv-neural-network
1个回答
0
投票

使用

flow_from_dataframe
ImageDataGenerator
方法。

  1. 加载包含文件路径和坐标的 DataFrame。
import pandas as pd
data_dir = "images/"
df = pd.read_csv("dataframe.csv")
df = df.sample(frac=1, random_state=9)
print(df)
  1. 创建图像数据生成器
from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
    rescale=1./255,
)
  1. 来自 DataFrame 的流程
from tensorflow.keras.preprocessing.image import ImageDataGenerator
img_height, img_width = 100, 100
batch_size = 32
train_generator = datagen.flow_from_dataframe(
    dataframe=df,
    directory=data_dir,
    x_col="x_col",
    y_col=["X1", "Y1"],
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode="raw",
    shuffle=True,
    seed=9,
    subset="training"
)

这里,x_col设置为“x_col”来指定包含文件路径的列,y_col设置为[“X1”,“Y1”]来指定包含坐标的列。 class_mode 设置为“raw”以指示标签是连续值。

现在,您可以在 model.fit 函数中使用 train_generator 了:

model.fit(train_generator, epochs=num_epochs, ...)
© www.soinside.com 2019 - 2024. All rights reserved.