Интеграция с удаленными системами распознавания лиц
Вы можете интегрировать свой экземпляр FindFace с удаленными системами распознавания лиц. В этом случае сервер, известный как «кукловод», будет отправлять биометрические данные из поставленных на мониторинг карточек на удаленные серверы-«марионетки». В ответ он будет получать события распознавания с совпадениями по данным карточкам.
Спектр возможных применений данного функционала широк. Одним из направлений является отслеживание местонахождения и маршрутов преступников и выявление предполагаемых сообщников. Другое направление — поиск пропавших людей. Результаты особенно хороши, если функционал применяется к системам общественной и транспортной безопасности с тысячами камер.
В текущей версии поддерживается только интеграция с системами распознавания лиц из семейства FindFace.
В этом разделе:
Расписание синхронизации
Данные между сервером-кукловодом и сервером-марионеткой синхронизируются следующим образом:
Сервер-кукловод доставляет предназначенные для мониторинга карточки серверу-марионетке с интервалом, указанным в параметре
REMOTE_MONITORING_SYNC_INTERVAL
(см. настройку ниже).Сервер-марионетка отправляет совпадающие события распознавания серверу-кукловоду, как только они появляются.
Настройка сервера-кукловода
Для настройки экземпляра FindFace в качестве сервера-кукловода выполните следующие действия:
Откройте файл конфигурации
/etc/findface-security/config.py
. Убедитесь, что параметрEXTERNAL_ADDRESS
заполнен.sudo vi /etc/findface-security/config.py EXTERNAL_ADDRESS = 'http://192.168.0.4'
Найдите раздел
Puppeteer
.# ============== Puppeteer =============== # INSTALLED_APPS.append('ffsecurity_puppeteer') # PUPPETEER_CONFIG = { # 'UNSAVED_RESULTS_DELETION_TIMEOUT': 3600, # maximum lifetime of search results not saved involuntarily # 'REMOTE_MONITORING_SYNC_INTERVAL': 600, # monitoring data synchronization interval, seconds # 'REMOTE_MONITORING_EVENTS_MAX_AGE': 30, # monitoring events older than this number of days will be # # automatically deleted (every night at 1:17 am by default) # 'ENABLE_DAILY_SEARCH': False, # daily search activation (default False) # 'DAILY_SEARCH_PUSH_HOUR': 2, # daily search cards synchronization hour # 'DAILY_SEARCH_PULL_HOUR': 6, # hour in which results of daily search will be obtained # 'puppets': [ # { # 'id': 'first_puppet', # puppet ID # 'url': 'http://1.1.1.1:8010/', # puppet URL # 'token': 'first_puppet_token', # use pwgen -s 64 1 (should match the token in puppet) # 'facen_model': 'mango_320' # face model in puppet # }, # { # 'id': 'second_puppet', # 'url': 'http://1.1.1.1:8010/', # 'token': 'second_puppet_token', # # # if remote installation has a different face model than the one used in FFSecurity - # # you need to specify its name and ExtractionAPI URL where the corresponding face model is specified # 'facen_model': 'grapefruit_480', # 'extractor': 'http://127.0.0.1:18667', # }, # ] # } #
Раскомментируйте раздел, как показано в примере ниже, и укажите следующие параметры:
REMOTE_MONITORING_SYNC_INTERVAL
: интервал в секундах, с которым сервер-кукловод отправляет предназначенные для мониторинга карточки на сервер-марионетку.REMOTE_MONITORING_EVENTS_MAX_AGE
: события мониторинга старше указанного количества дней будут автоматически удаляться (по умолчанию каждую ночь в 1:17).puppets
->id
: идентификатор сервера-марионетки.puppets
->url
: IP-адрес и порт сервера-марионетки.Укажите порт следующим образом:
Оставьте без изменений, если сервер-марионетка является общественной или транспортной системой безопасности (т. е. в его основе лежит сервис
public-security
).Измените номер на
80
или вообще не указывайте его, если сервер-марионетка построен на сервисеfindface-security
(т. е. на нем установлен продукт FindFace Security или FindFace Multi).
puppets
->token
: токен, который будут использовать сервер-кукловод и сервер-марионетка для взаимной аутентификации.Совет
Для создания случайного токена используйте следующую команду.
pwgen -s 64 1
puppets
->facen_model
: модель нейронной сети, используемая на сервере-марионетке для распознавания лиц.puppets
->extractor
: IP-адрес и порт сервиса, используемого для извлечения биометрических данных на сервере-марионетке, если модель нейросети для распознавания лиц на нем отличается от модели на сервере-кукловоде.
Оставьте закомментированными остальные параметры в разделе.
# ============== Puppeteer =============== INSTALLED_APPS.append('ffsecurity_puppeteer') PUPPETEER_CONFIG = { # 'UNSAVED_RESULTS_DELETION_TIMEOUT': 3600, # maximum lifetime of search results not saved involuntarily 'REMOTE_MONITORING_SYNC_INTERVAL': 600, # monitoring data synchronization interval, seconds 'REMOTE_MONITORING_EVENTS_MAX_AGE': 30, # monitoring events older than this number of days will be # # automatically deleted (every night at 1:17 am by default) # 'ENABLE_DAILY_SEARCH': False, # daily search activation (default False) # 'DAILY_SEARCH_PUSH_HOUR': 2, # daily search cards synchronization hour # 'DAILY_SEARCH_PULL_HOUR': 6, # hour in which results of daily search will be obtained 'puppets': [ { 'id': '1', # puppet ID 'url': 'http://192.168.0.5:8010/', # puppet URL 'token': '1234567890', # use pwgen -s 64 1 (should match the token in puppet) 'facen_model': 'mango_320' # face model in puppet }, { 'id': '2', 'url': 'http://192.168.0.6:8010/', 'token': '0987654321', 'facen_model': 'grapefruit_480', 'extractor': 'http://192.168.0.6:18667', # # # if remote installation has a different face model than the one used in FFSecurity - # # you need to specify its name and ExtractionAPI URL where the corresponding face model is specified }, ] }
Перезапустите сервис
findface-security
.sudo systemctl restart findface-security.service
Выполните миграцию и пересоздайте группы пользователей, чтобы иметь достаточно разрешений для работы с данными с серверов-марионеток.
sudo findface-security migrate sudo findface-security create_groups
Настройка сервера-марионетки
Для настройки экземпляра FindFace в качестве сервера-марионетки выполните следующие действия:
Откройте файл конфигурации
/etc/findface-security/config.py
. Убедитесь, что параметрEXTERNAL_ADDRESS
заполнен.sudo vi /etc/findface-security/config.py EXTERNAL_ADDRESS = 'http://192.168.0.5'
Найдите раздел
Vns
.# ================= Vns ================== # A plugin for using FindFace Security as a puppeteer server # INSTALLED_APPS.append('ffsecurity_vns') # VNS_CONFIG = { # 'USERS': { # 'user1': 'token1', # 'user2': 'token2' # }, # 'MONITORING_THRESHOLD': 0.75, # 'DAILY': { # 'ENABLED': False, # 'THRESHOLD': 0.75, # 'START_TIME': "00:00:00" # } # }
Раскомментируйте раздел, как показано в примере ниже, и укажите следующие параметры:
token
: токен, который будут использовать сервер-марионетка и сервер-кукловод для взаимной аутентификации. Вы можете указать несколько пользователей и токенов, если марионетка взаимодействует с несколькими кукловодами. Имена пользователей (user
) можно оставить без изменений.MONITORING_THRESHOLD
: порог достоверности в событиях распознавания лиц, отправляемых на сервер-кукловод.
Оставьте закомментированными остальные параметры в разделе.
# ================= Vns ================== # A plugin for using FindFace Security as a puppeteer server INSTALLED_APPS.append('ffsecurity_vns') VNS_CONFIG = { 'USERS': { 'user1': '1234567890' }, 'MONITORING_THRESHOLD': 0.75, # 'DAILY': { # 'ENABLED': False, # 'THRESHOLD': 0.75, # 'START_TIME': "00:00:00" # } }
Перезапустите сервис
findface-security
.sudo systemctl restart findface-security.service
Выполните миграцию, чтобы синхронизировать сервер-марионетку с серверами-кукловодами.
sudo findface-security migrate