Группа «Robin OCR 1.0»

Общие принципы работы с ROBIN OCR

  • Для отправки документа на распознавание нужно выполнить минимум 2 запроса. Сначала отправляется запрос на создание пакета, в запрос передается единственное изображение пакета или первое. Запрос возвращает GUID пакета. Если изображений в пакете должно быть несколько, то в последующих запросах эти изображения добавляются к пакету (по одному). Завершающим запросом надо запустить пакет на обработку. Во второй и последующие запросы передается GUID созданного пакета.
  • Формат результата настраивается заранее, в сценарии.
  • Пользователь будет получать результат в виде коллекции json-объектов или xml-контекстов. С полученными результатами можно работать действиями студии.
  • Список классов пакета пользователь должен знать перед запуском действия.
  • Классы пакетов будут настроены в системе инженером, нужно выбрать класс, подходящий для обработки изображения. Имя класса пакета - это имя настроенного проекта. Имя класса пакета нужно указывать при создании пакета (обязательно). Имя пакета надо задавать в запросе.
  • Когда робот будет завершать работу с ошибкой, в тексте ошибки будет отображаться причина.
  • Если статус документа не «export», то робот не сможет получить результат и пропустит документ. Пользователь сам должен будет передвинуть документ в статус «экспорт» на сервере. Нужно провести валидацию файла вручную и отправить его на экспорт, путем внесения и принятия изменений в нем.
  • Статусы:

import – импорт => ждать смены статуса.

recognize – распознавание =>ждать смены статуса.

validation – валидация=> вручную менять статус в системе Сойки.

export – экспорт => готово к выгрузке.

deleted - пакет был удален.

inaccessible - пакет недоступен.

quality control - если пользователь отправил по неправильному сценарию, вручную менять статус в системе Сойки.

  • Если таймаут истекает до того как получим распознанный текст будет получен пустой результат, действие не завершается с ошибкой.

Интерфейс Сойки. Аутентификация.

  • При первом подключении необходимо заходить через браузер, chrome предпочтительно. admin, admin.
  • Для получения доступа к функциям rest-сервиса требуется аутентификация – BasicHttpAuth, логин и пароль передаются в заголовке http, при этом логин в открытом виде, а пароль – зашифрованный MD5.
  • Можно сохранить учетную запись в браузере. у пользователя есть доступ только к определенным действиям, это настраивается при регистрации.
  • В двух вкладках открывают сразу же 2 модуля. Модуль администратора: http://localhost/administrator. Модуль валидации: http://localhost/validation.

Аутентификация при подключении через браузер - обязательная процедура для каждого пользователя. Личный логин и пароль пользователей связан с личными настроенными сценариями.

Просмотр и валидация документа

В режиме просмотра default с зажатой клавишей Shift можно выделить область, чтобы внести в нее правки.

Когда правки применены, изменения отражаются в системе.

Когда пользователь сохранил изменения, пакет документ был принят пользователем, статус документа изменился с «валидации» на «экспорт».

Файл прошел валидацию вручную.

Файл получил статус «Экспорт».

Способы обработки результата.

Встроенные в студию действия по работе с JSON - файлами.

Пример составленной цепочки действий для обработки результата. Для распараллеливания процессов распознавания изображений можно использовать Очереди.

Представленные для текущего пользователя классы пакетов.

Профиль распознавания по умолчанию -default. Интерфейс настройки профиля распознавания.

Пример исходного файла.

Пример результирующего файла.

Составим последовательность действий, чтобы файл сохранился на компьютер.

Результат в виде json-файла. Нет необходимости сохранять полученный файл. Его можно сразу же обрабатывать действиями студии.

Действия студии, если результат получен в виде xml-файла. Далее можно воспользоваться действием «Получить элементы по XPath», чтобы получить необходимые для дальнейшей работы значения.

Действия подгруппы «Soica»

Отправить на распознавание / Send files for recognition

Задача: распознать текст на документе и сохранить возможность выполнять еще какие либо действия, пока происходит обработка поданного на вход документа.

Решение: использовать действия «Отправить на распознавание», «Получить результат распознавания».

Реализация:

  • Последовательно установить действия «Отправить на распознавание» и «Получить результат распознавания» на рабочую область.
  • Заполнить параметры действий корректными данными:

параметры «Отправить на распознавание»;

параметры «Получить результат распознавания».

  • Запустить робота по кнопке «Старт» в верхней панели.

Результат:

Робот вернет обработанные файлы. Результат представлен в виде коллекции с json-объектами или xml-контекстами. Статус «export».

Дополнительно

Нужно заранее получить данные для аутентификации в сервисе Сойки.

Робот вернет ошибку, если:

  • в поле «Файл» подается неверный формат.
  • неверный логин или пароль подключения. 403
  • неверно указан путь, ссылка - 404

