2013-06-20 3 views
11

Кто-нибудь знает, как использовать шаблоны пользователя (user_patterns_suffix) в Tesseract? Не могли бы вы посоветовать мне, как это сделать и как проверить работу? Я пытался следовать Тессеракт руководству (Tessearct user-patterns но я не видел это повлияло на результат на всех.Пользовательские шаблоны Tesseract

Спасибо.

+0

Вы пытались добавить конфигурационный файл 'bazaar'? См. [Tesseract (1)] (http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html#_config_files_and_augmenting_with_user_data) – pvorb

ответ

16

Тессеракт использует шаблон для аа своего рода «регулярного выражения». Он может быть использован, если позволяет что вы сканировали книгу с данными, которые были все в том же формате, шаблон может быть использован, чтобы сказать Tesseract, какие форматы ожидать, икэ как ожидают слова в пользовательских слов Ниже как Tesseract describes how to use patterns:..

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

Единственный метасимвол - \. Для использования в шаблоне в виде обычной строки он должен быть экранирован с помощью \ (например, строка C:\Documents должна быть записана в файле шаблонов как C:\\Documents).

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

Для обозначения использования символьных классов один из:

  • \c - unichar, для которых UNICHARSET::get_isalpha() истинно (характер)
  • \d - unichar, для которых UNICHARSET::get_isdigit() верно
  • \n - unichar, для которых UNICHARSET::get_isdigit() и UNICHARSET::isalpha() являются действительными
  • \p - unichar, для которых UNICHARSET::get_ispunct() верно
  • \a - unichar, для которых UNICHARSET::get_islower() истинно
  • \A - unichar, для которых UNICHARSET::get_isupper() истинно

\* может быть указан после каждого символа или рисунка, чтобы указать, что символ/шаблон можно повторить любое количество раз до следующего символа/шаблона.

Примеры:

1-8\d\d-GOOG-411 будет расширен до строк: 1-800-GOOG-411, 1-801-GOOG-411 ... 1-899-GOOG-411.

"ww.\n\*.com" будет расширен до строки, как: "ww.a.com""ww.a123.com" ... "ww.ABCDefgHIJKLMNop.com"

Примечание: При выборе которых шаблоны для включения следует помнить о том, обеспечивая очень общие модели сделают Тессеракта работать медленнее. Например, \n\* в начале шаблона заставит Tesseract рассмотреть все комбинации предлагаемых вариантов символов для каждой из сегментов, что будет неприемлемо медленным.Из-за потенциальных проблем со скоростью, которые могут быть трудно идентифицировать, каждый пользовательский шаблон должен иметь по крайней мере kSaneNumConcreteChars конкретных символов из unicharset в начале.

+1

Ссылка не удалена –

+1

Здесь ссылка из репозитория GitHub: https: //github.com/tesseract-ocr/tesseract/blob/442b5b731a3ec49dc143dc6533667b8cb62ee9a0/dict/trie.h#L192 – Federinik

+0

@Federinik Большое спасибо! Провел много времени, ища это, наконец нашел! –

Смежные вопросы