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

Пример 3. Шаг 4. Анализ изображений и определение последовательности поиска элементов и групп элементов

Необходимо выяснить:

  • Какова закономерность расположения полей на изображении?
  • На какие элементы мы можем опереться в поиске полей?
  • Какую выбрать последовательность поиска (поскольку на каждом следующем шаге мы можем опираться только на описанные выше элементы)?

Предварительный просмотр результатов предраспознавания показывает, что:

  1. Центральную часть документа занимает таблица, которая присутствует на всех изображениях.
    Замечание. Напомним, что в терминологии FlexiLayout Studio таблицей является объект изображения, состоящий из фрагментов, расположенных в виде колонок и строк, визуально разделённых сепараторами или просветами. Подробнее см. Table .
  2. Выше таблицы располагается группа полей (назовём её  Header)  Invoice Number,  Invoice Date и  Delivery Address. При этом поле  Invoice Number присутствует всегда и его можно сделать обязательным (идентификационным) полем, в то время как поля  Invoice Date и  Delivery Address могут и отсутствовать.
  3. Под таблицей располагается группа полей (назовём её  Footer)  TotalQuantity,  TotalAmount и  Country. Эти поля тоже присутствуют не всегда.

Начнём строить наш поиск полей с верхней части документа.

Для поиска полей, расположенных в верхней части, создадим логическую группу, в которую войдут все элементы для поиска полей Invoice Number, Invoice Date и Delivery Address:

  1. Создайте составной элемент InvoiceHeader (тип Group).
    Мы видим, что поля  Invoice Number,  Invoice Date и  Delivery Address всегда располагаются в левом верхнем углу, при этом порядок их следования постоянен: сначала идёт  Delivery Address, потом  Invoice Number, потом  Invoice Date (конечно, при условии, что они присутствуют на изображении). В таком порядке и будем их искать.
  2. Для описания поиска ключевых слов (keywords) заголовков полей  Invoice Number,  Invoice Date и Delivery Address воспользуйтесь элементами типа  Static Text .
    Для этого в составе InvoiceHeader нам необходимы элементы:
    • Элемент kwDeliveryAddress (тип  Static Text), соответствующий заголовку поля  Delivery Address (подробная инструкция в  Шаге 5).
    • Элемент kwInvoiceNumber (тип  Static Text) соответствующий заголовку поля  Invoice Number (подробная инструкция в  Шаге 6).
    • Элемент kwDate (тип  Static Text), соответствующий заголовку поля  Invoice Date (подробная инструкция в Шаге 7).

Поиск полей Invoice Number и Invoice Date, будем осуществлять их в той же строке, что и соответствующий заголовок, правее заголовка.
В составе элемента  InvoiceHeader нам потребуются элементы:

  • Элемент InvoiceNumber (тип Character String), соответствующий полю Invoice Number (подробная инструкция в  Шаге 8).
  • Составной элемент grDate (тип Group) для поиска поля  Invoice Date (подробная инструкция в  Шаге 9).
  1. В составе элемента  InvoiceHeader.grDate будем описывать элементы:
    • Элемент  InvoiceDate (тип  Date), соответствующий полю  Invoice Date в случае хорошего качества изображения (подробная инструкция в  Шаг 9).
    • Элемент  InvoiceDateAsString (тип  Character String ), соответствующий полю  Invoice Date в том случае, если поиск элемента  InvoiceDate оказался неуспешным (подробная инструкция в  Шаге 9).
      Замечание. Более подробно про поиск даты в случае плохого качества изображений см.  Tips and tricks .
  2. Поле  Delivery Address многострочное, поэтому нам потребуется элемент типа  Paragraph, но прежде нам необходимо будет задать область поиска самым строгим образом. В качестве ограничителя области поиска справа будем использовать элемент типа  White Gap . И объединим все эти элементы, служащие описанию местоположения поля  Delivery Address, в отдельную группу:
    • В составе элемента  InvoiceHeader создайте составной элемент grAddress (тип Group) (подробная инструкция в Шаге 10).
    • В составе элемента  grAddress опишем элементы:
      • Вспомогательный элемент wgAddressRight (тип White Gap), прилегающий к полю  Delivery Address справа (подробная инструкция в  Шаге 11).
      • Элемент  DeliveryAddress (тип  Paragraph), соответствующий полю  Delivery Address (подробная инструкция в  Шаге 12).

12/1/2020 7:04:05 AM


Please leave your feedback about this article