Репликация данных между системами на платформе FindFace Multi

В некоторых случаях требуется, чтобы распознанные FindFace Multi объекты (изображения лица или силуэта человека, изображения транспортного средства) реплицировались во внешней системе FindFace Multi, где они будут в дальнейшем обрабатываться. Такая возможность появилась в версиях FindFace Multi 2.4+.

Система, которая непосредственно распознаёт объекты в обрабатываемых ею видеопотоках, называется Источником, в то время как система, в которую изображения этих объектов реплицируются — Приёмником. Любая система на платформе FindFace Multi может выступать как Источником, так и Приёмником, а также функционировать в обеих этих ролях одновременно — принимая данные, реплицируемые нижестоящими Источниками, и передавая их вышестоящему Приёмнику. В последнем случае будут реплицироваться как данные, полученные в самом Источнике при обработке им видеопотоков, так и данные, принятые из нижестоящих Источников.

При обмене данными Источник передаёт Приёмнику:

  • Сведения о камерах, которые обрабатывает Источник, включая данные об адресе их установки и координаты местоположения, и группах камер, в которые они объединены.

  • События, порождаемые при обработке видеопотоков камер, подключённых к Источнику, включая такие данные как полный кадр, миниатюра распознанного объекта, нормализованное изображение, вектор признаков, значения дополнительных атрибутов распознанного объекта и др.

Вышесказанное также справедливо и для камер и событий, передаваемых Источнику системами FindFace Multi, выступающими в качестве Источников относительно него.

Примечание

События, полученные при обработке Источником загруженных в него видеофайлов, Приёмнику передаваться не будут.

Репликация данных выполняется на условиях гарантированной доставки, что делает возможным наладить обмен даже в условиях неустойчивой работы линий передачи данных. В частности, такая особенность будет востребована при сборе данных с мобильных детекторов, размещённых на подвижном составе наземного общественного или железнодорожного транспорта, в едином центре управления. Гарантированная доставка устроена таким образом, что при восстановлении линии связи в первую очередь будут реплицированы наиболее свежие данные, что обеспечивает возможность повысить оперативность реагирования на регистрируемые инциденты и ситуации.

Примечание

Из соображений защиты информации обмен данными при репликации инициируется на стороне Источника; Приёмник ни при каких условиях не передаёт какие-либо данные Источнику и не направляет Источнику запросы на передачу данных.

При развертывании FindFace Multi с помощью инсталлятора автоматически устанавливаются сервисы, связанные с репликацией данных между системами: findface-multi-replication-sender, findface-multi-replication-receiver, findface-multi-replication-sender-migrate, findface-multi-replication-receiver-migrate.

Чтобы начать работать с Источником и Приёмником в пользовательском интерфейсе, включите раздел Интеграции.

В этом разделе:

Включение раздела интеграций в пользовательском интерфейсе

Для включения раздела Интеграции в веб-интерфейсе сделайте следующее:

  1. В файле конфигурации /opt/findface-multi/configs/findface-multi-legacy/ui-config.yaml найдите и раскомментируйте секцию multi_source_system.

    sudo vi /opt/findface-multi/configs/findface-multi-legacy/ui-config.yaml
    
    multi_source_system:
      enabled: true
    
  2. Выполните перезапуск контейнеров FindFace Multi.

    cd /opt/findface-multi/
    
    sudo docker-compose restart
    

В настройках FindFace Multi появится раздел Интеграции. Теперь все готово для того, чтобы объявить Источник и Приемник. Сначала следует настроить Источник.

integrations_ru

Настройка Источника

Важно

Источник должен создаваться на системе, которую вы определили как Приёмник.

В системе Приёмника перейдите в ИнтеграцииИсточники. Нажмите + Новый Источник. В открывшейся боковой панели введите название Источника и нажмите Сохранить. После сохранения Источника появится токен подключения. Он понадобится вам для настройки Приёмника.

Настройка Приёмника

Важно

Приёмник должен создаваться на системе, которую вы определили как Источник.

В системе Источника перейдите в ИнтеграцииПриёмники. Нажмите + Новый Приёмник. В открывшейся боковой панели введите название Приёмника, токен подключения, который сгенерировался при создании Источника, и URL системы Приёмника. Нажмите Сохранить.

По завершении конфигурации проверьте успешность синхронизации между Источником и Приёмником. Статус обеих систем должен быть активным, а время синхронизации должно обновляться при ping-запросах одной системы к другой.

Настройка систем репликации данных с включенным SSL-шифрованием

