【发布时间】:2020-04-05 12:52:41
【问题描述】:
我的研究项目是开发一个神经网络来识别车牌上的文字。因此,我在https://medusa.fit.vutbr.cz/traffic/research-topics/general-traffic-analysis/holistic-recognition-of-low-quality-license-plates-by-cnn-using-track-annotated-data-iwt4s-avss-2017/ 找到了 ReId 数据集。该数据集包含一堆车牌图像以及车牌文本,并被 Spanhel 等人使用。与我想到的方法类似。
那里的车牌示例:
在项目中,我只想识别车牌文本,即只有“9B5 2145”,而不是国家首字母缩写词“CZ”,也没有广告文本。
我将数据集和标签 csv 文件下载到本地内存。所以,我有以下文件夹结构: 我的整个项目的一个母目录。这个母目录包括我的数据目录,我存储了 ReId 数据集。该数据集包括几个子目录,4 个包含训练数据的目录和 4 个包含测试数据的目录,所有这些子目录都包含许多车牌图像。 ReId 数据集还包含 trainVal csv 文件,其结构如下(实际工作表的 sn-p):
track_id 等于 ReID 数据集的子目录。 image_path 等于图像的路径,在这种情况下,图像的名称是 1_1。 lp 是车牌的标签,所以是实际的车牌。 train 是一个虚拟变量,如果图像用于训练目的则等于 1,而 0 则用于验证目的。
关于这个数据集,我有三个主要问题:
-
如何正确阅读这些图片?我试着用这样的东西
from keras.preprocessing.image import ImageDataGenerator # create generator datagen = ImageDataGenerator() # prepare an iterators for each dataset train_it = datagen.flow_from_directory('data/train/', class_mode='binary') val_it = datagen.flow_from_directory('data/validation/', class_mode='binary') test_it = datagen.flow_from_directory('data/test/', class_mode='binary') # confirm the iterator works batchX, batchy = train_it.next() print('Batch shape=%s, min=%.3f, max=%.3f' % (batchX.shape, batchX.min(), batchX.max()))
但显然 Python 没有找到属于任何类的图像(旁注:我使用了正确的路径)。这对我来说很清楚,因为我还没有为我的数据分配任何类。所以,我的第一个问题是:我必须这样做吗?我不这么认为。
我该如何正确读取这些图像?我想,我必须让 numpy 数组正确处理这些数据。
如何将图像和标签放在一起?在我看来,我认为我必须合并两个数据集,不是吗?
非常感谢!
【问题讨论】:
标签: python arrays tensorflow merge neural-network