Первое действие из связки Отправить+Получить. Отправить файл на распознавание и Получить результат распознавания разделено на 2 действия для случаев, когда система будет долго обрабатывать большой файл, поданный на вход.

Получить результат распознавания / Get recognition result

Задача: распознать текст на документе и сохранить возможность выполнять еще какие либо действия, пока происходит обработка поданного на вход документа.

Решение: использовать действия «Отправить на распознавание», «Получить результат распознавания».

Реализация:

  • Последовательно установить действия «Отправить на распознавание» и «Получить результат распознавания» на рабочую область.
  • Заполнить параметры действий корректными данными:

параметры «Отправить на распознавание»;

параметры «Получить результат распознавания».

  • Запустить робота по кнопке «Старт» в верхней панели.

Результат:

Робот вернет обработанные файлы. Результат представлен в виде коллекции с json-объектами или xml-контекстами. Статус «export».

Дополнительно

Необходимо запустить действие «Отправить на распознавание» перед действием «Получить результат распознавания».

Чтобы получить результат, нужно чтобы файл был распознан системой и переведен в статус «export». Если робот при проверке статуса документа робот получил любой статус, кроме «export», то робот вернет полученный статус документа и пустой файл результата распознавания.

Робот вернет ошибку, если:

  • неверно указан путь, ссылка - 404.
  • неверный логин или пароль подключения- 403.
  • выбранный сценарий обработки не подходит- 401.
  • внутренняя ошибка сервера -500.
  • личные данные и ID документа не принадлежат одному пользователю.

Робот НЕ вернет ошибку, если:

  • на изображении не найден текст.
  • на изображении не распознан текст.
  • статусы «quality control», «validation», который нужно менять вручную => вызвать rest api для перевода в другой модуль или открыть пакет на валидации, исправить ошибки и отправить его на экспорт.

Во всех этих случаях робот вернет пустой результат распознавания файла.

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

Второе действие из связки Отправить+Получить. Отправить файл на распознавание и Получить результат распознавания разделено на 2 действия для случаев, когда система будет долго обрабатывать большой файл, поданный на вход.

Распознать / Recognize files

Задача: распознать текст на документе.

Решение: использовать действие «Распознать».

Реализация:

  • Установить действие «Распознать»на рабочую область.

  • Заполнить параметры действия корректными данными.

  • Запустить робота по кнопке «Старт» в верхней панели.

Результат:

Робот вернул обработанные файлы. Результат представлен в виде коллекции с json-объектами или xml-контекстами. Статус «export».

Дополнительно

Робот вернет ошибку, если:

  • неверно указан путь, ссылка - 404.
  • неверный логин или пароль подключения - 403.
  • выбранный сценарий обработки не подходит - 401.
  • внутренняя ошибка сервера -500.
  • личные данные и ID документа не принадлежат одному пользователю.

Действия подгруппы «Robin»

Извлечь данные в таблицу / Extract data to table

Задача: распознать таблицу из документа .pdf и записать результат в таблицу в формате CSV.

Решение: воспользоваться действиями «Извлечь данные в таблицу», «Сохранить таблицу в CSV».

Реализация:

  • Собрать схему робота, состоящего из действий:

  • Настроить параметры для действия «Извлечь данные в таблицу».

  • Настроить параметры для действия «Сохранить таблицу в CSV».

  • Нажать на кнопку «Старт» в верхней панели.

Результат:

Программный робот отработал успешно. Данные с документа извлечены в таблицу формата CSV.

Страницы из документа сохранены в формате .png в указанную папку с выделенными блоками.

Таблица излечена и сохранена в формате .csv

Особые условия использования

Действие распознает текст документа и разбивает его на блоки в зависимости от указанных входных параметров (расстояние между строкамисловами) извлекает данные из текстовых документов и сохраняет их в виде таблицы. При этом исходный документ может и не содержать таблицы.

На вход можно подавать документы:

  • только текстовый слой pdf-документа.
  • только изображения.
  • и текстовый слой, и изображения.

Работа действия основана алгоритме извлечения блоков текста документа. Слова и строки документа объединяются в блоки на основе максимального расстояния между словами и максимального расстояния между строками. Эти параметры задаются во входных параметрах действия.

Примеры таких документов: кассовые чеки; документы, содержащие табличные данные сбез разделителей; документы, содержащие сплошной текст.

Логика работы действия, в зависимости от настройки параметра «Алгоритм»: если выбрана «Таблица», действие вернет текст только из таблиц, сохранив его табличную разметку. Если «Текст», вернет все, но для текста из таблиц не учтет его разметку (то есть считывается весь текст из исходного документа, при этом, если были найдены таблицы, текст из них будет извлечен не по табличной разметке, а по расстоянию). Если «Текст и таблица», распознает и вернет текст из таблиц и обычный текст как отдельные части, сохранив для таблиц разметку.

