как преобразовать / сопоставить рукописный список имен? (HWR)

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

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

этот подход звучит как хороший? Если нет, другие идеи?

Я попытался использовать tesseract на образец листа (см. ниже)

enter image description here

Я:

tesseract simple.png -psm 4 outtxt
Tesseract Open Source OCR Engine v3.05.01 with Leptonica
Warning. Invalid resolution 0 dpi. Using 70 instead.
Error in boxClipToRectangle: box outside rectangle
Error in pixScanForForeground: invalid box

Я предполагаю, что ему не понравилась строка 2, потому что я пошел ниже линии.

результаты, которые я получил, были:

1.. AM: (harm;

l. ’E (J 22 a 00k

2‘ wau ) [HQ

4. KIM TAYLOE
5. LN] Davis

6‘ Mzflé! Ha K

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

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

2 ответов


Microsoft предлагает OCR API для рукописный текст (прокрутите страницу вниз, это не стандартный текст ocr api):

Preview: чтение рукописного текста из изображений Эта технология (рукописные OCR) позволяет обнаружить и извлечь рукописный текст записки, письма, очерки, объявления, бланки и т. д. Оно работает с различными поверхностями и предпосылками, как белая бумага, желтые липкие примечания, и whiteboards.

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

Примечание: эта технология в настоящее время находится в предварительном просмотре и доступна только для текста на английском языке.

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

Edit: вот мои результаты теста, он работает почти идеально с вашими входными данными:

enter image description here


поскольку ваша цель получить только имена - я бы посоветовал вам уменьшить tessedit_char_whitelist на английский алфавитный ("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789."), Так что вы не получите символы, которые вы не ожидаете в качестве выходного как \) [ .

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

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

вы также должны попробовать другие рекомендуемые этапы улучшения качества вывода, которые вы можете найти в Tesseract OCR wiki (ссылке)