Как легко распознавать рукописный ввод с помощью машинного обучения PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Как легко распознавать рукописный ввод с помощью машинного обучения

Как легко распознавать рукописный ввод с помощью машинного обучения

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


Нанонеты API распознавания текста много интересного случаи использования. Чтобы узнать больше, поговорите со специалистом по ИИ Nanonets.


Введение

Ожидается, что объем рынка оптического распознавания символов (OCR) к 13.38 году составит 2025 млрд долларов США, а годовой рост составит 13.7 %. Этот рост обусловлен быстрой оцифровкой бизнес-процессов с использованием оптического распознавания символов для снижения трудозатрат и экономии драгоценных человеко-часов. Хотя OCR считается решенной проблемой, есть один ключевой компонент — распознавание рукописного ввода (Handwriting OCR) или распознавание рукописного текста (HTR), который до сих пор считается сложной постановкой задачи. Большое разнообразие стилей почерка у разных людей и низкое качество рукописного текста по сравнению с печатным текстом создают значительные препятствия для преобразования его в машиночитаемый текст. Тем не менее, это важная проблема, которую необходимо решить для многих отраслей, таких как здравоохранение, страхование и банковское дело.

Как легко распознавать рукописный ввод с помощью машинного обучения
Источник :- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

Недавние достижения в области глубокого обучения, такие как появление трансформаторных архитектур, ускорили наш прогресс в распознавании рукописного текста. Распознавание рукописного текста называется интеллектуальным распознаванием символов (ICR) из-за того, что алгоритмы, необходимые для решения ICR, требуют гораздо большего интеллекта, чем решение общего OCR.

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


Хотите извлечь данные из рукописных форм? Перейти к Нанонеты и начните создавать модели распознавания рукописного ввода бесплатно!


Проблемы распознавания почерка

  1. Огромная вариативность и неоднозначность мазков от человека к человеку
  2. Почерк отдельного человека тоже время от времени меняется и непостоянен.
  3. Низкое качество исходного документа / изображения из-за ухудшения со временем
  4. Текст в печатных документах размещается по прямой линии, тогда как людям не нужно писать прямую строку текста на белой бумаге.
  5. Курсивный почерк затрудняет разделение и распознавание символов
  6. Рукописный текст может иметь переменное вращение вправо, в отличие от печатного текста, где весь текст располагается ровно.
  7. Сбор хорошего размеченного набора данных для изучения стоит недешево по сравнению с синтетическими данными

Use cases

Здравоохранение и фармацевтика

Оцифровка рецептов пациентов - серьезная проблема в сфере здравоохранения и фармацевтики. Например, компания «Рош» ежедневно обрабатывает миллионы петабайт медицинских PDF-файлов. Еще одна область, в которой обнаружение рукописного текста имеет ключевое значение, - это набор пациентов и оцифровка форм. Добавив распознавание почерка в свой набор услуг, больницы / фармацевтические учреждения могут значительно улучшить взаимодействие с пользователем.

Страхование

Крупная страховая отрасль получает более 20 миллионов документов в день, и задержка в обработке иска может серьезно повлиять на компанию. Документ о претензиях может содержать различные стили почерка, и чистая ручная автоматизация обработки претензий полностью замедлит конвейер.

Как легко распознавать рукописный ввод с помощью машинного обучения
Источник: - https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

Банковское дело

Люди выписывают чеки на регулярной основе, и чеки по-прежнему играют важную роль в большинстве безналичных операций. Во многих развивающихся странах нынешняя процедура обработки чеков требует, чтобы служащий банка считывал и вручную вводил информацию, представленную на чеке, а также проверял такие записи, как подпись и дата. Поскольку в банке каждый день приходится обрабатывать большое количество чеков, система распознавания рукописного текста может сэкономить затраты и часы работы человека.

Онлайн-библиотеки

Огромное количество исторических знаний оцифровывается путем загрузки сканов изображений для доступа ко всему миру. Но это усилие не очень полезно, пока текст в изображениях не будет идентифицирован, который можно индексировать, запрашивать и просматривать. Распознавание почерка играет ключевую роль в оживлении документов средневековья и ХХ века, открыток, исследований и т. Д.

методы

Методы распознавания рукописного ввода можно в целом разделить на следующие два типа.

