Установка сервера распознавания графических объектов

Описание и возможности модуля

Модуль представляет из себя программный пакет, устанавливаемый на отдельно стоящий сервер (виртуальную машину) в дополнение к серверу Staffcop Enterprise (т.е. отдельный от Staffcop сервер). Cодержит в себе несколько движков, извлекающих данные либо обнаруживающих различные графические и иные сущности из документов.

В данный момент доступны следующие возможности:

  • обнаружение изображений документов с печатями: скан-копии, скриншоты, фотографии, где есть документы с оттиском печати;

  • обнаружение изображений паспорта гражданина России: скан-копии, скриншоты, фотографии с главной страницей паспорта гражданина России;

  • распознавание лиц и создание оповещений по результатам распознавания;

  • эффективное распознавание больших объёмов текста с использованием технологии многопоточного распознавания, пригодной для обработки большого потока документов. Возможно распознавание текстов в любых изображениях, на которых имеется текст: скан-копии, скриншоты, фотографии, а также в файлах-контейнерах (например, файлах формата PDF или в ZIP-архивах).

Рекомендуемые требования к серверу распознаваний

Операционная система: Ubuntu 18.04

Процессор: Intel или AMD с подержкой AVX инструкций.

Память: от 2 ГБ на ядро.

Размер диска: от 20 ГБ до 50 ГБ.

Детектирование печати, паспорта или картинки через CR Tesseract 4 в формате JPG в размере FullHD займет 4-6 секунд.

Детектирование лица занимает от 5 и до 60-ти секунд.

1 ядро, мин.

2 ядра, мин.

3 ядра, мин.

4 ядра, мин.

Изоб. FullHD/сек

Кол-во изображений

Множитель ядер

83.3

41.7

20.8

10.4

5

1000

1

166.7

83.3

41.7

20.8

5

2000

2

416.7

208.3

104.2

52.1

5

5000

4

833.3

666.7

208.3

104.2

5

10000

8

Установка модуля на сервер

Для работы анализатора графических объектов Staffcop требуется установить дополнительные пакеты:

sudo apt update
sudo apt -y install software-properties-common python3.7 libpoppler-cpp0v5 poppler-utils libsm6 python3.7-venv tesseract-ocr

Прописываем репозиторий Staffcop и ставим модуль при помощи apt:

wget -O - http://distr.staffcop.su/stable4.8/staffcop.gpg | sudo apt-key add -
echo "deb http://distr.staffcop.su/stable4.8 stable4.8 non-free" | sudo tee /etc/apt/sources.list.d/staffcop.list
sudo apt update

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

sudo apt install staffcop-cpservice

Примечание

Размер пакета около 800 MB, поэтому в случае низкой скорости доступа в сеть Интернет скачивание может занять значительное время.

На этом установка программного обеспечения завершена.

Настройка со стороны сервера StaffCop Enterprise

Прежде чем настраивать модуль «Анализ контента», нужно в параметрах сервера StaffCop Enterprise включить доступ к API сервера, так как по умолчанию этот доступ выключен.

Для этого нужно открыть страницу параметров сервера в web-интерфейсе (пункт меню «Панель управления -> Параметры сервера»):

../_images/05.png

и на открывшейся странице параметров сервера кликнуть по параметру «Доступ к API разрешён»:

Откроется страница изменения параметра, нужно на ней установить значение и нажать кнопку «Сохранить». Значение против параметра «Доступ к API разрешён» изменится на «Да»

Дальше открываем вкалдку Фильтры, а в ней «Политики -> Системные политики -> Сервер распознаваний», где расположены следующие параметры:

  • Адрес API виде http://cpservice.atom.local:9090/api/v1.0, где cpservice.atom.local - доменное имя или IP сервера с модулем, 9090 - рабочий порт, указанный при установке модуля.

  • Число ядер должно соответствовать числу ядер сервера модуля.

  • Шаг обновления срабатываний - чем меньше (минимально рекомендуемое значение 100), тем чаще распознанные данные будут отображаться в интерфейсе, сработавших политиках, но тем чаще обработка политики будет посылать тяжёлые запросы к БД. В нормальном режиме работы рекомендуется число от 1000-10000.

Для запуска работы установить галочку «Политика активна».

../_images/22.png

Настройки модуля «Анализ контента» на сервере распознавания изображений

