Интеграция с удаленными системами распознавания лиц
Вы можете интегрировать свой экземпляр FindFace CIBR с удаленными системами распознавания лиц. В этом случае сервер, известный как «кукловод», будет отправлять биометрические данные из поставленных на мониторинг карточек на удаленные серверы-«марионетки». В ответ он будет получать события распознавания с совпадениями по данным карточкам. Вы можете настроить ежедневный поиск, который позволяет серверу-кукловоду получать события по расписанию.
Спектр возможных применений данной функциональности широк. Одним из направлений является отслеживание местонахождения и маршрутов преступников и выявление предполагаемых сообщников. Другое направление — поиск пропавших людей. Результаты особенно хороши, если данная функциональность применяется к системам общественной и транспортной безопасности с тысячами камер.
В текущей версии поддерживается только интеграция с системами распознавания лиц из семейства FindFace.
В этом разделе:
Расписание синхронизации
Данные между сервером-кукловодом и сервером-марионеткой синхронизируются следующим образом:
Сервер-кукловод доставляет предназначенные для мониторинга карточки серверу-марионетке с интервалом, указанным в параметре
REMOTE_MONITORING_SYNC_INTERVAL
(см. настройку ниже).Сервер-марионетка отправляет совпадающие события распознавания серверу-кукловоду, как только они появляются.
Настройка сервера-кукловода
Для настройки экземпляра FindFace CIBR в качестве сервера-кукловода выполните следующие действия:
Откройте файл конфигурации
/opt/findface-cibr/configs/findface-multi-legacy/findface-multi-legacy.py
. Убедитесь, что параметрEXTERNAL_ADDRESS
заполнен.sudo vi /opt/findface-cibr/configs/findface-multi-legacy/findface-multi-legacy.py EXTERNAL_ADDRESS = 'http://192.168.0.4'
Примечание
Значение
EXTERNAL_ADDRESS
определяется во время развертывания.Найдите раздел
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*24*60*60, # monitoring events older than this number of seconds will be # # automatically deleted (every night at 1:17 am by default) # 'ENABLE_WATCH_LISTS_MONITORING': 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 # 'DAILY_SEARCH_EVENTS_MAX_AGE': 0, # daily search events older than this number of seconds will be # # automatically deleted (every night at 1:17 am by default) # 'DAILY_SEARCH_EVENTS_FULLFRAME_MAX_AGE': 30*24*60*60, # daily search events fullframes # # older than this number of seconds will be # # automatically deleted (every night at 1:17 am by default) # '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 # # other settings like detector, normalizer and other should be set as puppeteer's ExtractionAPI # # contact support for details # '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*24*60*60, # monitoring events older than this number of seconds will be # # automatically deleted (every night at 1:17 am by default) # 'ENABLE_WATCH_LISTS_MONITORING': 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 # 'DAILY_SEARCH_EVENTS_MAX_AGE': 0, # daily search events older than this number of seconds will be # # automatically deleted (every night at 1:17 am by default) # 'DAILY_SEARCH_EVENTS_FULLFRAME_MAX_AGE': 30*24*60*60, # daily search events fullframes # # older than this number of seconds will be # # automatically deleted (every night at 1:17 am by default) '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 # # other settings like detector, normalizer and other should be set as puppeteer's ExtractionAPI # # contact support for details 'facen_model': 'grapefruit_480', 'extractor': 'http://127.0.0.1:18667', }, ] }
Ежедневный поиск в FindFace CIBR 2.1.2.1 включен по умолчанию. При необходимости установите расписание отправки карточек на сервер-марионетку и получения событий, имеющих совпадение с отправленными карточками. Для этого снимите комментарий и установите значения следующих параметров:
PUPPETEER_CONFIG = { ... '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 ...
Перейдите во вкладку Списки наблюдения и установите флажок
Сбор данных о местоположении
для интересующего вас списка наблюдения.При необходимости включите очистку ежедневного поиска, раскомментировав следующие параметры:
PUPPETEER_CONFIG = { ... 'DAILY_SEARCH_EVENTS_MAX_AGE': 0, # daily search events older than this number of seconds will be # automatically deleted (every night at 1:17 am by default) 'DAILY_SEARCH_EVENTS_FULLFRAME_MAX_AGE': 30*24*60*60, # daily search events fullframes # older than this number of seconds will be # automatically deleted (every night at 1:17 am by default) ...
'DAILY_SEARCH_EVENTS_MAX_AGE': 0
: продолжительность (в секундах) хранения данных о местоположении объекта интереса. По умолчанию:0
, постоянное хранение.'DAILY_SEARCH_EVENTS_FULLFRAME_MAX_AGE': 30*24*60*60
: длительность хранения (в секундах) полных кадров событий ежедневного поиска, полученных от сервера-марионетки. По умолчанию:30*24*60*60
секунд (30 дней). Измените30
на нужное количество дней при необходимости.
Примечание
Вы можете вручную удалить данные о местоположении объекта и полные кадры событий ежедневного поиска старше заданного количества секунд, выполнив команды, приведенные ниже.
Чтобы задать количество секунд для удаления данных о местоположении объекта, используйте аргумент
--daily-search-events-max-age
.sudo docker exec findface-cibr-findface-multi-legacy-1 /opt/findface-security/bin/python3 /tigre_prototype/manage.py cleanup --daily-search-events-max-age 1
Для удаления полных кадров событий ежедневного поиска, полученных от сервера-марионетки, старше 5 дней (
5*24*60*60
=432000
секунд), используйте аргумент--daily-search-events-fullframe-max-age
.sudo docker exec findface-cibr-findface-multi-legacy-1 /opt/findface-security/bin/python3 /tigre_prototype/manage.py cleanup --daily-search-events-fullframe-max-age 432000
Перезапустите контейнеры
findface-cibr-findface-multi-legacy-singleton-services-1
иfindface-cibr-findface-multi-legacy-1
.sudo docker container restart findface-cibr-findface-multi-legacy-singleton-services-1 findface-cibr-findface-multi-legacy-1
Настройка сервера-марионетки
Для настройки удаленного экземпляра FindFace Multi 2.0+ в качестве сервера-марионетки выполните следующие действия:
Откройте файл конфигурации
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
. Убедитесь, что параметрEXTERNAL_ADDRESS
заполнен.sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py EXTERNAL_ADDRESS = 'http://192.168.0.5'
Найдите раздел
Vns
.# ================= Vns ================== # A plugin for using FindFace Security as a puppeteer server # increasing CONCURRENCY might speedup remote monitoring # 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" # }, # 'CONCURRENCY': 5, # }
Раскомментируйте раздел, как показано в примере ниже, и укажите следующие параметры:
token
: токен, который будут использовать сервер-марионетка и сервер-кукловод для взаимной аутентификации. Вы можете указать несколько пользователей и токенов, если марионетка взаимодействует с несколькими кукловодами. Имена пользователей (user
) можно оставить без изменений.MONITORING_THRESHOLD
: порог достоверности в событиях распознавания лиц, отправляемых на сервер-кукловод.
Оставьте закомментированными остальные параметры в разделе.
# ================= Vns ================== # A plugin for using FindFace Security as a puppeteer server # increasing CONCURRENCY might speedup remote monitoring 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" # }, # 'CONCURRENCY': 5, }
Если вы включили ежедневный поиск на сервере-кукловоде (см. шаг №4 выше), раскомментируйте и включите параметры
'DAILY'
. Укажите время для сопоставления событий с карточками, которые были получены от сервера-кукловода.# ================= Vns ================== # A plugin for using FindFace Security as a puppeteer server # increasing CONCURRENCY might speedup remote monitoring INSTALLED_APPS.append('ffsecurity_vns') VNS_CONFIG = { ... 'DAILY': { 'ENABLED': True, 'THRESHOLD': 0.75, 'START_TIME': "00:00:00" }, # 'CONCURRENCY': 5, }
Если поток событий сервера-марионетки большой, вы можете увеличить значение
CONCURRENCY
, ускорив тем самым удаленный мониторинг.CONCURRENCY
: это количество асинхронных задач, которые будут выполнять сопоставление событий с галереей мониторинга на сервере-марионетке. Значение по умолчанию 5.
Выполните перезапуск контейнеров FindFace Multi.
cd /opt/findface-multi/ sudo docker-compose restart
Для настройки удаленного экземпляра FindFace Multi версии 1.2 и более ранней в качестве сервера-марионетки выполните следующие действия:
Откройте файл конфигурации
/etc/findface-security/config.py
. Убедитесь, что параметрEXTERNAL_ADDRESS
заполнен.sudo vi /etc/findface-security/config.py EXTERNAL_ADDRESS = 'http://192.168.0.5'
Найдите раздел
Vns
.Раскомментируйте раздел, как показано в примере выше, и укажите параметры
token
иMONITORING_THRESHOLD
.Если вы включили ежедневный поиск на сервере-кукловоде (см. шаг №4 выше), снимите комментарий и включите параметры
'DAILY'
. Укажите время для сопоставления событий с карточками, которые были получены от сервера-кукловода.Перезапустите сервис
findface-security
.sudo systemctl restart findface-security.service
Выполните миграцию, чтобы синхронизировать сервер-марионетку с серверами-кукловодами.
sudo findface-security migrate