Как легко распознавать рукописный ввод с помощью машинного обучения
  1. Интернет-методы : - Онлайн-методы включают цифровое перо / стилус и имеют доступ к информации о штрихах и расположении пера во время написания текста, как показано на правом рисунке выше. Поскольку они, как правило, содержат много информации о потоке написанного текста, их можно классифицировать с довольно высокой точностью, и разграничение между разными символами в тексте становится намного более четким.
  2. Офлайн-методы :- Автономные методы включают в себя распознавание текста после его записи и, следовательно, не будут иметь информации об штрихах / направлениях, задействованных во время письма, с возможным добавлением некоторого фонового шума от источника, например бумаги.

В реальном мире не всегда возможно/масштабируемо носить с собой цифровое перо с датчиками для сбора информации об штрихах, и, следовательно, задача распознавания текста в автономном режиме является гораздо более актуальной проблемой. Итак, сейчас мы обсудим различные техники решения задачи распознавания офлайн-текста.

Насыщенность

Первоначальные подходы к распознаванию рукописного ввода включали методы машинного обучения, такие как скрытые марковские модели (HMM), SVM и т. д. После предварительной обработки исходного текста выполняется извлечение признаков для определения ключевой информации, такой как циклы, точки перегиба, соотношение сторон и т. д. индивидуального характера. Эти сгенерированные функции теперь передаются классификатору, скажем, HMM, для получения результатов. Производительность моделей машинного обучения довольно ограничена из-за ручного выделения признаков и их ограниченной способности к обучению. Шаг извлечения признаков различается для каждого отдельного языка и, следовательно, не масштабируется. С появлением глубокого обучения произошли огромные улучшения в точности распознавания рукописного ввода. Давайте обсудим несколько выдающихся исследований в области глубокого обучения распознаванию рукописного ввода.

Многомерные рекуррентные нейронные сети

Как известно, RNN/LSTM может работать с последовательными данными для выявления временных закономерностей и получения результатов. Но они ограничены работой с одномерными данными и, следовательно, не будут напрямую применимы к данным изображения. Чтобы решить эту проблему, авторы в этой статье предложили многомерную структуру RNN/LSTM, как показано на рисунке ниже.

Как легко распознавать рукописный ввод с помощью машинного обучения

Ниже приводится разница между обычной RNN и многомерной RNN. В обычном RNN скрытый уровень говорит, что я получает состояние от предыдущего скрытого слоя во время i-1. В многомерной RNN, например, двумерной RNN, скрытый слой (i, j) получает состояния от нескольких предыдущих скрытых слоев, то есть (i-2, j) и (i, j-1), и, таким образом, захватывает контекст из обоих высота и ширина изображения, которые имеют решающее значение для получения четкого представления сети о локальном регионе. Это дополнительно расширяется для получения информации не только из предыдущих уровней, но и из будущих уровней, подобно тому, как BI-LSTM получает информацию от t-1 и t + 1. Точно так же скрытый слой 1D MDRNN i теперь может получать информацию (i-2, j), (i, j-1), (i + 1, j), (i, j + 1), таким образом захватывая контекст во всех направлениях.

Как легко распознавать рукописный ввод с помощью машинного обучения

Вся структура сети показана выше. Используется MDLSTM, который представляет собой не что иное, как замену блока RNN блоком LSTM из приведенного выше обсуждения MDRNN. Входные данные делятся на блоки размером 3 × 4, которые теперь передаются в слои MDSTM. Сеть имеет иерархическую структуру, состоящую из уровней MDLSTM, за которыми следуют уровни прямой связи (ИНС) в тандеме. Затем окончательный результат конвертируется в одномерный вектор и передается функции CTC для генерации вывода.

Коннекционистская временная классификация (CTC) это алгоритм, используемый для решения таких задач, как распознавание речи, распознавание рукописного ввода и т. д., где доступны только входные данные и выходная транскрипция, но нет сведений о выравнивании, т. е. как определенная область звука для речи или определенная область изображений для рукописного ввода соответствует определенному символу. Простые эвристики, такие как предоставление каждому персонажу одной и той же области, не будут работать, поскольку количество места, которое занимает каждый символ, зависит от почерка от человека к человеку и время от времени.

