findface-extraction-api

Компонент findface-extraction-api с помощью нейронных сетей обнаруживает лицо на изображении, извлекает из лица биометрический образец, а также распознает пол, возраст, эмоции и другие атрибуты лица.

Компонент взаимодействует с сервисом findface-sf-api следующим образом:

  • Получает от него фотографию с лицом или нормализованное изображение лица.

  • Возвращает координаты рамки с лицом, а также вектор признаков, данные о поле, возрасте, эмоциях и других атрибутах лица (если они были запрошены findface-sf-api).

Совет

Вы можете использовать HTTP API для прямого доступа к компоненту findface-extraction-api.

Полный список функций:

  • детекция (обнаружение) лица на исходном изображении с возвращением координат рамки с лицом,

  • получение из исходного изображения нормализованного изображения лица,

  • извлечение из нормализованного изображения лица вектора признаков (биометрического образца),

  • распознавание пола/возраста/эмоций/страны.

Сервис findface-extraction-api может работать с ускорением на CPU (устанавливается из пакета findface-extraction-api) или GPU (устанавливается из пакета findface-extraction-api-gpu). Как для CPU-, так и для GPU-сервиса, настройка выполняется через файл конфигурации /etc/findface-extraction-api.ini, однако содержимое данного файла на CPU и GPU отличается.

Файл конфигурации сервиса на CPU:

allow_cors: false
detector_instances: 0
dlib:
  model: /usr/share/findface-data/normalizer.dat
  options:
    adjust_threshold: 0
    upsample_times: 1
extractors:
  instances: 1
  max_batch_size: 16
  models:
    age: ""
    beard: ""
    emotions: ""
    face: face/grapefruit_480.cpu.fnk
    gender: ""
    glasses3: ""
    liveness: ""
  models_root: /usr/share/findface-data/models
fetch:
  enabled: true
  size_limit: 10485760
license_ntls_server: 127.0.0.1:3133
listen: 127.0.0.1:18666
max_dimension: 6000
nnd:
  model: /usr/share/nnd/nnd.dat
  options:
    max_face_size: .inf
    min_face_size: 30
    o_net_thresh: 0.9
    p_net_max_results: 0
    p_net_thresh: 0.5
    r_net_thresh: 0.5
    scale_factor: 0.79
  quality_estimator: true
  quality_estimator_model: /usr/share/nnd/quality_estimator_v2.dat
ticker_interval: 5000

Файл конфигурации сервиса на GPU:

listen: 127.0.0.1:18666
dlib:
  model: /usr/share/findface-data/normalizer.dat
  options:
    adjust_threshold: 0
    upsample_times: 1
nnd:
  model: /usr/share/nnd/nnd.dat
  quality_estimator: true
  quality_estimator_model: /usr/share/nnd/quality_estimator_v2.dat
  options:
    min_face_size: 30
    max_face_size: .inf
    scale_factor: 0.7900000214576721
    p_net_thresh: 0.5
    r_net_thresh: 0.5
    o_net_thresh: 0.8999999761581421
    p_net_max_results: 0
detector_instances: 0
extractors:
  models_root: /usr/share/findface-data/models
  max_batch_size: 3
  instances: 2
  models:
    age: ""
    beard: ""
    emotions: ""
    face: face/grapefruit_480.gpu.fnk
    gender: ""
    glasses3: ""
    liveness: ""
  cache_dir:
  gpu_device: 0
license_ntls_server: 172.17.46.26:3133
fetch:
  enabled: true
  size_limit: 10485760
max_dimension: 6000
allow_cors: false
ticker_interval: 5000

Пользовательская настройка findface-extraction-api (как CPU, так и GPU) выполняется с использованием следующих параметров:

Параметр

Описание

nnd -> quality_estimator

Включает/отключает оценку качества лица. В этом случае компонент findface-extraction-api будет возвращать показатель качества лица в параметре detection_score. Показатель качества можно анализировать. Прямые изображения лиц анфас считаются наиболее качественными. Для них возвращаются значения вблизи 0, как правило, отрицательные (такие как -0.00067401276, например). Перевернутые лица и лица, повернутые под большими углами, оцениваются отрицательными значениями от -5 и меньше.

nnd -> min_face_size

Минимальный размер лица, которое будет гарантированно найдено. Определяется размером рамки с лицом (bbox). Чем больше значение, тем менее ресурсоемок процесс обнаружения лица.

nnd -> max_face_size

Максимальный размер лица, которое будет гарантированно найдено. Определяется размером рамки с лицом (bbox).

license_ntls_server

IP-адрес и порт сервера лицензирования findface-ntls.

gpu_device

(Только для GPU) Номер GPU-устройства, используемого findface-extraction-api-gpu.

№ экземпляров

Количество экземпляров нейронных сетей (и, следовательно, одновременно обрабатываемых запросов), загружаемых в RAM компонентом findface-extraction-api. Укажите количество экземпляров из лицензии. Значение по умолчанию (0) означает, что данное количество равно числу ядер процессора. Данный параметр существенно влияет на потребление памяти.

ntls -> enabled

Включает получение изображение из Интернета.

fetch -> size_limit

Максимальный размер получаемого из Интернета изображения.

В зависимости от нужд вашего бизнеса, вам также может потребоваться включить модели распознавания атрибутов лица, таких как пол, возраст, эмоции, очки и/или борода. Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения CPU или GPU: он должен совпадать с типом ускорения findface-extraction-api. Обратите внимание, что findface-extraction-api на CPU может работать только с CPU-моделями, в то время как findface-extraction-api на GPU поддерживает как GPU-, так и CPU-модели.

models:
  age: faceattr/age.v1.cpu.fnk
  emotions: faceattr/emotions.v1.cpu.fnk
  face: face/grapefruit_480.cpu.fnk
  gender: faceattr/gender.v2.cpu.fnk
  beard: faceattr/beard.v0.cpu.fnk
  glasses3: faceattr/glasses3.v0.cpu.fnk

Доступны следующие модели:

Атрибут лица

Ускорение

Параметр в файле конфигурации

биометрия лица

CPU

face: face/grapefruit_480.cpu.fnk face: face/grapefruit_160.cpu.fnk

GPU

face: face/grapefruit_480.gpu.fnk face: face/grapefruit_160.gpu.fnk

возраст

CPU

age: faceattr/age.v1.cpu.fnk

GPU

age: faceattr/age.v1.gpu.fnk

пол

CPU

gender: faceattr/gender.v2.cpu.fnk

GPU

gender: faceattr/gender.v2.gpu.fnk

эмоции

CPU

emotions: faceattr/emotions.v1.cpu.fnk

GPU

emotions: faceattr/emotions.v1.gpu.fnk

очки

CPU

glasses3: faceattr/glasses3.v0.cpu.fnk

GPU

glasses3: faceattr/glasses3.v0.gpu.fnk

борода

CPU

beard: faceattr/beard.v0.cpu.fnk

GPU

beard: faceattr/beard.v0.gpu.fnk

Совет

Для того чтобы отключить модель распознавания, передайте в соответствующий параметр пустое значение. Не удаляйте сам параметр, поскольку в этом случае будет выполняться поиск модели по умолчанию.

models:
  gender: ""
  age: ""
  emotions: ""