31
Особенности и примеры использования ABBYY FlexiCapture 10 для решения не совсем обычных задач Андрей Ломов Руководитель группы внедрения и сопровождения ПО [email protected]

Обеи и ие ABBYY FlexiCapture 10 д ееи е ве б зада · Обеи и ие изваи ABBYY FlexiCapture 10 д ееи е ве б зада Адей Лв Рвдие г

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Особенности и примеры использования ABBYY FlexiCapture 10

для решения не совсем обычных задач

Андрей ЛомовРуководитель группы внедрения

и сопровождения ПО[email protected]

О компании АТАПИ Софтвер

2

§ Основана в 2001 году

§ Офисы в России (Новосибирск) и Германии (Мюнхен)

§ Является партнером ABBYY со статусом Corporate Projects Silver Partner

§ Является партнёром Microsoft уровня Gold в компетенции Software Mevelopment и уровня Silver в компетенции Mata Platform

§ Широкая география клиентов (АвстралияH СШАH ЕвропаH РоссияH Азиатские страны)

Рассматриваемые темы

3

1. Полезные приемы использования FC10

2. Некоторые особенности разработки шаблонов при работе с фотографиями

3. Разработка шаблона в команде

Полезные приемы использования FlexiCapture 10

4

1. Нестандартные сценарии обработки

2. Работа с данными • Извлечение текстового слоя

• Вариационное распознавание поля

• Выделение целой и дробной части чисел

• Валидация подписейH печатей и чекмарок

• Нестандартные таблицы

3. Обучение гибкого шаблона “на лету”

Porkflow: Ограничение наложения шаблонов документовВозможные цели и задачи

• Определение границ документов и сортировка страниц по порядку• Сначала накладываем шаблон сортировщик, а на

следующих стадиях уже основные шаблоны

• Приоритет важным документам• В первую очередь распознаем важные документы, а

потом все остальные

• Ускорение при группировке шаблонов по настройкам распознавания• Группы шаблонов с одинаковыми (Fast Mode, Language)

настройками распознавания накладываются совместно

5

Porkflow: Ограничение наложения шаблонов документовКак это работает: Пример «Сортировщик»

Стадии FC10 Действие

Распознавание Наложение шаблона “Сортировщик” –извлекает Номер страницы

Обработка пакета

Сортируем страницы по Номеру

Распознавание Наложение основных шаблонов документов «ТН»H «АКТ»…

Верификация

Экспорт

6

Porkflow: Группировка нескольких документов на одной страницеВозможные цели и задачи

7

• Сокращение издержек при печати

• Сокращение времени сканирования

• Сокращение размера выходного файла

• Формирование отдельных результирующих файлов для каждого изображения

Porkflow: Разделение страницы документаРешение

Стадии FC10 Действие

Распознавание Наложение шаблона "Регионы"

Обработки пакета

Создание новых документов на основе выделенного регионаETitablePictureObject newPict = FielT.Regions[i].Picture.CreateETitableCopy();

//Создаем новый документbatch.CreatePageFromImage(newPictH 0H 0H 0);

Распознавание Наложение основных шаблонов документов

Верификация

Экспорт

8

Porkflow: Совместная обработка документов из разных пакетовВозможные цели и задачи

• Использование данных из разных документов/пакетов в правилах проверки• Сумма заказа должна быть доступна в каждом документе для

определения скидки, а заказы находятся в разных пакетах

• Экспорт документов должен идти строго последовательно • Данные заказа не могут быть проэкспортированы раньше чем

информация о новом Заказчике

• Ожидание выполнения внешней длительной операции• Экспорт в SAP - время ~ 4 минуты на документ, кол-во станций

обработки ограничено

9

Совместная обработка документов из разных пакетовОбычное решение: Очередь Исключений

10

Стадии FC10 Действие

РаспознаваниеВерификацияЭкспорт

Наложение шаблонаПроверка распознанных данных

Обработка Исключений

Оператор глазами просматривает документы и ждет результатов экспортаОтправка документов на повторный Экспорт

Экспорт

Совместная обработка документов из разных пакетовВозможное решение: Автоматическая обработка

11

Стадии FC10 Действие

Распознавание Наложение шаблона

Обработки пакета (Ожидание)

Автоматическая стадия, которая служит для ожидания и проверки комплектности: пока в БД нет нужных данных пакетH возвращается обратно на эту стадию

Обработки пакета (Заполнениеданных )

Перенос данных из БД в каждый из пакетов

ВерификацияЭкспорт

Все как обычно

Извлечение текстового слоя из документаВозможные цели и задачи

• Формирование файла для системы индексации

• Верификация текстового слоя в PDF

