Библиотека Tesseract OCR - изучение шрифта - PullRequest
15 голосов
/ 05 февраля 2011

Ну, я использую соответствующую версию .NET этого распознавания текста. @ 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

Fake Test

enter image description here = NR4 y2k

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

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

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

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

Ответы [ 7 ]

28 голосов
/ 08 февраля 2011

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

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

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

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

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

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

    • указывают на неоднозначности, которые вы обнаружили («D» вместо «O», как вы могли видеть, «B» вместо «8» и т. Д.), Которые будут приняты во внимание, когда вы будете использовать свое обучение.

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

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

11 голосов
/ 14 февраля 2011

Привет, я много поработал с тессерактом, и у меня тоже были некоторые твои проблемы. Вы спрашиваете об инструментах ОБРАБОТКИ ИЗОБРАЖЕНИЙ, и я бы порекомендовал "unpaper" (также есть порты для Windows, см. Google). по программе. Отлично подходит для бега до наступления.

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

А если у вас сложный текст, тогда "ocropus" может пригодиться. Синтаксис (в Linux): "ocroscript rectess"

Моя настройка 1. очиститель текста 2. без бумаги 3. группа

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

3 голосов
/ 23 августа 2011

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

W

4

O

O

M

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

2 голосов
/ 22 мая 2012

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

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

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

1 голос
/ 21 июня 2013

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

0 голосов
/ 30 мая 2017

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

0 голосов
/ 16 января 2013

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

...