Для нашего сценария использования распознавания рукописного ввода рассмотрим области входного изображения для конкретного предложения как входные. X=[x1,x2,…,х ** т], а ожидаемый результат - как Y=[y1,y2,…,y ** U]. Учитывая X, мы должны найти точное Y. Алгоритм CTC работает, беря входные данные X и распределяя по всем возможным Y, используя которые мы можем сделать прогноз для конечного результата.

CTC использует базовый символ, например, чтобы различать повторяющиеся символы и повторяющиеся символы в области ввода. Например, конкретный символ может охватывать несколько областей ввода, и, таким образом, CTC будет выводить один и тот же символ последовательно. Пример: - Ввод james и вывод CTC - jjaammmees. Окончательный вывод получается путем свертывания повторяющихся выходов, и, следовательно, мы получаем james. Но теперь, чтобы представить повторяющиеся символы, скажем «l» в приветствии, нам нужно иметь разделение, и поэтому все выходные данные разделяются дефисом (-). Теперь вывод для приветствия может быть h-ee-ll-llll-oo, который, если свернуть, станет hello, а не helo. Более подробную информацию о том, как работает CTC, можно увидеть здесь. СТС.

При декодировании вывода CTC на основе простой эвристики наибольшей вероятности для каждой позиции мы можем получить результаты, которые могут не иметь никакого смысла в реальном мире. Чтобы решить эту проблему, мы могли бы использовать другой декодер для улучшения результатов. Давайте обсудим различные типы декодирования

  1. Декодирование наилучшего пути : - Это общее декодирование, которое мы обсуждали до сих пор. В каждой позиции мы берем выход модели и находим результат с наибольшей вероятностью.
  2. Расшифровка поиска луча : - Вместо того, чтобы брать один выходной сигнал из сети каждый раз, когда поиск луча предлагает сохранить несколько выходных трактов с наивысшими вероятностями и расширить цепочку новыми выходами и отбрасывающими путями с меньшей вероятностью, чтобы сохранить размер луча постоянным. Результаты, полученные с помощью этого подхода, более точны, чем при использовании жадного подхода.
  3. Поиск луча с помощью языковой модели :- Лучевой поиск обеспечивает более точные результаты, чем поиск по сетке, но все же не решит проблему получения значимых результатов. Чтобы решить эту проблему, мы можем использовать языковую модель вместе с поиском луча, используя как вероятности из модели, так и языковую модель для получения окончательных результатов.

Более подробную информацию о создании точных результатов декодирования можно найти в этом гайд

Энкодер-декодер и сети внимания

Модели Seq2Seq с сетями кодер-декодер в последнее время были популярны для решения задач распознавания речи, машинного перевода и т. д. и, таким образом, были расширены для решения случая использования распознавания рукописного ввода за счет развертывания дополнительного механизма внимания. Давайте обсудим некоторые основополагающие исследования в этой области.

Сканируй, посещай и читай

В этой основополагающей работе Scan, Attend and Read (SAR) авторы предлагают использовать основанную на внимании модель для сквозного распознавания рукописного ввода. Основным вкладом исследования является автоматическая транскрипция текста без разделения на строки в качестве этапа предварительной обработки, что позволяет сканировать всю страницу и давать результаты.

Как легко распознавать рукописный ввод с помощью машинного обучения

SAR использует архитектуру на основе MDLSTM, аналогичную той, которую мы обсуждали выше, с одним небольшим изменением на последнем уровне. После последнего линейного слоя, то есть последнего блока Sum на рисунке выше, карты характеристик сворачиваются в вертикальном измерении, и для получения выходных данных применяется окончательная функция softmax.

Как легко распознавать рукописный ввод с помощью машинного обучения

Архитектура SAR состоит из архитектуры MDLSTM, которая действует как средство извлечения признаков. Последний модуль сворачивания с выходом softmax и потерей CTC заменяется модулем внимания и декодером LSTM. Используемая модель внимания представляет собой гибридную комбинацию внимания, основанного на содержании, и внимания на основе местоположения, что более подробно объясняется в следующей статье. Модули декодера LSTM берут предыдущее состояние, предыдущую карту внимания и функции кодера для генерации окончательного выходного символа и вектора состояния для следующего предсказания.

