Лист
Изм.
Лист
№ докум
Подпись
Дата
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ПО «Фрагмент»
|
Наименование программы
|
|
|
Руководство по установке
|
Документ
|
|
|
|
|
на Error: Reference source not found листах
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Правообладатель – ООО «ЭЛАР»
|
|
АННОТАЦИЯ
Настоящий документ содержит описание процесса установки программного обеспечения (далее – ПО) «Фрагмент».
СОДЕРЖАНИЕ
1)Общие сведения 5
1.1Назначение ПО «Фрагмент» 5
1.2Системные требования 6
2)Установка и настройка ПО «Фрагмент» 8
2.1Состав дистрибутивного диска 8
2.2ОС Linux 27
3)установить и настроить PostgeSQL 9.2+ или использовать существующий сервер. 27
4)установить Microsoft .NET Core 1.1 (https://www.microsoft.com/net/download/linux). 27
5)установить OpenCV (https://opencv.org/). 27
6)для работы в окружении CentOS Сервиса нарезки образов one (для службы нарезки) установить пакет Libgdiplus: 27
7)для работы в окружении CentOS Сервиса распознавания ocr установить движок Tesseract 3.0.X с требуемыми языками распознавания: 28
8)для сервиса автоклассификации docclassifier необходимо установить язык для статистической обработки данных R: 28
9)установить переменную окружения R_HOME для R.NET в CentOS 7, создав файл /etc/profile.d/Rlib64.sh со следующим содержимым: 28
10)выполнить копирование дистрибутива с дистрибутивного диска на сервер: 28
11)для каждого из модулей one и marker выполнить команды: 29
12)для каждого из модулей one и marker установить обертку для OpenCV 3.2: 29
13)выполнить настройку конфигурационного файла appsettings.json для каждого сервиса (п.п. 17.1.1). 29
13.1ОС Windows 29
1)установить и настроить PostgeSQL 9.2+ или использовать существующий сервер. 29
2)установить Microsoft .NET Core 1.1 (https://www.microsoft.com/net/download/core#/runtime). 29
3)установить OpenCV (https://opencv.org/). 30
4)для работы Сервиса распознавания ocr установить движок Tesseract 3.0.X с требуемыми языками распознавания (ссылка для загрузки https://github.com/UB-Mannheim/tesseract/wiki): 30
14)для сервиса автоклассификации docclassifier необходимо установить язык для статистической обработки данных R: 30
15)выполнить копирование дистрибутива с дистрибутивного диска на сервер; 31
16)выполнить настройку конфигурационного файла appsettings.json для каждого сервиса (п.п. 17.1.1); 31
17)выполнить настройку конфигурационного файла hosting-config.json для сервиса автоклассификации (п.п. 17.1.2). 31
17.1Настройка конфигурационных файлов 31
17.1.1Appsettings.json 31
17.1.2Hosting-config.json 47
1)Общие сведения
1.1Назначение ПО «Фрагмент»
ПО «Фрагмент» предназначено для «нарезки» электронных образов конфиденциальных или секретных документов (далее – ЭОД) на отдельные «обезличенные» части, не содержащие конфиденциальной, секретной или полной персональной информации; передачи на ретроконверсию выгруженных на внешние носители «обезличенных» фрагментов ЭОД и окончательной «сборки» полученных результатов ретроконверсии для формирования итоговых данных.
ПО «Фрагмент» обеспечивает выполнение следующих функций:
ведения последовательности этапов обработки ЭОД;
создания заданий (передач) на загрузку ЭОД, подлежащих обработке;
разметки ЭОД с выделением отдельных сущностей, например, ФИО, Адрес, Дата и т.д.;
ведения шаблонов «нарезки» ЭОД;
автоматической классификации и разметки разных видов ЭОД на основе математических алгоритмов;
OCR распознавания текста ЭОД;
«нарезки», с использованием имеющихся шаблонов, на фрагменты ЭОД, не имеющих смысловой нагрузки, но достаточных для ввода данных операторами;
проверки нарезанных фрагментов ЭОД с возможностью просмотра оригинального ЭОД и внесения изменений, при необходимости, в выполненную разметку ЭОД;
выгрузки проверенных фрагментов ЭОД на внешний носитель для передачи операторам на ретроконверсию (индексирование);
импорта результатов ретроконверсии, поступающих в формате XML–файлов, и автоматической сборки всех возвращенных фрагментов ЭОД в единую запись БД с помощью кодировочной таблицы в БД (по приходу всех фрагментов).
1.2Системные требования
Сервер, на который устанавливается ПО «Фрагмент», должен удовлетворять следующим требованиям:
Intel Core i5 ;
частота 2,8 ГГц;
оперативная память от 16 Гб;
объем жесткого диска от 250 Гб.
Для корректной работы ПО «Фрагмент» на компьютере должно быть установлено следующее программное обеспечение:
ОС Linux:
CentOs x64 7+;
Red Hat Enterprise Linux x64 7+;
Debian x64 8+;
Fedora x64 23+;
ОС Micosoft Windows:
Windows 7+;
Windows Server 2012 R2+;
СУБД: PostgeSQL 9.2+;
Дополнительные пакеты:
Microsoft .NET Core 1.1;
OpenCV 3.2;
Libgdiplus (только для ОС Linux);
Tesseract 3.04;
R 3.3.3;
RTextTools.
2)Установка и настройка ПО «Фрагмент»
2.1Состав дистрибутивного диска
ПО «Фрагмент» включает в свой состав сервисы, представленные в Табл. .
Табл. – Сервисы ПО «Фрагмент»
№
|
Сервис
|
Назначение
|
1
|
backgroundtasksrunner
|
Выполняет фоновые задачи обслуживания БД и файловых хранилищ ПО «Фрагмент»
|
2
|
classenqueue
|
Создает задания на классификацию ЭОД, выполняемую сервисом автоклассификации
|
3
|
classdequeue
|
Загружает результаты автоклассификации ЭОД в файловое хранилище ПО «Фрагмент»
|
4
|
classtrain
|
Создает задания на построение модели автоклассификации ЭОД для сервиса автоклассификации
|
5
|
entityextractor
|
Размечает области ЭОД, соответствующие сущностям ФИО, Адрес, Дата и др.
|
6
|
export
|
Выгружает нарезанные фрагменты ЭОД на внешний носитель
|
7
|
exportresults
|
Выгружает финальные результаты обработки на внешний носитель
|
8
|
hotfolder
|
Сервис горячих папок. Выполняет автоматическую загрузку ЭОД и результатов индексирования в файловое хранилище и БД ПО «Фрагмент»
|
9
|
imageloader
|
Выполняет анализ входящих передач со сканирования и формирует задания на обработку ПО «Фрагмент» для отдельных папок передачи
|
10
|
main
|
Сервис управления + сайт
|
11
|
marker
|
Выполняет разметку ЭОД по шаблону
|
12
|
ocr
|
Выполняет распознавание текста ЭОД с использованием библиотеки Tesseract
|
13
|
one
|
Выполняет «нарезку» фрагментов ЭОД по результатам разметки, предварительно выполненной сервисами marker и entityextractor
|
14
|
qarkselection
|
Формирует выборку ЭОД для выполнения контроля качества ввода
|
15
|
qaselection
|
Формирует выборку ЭОД для выполнения контроля качества «нарезки» фрагментов ЭОД
|
16
|
rkloader
|
Выполняет загрузку результатов ввода в БД ПО «Фрагмент»
|
17
|
router
|
Выполняет маршрутизацию заданий на обработку образов между этапами обработки
|
18
|
docclassifier
|
Сервис автоклассификации документов по распознанному тексту ЭОД
|
В состав дистрибутивного диска входят следующие папки (название папок по названию используемых сервисов):
backgroundtasksrunner;
classdequeue;
classenqueue;
classtrain;
entityextractor;
export;
exportresults;
hotfolder;
imageloader;
main;
marker;
ocr;
one;
qarkselection;
qaselection;
rkloader;
router;
docclassifier.
2.2ОС Linux
Установка ПО «Фрагмент» под ОС Linux включает в себя следующие шаги:
3)установить и настроить PostgeSQL 9.2+ или использовать существующий сервер.
4)установить Microsoft .NET Core 1.1 (https://www.microsoft.com/net/download/linux).
5)установить OpenCV (https://opencv.org/).
6)для работы в окружении CentOS Сервиса нарезки образов one (для службы нарезки) установить пакет Libgdiplus:
sudo yum install libgdiplus
Примечание – Делается один раз перед установкой дистрибутива.
7)для работы в окружении CentOS Сервиса распознавания ocr установить движок Tesseract 3.0.X с требуемыми языками распознавания:
sudo yum install tesseract
8)для сервиса автоклассификации docclassifier необходимо установить язык для статистической обработки данных R:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
# yum install R
# R
> install.packages("RTextTools")
9)установить переменную окружения R_HOME для R.NET в CentOS 7, создав файл /etc/profile.d/Rlib64.sh со следующим содержимым:
# R64 environment variable initialization script (sh)
[ -x /usr/lib64/R ] && export R_HOME="/usr/lib64/R"
10)выполнить копирование дистрибутива с дистрибутивного диска на сервер:
mkdir /opt/docshreder
cp -r [путь к дистрибутиву]/* /opt/docshredde
11)для каждого из модулей one и marker выполнить команды:
cd [папка сервиса]
rm ./libgdiplus.so
ln –s /usr/lib64/libgdiplus.so.0.0.0 ./libgdiplus.so
12)для каждого из модулей one и marker установить обертку для OpenCV 3.2:
ln –s /usr/lib64/libOpenCvSharpExtern.so ./libOpenCvSharpExtern.so
13)выполнить настройку конфигурационного файла appsettings.json для каждого сервиса (п.п. 17.1.1).
13.1ОС Windows
Установка ПО «Фрагмент» под ОС Windows включает в себя следующие шаги:
-
установить и настроить PostgeSQL 9.2+ или использовать существующий сервер.
-
установить Microsoft .NET Core 1.1 (https://www.microsoft.com/net/download/core#/runtime).
-
установить OpenCV (https://opencv.org/).
-
для работы Сервиса распознавания ocr установить движок Tesseract 3.0.X с требуемыми языками распознавания (ссылка для загрузки https://github.com/UB-Mannheim/tesseract/wiki):
при установке не ставить «флажок» в поле Добавить путь к папке Tesseract в переменную окружения PATH – инсталлятор не добавляет, а перезаписывает эту переменную окружения со всеми вытекающими последствиями;
добавить вручную папку с Tesseract (например, C:\Program Files (x86)\Tesseract-OCR\) в переменную окружения Path.
добавить в подпапку tessdata папки Tesseract файлы нужных языков (*.traineddata);
14)для сервиса автоклассификации docclassifier необходимо установить язык для статистической обработки данных R:
скачать дистрибутив R для Windows по адресу https://cloud.r-project.org/;
установить пакет RTextTools:
запустить консоль R;
выполнить команду install.packages("RTextTools").
15)выполнить копирование дистрибутива с дистрибутивного диска на сервер;
16)выполнить настройку конфигурационного файла appsettings.json для каждого сервиса (п.п. 17.1.1);
17)выполнить настройку конфигурационного файла hosting-config.json для сервиса автоклассификации (п.п. 17.1.2).
17.1Настройка конфигурационных файлов
Для всех сервисов требуется настройка конфигурационного файла appsettings.json.
Для сервиса автоклассификации docclassifier дополнительно необходимо наличие еще двух конфигурационных файлов:
hosting-config.json_ (п.п. 17.1.2);
_log4net.xml_ – содержит настройки для Log4Net логгера (настройки формата, аппендеров и т.д.).
Примечание – В конфигурационном файле _log4net.xml_ используются настройки, заданные по умолчанию.
17.1.1Appsettings.json
Настройка конфигурационного файла заключается в установке необходимых значений параметров конфигурационного файла для каждого сервиса:
backgroundtasksrunner
"BackgroundServices": {
"ConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"ClassModelTrainPeriod": "00:01:00",
"RemoveProjectPeriod": "00:01:00"
}
}
classdequeue
{
"DocClassifierService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel" : 2,
"TicketRequestTimeout": 30
}
}
classenqueue
{
"DocClassifierService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30
}
}
{
classtrain
"DocClassifierTrainService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30
}
}
entityextractor
{
"EntityExtractorService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 1
}
}
export
{
"ExportService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 4,
"FilesTime": "2010-01-01",
"MaxFilesPerDir": 10000 }
}
exportresults
{
"ExportResultsService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 4
}
}
hotfolder
{
"HotfolderService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"FoldersInfoRequestPeriod": "00:00:10",
"MaxDeep": 2,
"MaxDirInactiveTimeout": "00:00:10"
}
}
imageloader
{
"ImageLoader": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 1
}
}
main
{
"ConnectionStrings": {
"MainDb": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"SpaSettings": {
"DefaultPage": "/index.html",
"ApplicationName": "Document Shredder",
"IgnorePathes": [ "/api" ]
}
}
marker
{
"MarkerService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 2,
"SimpleMarkup": false,
"MarkersCacheCapacity" : 2
}
}
ocr
{
"OcrService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 1,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 4
}
}
one
{
"CutService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 4
}
}
qarkselection
{
"QaRkSelectionService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30
}
}
qaselection
{
"QASelectionService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30
}
}
rkloader
{
"RkLoaderService": {
"TicketConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketRequestTimeout": 30,
"MaxDegreeOfParallelism": 4
}
}
router
{
"RouterService": {
"ConnectionString": "Username=TestLogin;Host=ХХ.Х.ХХ.ХХ;Database=DocShredderTest;Persist Security Info=True;Password=TestPassword",
"DbLogLevel": 2,
"TicketsLimit": 1000
}
}
docclassifier
{
"DocClassifierSettings": {
"ModelsNumberToCache": 5,
"ModelPath": "LocalStorage/Model",
"TrainingSetPath": "LocalStorage/train",
"QualTrainingSetPath": "LocalStorage/qualTrain",
"QualTrainingResultPath": "LocalStorage/qualResult",
"DocumentSetPath": "LocalStorage/test",
"ClassifyResultPath": "LocalStorage/testResult",
"FtpUser": "TestFtp",
"FtpPassword": "PassFtp"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
где:
параметры строки подключения к БД:
Username – логин пользователя для подключения к БД;
Database – имя БД;
Password – пароль пользователя для подключения к БД;
TicketRequestTimeout – интервал ожидания поступления задания для обработки сервисом;
MaxDegreeOfParallelism – максимальное количество потоков, которое может быть обработано (при параллельной обработки задач);
DbLogLevel – уровень журналирования, может принимать следующие значения:
1 – пишутся все события в файл журнала;
2 – в БД пишутся только ошибки и предупреждающие сообщения.
FilesTime – дата создания/изменения файла;
Примечание – Задается дата (не текущая), значение которой будет использоваться для формирования имени файла.
MaxFilesPerDir – максимальное количество файлов в папке;
ClassModelTrainPeriod – период обучения модели классификации;
RemoveProjectPeriod – период удаления проекта после инициации процесса пользователем;
FoldersInfoRequestPeriod – интервал анализа горячих папок;
MaxDeep – количество дочерних папок, анализируемых на неактивность для взятия в обработку;
MaxDirInactiveTimeout – максимальный период времени неактивности папки для взятия файлов ф обработку;
SimpleMarkup – использование простой разметки без выравнивания по реперным точкам;
MarkersCacheCapacity – объем кэша маркера;
TicketsLimit – максимальное количество одновременно обрабатываемых сервисом router папок для передачи с одного этапа на другой;
_ModelsNumberToCache_ – максимальное количество моделей, которое сервис автоклассификации будет кэшировать и не будет выгружать;
_ModelPath_ – расположение для сохранения моделей классификации;
_TrainingSetPath_ – расположение, куда будет сохраняться скачиваемая с FTP-сервера обучающая выборка;
_QualTrainingSetPath_ – расположение, куда будет сохраняться скачиваемая с FTP-сервера обучающая выборка для моделей качества;
_QualTrainingResultPath_ – расположение, куда будет сохраняться результат обучения моделей качества;
_DocumentSetPath_ – расположение, куда будет сохраняться скачиваемый с FTP-сервера пакет документов для их классификации;
_ClassifyResultPath_ – расположение, куда будет сохраняться результат классификации документов;
_FtpUser_ – логин для доступа на FTP-сервер, url, на который передается в соответствующие методы REST API;
Будет использоваться для доступа ко всем передаваемым FTP-сервером url. Если в самом url будет содержаться указание логина и пароля, будут использоваться они, а значение из конфигурационного файла будет игнорироваться.
Если логин/пароль не заданы, доступ на FTP-сервер будет осуществляться в режиме anonymous.
_FtpPassword_ – пароль для доступа на FTP-сервер, url, на который передается в соответствующие методы REST API.
Будет использоваться для доступа ко всем передаваемым FTP-сервером url. Если в самом url будет содержаться указание логина и пароля, будут использоваться они, а значение из конфигурационного файла будет игнорироваться.
Если логин/пароль не заданы, доступ на FTP-сервер будет осуществляться в режиме anonymous.
Примечания:
Вышеупомянутые пути до расположений (директорий) должны иметь прямой слэш (/) в качестве разделителя, во избежание конфликтов на *nix платформах и исправлений конфигурационных файлы при развертывании Web-приложения на ту или иную платформу.
Пути могут быть относительными (относительно самого Web-приложения с REST API).
17.1.2Hosting-config.json
Конфигурационный файл hosting-config.json_ сервиса автоклассификации docclassifier содержит значения url и порта, на которые нужно мапировать Web-приложение, в рамках которого функционирует REST API при его старте.
Примечание – Для удобства хостинга может быть указано несколько ссылок.
{
"urls": "http://*:2018"
,
"cors": "*"
}
|