Лучший подход к построению модели для распознавания номерных знаков (ALPR)

Я пытаюсь создать модель глубокого обучения для обнаружения и чтения номерных знаков с использованием таких методов глубокого обучения, как CNN. Я бы сделал модель в тензорном потоке. Но я до сих пор не знаю, что может быть лучшим подходом для построения такой модели.

я проверил несколько таких моделей https://matthewearl.github.io/2016/05/06/cnn-anpr/

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

Итак, шаги, которые я планирую выполнить,

  1. Предварительная обработка изображения с использованием opencv (оттенки серого, преобразования и т. д., я мало что знаю об этой части)

  2. Обнаружение номерного знака (вероятно, методом скользящего окна)

  3. Тренируйтесь с помощью CNN, создав синтетический набор данных, как показано в приведенной выше ссылке.

Мои вопросы

Есть ли лучший способ сделать это?

Можно ли также комбинировать RNN после CNN для номера переменной длины?

Должен ли я предпочесть обнаружение и распознавание отдельных символов, а не всей пластины?

Есть также много старых методов, которые предпочитают предварительную обработку изображений и прямой переход к OCR. Что будет лучше?

PS- я хочу сделать коммерческую систему реального времени. Так что мне нужна хорошая точность.


person Arpit Khurana    schedule 16.06.2017    source источник
comment
Если вы хотите, чтобы CNN могла считывать реальные номерные знаки при реальном освещении, движении, угле и целенаправленном затемнении, вам понадобится большой набор данных примеров изображений. Синтетические данные помогут вам только в этом. Как и предлагает Кэти Ли, построение конвейера из ограниченных шагов, вероятно, является лучшим выбором, но ваша система настолько сильна, насколько сильно ее самое слабое звено. Если ваше обнаружение номерного знака составляет всего 97%, то 97% — это ваш верхний предел точности. Если ваша CNN имеет точность 99% на символ и есть 8 символов, то ваша верхняя точность составляет 0,99 ^ 8 = 92%.   -  person Anton Codes    schedule 19.06.2017
comment
да, я понимаю. Мне нужен способ убедиться, что я читаю только с номерного знака и игнорирую другие тексты на изображении, такие как вывески или что-то в этом роде.   -  person Arpit Khurana    schedule 21.06.2017


Ответы (1)


Во-первых, я не думаю, что объединение RNN и CNN может создать систему реального времени. И я лично предпочитаю обнаруживать отдельные символы, если мне нужна система реального времени, потому что на номерном знаке будет не более 10 символов. При обнаружении пластин переменной длины обнаружение отдельных символов может быть более осуществимым.

Прежде чем я научился глубокому обучению, я также пытался использовать OCR для обнаружения номерного знака. В моем случае OCR работает быстро, но точность ограничена, особенно когда пластина недостаточно четкая. Даже обработка изображений не может спасти какой-то неясный случай.......

Итак, если бы я был вами, я бы попробовал следующее:

  1. Простая предварительная обработка изображения на всем изображении
  2. Обнаружение номерного знака (вероятно, методом скользящего окна)
  3. Обработка изображения (фильтры и геометрические преобразования) на извлеченной части пластины, чтобы сделать ее более четкой. Отдельные персонажи.
  4. Разверните CNN для каждого персонажа. (Может быть, я попробую несколько коротких CNN из-за реального времени, таких как LeNet, используемый в рукописных цифровых данных MNIST) (может потребоваться многопоточность)

Надеюсь, мой ответ поможет.

person Kathy Lee    schedule 16.06.2017
comment
Ну... как разделить символы. А вот в моей стране формат номера не статичен. Это может быть много форм, поэтому я не думаю, что метод скользящего окна может работать для обнаружения. Думаю, мне нужно как-то найти белые и желтые пластины (области). Но это перестанет работать при слабом освещении. - person Arpit Khurana; 21.06.2017
comment
Некоторые методы обработки изображений необходимы как для разделения символов, так и для обнаружения пластин. Вы можете поискать их самостоятельно. Я считаю, что многие бумаги относятся к ним. Одним из распространенных методов разделения символов является маркировка подключенных компонентов. Для обнаружения пластин также сначала выполните некоторую предварительную обработку изображения, например, фильтры, определение формы и т. д. - person Kathy Lee; 21.06.2017