Нужно открыть SSH-консоль сервера распознавания изображений одним из распространённых приложений, например PuTTY.

Настройка модуля «Анализ контента» выполняется изменением текстовых конфигурационных файлов модуля с помощью редактора текстов nano.

Запускается редактор nano с именем редактируемого файла конфигурации sudo nano –c /etc/staffcop/cpservice-config

PORT = 9090
SERVER_ADDR = 'http://192.168.1.x'
SECRET = 'xxxxxxxxxxxxxxxx'

Нужно изменить значение параметра SERVER_ADDR на адрес вашего сервера StaffCop Enterprise, а значение параметра SECRET – на значение ключа API, которое берётся из «Параметров сервера» (см.выше):

После изменения параметров нужно выйти из редактирования нажатием Ctrl-X, подтвердив запись файла нажатием Y и Enter.

Все параметры конфигурации сервиса распознавания изображений заданы, теперь его нужно перезапустить командой

sudo service staffcop-cpservice restart

Настройка модуля завершена.

Политики для обработки контента

Настраиваются на сервере Staffcop в веб-интерфейсе.

  • Распознавание текста

Данная политика расположена в Фильтрах. Выбираем пункт «Политики -> Системные политики -> Распознавание текста».

В настройках распознавания необходимо выбрать пункт «Сервер распознаваний». После сохранить изменения.

../_images/12.png
  • Распознавание печатей

Данная политика создается через пункт меню в верхнем левом углу «Создать -> Распознование печатей»

Политика служит для нахождения документов с оттиском конкретной печати. При создании политики, нужно выбрать образец или несколько разных оттисков одной печати, каждый образец - изображение (jpg или png) c одной печатью на нём.

Добавить выбранные образцы в политику, убедиться, что модуль распознал печати на них - в столбце «Статус» для каждого образца должна появится галочка.

Так же, установить фильтр для политики: например, типы контента pdf, jpg, png, типы события - перехваченные файлы/скриншоты. C пустым фильтром политика работать не будет. Для активации политики установить галочку «Политика активна». Найденные факты будет доступны в «Сработавших фильтрах».

../_images/13.png
  • Поиск графических объектов

Данная политика создается через пункт меню в верхнем левом углу «Создать -> Поиск графических объектов».

Политика служит для нахождения документов с выбранным типом объектов - «Паспорт РФ», «Документы со штампами», «Лица». Тип объектов выбирается при создании политики.

Так же, установить фильтр для политики: например, типы контента , типы события. C пустым фильтром политика работать не будет. Для активации политики установить галочку «Политика активна».

Результаты распознавания будут видны в «Сработавших фильтрах» для соответствующи политик с типами объектов «Паспорт РФ», «Документы со штампами», и в «Алертах» для типа объектов «Лица».

../_images/14.png

Результаты распознавания будут видны в «Сработавших фильтрах» для соответствующи политик с типами объектов «Паспорт РФ», «Документы со штампами», и в «Алертах» для типа объектов «Лица»:

../_images/27.png ../_images/16.png

Мониторинг работы модуля распознавания изображений в логах

На стороне модуля смотреть лог /var/log/staffcop-cpservice.err

Запрос и его опции:

2020-09-10 12:19:39,065 [DEBUG] cp_server:112 Request for 2020_09_10/ae4cd000abaecdaf46eec3d3ac90750d327e688a.jpe : text_extraction face_detection

Здесь: text_extraction face_detection - опциональные параметры, извлечение текста и распознавание лиц.

Результат обработки:

2020-09-10 12:24:20,125 [DEBUG] cp_server:127 Response for 2020_09_10/9ade404783b02bff8741ed1632ffbf63d883c64e.jpe done in 0:01:04.814513: "document_class": undetected, "face": {'size': {'width': 640, 'height': 480}, 'bounds': [{'top': 306, 'right': 381, 'bottom': 476, 'left': 211}], 'vectors': '...'}, "extracted_text": "

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

На стороне Staffcop лог /var/log/staffcop/process.log, начало и конец запуска обработки серии событий:

2020-09-10 12:19:38,877 [INFO] graphic_objects_detector:152 Графические объекты: process range 53793 - 53840
...
2020-09-10 12:26:14,148 [INFO] graphic_objects_detector:212 Графические объекты: finished at 53840. Time: 0:06