.. _sigur: Sigur ========================================================== Интеграция FindFace Multi со СКУД Sigur обеспечивает эффективный контроль управления доступом с использованием системы распознавания лиц. .. rubric:: В этом разделе: .. contents:: :local: Особенности интеграции FindFace Multi и Sigur -------------------------------------------------------- * Интеграция не поддерживает пагинацию. Клиент Sigur отдает FindFace Multi все лица сразу в одном json. Для большого количества лиц это занимает много времени (10к лиц более 30 секунд). При настройке необходимо увеличение таймаутов, а также использование версии сервера/клиента Sigur c увеличенными таймаутами (>= 1.0.60.23). * Интеграция не поддерживает обработку ошибок фотографий. В случае если на фото более одного лица либо качество лица ниже требуемого уровня, досье будет создаваться без фото. При наличии на фото нескольких лиц рекомендуется использовать :ref:`опцию biggest ` для выбора самого большого лица. .. _ffsec-sigur: Установка и настройка FindFace Multi ----------------------------------------------------------------- Установка FindFace Multi не отличается от :ref:`типовой `. .. important:: Если вы настраиваете интеграцию с уже существующей системой FindFace Multi, убедитесь, что в ней в списке наблюдения ``Default watch list`` с ``id = 1`` отсутствуют лица, поскольку по умолчанию синхронизация досье Sigur идет с данным списком наблюдения и он должен быть пустым. Для включения интеграции с Sigur выполните следующие действия: #. Откройте файл конфигурации ``/etc/findface-security/config.py`` и раскомментируйте блок плагина ``SIGUR`` и блок ``CUSTOM_FIELDS``, как показано в примере ниже. .. code:: sudo vi /etc/findface-security/config.py #================ Sigur ================= # keep in mind, that SIGUR plugin also uses CUSTOM_FIELDS and THUMBNAIL_MAX_WIDTH settings INSTALLED_APPS.append('ffsecurity_sigur') SIGUR = { 'LOGIN': 'admin', 'PASSWORD': 'admin', 'MF_SELECTOR': 'biggest', # what to do with several faces in sigur person photo; allowed ['biggest', 'reject'] 'ONLY_RT_EVENTS': True, # only events with bs_type == realtime, 'EVENT_DELAY': 0.004 # minimum time between two events of same person in seconds. # If interval between two events with same person is less, than this value, second event will be dropped } ... FFSECURITY = { # -- Optional parameters -- # Edit CUSTOM_FIELDS section to customize dossier content. # Below is an example for integration FindFace Security with Sigur. 'CUSTOM_FIELDS': { 'dossier_meta': { 'items': [ { 'name': 'personid', 'default': '', 'label': 'PersonID', 'display': ['list', 'form'], 'description': 'Sigur person ID', 'editable': False }, { 'name': 'firstname', 'default': '', 'label': 'First Name', 'display': ['list', 'form'], 'description': 'Sigur first name', 'editable': False }, { 'name': 'lastname', 'default': '', 'label': 'Last Name', 'display': ['list', 'form'], 'description': 'Sigur last name', 'editable': False }, { 'name': 'version', 'default': '', 'label': 'Version', 'display': ['list', 'form'], 'description': 'Sigur photo version', 'editable': False } ], 'filters': [ { 'name': 'personid', 'label': 'Sigur person ID filter', 'field': 'personid' } ] }, # 'face_object': { # 'items': [ # { # "field_name": "tag_name_1", # "type": "string", # "default": "change_me" # }, # { # "field_name": "tag_name_2", # "type": "uint", # "default": 123 # }, # { # "field_name": "tag_name_3", # "type": "bool", # "default": True # }, # ] # } }, #. Придумайте логин и пароль, которые будут использоваться для авторизации FindFace Multi в ПО Sigur, и укажите их в полях ``LOGIN`` и ``PASSWORD`` блока ``SIGUR``. #. В параметре ``MF_SELECTOR`` того же блока укажите, как должна выполняться обработка фото, если на нем присутствует несколько лиц: обработать самое большое лицо (``biggest``) или отклонить фотографию (``reject``). #. Перенесите структуру основной базы данных из FindFace Multi в :program:`PostgreSQL`. Для этого достаточно выполнить приведенную ниже команду. .. code:: sudo findface-security migrate #. В веб-интерфейсе FindFace Multi откройте настройки той :ref:`камеры `, которую планируется использовать для распознавания лиц в интеграции с ПО Sigur. На вкладке :guilabel:`Аналитика` включите отправку в ПО Sigur всех событий, установив ``false`` для параметра ``Буферный режим`` (``overall_only``). #. Перезапустите сервис ``findface-security``. .. code:: sudo systemctl restart findface-security.service Установка и настройка ПО Sigur ------------------------------------ Установка ПО Sigur ^^^^^^^^^^^^^^^^^^^ Для установки ПО Sigur выполните следующие действия: #. `На сайте Sigur `_ узнайте имена deb-пакетов для самой актуальной версии Sigur. #. Загрузите скрипт установки :download:`sigur_install.sh <_scripts/sigur_install.sh>` в произвольный каталог на сервере (например, в ``/home/username/``). Замените в нем имена загружаемых пакетов на актуальные. .. rubric:: Пример скрипта .. code:: #!/bin/bash #Очистка перед установкой cd ~/ rm -R spnx/ mkdir spnx cd spnx #Для активации sudo sudo ls #Установка зависимостей sudo apt update sudo apt install -y openjdk-8-jre sudo apt install -y mysql-server #Загрузка пакетов - ИЗМЕНИТЕ ИМЕНА НА АКТУАЛЬНЫЕ wget https://sigur.com/dl/spnxclient_1.0.60.1-0_all.deb wget https://sigur.com/dl/spnxserver_1.0.60.1-0_amd64.deb #Установка sudo dpkg -i spnx* #Запуск sudo spnxadmin & spnxclient & #. Из каталога со скриптом сделайте скрипт исполняемым.  .. code:: chmod +x sigur_install.sh #. Выполните скрипт.  .. code:: sudo ./sigur_install.sh Настройка удаленного подключения к базе данных (опционально) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для настройки базы данных выполните следующие действия: #. Задайте пароль для пользователя ``root``. .. code:: ~/spnx$ sudo mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword'; Query OK, 0 rows affected (0.00 sec) #. В случае если требуется запускать клиент Sigur на машине из локальной сети, а не с ``localhost``, использование пользователя ``root`` будет невозможным, поскольку для него есть только локальный доступ. Для удаленного подключения к базе данных создайте отдельного пользователя и предоставьте ему права. Ниже приведен пример создания пользователя ``skud`` с паролем ``xxx``. .. code:: # mysql MariaDB [(none)]> GRANT ALL PRIVILEGES ON `TC-DB-MAIN`.* TO 'skud' IDENTIFIED BY 'xxx'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON `TC-DB-LOG`.* TO 'skud'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) Настройка Сервера Sigur ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для настройки и запуска Сервера Sigur выполните следующие действия: #. Откройте панель администратора Сервера Sigur. .. code:: sudo spnxadmin #. Создайте базу данных: #. В открывшемся окне перейдите :menuselection:`База данных -> Параметры`. Введите логин и пароль от базы данных. #. Выберите тип Сервера базы данных :guilabel:`Внешний MySQL`. #. Выполните :guilabel:`Тест подключения`. Должна отобразится ошибка ``Недостаточно прав на доступ к базе...``. Это значит подключение есть, но база данных еще не создана. #. Нажмите :guilabel:`ОК`. |sigur_server_db| .. |sigur_server_db| image:: /_static/sigur_server_db.png :scale: 80% #. Для создания базы данных нажмите кнопку :guilabel:`Сброс/Создание базы`. #. После создания базы данных запустите серверный модуль ПО Sigur. Для этого перейдите на вкладку :guilabel:`Состояние`. Нажмите кнопку :guilabel:`Старт` для пункта :guilabel:`Серверный модуль`. |sigur_server_start| .. |sigur_server_start| image:: /_static/sigur_server_start.png :scale: 80% Настройка Клиента Sigur ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для настройки Клиента Sigur выполните следующие действия: #. Откройте панель клиента Sigur. .. code:: spnxclient #. Добавьте сервер FindFace Multi в Sigur: #. В главном меню перейдите :menuselection:`Файл -> Настройки -> Видеонаблюдение`. |sigur_client_menu| .. |sigur_client_menu| image:: /_static/sigur_client_menu.png :scale: 80% #. В открывшемся окне выберите поставщика :guilabel:`NtechLab` и введите произвольное имя сервера. |sigur_client_connection| .. |sigur_client_connection| image:: /_static/sigur_client_connection.png :scale: 60% #. После того как в списке появится сервер, введите настройки доступа, которые вы указали в файле конфигурации ``findface-security`` (:ref:`логин и пароль ` в блоке плагина Sigur). Порт для доступа Sigur к серверу FindFace Multi - ``80``. |sigur_client_settings| .. |sigur_client_settings| image:: /_static/sigur_client_settings.png :scale: 50% #. Нажмите :guilabel:`Применить`. #. Перейдите на вкладку :guilabel:`Распознавание лиц` и поставьте флажок :guilabel:`Включить распознавание лиц`. .. important:: Значение в поле :guilabel:`Точность распознавания лица (%)` рекомендуется устанавливать ниже или равным установленному в :ref:`настройках FindFace Multi `. |sigur_client_recognition| .. |sigur_client_recognition| image:: /_static/sigur_client_recognition.png :scale: 100% #. Привяжите камеры к точкам входа: .. important:: Оборудование должно быть доступно в сети и заранее добавлено в Sigur. #. Перейдите в главное окно программы, выберите вкладку :guilabel:`Оборудование`. #. Выберите точку входа, перейдите на вкладку :guilabel:`Видеонаблюдение`. |sigur_client_cameras| .. |sigur_client_cameras| image:: /_static/sigur_client_cameras.png :scale: 100% #. Установите следующие настройки: * :guilabel:`Система`: ``NtechLab``. * :guilabel:`Камера`: в соответствии с камерой на данной точке входа. * флажки :guilabel:`Разрешить верификацию по лицу` и :guilabel:`Разрешить идентификацию по лицу` установлены. #. Нажмите :guilabel:`Применить`. Добавление пользователей ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Для добавления пользователя выполните следующие действия: #. В главном окне программы перейдите на вкладку :guilabel:`Персонал`. Нажмите кнопку :guilabel:`+` и в появившемся диалоговом окне введите имя пользователя. Нажмите :guilabel:`ОК`. |sigur_client_users| .. |sigur_client_users| image:: /_static/sigur_client_users.png :scale: 100% #. Прикрепите фотографию к профилю пользователя. .. important:: Если фотографии были сделаны в портретном режиме, необходимо их предварительно пересохранить в нужной ориентации. #. Нажмите :guilabel:`Применить`. Проверка синхронизации систем ---------------------------------- После того как вы загрузили профили пользователей в Sigur, убедитесь, что они были синхронизированы с FindFace Multi. Для этого выполните следующие действия: #. В FindFace Multi перейдите в список наблюдения ``id = 1``. В нем должны отображаться все пользователи Sigur. #. Отфильтруйте досье по наличию лица. Если синхронизация была выполнена успешно и все данные верные, не должно быть досье без лиц.