• Верификация данных во внешней системе

• Упрощенный экспорт в Word (а почему бы и нет J)

12

Вариационное распознавание поляОбласти применения

13

• Инвертированные поля

• Разный способ разметки полей

• Машинопечатный и рукопечатный текст

Вариационное распознавание поляКак это работает

14

Выделение дробной части чисел

15

до после

Проблема: иногда разделители не распознаются или исчезают при сканировании

Валидация подписей и печатей

16

Цель: определить наличие печати/подписи на цветном изображении.

Решение:1. Наложить регион с запасом

2. Скриптом получить изображение из региона

3. Построить гистограмму на ось X синего цвета в определённом диапазоне

4. Используя подобранные опытным путём пороговые значенияH принять решение о наличии печати

Валидация подписей и печатейКак это работает

17

Поиск таблиц

18

Изображение

Цель

Поиск таблицИспользование повторяющихся групп

19

ПроблемаНеобходимая информацияв таблицах может не бытьчётко разграничена

Возможный подход1. С помощью повторяющейся группы найти регионы отдельных

строк2. В пределах региона каждой строки найти необходимые поля3. Создать таблицуH фиктивную или реальнуюH с количеством

строкH равным числу найденных строк4. Скриптом перенести данные из регионов в строки таблицы

Поиск таблицПодходы к решению

20

Реальная таблицас нераспознаваемой областью

Фиктивная таблицаH заполняемая скриптом

Поиск таблицНераспознаваемые области

21

изображение цель

Поиск таблицНераспознаваемые области

22

Общий случайСначалаH как и в простом случаеH можно найти и исключить из поиска лишние строкиH если таковые есть

Далее возможны 2 варианта§ Исключить конкретную (статическую) информацию§ Исключить всёH кроме найденных в повторяющейся группе

необходимых данных

Обучение гибкого шаблона оператором верификацииПримерный план

23

Задача: дать конечному пользователю возможность указывать гибкому описанию (без его редактирования)H где может находиться информация

Реализация: в FlexiCapture реализуется 2 режима работы: привычная верификация и обучение.

При обучении1. Пользователь указывает верный регион поля2. Происходит дополнительный экспорт в базу данных FlexiLayout с

указаниями: границы регионовH текст заголовков полей или другой информации используемой для наложения.

Гибкое описание при наложении проверяет уже имеющиеся указания из базы; если их нетH то использует некий общий алгоритм поиска

Особенности при работе с фотоОсновные трудности при разработке шаблонов

24

§ Относительные размеры (отсутствие DPI)

§ Низкое качество изображения

§ Отсутствие надёжных заголовков

§ Искажения всего изображения или отдельных участков

Относительные размеры фотоОбщий подход к созданию шаблона

25

Выделение региона документа1. Необходимо найти внешние границы

документаH напримерH с помощью:• сепараторов• просветов (whitegaps) от края

изображения до текстовых или иных объектов

• статических элементовH которые с достаточно большой вероятностью найдутся

2. Используя регион документа и размер символов нужно определить масштабирующий коэффициент

3. Использовать коэффициент для поиска регионов полей

Проблема: Искажение изображений

26

§ Проблема печати данных в готовый бланк

§ Проблема сканирования/фотографирования

Проблема: Искажение изображенийВозможные способы решения

27

§ Стандартный correct skewH если повезёт

§ Определение искажений с помощью информативного поля.1. выбрать длинную строкуH напримерH ФИО и в ней найти

первый и последний символы

2. посчитать положение символов относительно друг друга и некоего статичного объекта (заголовка документа)

3. вычислить сдвиг и поворот

Проблема: Искажения изображенийВозможные способы решения

28

§ Нахождение региона наклонённой строки1. выбрать базовый элемент2. определить направление наклона3. в цикле добавлять объекты типа RawTextH находящиеся в

нужном направлении наклона слева и справа от базового элемента

Разработка гибкого шаблона в командеПример проекта: Шаблон для чеков

29

Разработка гибкого шаблона в команде

30

• Создание базового шаблона для одного из документов: за стадии 1 и 3 наложения отвечал ВадимH а за 2 и 4 – Алексей.

• Стадии 2 и 3 для каждой альтернативы разделились по разработчикам примерно пополам.

• За улучшение общего подхода на стадии 1 продолжал отвечать ВадимH на стадии 4 – Алексей

АльтернативаСтадия 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Выделение области документа

Определение вида документа

Поиск регионов полей

Поиск значимойинформации

ATAPY Software

Андрей ЛомовРуководитель группы внедрения

и сопровождения ПО

[email protected]

www.atapy.com

Спасибо!