ImageDataGenerator的配置每个字符一个热编码标签

2024-04-25 14:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

数据集由图像文件(车牌)组成,其中包含车牌的基本事实文本。我还获得了图像的文件路径以及csv文件中的车牌标签(例如^{)。这意味着,车牌标签包含37个不同的字符(A-Z、0-9和一个空格)

现在,我想使用ImageDataGenerator方法读取带有以下代码的图像:

from tensorflow.keras.preprocessing.image import ImageDataGenerator
datagen=ImageDataGenerator(rescale=1./255)
train_generator=datagen.flow_from_dataframe(dataframe=df, directory="/content/gdrive/My Drive/data/2017-IWT4S-CarsReId_LP-dataset", x_col="FileName", y_col="Label", class_mode="categorical", target_size=(224,224), batch_size=128)

它返回:

Found 105824 validated image filenames belonging to 7066 classes.

因此,图像数据生成器一个接一个地对标签进行热编码,因为我有7066个不同的车牌,所以我得到了7066类。所以,我认为这很好,但这不是我想要的结果。我希望ImageDataGeberator为每个字符而不是每个标签提取一个热编码标签。因为,想象一下,我们得到一个全新的车牌和另一个地面真相文本,它不会识别它,因为它不能分配给7066类

我必须在代码中修改什么,或者我想要达到的目标是否无法通过ImageDataGenerator实现


Tags: 文件数据代码from图像image文本dataframe