Сверточная нейронная сеть: обучение со списком возможных массивов и объединение данных и меток из разных источников - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь разработать нейронную сеть для распознавания текста на номерных знаках. Поэтому я нашел набор данных ReId на 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/. Этот набор данных содержит набор изображений номерных знаков, а также текст номерных знаков и использовался Spanhel et al. для аналогичного подхода, который я имею в виду.

Пример номера там:

License plate

В проекте I хочу распознать только текст номерного знака, то есть только «9B5 2145», а не аббревиатуру страны «CZ» и текст рекламы.

Я загрузил набор данных и csv-файл меток в свою локальную память. Итак, у меня есть следующая структура папок: один материнский каталог для всего моего проекта. Этот материнский каталог включает в себя мой каталог данных, в котором я хранил набор данных ReId. Этот набор данных включает в себя несколько подкаталогов, 4 каталога с обучающими данными и 4 с тестовыми данными, все эти подкаталоги содержат несколько изображений номерных знаков. Набор данных ReId также содержит CSV-файл trainVal, который структурирован следующим образом (фрагмент фактического листа):

TrainVal

track_id равен подкаталогу набора данных ReID. image_path равно пути к изображению, в этом случае имя изображения равно 1_1. lp - это номерной знак, то есть фактический номерной знак. train - фиктивная переменная, равная единице, если изображение используется для целей обучения, и 0 для целей проверки.

Я читаю в моих данных этот код:

import cv2
import numpy
import glob
import matplotlib.pyplot as plt

folders = glob.glob(r'path to subfolders\*')
imagenames_list = []
for folder in folders:
    for f in glob.glob(folder+'/*.png'):
        imagenames_list.append(f)

read_images = []        

for image in imagenames_list:
    read_images.append(cv2.imread(image, cv2.IMREAD_GRAYSCALE)) 

Я сейчас иметь список массивов с серыми номерными знаками, которые должны быть в порядке для сверточного нейрона net.

Первый вопрос относительно этого: Могу ли я обучить нейрону net со списком массивов? Или мне нужно создать другую форму массива? Обратите внимание, что у меня нет изображений одинакового размера.

Второй вопрос: Вы видели, что у меня уже есть ярлыки для всех моих изображений. Эти ярлыки связаны с изображениями путями к изображениям и именами изображений. Как мне объединить мои изображения и этикетки? Это означает, что моя нейронная сеть знает правильные метки соответствующей картинки? Обратите внимание, что у меня есть вышеупомянутый CSV-файл, который содержит путь к изображению и метки.

Большое спасибо!

...