Библиотека Tesseract OCR - Учебный шрифт

Ну, я использую подчиненную .NET-версию этого OCR, которую можно найти @http://www.pixel-technology.com/freeware/tessnet2/

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

enter image description here

Результат:

12345B7B9U ABCDEFGHIJKLMNUPIJRSTUVHXYZ

Поэтому следующие символы переводятся неправильно:

1, O, Q, W

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

enter image description here= H4 ODM

enter image description here= LDH IFW

Поддельный тест

enter image description here= NR4 y2k

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

По-видимому, вы можете "изучить" новые шрифты для движка, но я думаю, что мне нужно будет перекомпилировать библиотеку для .NET, также кажется, что это выполняется на ОС Linux, которой у меня нет.

http://www.scribd.com/doc/16747664/Tesseract-Trainingfor-Khmer-LanguageFor-Posting

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

Ответы

Ответ 1

Недавно я использовал Tesseract через Tessnet2 (Tessnet2 - обертка VS2008 С++ вокруг Tesseract 2.0, сделанная Реми Томасом, если я хорошо помню). Позвольте мне помочь вам с небольшим знанием, которое у меня есть относительно этого инструмента:

  • 1st, как я уже сказал выше, эта оболочка предназначена только для Tesseract 2.0, а новейшая версия Tesseract в Google Code - 3,00 (код больше не размещается на Source Forge). Есть регулярные участники: я видел, что запланирована версия 3.01. Таким образом, вы не пользуетесь последними усовершенствованиями, включая анализ макета страницы, который может помочь, когда ваши номерные знаки не на 100% горизонтали.

  • Я попросил Rémy для обертки Tessnet2.NET вокруг версии 3, он пока не планирует. Так, как и я, вам придется сделать это самостоятельно!

  • Итак, если вы хотите получить последнюю версию источников, вы можете загрузить их из репозитория выделенная страница сайта), и вы сможете скомпилировать их, если у вас есть Visual Studio 2008, так как они содержат VS2008 решение в vs2008 подпапка. Это решение составлено из проектов VS2008 С++, поэтому для получения результатов на С# вам нужно будет использовать .NET P/Invoke с tessDll, созданным проектом. Опять же, если вам это нужно, у меня есть примеры кода, которые могут вас заинтересовать, но вы можете захотеть остаться с С++ и создать свои собственные проекты WinForm, например!

  • Когда вы достигли компиляции (для этого не должно быть серьезных проблем, но скажите, если вы встретитесь с некоторыми из них, я, возможно, тоже их встретил:-)), вы получите несколько двоичных файлов, которые позволит вам пройти специальную подготовку! Опять же, есть страница, специально предназначенная для обучения Tesseract 3. Благодаря этому обучению вы можете:

    • сдерживать набор символов, который автоматически удаляет пунктуацию (например, "/- \" вместо "A" )

    • указывают на обнаруженные неоднозначности (вместо "O" вместо "O" вместо "8" и т.д.), которые будут учтены, когда вы будете использовать свое обучение.

  • Я также видел, что результаты Tesseract лучше, если вы сдерживаете изображение в зоне, где расположены буквы (т.е. нет лица, нет пейзажа): в моем случае мне нужно было распознать только определенную зону карты, снятые с веб-камеры, поэтому я использовал обработку изображений, чтобы сдержать зону. Это было долго, конечно, но мои изображения поступали из разных источников, поэтому у меня не было выбора. Если вы можете получить снимок с минимальными ограничениями, это будет здорово!

Я надеюсь, что это помогло, не стесняйтесь давать мне свои замечания и вопросы!

Ответ 2

Привет, я сделал много ocr с tesseract, и у меня были некоторые из ваших проблем. Вы спрашиваете об инструментах IMAGE PROCESSING, и я бы рекомендовал "unpaper" (есть также порты Windows, см. Google). Это хороший перекос, unrotate, remove-border-and-noise и так далее. Отлично подходит для работы перед открытием.

Если у вас есть (несколько) цвет фона на ваших изображениях, я рекомендую "textcleaner" imagemagick script Я думаю, что это край, обнаруживающий и отбеливающий все неистовые вещи.

И если у вас сложный текст, то "ocropus" может быть полезным. Синтаксис (на linux): "ocroscript recess"

Моя настройка 1. textcleaner 2. газета 3. ocroups

С этими тремя шагами я могу читать почти все. Даже совершенно расплывчатые + шумные изображения, сделанные в неровном освещении, с двумя колонками плотно упакованного текста, выглядят очень читаемыми. Хорошо, может быть, ваши потребности не так уж много, но шаг 1) и 2) могут вам пригодиться.

Ответ 3

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

Ш

4

О

О

M

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

Ответ 4

Отличное чтение! http://robotics.usc.edu/publications/downloads/pub/635/

О вашей проблеме перекоса для номерных знаков:

Проблема: когда вход OCR берется из ручной камеры или другое устройство формирования изображения, чья перспектива не фиксирована, как сканер, текстовые строки могут перекоситься с их оригинального ориентации [13]. Основываясь на наших экспериментах, повернутое изображение на наш OCR-двигатель производит крайне бедные Результаты. Предлагаемый подход: необходим процесс обнаружения перекоса перед вызовом механизма распознавания. Если какой-либо перекос обнаружен, процедура автоматического поворота выполняется для коррекции искажения перед дальнейшей обработкой текста. При определении алгоритма для использования при обнаружении перекоса, мы обнаружили, что многие подходы, например, упомянутые в [13], основаны на предположения о том, что документы имеют значения. Однако, это предположение не всегда выполняется в нашем приложении. Кроме того, традиционные методы, основанные на морфологических операции и методы прогнозирования чрезвычайно медленны и имеют тенденцию терпеть неудачу при наличии захваченных камерой изображений. В этом мы выбираем более надежный подход, основанный на Branchand- Алгоритм поиска границы строки (алгоритм RAST) [25] для обнаружения перекоса и автоматического поворота. Основная идея этого алгоритм состоит в том, чтобы идентифицировать каждую строку независимо и использовать наклон наилучшей линии подсчета очков как угол наклона для всего текстовый сегмент. После обнаружения угла наклона вращение соответственно. Основываясь на наших экспериментах, мы обнаружили этот алгоритм будет очень надежным и чрезвычайно эффективным и быстро. Однако он подвергся одному незначительному ограничению в что он не смог обнаружить вращение больше 30. Мы также попробовали альтернативный подход, который мог бы обнаружить любые угол перекоса до 90. Однако этот подход был основан на наличие какого-либо креста на изображении. Из-за отсутствие расширяемости, мы решили придерживаться RAST алгоритм.

Ответ 5

Tesseract 3.0x, по умолчанию, наказывает комбинации, которые не являются словами и не являются общими словами. В часто задаваемых вопросах описывается метод увеличения его отвращения к такой глупости. Возможно, вам будет полезно отключить штраф за редкие или несуществующие слова, как описано здесь (обратно): http://code.google.com/p/tesseract-ocr/wiki/FAQ#How_to_increase_the_trust_in/strength_of_the_dictionary?

Ответ 6

ABCocr.NET использует Tesseract3, поэтому может быть целесообразным, если вам нужен последний код под .NET.

Ответ 7

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