Russian (Русский) - Change language

Задание значений для поиска однострочных элементов Static Text

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

Замечание. Это утверждение верно только в случае отсутствия ошибок распознавания в статическом тексте заголовка. Дело в том, что под допустимым количеством ошибок (которое в случае элемента типа Static Text регулируется двумя параметрами - Max number of errors и Max error percentage) понимается количество ошибок в слове. Т.е., если, например, максимальное количество ошибок (Max number of errors) равно 1 и, заголовок состоит из 3 слов, а значение статического текста задано без пробелов, это означает, что в заголовке может содержаться не более одной ошибки. Заголовок без пробелов воспринимается, как одно слово, независимо от того, сколько слов, отделенных пробелами присутствует в реальном заголовке на изображении. Но, если значение статического текста задано с пробелами, то указанное допустимое количество (или процент) ошибок будет относиться уже к каждому слову, отделенному пробелом внутри строки, заданной в секции Search text. При обнаружении ошибок распознавания в статическом тексте гипотеза элемента штрафуется по определенному алгоритму. Качество гипотезы при наличии и отсутствии пробелов в значении статического текста при этом может получиться разное.

Проиллюстрируем работу со статическим текстом на примере проекта Spaces.fsp (папка %public%\ABBYY\FlexiCapture\12.0\Samples\FLS\Tips and Tricks\Spaces in StaticText\Project1).

В проекте находятся 2 страницы:

  • Страница 1 – качество изображения хорошее;
  • Страница 2 – в заголовке поля данных есть мусор.

Поиск поля данных “Имя отца” будем вести относительно заголовка “Please indicate your father’s name here:” (“Пожалуйста, укажите здесь имя Вашего отца”).

В проекте мы создали элемент типа Static Text с именем NameOfFatherHeader. Для него мы задали значение заголовка в одно слово, т.е. написали заголовок без пробела Pleaseindicateyourfather'snamehere:. Регистр написания значения заголовка может быть любым. Для всех остальных свойств элемента мы оставили значения параметров по умолчанию. Максимальное допустимое количество ошибок в заголовке составляет 10 символов (30% от 35 символов, составляющих заданное значение).

Как видно в пакете проекта после запуска процедуры наложения гибкого описания по команде Match, заголовок успешно найден на обеих страницах. Однако на 2 странице Chain quality гипотезы элемента NameOfFatherHeader составило порядка 0,994 из-за штрафа, наложенного на гипотезу в силу того, что в распознанном статическом тексте обнаружена одна ошибка, вызванная наличием мусора.

Замечание. Для того чтобы увидеть результат предраспознавания искомого заголовка, надо нажать кнопку “ L ” (“ Show Recognized Lines ”) на панели инструментов, и указать курсором текст заголовка. Результат предраспознавания заголовка на 2 странице выглядит так “ PLEASEINDICATE|OURFATHER'SNAMEHERE:”. Также фактически найденный статический текст можно увидеть, если выделить курсором гипотезу элемента NameOfFatherHeader в окне Tree of Hypotheses и в окне Properties-Hypothesis поставить курсор в строку Keyword. В этом случае результат распознавания и обнаруженное количество ошибок (если они есть) высветится в нижней части окна Properties-Hypotheses.

Для поиска поля данных “Имя отца” мы создали элемент типа Character String, поскольку искомое поле однострочное, а его содержимое постоянно меняется (в отличие от значений статического текста). Мы назвали элемент FathersName и задали его условия поиска на вкладке Relations. Затем в дереве проекта создали одноименный блок и указали, что его регион совпадает с регионом элемента FathersName (указали имя элемента FathersName в секции Source element).

Теперь посмотрим на тех же самых страницах, каков будет результат наложения гибкого описания в случае, когда значение элемента NameOfFatherHeader будет задано с пробелами.

Для этого мы создали проект Spaces.fsp (папка Spaces in StaticText\Project2). Значение элемента NameOfFatherHeader выглядит следующим образом: Please indicate your father's name here:. Все прочие настройки остались без изменения (полностью совпадают с настройками, сделанными в проекте Spaces.fsp, находящемся в папке Spaces in StaticText\Project1).

Как видно в пакете проекта после запуска процедуры наложения гибкого описания по команде Match, заголовок успешно найден на обеих страницах. Однако теперь на 2 странице Chain quality гипотезы элемента NameOfFatherHeader составило порядка 0,987 из-за штрафа, наложенного на гипотезу в силу того, что в распознанном статическом тексте обнаружена одна ошибка, вызванная наличием мусора.

Замечание. Обратите внимание, что в случае наличия пробелов в строке значения, заданной в секции Search text , каждое слово рассматривается отдельно и количество ошибок определяется для каждого слова в составе строки. Результирующее качество гипотезы статического текста зависит от качества гипотез отдельных слов.

11/10/2020 12:08:08 PM


Please leave your feedback about this article