Внешние системы управления видео (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
, так как оно вам понадобится для настройки плагина позже. (Значение по умолчанию –VmsPluginToken PLUGIN_TOKEN
).... # -- 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 (.deb) по ссылке от представителя NtechLab.
Установите его с помощью команды:
sudo dpkg -i findface-vms-integration-plugin_0.1.0_amd64.deb
Откройте конфигурационный файл расположенный в
/etc/findface-vms-integration-plugin.conf
. Раскомментируйте и вставьте в него следующие данные:sudo vi /etc/findface-vms-integration-plugin.conf
POSTGRES_SERVER (укажите сервер, на котором запущен контейнер postgresql)
POSTGRES_PORT (используйте значение, отличное от указанного в config.py, например, используйте
5432
)POSTGRES_USER (укажите
ntech
)POSTGRES_PASSWORD (используйте значение
PASSWORD
для пользователяntech
из конфигурационного файла/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
, см. п.1.)POSTGRES_DB (укажите
ffsintegration
)PUBLIC_URL (по умолчанию http://127.0.0.1:18333)
FFS_PUBLIC_URL (по умолчанию: http://127.0.0.1)
FFS_TOKEN (укажите тот же токен, что в разделе
EXTERNAL_VMS
→TOKEN
файла/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
без префиксаVmsPluginToken
)
В результате конфигурационный файл будет выглядеть
следующим образом
:Совет
В нашем примере мы устанавливаем плагин на тот же хост, где развернут FindFace Multi. В случае использования отдельного компьютера, пожалуйста, укажите правильный адрес сервера FindFace Multi в поле
POSTGRES_SERVER
, а URL – в полеFFS_PUBLIC_URL
.Остальные параметры являются необязательными и не требуются для первоначальной настройки.
Обновите базу данных, используя следующую команду:
Чтобы запустить сервис плагина и убедиться, что сервис запускается автоматически, выполните следующую команду:
Предупреждение
Для корректного воспроизведения видеоархивов с внешних VMS необходимо установить на внешнем сервере VMS тот же часовой пояс, что и на сервере FindFace Multi.
Добавление Внешних VMS в FindFace Multi
Войдите в FindFace Multi в вашем браузере, перейдите в раздел Настройки -> Внешние VMS. Нажмите на кнопку Новая VMS.
Укажите параметры вашей VMS в открывшихся окнах и нажмите на кнопку Сохранить, как только все будет готово:
После завершения теперь вы можете управлять потоками со своих VMS на вкладке Камеры. Например, вы можете мгновенно добавить все или выбранные камеры в FindFace Multi.
Если вам нужно отправить события на внешнюю VMS, в настройках камеры, добавленной из VMS, проверьте, настроена ли отправка событий на внешние VMS:
В обязательных свойствах списка наблюдения установите флажок
Отправка событий сопоставления в VMS
и нажмите на кнопку Сохранить, чтобы применить изменения.Отправленные и полученные сообщения можно просмотреть на соответствующих вкладках выбранной VMS:
Теперь ваша установка FindFace Multi расширена и поддерживает внешние VMS. Вы можете подключить столько VMS, сколько потребуется, и легко добавлять существующие видеопотоки в FindFace всего за несколько кликов.