findface-security

Компонент findface-security обеспечивает доступ конечного пользователя к функциям ядра FindFace. Отвечает за взаимодействие между ядром FindFace Core и веб-интерфейсом, а также функционирование системы как единого целого, реализует HTTP- и веб-сокеты (вместе с Django), обновление базы данных и вебхуки.

Компонент findface-security также выполняет функции компонента findface-facerouter (часть ядра FindFace), задавая правила обработки обнаруженных лиц. Он получает рамку с лицом и нормализованное изображение лица вместе с исходным кадром и другими данными (например, датой и временем детекции) от сервиса findface-video-worker и перенаправляет их для дальнейшей обработки в сервис findface-sf-api.

Настройка компонента findface-security выполняется через файл конфигурации /etc/ffsecurity/config.py.

sudo vi /etc/ffsecurity/config.py

MEDIA_ROOT = "/var/lib/ffsecurity/uploads"
STATIC_ROOT = "/var/lib/ffsecurity/static"
# SERVICE_EXTERNAL_ADDRESS prioritized for webhooks and genetec
SERVICE_EXTERNAL_ADDRESS = 'http://172.20.77.10'
EXTERNAL_ADDRESS = ''
DEBUG = False
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'ffsecurity',
    }
}
# use pwgen -sncy 50 1|tr "'" "." to generate your own unique key
SECRET_KEY = 'b9bd9f8e2ae9df0ab4671f87983a4738'
FFSECURITY = {
    'VIDEO_DETECTOR_TOKEN': '638f4788aa1401bf1f4d6f6b56604774',
    'CONFIDENCE_THRESHOLD': 0.739,
    'EPISODES_THRESHOLD': 0.689,
    'MINIMUM_DOSSIER_QUALITY': -2,
    'IGNORE_UNMATCHED': False,
    'EXTRACTION_API': 'http://127.0.0.1:18666/',
    'VIDEO_MANAGER_ADDRESS': 'http://127.0.0.1:18810',
    'EVENTS_MAX_MATCHED_AGE': 30,
    'EVENTS_MAX_UNMATCHED_AGE': 30,
    'NTLS_HTTP_URL': 'http://127.0.0.1:3185',
    'ROUTER_URL': 'http://127.0.0.1',
    'MONITORING_UPDATE_INTERVAL': 60,
    'SF_API_ADDRESS': 'http://127.0.0.1:18411',
    'LIVENESS_THRESHOLD': 0.75,
    'BEARD_THRESHOLD': 0.7,
}
ASGI_THREADS = 32
UVICORN_SETTINGS = {
    'workers': 'auto',
    'host': 'localhost',
    'port': 8002,
    'ws-workers': 'auto',
    'ws-host': 'localhost',
    'ws-port': 8003,
}
FFSECURITY_UI_CONFIG = {
    "event": {
        "features": {
            "f_gender_class": ["male", "female"],
            "age": {
                "f_age_gte": "",
                "f_age_lte": ""
            },
            "f_emotions_class": ["angry", "disgust", "fear", "happy", "sad", "surprise"],
            "f_glasses_class": ["none", "eye", "sun"],
            "f_beard_class": ["none", "beard"],
            "f_liveness_class": ["real", "fake"],
        }
    }
}
# integration plugins
INSTALLED_APPS.append('ffsecurity_genetec')  # remove or comment out this line to disable genetec integration

Пользовательская настройка findface-security выполняется с использованием следующих параметров:

Параметр Описание
EXTERNAL_ADDRESS Внешний IP-адрес или URL, который будет использован для доступа к веб-интерфейсу FindFace Security.
VIDEO_DETECTOR_TOKEN Придумайте токен и укажите его в данном параметре, чтобы авторизовать модуль видеодетекции лиц.
VIDEO_MANAGER_ADDRESS IP-адрес сервера findface-video-manager.
EVENTS_MAX_MATCHED_AGE Возраст, при достижении которого должно происходить автоматическое удаление из базы данных событий, для которых есть совпадения с досье.
EVENTS_MAX_UNMATCHED_AGE Возраст, при достижении которого должно происходить автоматическое удаление из базы данных событий, для которых отсутствуют совпадения с досье.
NTLS_HTTP_URL IP-адрес сервера findface-ntls.
ROUTER_URL IP-адрес сервера findface-security, который будет получать обнаруженные на видео лица от экземпляров findface-video-worker. Адрес указывается внутренний или внешний, в зависимости от сети, в которой findface-video-worker взаимодействует с findface-security.
EXTRACTION_API IP-адрес сервера findface-extraction-api.
SF_API_ADDRESS IP-адрес сервера findface-sf-api.
IGNORE_UNMATCHED Отключает запись события в базу данных, если обнаруженное лицо отсутствует в списках наблюдения (верификация дала отрицательный результат). Данную настройку рекомендуется использовать при большом количестве посетителей. Пороговая степень схожести при верификации лиц определяется параметром CONFIDENCE_THRESHOLD.
CONFIDENCE_THRESHOLD Пороговая степень схожести при верификации
MINIMUM_DOSSIER_QUALITY Минимальное качество лица на фотографии в досье. Если качество лица хуже минимального, пользователь не сможет загрузить такую фотографию в досье. Прямые изображения лиц анфас считаются наиболее качественными. Им соответствуют значения вблизи 0, как правило, отрицательные (такие как -0.00067401276, например). Перевернутые лица и лица, повернутые под большими углами, характеризуются отрицательным значениям от -5 и меньше. По умолчанию ’MINIMUM_DOSSIER_QUALITY’: -2, что соответствует среднему качеству.
EVENTS_FEATURES Перечислите здесь модели для распознавания атрибутов лица, которые вы прописали в файле конфигурации findface-extraction-api.
LIVENESS_THRESHOLD Детектор живых лиц оценивает живость лица с определенной достоверностью. В зависимости от порогового значения достоверности, он возвращает бинарный результат Живой человек или Изображение.
BEARD_THRESHOLD Присутствие на лице бороды оценивается с определенной достоверностью. В зависимости от порогового значения достоверности, система возвращает бинарный результат нет или борода.
EPISODE_SEARCH_INTERVAL (Добавьте вручную для эпизодов) Период времени, предшествующий событию, в течение которого система ищет в биометрической базе данных события с похожими лицами. Если такого события не найдено, система создает новый эпизод. В противном случае она выбирает наиболее подходящее событие из открытого (LIVE) эпизода, отсортировав 100 последних похожих лиц. См. Настройка эпизодов.
EPISODE_MAX_DURATION (Добавьте вручную для эпизодов) Максимальная продолжительность эпизода в секундах. По истечении этого времени эпизод автоматически закрывается.
EPISODE_EVENT_TIMEOUT (Добавьте вручную для эпизодов) Максимальное время в секундах с момента добавления последнего события в эпизод. По истечении этого времени эпизод автоматически закрывается.
CUSTOM_FIELDS Добавьте этот раздел вручную, чтобы настроить содержание досье. Подробнее см. Пользовательские вкладки, поля и фильтры в досье.

Предупреждение

Секция FFSECURITY должна заканчиваться параметрами EVENTS_FEATURES/ LIVENESS_THRESHOLD/ BEARD_THRESHOLD, которые должны быть расположены друг за другом в указанном порядке.

...
'SF_API_ADDRESS': 'http://127.0.0.1:18411',
'EVENTS_FEATURES': ['gender', 'age', 'emotions', 'beard', 'glasses'],
'LIVENESS_THRESHOLD': 0.945,
'BEARD_THRESHOLD': 0.7,