Как вы правильно отмечаете, признание документов является другой вещью от признания отдельных символов. Это сложная система, которая потребует времени для внедрения с нуля. Во-первых, существует проблема предварительной обработки. Вам нужно найти, где текст, возможно, слегка повернуть его и т. Д. Это можно сделать с помощью эвристики и библиотеки, например, OpenCV. Вам также придется обнаруживать такие вещи, как номера страниц, верхние и нижние колонтитулы, таблицы/рисунки и т. Д.
Тогда в некоторых случаях вы можете воспользоваться «легким» маршрутом и использовать эвристику для сегментации текста в символы. Это работает для блочных символов, но не для скорописных скриптов.
Если задана сегментация, и вам не нужно ее угадывать, вам необходимо решить множество связанных проблем, каждая из которых подобна MNIST, но они связаны тем, что решения не являются независимыми. Вы можете посмотреть MEMM (Maximum-Энтропия марковских моделей) против СММ (Hidden Markov Models, Hidden Conditional Random Fields и Segmental Conditional Random Fields и изучать разницу между ними. Вы можете также прочитать о seq2seq.
Так что, если вы делаете это просто для себя , вы можете по существу запускать классификаторы MNIST несколько раз, как только сегментирование будет обнаружено (через некоторую эвристику в opencv). Кроме того, вам нужно запустить dynamic program, который найдет лучшую окончательную последовательность, основанную на оценке каждого решения, и «языковая модель», которая присваивает вероятности букв, встречающихся близко друг к другу.
Если вы начинаете с нуля, это непростая задача. или вы получите базовое понимание. Счастливый взлом!
Благодарим вас за советы. Моя цель - использовать нейронную сеть и распознать каждую букву (например: a, b ... x, y, z, A, B ..). Теперь я могу сегментировать каждую букву с картинки, и я изучаю shadoworflow, запустив пример из этого учебника https://github.com/nlintz/TensorFlow-Tutorials и прочитав эту книгу http://www.deeplearningbook.org/ So теперь я запутываюсь, как найти хорошую модель или архитектуру для распознавания тензорного потока. Спасибо –
Вы можете использовать один и тот же классификатор MNIST для букв. В архитектуре нет ничего присущего только цифре. – drpng
Спасибо, тогда я выберу самый низкий классификатор ошибок. И про буквы данных тренировки. Затем я распечатываю этот файл https://github.com/shaolinkhoa/tensorflow/blob/master/print.pdf Затем я отделяю каждую букву от этих отсканированных изображений, чтобы у меня было много изображений учебных данных для каждой буквы. Правильно ли мое решение? –