Свертка, Посещение и Заклинание

В этой статье предлагается основанная на внимании модель от последовательности к последовательности для распознавания рукописных слов. Предлагаемая архитектура состоит из трех основных частей: кодировщика, состоящего из CNN и двунаправленного ГРУ, механизма внимания, предназначенного для сосредоточения внимания на соответствующих функциях, и декодера, образованного однонаправленным ГРУ, способного записать соответствующее слово, персонаж за персонажем.

Как легко распознавать рукописный ввод с помощью машинного обучения

Кодер использует CNN для извлечения визуальных признаков. В качестве экстрактора признаков используется предварительно обученная архитектура VGG-19-BN. Входное изображение преобразуется в карту объектов X, которая затем преобразуется в X' путем разделения всех каналов по столбцам и их объединения для получения последовательной информации. X' далее преобразуется в H с помощью двунаправленного GRU. GRU — это нейронная сеть, похожая на LSTM по своей природе и способная собирать временную информацию.

Кроме того, модель внимания используется при прогнозировании выходных данных декодера. В статье рассматриваются два различных типа исследуемых механизмов внимания.

  1. Внимание на основе содержания : - Идея заключается в том, чтобы найти сходство между текущим скрытым состоянием декодера и картой функций из кодировщика. Мы можем найти наиболее коррелированные векторы признаков в карте признаков кодировщика, которые можно использовать для прогнозирования текущего символа на текущем временном шаге. Подробнее о том, как работает механизм внимания, можно узнать здесь. Внимание
  2. Внимание на основе местоположения :- Основной недостаток механизмов местоположения на основе содержимого заключается в том, что существует неявное предположение, что информация о местоположении встроена в выходные данные кодировщика. В противном случае невозможно различить вывод символов, которые повторяются из декодера. Например, рассмотрим слово Charmander, символ a повторяется в нем дважды, и без информации о местоположении декодер не сможет предсказать их как отдельные символы. Чтобы облегчить это, текущий символ и его выравнивание предсказываются с использованием как вывода кодировщика, так и предыдущего выравнивания. Более подробную информацию о том, как работает посещение на основе местоположения, можно увидеть здесь.

Декодер представляет собой однонаправленный многослойный ГРУ. На каждом временном шаге t он получает входные данные из предыдущего временного шага и вектор контекста от модуля внимания. Полиномиальное декодирование и сглаживание меток исследуются при обучении для улучшения возможностей обобщения.

Модели трансформаторов

Хотя сети кодер-декодер довольно хорошо справляются с распознаванием рукописного ввода, они имеют узкое место в обучении из-за задействованных слоев LSTM и, следовательно, не могут быть распараллелены. В последнее время трансформеры оказались довольно успешными и заменили LSTM в решении различных задач, связанных с языком. Давайте теперь обсудим, как модели на основе трансформеров могут быть применены для распознавания рукописного ввода.

Обратите внимание на то, что вы читаете

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

Как легко распознавать рукописный ввод с помощью машинного обучения

Сетевая архитектура состоит из следующих компонентов

  1. Визуальный кодировщик : - Чтобы извлечь соответствующие особенности и применить многоголовое визуальное внимание к различным местам персонажей
  2. Текстовый расшифровщик : - Он выполняет задачу приема вводимого текста, его кодирования, применения самовнимания многоголового языка и взаимного внимания как к визуальным, так и к текстовым функциям.
Визуальный кодировщик

Магистраль Resnet50 используется для дополнительных функций, как показано на рисунке выше. Трехмерная карта объектов, выводимая из Resnet3 Fc, передается в модуль Temporal Encoding, который изменяет форму на 50d, сохраняя ту же ширину и, следовательно, форму (fxh, w). Это подается в полностью связанный слой, чтобы уменьшить форму до (f, w), и результирующий вывод — Fc'. Кроме того, к Fc' добавляется позиционное кодирование TE, чтобы сохранить информацию о положении, как указано в статье Transformer Васвани. Более подробную информацию о том, как спроектирована архитектура трансформатора, можно увидеть здесь. Выходные данные проходят через полностью связанный слой, чтобы получить окончательную карту объектов с формой (f, w). Окончательный результат проходит через многоголовый модуль внимания с 8 головами, чтобы получить визуально насыщенную карту функций.

