Модель Tensorflow для OCR

Я новичок в Tensorflow и пытаюсь построить модель, которая сможет выполнять распознавание текста на моих изображениях. Мне нужно прочитать 9 символов (исправлено во всех изображениях), цифры и буквы. Моя модель будет похожа на эту

https://matthewearl.github.io/2016/05/06/cnn-anpr/

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

Я знаю, что мне нужно перейти к модели, изображениям + меткам для соответствующего изображения, каков формат этих меток, это текстовый файл, я немного запутался в этой части, поэтому любое объяснение формата меток, которые передаются модели было бы полезно? Я ценю, спасибо.


person thug_    schedule 25.04.2017    source источник
comment
Я бы рекомендовал тренироваться на всех лейблах вместе взятых. Это самое чистое решение. Если это не помогло, то можно попробовать другие методы. Обычно вы передаете в качестве метки вектор с горячим кодированием. Например, с собаками и кошками у вас будет метка «кошка», представленная как [1,0], и «собака» как [0,1].   -  person niczky12    schedule 25.04.2017
comment
Хорошо, спасибо, как я могу передать, например, метку 17C31T2F?   -  person thug_    schedule 25.04.2017
comment
Вам может быть интересен набор данных HASYv2 рукописных символов размером 32 x 32 пикселя.   -  person Martin Thoma    schedule 26.04.2017


Ответы (2)


Я бы рекомендовал внимательно тренировать сквозную модель OCR. Вы можете попробовать Attention OCR, который мы использовали для расшифровки названий улиц https://github.com/tensorflow/models/tree/master/research/attention_ocr

Я думаю, что это должно работать очень хорошо для вашего случая. Обратитесь к ответу https://stackoverflow.com/a/44461910, чтобы узнать, как подготовить для него данные.

person Alexander Gorban    schedule 26.06.2017
comment
Александр, спасибо за ответ, попробую сделать так, как вы предложили. - person thug_; 27.06.2017
comment
привет Александр, как вы думаете, модель распознавания внимания будет работать на номерных знаках? Например, номерной знак такой: https://i.cbc.ca/1.3112890.1434422741!/fileImage/httpImage/image.jpg_gen/derivatives/16x9_620/kevin-eklund-rear-bike-rack.jpg Предположим, у нас достаточно данных для обучения. Знаете ли вы, какой приблизительной точности может достичь модель? ? Спасибо. - person VB4EVA; 19.08.2017
comment
@thug_ ты пробовал расшифровывать внимание? Работает ли это для вас? Спасибо. - person VB4EVA; 21.08.2017
comment
Привет Боб, к сожалению, я не мог заставить его работать для себя. Для этого проекта мы использовали другое решение для распознавания текста, которое не использует ИИ. - person thug_; 21.08.2017

Есть несколько способов справиться с этим (следующий список не является исчерпывающим).

1) Первый — это классификация слов прямо из вашего изображения. Если ваш словарный запас из 9 символов ограничен, вы можете обучить классификатор слов. Затем вы можете свернуть этот классификатор с вашим изображением и выбрать слово с наибольшей вероятностью.

2) Второй вариант - обучить классификатор символов, найти все символы на вашем изображении и найти наиболее вероятную строку, содержащую 9 символов, которые вы ищете.

3) Третий вариант — обучить детектор текста, найти все возможные текстовые поля. Затем прочитайте все текстовые поля с моделью, основанной на последовательности, и выберите наиболее вероятное решение, соответствующее вашим ограничениям. В следующей статье представлена ​​простая модель на основе последовательностей: http://ai.stanford.edu/~ang/papers/ICPR12-TextRecognitionConvNeuralNets.pdf. Другие модели, основанные на последовательности, могут быть основаны на HMM, временной классификации коннекционистов, моделях на основе внимания и т. д.

4) Четвертый вариант — это модели, основанные на внимании, которые работают от начала до конца, чтобы сначала найти текст, а затем вывести символы один за другим.

Обратите внимание, что этот список не является исчерпывающим, может быть много разных способов решить эту проблему. Другие варианты могут даже использовать сторонние решения, такие как Abbyy или Tesseract, чтобы помочь решить вашу проблему.

person Peter    schedule 25.04.2017
comment
Спасибо, есть ли какие-нибудь примеры для 1, 2 и 4. По вашему мнению, какой способ был бы лучшим, а какой проще всего использовать и почему? - person thug_; 25.04.2017