Пример распознавания:

Извлечь текст из изображения / Extract text from image

Особые условия использования

Робот вернет ошибку, если:

  • в поле «Путь к файлу» подается неверный формат.
  • по указанному пути уже есть файл с указанным именем и поле «перезаписать» = false.
  • неверный номер страницы (вне диапазона количества страниц в документе).

Робот НЕ вернет ошибку, вернет пустой результат, если:

  • на изображении не найден текст.

  • текст не распознан, так как он написан не четко или неправильно выбран язык текста.

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

Решение: воспользоваться действиями «Создать контекст», «Извлечь текст с изображения».

Реализация:

  • Собрать схему робота, состоящую из действий:

  • Настроить параметр действия «Создать контекст».

  • Настроить параметры действия «Извлечь текст с изображения».

  • Нажать на кнопку «Старт» в верхней панели.

Результат:

Программный робот отработал успешно.

Номер авто распознан. Файл с наложенными блоками сохранен в указанную папку.

Создать контекст / Create context

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

Решение: воспользоваться действиями «Создать контекст», «Извлечь текст с изображения».

Реализация:

  • Собрать схему робота, состоящую из действий:

  • Настроить параметр действия «Создать контекст».

  • Настроить параметры действия «Извлечь текст с изображения».

  • Нажать на кнопку «Старт» в верхней панели.

Результат:

Программный робот отработал успешно.

Номер авто распознан. Файл с наложенными блоками сохранен в указанную папку.

Извлечь данные из документа / Extract data from document

Особые условия использования

Для каждого вида документа есть набор полей, которые робот будет искать. Если изображение не содержит искомых полей, то значение поля вернется пустым.

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

Поля для паспорта:

  • «Паспорт выдан», ключ англ. - IssuedBy.
  • «Дата выдачи», ключ англ. – IssuedDate.
  • «Код подразделения», ключ англ. – IssuedCode.
  • «Личная подпись», ключ англ. – Signature.
  • «Фамилия», ключ англ. – LName.
  • «Имя», ключ англ. – FName.
  • «Отчество», ключ англ. – MName.
  • «Пол», ключ англ. – Sex.
  • «Фото», ключ англ. – Photo.
  • «Дата рождения», ключ англ. – BirthDate.
  • «Место рождения», ключ англ. – BirthPlace.
  • Машиночитаемая запись на третьей странице, ключ англ. – MRZ.
  • Номер паспорта, ключ англ. – Number.
  • Поля подпись, фото извлекать логическими. Все остальные строковые.

Для прописки:

  • Дата регистрации.
  • Регион.
  • Пункт.
  • Район.
  • Улица.
  • Подразделение.
  • Код подразделения.

Для СНИЛС:

  • Number – Номер СНИЛС.
  • LName „– Фамилия.
  • FName – Имя.
  • MName – Отчество.
  • BirthDate – Дата рождения.
  • BirthPlace – Место рождения.
  • Sex – Пол.
  • RegDate – Дата регистрации.

Робо вернет ошибку, если:

  • заполнено поле «Путь к папке» и не заполнено «Имя файла».
  • заполнено поле «Имя файла» и не заполнено «Путь к файлу».
  • в поле «Путь к файлу» подается недопустимый формат входного файла.
  • по указанному пути уже есть файл с указанным именем и поле «перезаписать» = false.

Задача: извлечь поля с данными из документа СНИЛС.

Решение: воспользоваться действием «Извлечь данные из документа».

Реализация:

  • Перенести действие «Извлечь данные из документа» на рабочую область.

  • Заполнить параметры действия «Извлечь данные из документа».

  • Нажать на кнопку «Старт» в верхней панели.

Результат:

Программный робот отработал успешно.

Данные из документа СНИЛС извлечены. Сохранено изображение в указанную папку с наложенными блоками.

Найти документы в файле / Find documents in a file

Особые условия использования

Робот вернет ошибку, если:

  • в поле «Путь к файлу» подается недопустимый формат входного файла.
  • по указанному пути уже есть файл с указанным именем и поле «перезаписать» = false.

Робот НЕ вернет ошибку, вернет пустой результат, если:

  • на изображении нет документов, на которые нейросеть обучена делить документ (паспорт 2-3 стр, паспорт прописка, СНИЛС)

Задача имеется скан паспорта и снилса, необходимо сохранить каждый документ, как отдельный файл.

Решение: воспользоваться действием «Найти документы в файле».

Реализация:

  • Перенести действие «Найти документы в файле» на рабочую область.

  • Настроить параметры действия «Найти документы в файле».

  • Нажать на кнопку «Старт» в верхней панели.

Результат:

Программный робот отработал успешно.

В требуемую папку сохранены 2 изображения (паспорт и СНИЛС).