Текстовый расшифровщик

Вводимый текст проходит через кодировщик, который генерирует вложения на уровне символов. Эти вложения комбинируются с временным расположением аналогично тому, как это делается в Visual Encoder с использованием модуля Temporal Encoder. Затем этот результат передается в модуль самовосприятия на нескольких языках, который аналогичен модулю внимания в визуальном кодировщике. Текстовые функции, сгенерированные визуальными элементами из визуального кодировщика, передаются в модуль взаимного внимания, задача которого состоит в том, чтобы выровнять и объединить изученные функции как из изображений, так и из входных текстов. Выходные данные передаются через функцию softmax для получения окончательного результата.

При оценке на тестовых данных транскрипции недоступны. Таким образом, в качестве входных данных передается только начальный токен <S>, а первый предсказанный символ возвращается в систему, которая выводит второй предсказанный символ. Этот процесс вывода повторяется в цикле до тех пор, пока не будет создан символ конца последовательности <E> или пока не будет достигнута максимальная выходная длина N.

Создание рукописного текста

Генерация рукописного текста — это задача создания реального рукописного текста, поэтому ее можно использовать для дополнения существующих наборов данных. Как мы знаем, глубокое обучение требует большого количества данных для обучения, в то время как получение огромного корпуса размеченных изображений рукописного ввода для разных языков является трудоемкой задачей. Чтобы решить эту проблему, мы можем использовать генеративно-состязательные сети для генерации обучающих данных. Давайте обсудим одну такую ​​архитектуру здесь

ЭрудитГАН

ScrabbleGAN следует полу-контролируемому подходу к синтезу изображений рукописного текста, которые являются универсальными как по стилю, так и по лексике. Он имеет возможность создавать изображения различной длины. Генератор также может управлять результирующим стилем текста, что позволяет нам решить, должен ли текст быть курсивным или указать, насколько толстым / тонким должен быть штрих пера.

Как легко распознавать рукописный ввод с помощью машинного обучения

Архитектура состоит из полностью сверточного генератора на основе BigGAN. Для каждого символа во входных данных выбирается соответствующий фильтр, и все значения объединяются вместе, которые затем умножаются на вектор шума z, который управляет созданным стилем текста. Как видно выше, области, созданные для каждого отдельного символа, перекрываются, что помогает в создании связного рекурсивного текста, а также обеспечивает гибкость при использовании символов разного размера. Например, m занимает большую часть места, а e и t занимают ограниченную площадь. Чтобы сохранить тот же стиль для всего слова или предложения, вектор стиля z остается постоянным для всех символов.

Сверточный дискриминатор, основанный на архитектуре BigGAN, используется для классификации того, выглядит ли сгенерированный стиль изображений поддельным или реальным. Дискриминатор не полагается на аннотации уровня символов и, следовательно, не основан на условной GAN класса. Преимущество этого в том, что нет необходимости в помеченных данных, и, следовательно, данные из невидимого корпуса, которые не являются частью обучающих данных, могут использоваться для обучения дискриминатора. Наряду с дискриминатором распознаватель текста R обучен классифицировать, имеет ли сгенерированный текст реальный смысл или это тарабарщина. Распознаватель основан на архитектуре CRNN с удаленной рекуррентной головкой, чтобы сделать распознаватель немного слабее и не распознавать текст, даже если он неясен. Текст, сгенерированный на выходе R, сравнивается с входным текстом, переданным генератору, и к функции потерь добавляется соответствующий штраф.

Выходы, генерируемые ScrabbleGAN, показаны ниже.

Как легко распознавать рукописный ввод с помощью машинного обучения

Наборы данных: -

  1. IAM : - Набор данных IAM содержит около 100 тысяч изображений слов из английского языка со словами, написанными 657 разными авторами. Наборы для обучения, тестирования и проверки содержат слова, написанные взаимоисключающими авторами Ссылка: - http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. ЛПМ : - Набор данных CVL состоит из семи рукописных документов, написанных примерно 310 участниками, в результате чего было получено около 83 тысяч слов, разделенных на обучающие и тестовые наборы Ссылка: - https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. РИМЕС : - Содержит около 60 тысяч изображений французского языка, написанных 1300 авторами, что соответствует примерно 5 письмам, написанным каждым человеком. http://www.a2ialab.com/doku.php?id=rimes_database:start

