Внешние системы управления видео (VMS)
На стороне FindFace Multi реализован механизм интеграции с внешними системами управления видео (VMS), позволяющий добавлять камеры из них в FindFace Multi и осуществлять их обработку. После добавления камеры из VMS для нее становятся доступны все действия, которые доступны для обычной камеры FindFace Multi.
Интеграция с внешними VMS возможна через плагин. Взаимодействие между плагином и FindFace Multi осуществляется по HTTP. Плагин взаимодействует с VMS, FindFace Multi – с плагином.
В этой главе:
Этот раздел содержит пошаговое руководство по установке и настройке функции внешних VMS в FindFace Multi. Пользователь должен иметь большой опыт администрирования ОС Linux и контейнеров Docker.
Создание сервисной учетной записи для плагина интеграции с VMS
Создайте пользователя (имя пользователя: ntech) с определенным набором разрешений, который будет использоваться в качестве сервисной учетной записи для плагина интеграции. Для этого выполните приведенную ниже команду:
adduser --system --disabled-password --disabled-login --home /var/empty \
--no-create-home --quiet --force-badname --group ntech
Включение плагина в FindFace Multi
Откройте файл
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
и найдите разделExternal VMS Integration settings
.Измените параметр
'ENABLED'
наTrue
.Запомните значение
TOKEN
, так как оно вам понадобится для настройки плагина позже. Значение по умолчанию –PLUGIN_TOKEN
. Пожалуйста, обратите внимание, что префикс токенаVmsPluginToken
должен быть только в конфигурационном файлеfindface-multi-legacy.py
.... # -- External VMS integration settings -- # cleanup settings 'EXTERNAL_VMS_EVENTS_MAX_AGE': 0, 'EXTERNAL_VMS_SEND_EVENTS_STATUS_MAX_AGE': 0, 'EXTERNAL_VMS': { 'ENABLED': True, 'PLUGIN_ADDRESS': 'http://127.0.0.1:18333', 'TOKEN': 'VmsPluginToken PLUGIN_TOKEN', 'EVENT_SENDER': { 'ENABLED': True, 'ALLOWED_TYPES': ['face'], 'SENDER_TASKS': 1, 'MAX_SEND_ATTEMPTS': 1, 'MIN_EVENT_SEND_TIMEOUT': 0.1, 'MAX_EVENT_SEND_TIMEOUT': 100, 'RESPONSE_TIMEOUT': 10, }, }, ...
Совет
В нашем примере мы устанавливаем плагин на тот же хост, где развернут FindFace Multi. В случае использования отдельного компьютера, пожалуйста, укажите правильный адрес сервера, на котором находится плагин интеграции с VMS, в параметре
PLUGIN_ADDRESS
.Примечание
Если вам нужно отправлять события на VMS, пожалуйста, также установите значение
'ENABLED': True
в разделеEVENT_SENDER
.Перезапустите контейнер
findface-multi-findface-multi-legacy-1
.sudo docker container restart findface-multi-findface-multi-legacy-1
Краткое описание параметров приведено ниже:
Параметр |
Описание |
---|---|
EXTERNAL_VMS_EVENTS_MAX_AGE |
Время хранения событий, полученных от VMS (дни). 0 – неограниченно. |
EXTERNAL_VMS_SEND_EVENTS_STATUS_AGE |
Время хранения событий, отправленных в VMS (дни). 0 – неограниченно. |
EXTERNAL_VMS: ENABLED |
Статус модуля интеграции VMS c FindFace. Если |
PLUGIN_ADDRESS |
IP адрес плагина. |
TOKEN |
Токен, необходимый плагину интеграции с VMS для аутентификации в Findface Multi (должен соответствовать токену в файле конфигурации плагина). |
EVENT_SENDER:ENABLED |
Если |
ALLOWED_TYPES |
Типы отправляемых объектов. В настоящее время поддерживаются только объекты «Лица». |
SENDER_TASKS |
Количество одновременных задач для отправки событий в плагин. Значение по умолчанию = 1. При необходимости оно может быть увеличено. За дополнительной информацией обратитесь к нашим экспертам за консультацией (support@ntechlab.com). |
MAX_SEND_ATTEMPTS |
Количество попыток отправки до того, как она будет признана неудачной. |
MIN_EVENT_SEND_TIMEOUT MAX_EVENT_SEND_TIMEOUT |
Время между попытками отправки, если произошла неудачная отправка. Оно будет расти экспоненциально от минимума к максимуму до тех пор, пока увеличивается количество попыток MAX_SEND_ATTEMPTS. |
RESPONSE_TIMEOUT |
Время ожидания ответа от плагина при отправке события. |
Создание новой базы данных в PostgreSQL
Откройте файл
/opt/findface-multi/docker-compose.yaml
и запишите значениеPOSTGRES_PASSWORD
. Оно понадобится для следующего шага.sudo vi /opt/findface-multi/docker-compose.yaml ... postgresql: environment: {POSTGRESQL_ALLOW_REMOTE_CONNECTIONS: 'no', POSTGRES_PASSWORD: POSTGRES_PASSWORD} ...
Войдите в контейнер
findface-multi-postgresql-1
, выполнив следующую команду:Выполните следующую команду, чтобы создать новую базу данных, необходимую для работы VMS:
CREATE DATABASE ffsintegration WITH OWNER ntech ;
Подтвердите создание базы данных, снова выполнив команду
\l
. После завершения используйте параметр\q
для выхода из PostgreSQL.
Установка и настройка плагина для интеграции VMS с FindFace
Откройте файл
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
и найдите разделDATABASES
. Запомните значениеPASSWORD
для пользователяntech
:sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py ... # camera groups, watchlists and so on. Only PostgreSQL is supported. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'DISABLE_SERVER_SIDE_CURSORS': True, 'NAME': 'ffsecurity', 'HOST': '127.0.0.1', 'PORT': 5439, 'USER': 'ntech', 'PASSWORD': 'PASSWORD' } }
Запросите плагин
findface-vms-integration-plugin.img
у представителя компании NtechLab.Загрузите плагин в систему.
docker load < findface-vms-integration-plugin.img
Отредактируйте файл
/opt/findface-multi/docker-compose.yaml
, добавив в него секциюfindface-vms-integration-plugin
.cd /opt/findface-multi/ sudo vi docker-compose.yaml
Добавьте секцию
findface-vms-integration-plugin
в конец файлаdocker-compose.yaml
.findface-vms-integration-plugin: depends_on: [findface-ntls, postgresql, findface-multi-legacy] image: findface-vms-integration-plugin:latest network_mode: service:pause volumes: ['./configs/findface-vms-integration-plugin/findface-vms-integration-plugin.conf:/etc/findface-vms-integration-plugin.conf'] restart: always
Создайте конфигурационный файл для плагина.
sudo mkdir configs/findface-vms-integration-plugin/ sudo vi configs/findface-vms-integration-plugin/findface-vms-integration-plugin.conf
Ниже приведен пример конфигурационного файла
findface-vms-integration-plugin.conf
.# URL prefix for API version 1 endpoints # Default: /api/v1 # API_V1_STR: /v1 # App listens on this interface. Set it to 0.0.0.0 to listen on all available interfaces # Default: 127.0.0.1 # # HOST: 127.0.0.1 # App accepts HTTP connections on this port # Default: 18333 # # PORT: 18333 # Public URL for App # Default: http://127.0.0.1:18333 # # PUBLIC_URL: http://127.0.0.1:18333 # Public URL for FFS # Default: http://127.0.0.1 # # FFS_PUBLIC_URL: http://127.0.0.1:18333 # Full database URL dialect+driver://username:password@host:port/database. # Alternatively, connection parameters can be specified one by one (see below). # # SQLALCHEMY_DATABASE_URI: # Database host # POSTGRES_SERVER: 127.0.0.1 # Database port number # POSTGRES_PORT: 5432 # Database user # POSTGRES_USER: ntech # Database user password # POSTGRES_PASSWORD: POSTGRES_PASSWORD # Database name # POSTGRES_DB: ffsintegration # Log SQL statements # Default: FALSE # # LOG_QUERIES: FALSE # Secret token used to validate requests made by FindFace Security # Required: yes # FFS_TOKEN: PLUGIN_TOKEN # Include traceback information in error responses # Default: FALSE # RESP_TRACEBACK: True # Logging level # Default: INFO # # LOG_LEVEL: # Enable journald log handler. # Default: TRUE # # LOG_TO_JOURNALD: TRUE # Timeout for requests to VMS # Default: 10 # # VMS_REQUEST_TIMEOUT_SEC: 10 # Timeout for requests to FindFace # Default: 10 # # FF_REQUEST_TIMEOUT_SEC: 10
Совет
В нашем примере мы устанавливаем плагин на тот же хост, где развернут FindFace Multi. В случае использования отдельного компьютера, пожалуйста, укажите правильный адрес сервера FindFace Multi в параметре
POSTGRES_SERVER
, а URL – в параметреFFS_PUBLIC_URL
.Если вы установили плагин на тот же хост, что и FindFace Multi, то вам нужно только добавить правильный логин и пароль для локальной базы данных PostgreSQL.
POSTGRES_USER: ntech POSTGRES_PASSWORD: POSTGRES_PASSWORD
Значение
POSTGRES_PASSWORD
можно получить из файла/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
.Для включения внешнего плагина VMS в FindFace Multi запустите все контейнеры FindFace Multi из директории
/opt/findface-multi
.sudo docker-compose up -d
Откройте FindFace Multi в браузере. Вы увидите, что появился раздел Настройки -> Внешние VMS.
Предупреждение
Для корректного воспроизведения видеоархивов с внешних VMS необходимо установить на внешнем сервере VMS тот же часовой пояс, что и на сервере FindFace Multi.
Добавление внешних VMS в FindFace Multi
В разделе Настройки -> Внешние VMS нажмите на кнопку Новая VMS.
Укажите параметры вашей VMS в открывшихся окнах и нажмите на кнопку Сохранить, как только все будет готово:
После завершения теперь вы можете управлять потоками со своих VMS на вкладке Камеры. Например, вы можете мгновенно добавить все или выбранные камеры в FindFace Multi.
Если вам нужно отправить события на внешнюю VMS, в настройках камеры, добавленной из VMS, проверьте, настроена ли отправка событий на внешние VMS:
В обязательных свойствах списка наблюдения установите флажок
Отправка событий сопоставления в VMS
и нажмите на кнопку Сохранить, чтобы применить изменения.Отправленные и полученные сообщения можно просмотреть на соответствующих вкладках выбранной VMS:
Если Видеомагнитофон развернут и настроен, вы можете воспроизводить видеоархивы из внешних систем управления видео VMS (Axxon, Trassir и Hikcentral) через него. Чтобы использовать эту функциональность, сначала убедитесь, что камера, добавленная из внешних VMS, активна. Затем перейдите на вкладку Эпизоды и события и наведите курсор на интересующее вас событие или эпизод. На миниатюре объекта (лица/силуэта или транспортного средства) отобразится кнопка play. Нажмите на нее, чтобы начать воспроизведение видео с того момента, когда было зафиксировано событие или эпизод с камеры.
Вы также можете воспроизводить видеоархив через камеру, нажав play на миниатюре камеры в списке камер на вкладке Источники видео. В результате видео с камеры внешних VMS будет отображаться в видеомагнитофоне. Если в указанное время в FindFace Multi имеется записанный видеоархив, то в видеомагнитофоне будет воспроизводиться он, а не видеоархив из внешних VMS.
Теперь ваша установка FindFace Multi расширена и поддерживает внешние VMS. Вы можете подключить столько VMS, сколько потребуется, и легко добавлять существующие видеопотоки в FindFace всего за несколько кликов.