it-swarm.com.ru

Библиотека 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.scribed.com/doc/16747664/Tesseract-Trainingfor-Khmer-LanguageFor-Posting

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

15
Ash

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

  • Во-первых, как я уже говорил выше, эта оболочка предназначена только для 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, например!

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

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

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

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

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

28
Emmanuel

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

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

И если у вас сложный текст, то «ocropus» может быть полезным . Синтаксис (в Linux): «ocroscript rec-tess»

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

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

11
Arno Teigseth

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

W

4

О

О

M

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

3
Sean

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

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

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

2
sschrass

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

1
Mongoose1021

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

0
OnceUponATimeInTheWest

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

0
Captain Kenpachi