Метрики: -

Частота ошибок символов : - Оно вычисляется как расстояние Левенштейна, которое представляет собой сумму замен символов (Sc), вставок (Ic) и удалений (Dc), которые необходимы для преобразования одной строки в другую, деленную на общее количество символов в наземная правда (Nc)

Как легко распознавать рукописный ввод с помощью машинного обучения

Коэффициент ошибок в словах : - Он вычисляется как сумма замен слов (Sw), вставок (Iw) и удалений (Dw), которые необходимы для преобразования одной строки в другую, деленной на общее количество слов в исходной правде (Nw)

Как легко распознавать рукописный ввод с помощью машинного обучения

Обучите собственную модель распознавания почерка

Теперь давайте посмотрим, как мы можем обучить нашу собственную модель распознавания рукописного текста. Мы будем обучаться на наборе данных IAM, но вы также можете обучить модель на своем собственном наборе данных. Давайте обсудим шаги, связанные с настройкой этого.

Данные

Чтобы загрузить регистр набора данных IAM из здесь. После регистрации скачайте words.tgz из здесь. Он содержит набор данных с изображениями рукописных слов. Также загрузите файл аннотации words.txt из здесь.

Если вы хотите использовать свой собственный набор данных, вам необходимо следовать структурированию данных набора данных IAM.

Как легко распознавать рукописный ввод с помощью машинного обучения

Выше показано, как выглядит структура папок набора данных AIM. Здесь a01, a02 и т. д. представляют родительские папки, каждая из которых имеет подпапки с данными. Каждая вложенная папка имеет набор изображений с именем папки, добавленным в качестве префикса к имени файла.

Кроме того, нам понадобится файл аннотации, в котором будут указаны пути к файлам изображений и соответствующие транскрипции. Рассмотрим, например, изображение выше с обозначением текста, ниже будет представление в файле аннотации words.txt

a01-000u-01-00 ok 156 395 932 441 100 VBG выдвижение

  1. a01-000u-01-00 -> идентификатор слова для строки в форме a01-000u
  2. ok / err -> Индикатор качества вывода сегментации
  3. 156 -> уровень серого, чтобы преобразовать в двоичную форму строку, содержащую это слово
  4. 395 932 -> ограничивающая рамка вокруг этого слова в формате x, y, w, h
  5. VBG -> грамматический тег этого слова. Вот это Глагол Герунд
  6. выдвижение -> транскрипция для этого слова

Архитектура: -

Мы будем тренировать архитектуру на основе CRNN с потерей CTC. CNN используется для извлечения визуальных характеристик, которые передаются в RNN, а потеря CTC применяется к концу с жадным декодером для получения вывода.

Как легко распознавать рукописный ввод с помощью машинного обучения

Обучение

Мы будем использовать код CRNN из здесь обучить нашу модель. Следуйте инструкциям ниже, чтобы подготовить данные

python checkDirs.py

Запустите команду выше, и вы должны увидеть результат, как показано ниже

[OK] слова /
[OK] слова / a01 / a01-000u /
[ОК] words.txt
[ОК] test.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

Теперь все готово к тренировкам.

Перейдите в корневой каталог и выполните

python main.py --train

Итоги

После обучения в течение примерно 50 эпох коэффициент ошибок символов (CER) составляет 10.72%, а коэффициент ошибок слов (WER) составляет 26.45%, и, следовательно, точность слов составляет 73.55%. Некоторые прогнозы можно увидеть на рисунке ниже.

Как легко распознавать рукописный ввод с помощью машинного обучения

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

Обзор

Несмотря на то, что произошли значительные разработки в области технологий, которые помогают лучше распознавать рукописный текст, HTR - это далеко не решенная проблема по сравнению с OCR и, следовательно, еще не широко используется в промышленности. Тем не менее, учитывая темпы развития технологий и появление таких моделей, как трансформаторы, мы можем ожидать, что модели HTR вскоре станут обычным явлением.

Чтобы получить больше исследований по этой теме, вы можете начать с здесь

Дальнейшее чтение

Отметка времени:

Больше от ИИ и машинное обучение