Если в системах, задействованных в репликации данных, включено SSL-шифрование, необходимо выполнить следующие настройки:

  1. В Приёмнике скопируйте файл сертификата SSL /opt/findface-multi/configs/ssl/domain.crt и сохраните его как receiver.crt в каталоге /opt/findface-multi/configs/ssl/ Источника. В результате каталог хранения данных SSL-шифрования Источника будет выглядеть следующим образом:

    ls /opt/findface-multi/configs/ssl
    domain.crt  domain.key  receiver.crt
    
  2. В Источнике скопируйте файл сертификата SSL /opt/findface-multi/configs/ssl/domain.crt и сохраните его как sender.crt в каталоге /opt/findface-multi/configs/ssl/ Приёмника. В результате каталог хранения данных SSL-шифрования Приёмника будет выглядеть следующим образом:

    ls /opt/findface-multi/configs/ssl
    domain.crt domain.key sender.crt
    
  3. Смонтируйте сертификат каждой из систем репликации данных в другую в томах (volumes) файла docker-compose.yaml.

    • В Источнике смонтируйте файл сертификата ./configs/ssl/receiver.crt в тома (volumes) сервиса findface-multi-replication-sender:

      sudo vi /opt/findface-multi/docker-compose.yaml
      
      ...
      findface-multi-replication-sender:
         command: [run, --config=/etc/config.yml]
         depends_on:
            findface-multi-replication-sender-migrate: {condition: service_completed_successfully}
            findface-ntls: {condition: service_started}
            nats: {condition: service_started}
            postgresql: {condition: service_healthy}
         extra_hosts: ['findface-ntls:host-gateway']
         healthcheck: {interval: 5s, retries: 3, start_period: 300s, test: 'curl -f http://localhost:8015/healthcheck/
            || exit 1', timeout: 3s}
         image: docker.int.ntl/ntech/multi/multi/replication-sender:ffmulti-2.4.1
         networks: [product-network]
         restart: always
         volumes: ['./configs/findface-multi-replication-sender/findface-multi-replication-sender.yaml:/etc/config.yml:ro',
            './configs/ssl/domain.crt:/usr/local/share/ca-certificates/domain.crt:ro',
            './configs/ssl/receiver.crt:/usr/local/share/ca-certificates/receiver.crt:ro']
      ...
      
    • В Приёмнике смонтируйте файл сертификата ./configs/ssl/sender.crt в тома (volumes) сервиса findface-multi-replication-receiver:

      sudo vi /opt/findface-multi/docker-compose.yaml
      
      ...
      findface-multi-replication-receiver:
         command: [run, --config=/etc/config.yml]
         depends_on:
            findface-multi-replication-receiver-migrate: {condition: service_completed_successfully}
            postgresql: {condition: service_healthy}
         extra_hosts: ['findface-ntls:host-gateway']
         healthcheck: {interval: 5s, retries: 3, start_period: 300s, test: 'curl -f http://localhost:8014/healthcheck/
            || exit 1', timeout: 3s}
         image: docker.int.ntl/ntech/multi/multi/replication-receiver:ffmulti-2.4.1
         networks: [product-network]
         restart: always
         volumes: ['./configs/findface-multi-replication-receiver/findface-multi-replication-receiver.yaml:/etc/config.yml:ro',
            './configs/ssl/domain.crt:/usr/local/share/ca-certificates/domain.crt:ro',
            './configs/ssl/sender.crt:/usr/local/share/ca-certificates/sender.crt:ro']
      ...
      

    В случае использования доверенного SSL-сертификата потребуется смонтировать всю цепочку сертификатов.

  4. Выполните перезапуск контейнеров FindFace Multi.

    cd /opt/findface-multi/
    
    sudo docker-compose down
    sudo docker-compose up -d
    

Репликация камер и групп камер

  1. В системе Источника создайте группу камер. При создании в Источнике группа камер будет реплицирована в Приёмнике. По умолчанию группа камер реплицируется неактивной. Определить группы камер Источника в Приёмнике можно по наличию названий, по которым также доступна фильтрация.

    replicated_camera_groups_ru

  2. В системе Источника создайте камеру. При создании в Источнике камера будет реплицирована в Приёмнике.

    replicated_cameras_ru

Удаление реплицированных камер и групп камер

Если камера удалена из Источника, и в Приёмнике не осталось никаких событий, связанных с ней, камера автоматически удаляется из Приёмника.

Если группа камер удалена из Источника, и в Приёмнике больше нет связанных с ней камер, группа камер автоматически удаляется из Приёмника.

По умолчанию удаление камер и групп камер запускается один раз в сутки и регулируется в конфигурационном файле Приёмника findface-multi-replication-receiver.yaml настройкой daily_cleanup_settings. При необходимости укажите время удаления камер и групп камер из Приёмника в параметре start_time. По умолчанию удаление будет происходить в 12:30:

sudo vi /opt/findface-multi/configs/findface-multi-replication-receiver/findface-multi-replication-receiver.yaml

daily_cleanup_settings:
  on_startup: false
  start_time: '12:30'

Систему можно настроить таким образом, чтобы камеры и группы камер удалялись при перезапуске сервиса findface-multi-replication-receiver. Для этого установите параметр on_startup в значение true:

sudo vi /opt/findface-multi/configs/findface-multi-replication-receiver/findface-multi-replication-receiver.yaml

daily_cleanup_settings:
  on_startup: true
  ...

Репликация событий

При появлении в Источнике события реплицируются в Приёмнике. Перейдите на вкладку События в Приёмнике, чтобы увидеть события, которые передаются из Источника. Работа с реплицируемыми событиями не отличается от обычной работы с событиями.

Лицензирование при репликации

Лицензии Источника отображаются в Приёмнике в разделе ЛицензииОсновноеЛицензии источников. Лицензионные ограничения на камеры Источников суммируются.

originating_system_license_ru

В Приёмнике камеры из Источника лицензируются как реплицируемые ресурсы: Реплицируемые камеры, Реплицируемые потоки: Лица, Реплицируемые потоки: Силуэты и Реплицируемые потоки: ТС.

Примечание

При сложной иерархии задействованных систем вам может понадобиться консультация по лицензированию. Наши специалисты доступны по адресу support@ntechlab.com.