Распознавание лиц и их атрибутов
FindFace Multi позволяет распознавать человеческие лица и атрибуты лиц. Поддерживается распознавание таких атрибутов лица, как возраст, пол, эмоции, борода, очки, медицинские маски, положение головы, состояние глаз, витальность.
Распознавание лиц и их атрибутов можно автоматически включить и настроить в ходе установки FindFace Multi. Если этот шаг был пропущен при установке, можно впоследствии выполнить настройку вручную. Распознавание лиц и атрибутов лиц работает как на GPU-, так и на CPU-ускорении.
Распознавание объекта лицо включено по умолчанию. Если во время установки FindFace Multi вы удалили распознавание объекта лицо, можно добавить его позже, следуя пошаговой инструкции ниже. Если распознавание лица уже установлено, и вам нужно только включить распознавание атрибутов лица, перейдите к шагам 1.5, 4.1, 4.2. Другие шаги следует пропустить.
Чтобы включить распознавание лиц, выполните следующее:
В файле конфигурации
/opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yaml
укажите модели нейронных сетей для распознавания объекта лицо и его атрибутов.Важно
Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения CPU или GPU: он должен совпадать с типом ускорения
findface-extraction-api
. Обратите внимание, чтоfindface-extraction-api
на CPU может работать только с CPU-моделями, в то время какfindface-extraction-api
на GPU поддерживает как GPU-, так и CPU-модели.Откройте файл конфигурации
findface-extraction-api.yaml
.sudo vi /opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yaml
Укажите модель детектора лиц в разделе
detectors → models
, вставив следующий код:GPU
detectors: ... models: face_jasmine: aliases: - face - nnd - cheetah model: detector/facedet.kali.005.gpu.fnk options: min_object_size: 32 resolutions: - 2048x2048 ...
CPU
detectors: ... models: face_jasmine: aliases: - face - nnd - cheetah model: detector/facedet.kali.005.cpu.fnk options: min_object_size: 32 resolutions: - 2048x2048 ...
Убедитесь, что раздел
objects → face
содержитquality_attribute: face_quality
и, в зависимости от вашего типа ускорения,base_normalizer: facenorm/crop2x.v2_maxsize400.gpu.fnk
илиbase_normalizer: facenorm/crop2x.v2_maxsize400.cpu.fnk
:GPU
objects: ... face: base_normalizer: facenorm/crop2x.v2_maxsize400.gpu.fnk quality_attribute: face_quality ...
CPU
objects: ... face: base_normalizer: facenorm/crop2x.v2_maxsize400.cpu.fnk quality_attribute: face_quality ...
В разделе
normalizers
укажите модели нормализаторов лица, вставив следующий код:GPU
normalizers: ... models: crop1x: model: facenorm/crop1x.v2_maxsize400.gpu.fnk crop2x: model: facenorm/crop2x.v2_maxsize400.gpu.fnk cropbbox: model: facenorm/cropbbox.v2.gpu.fnk multicrop_full_center: model: '' multicrop_full_crop2x: model: facenorm/facenorm.multicrop_full_crop2x_size400.gpu.fnk norm200: model: facenorm/bee.v3.gpu.fnk ...
CPU
normalizers: ... models: crop1x: model: facenorm/crop1x.v2_maxsize400.cpu.fnk crop2x: model: facenorm/crop2x.v2_maxsize400.cpu.fnk cropbbox: model: facenorm/cropbbox.v2.cpu.fnk multicrop_full_center: model: '' multicrop_full_crop2x: model: facenorm/facenorm.multicrop_full_crop2x_size400.cpu.fnk norm200: model: facenorm/bee.v3.cpu.fnk ...
Примечание
Необходимо выполнить этот шаг для включения распознавания атрибутов лица.
Для включения распознавания атрибутов лица выполните следующие действия:
В файле конфигурации
/opt/findface-multi/configs/findface-extraction-api/findface-extraction-api.yaml
укажите модели для экстракции векторов признаков в разделеextractors
, как показано в примере ниже. Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения CPU или GPU: он должен совпадать с типом ускоренияfindface-extraction-api
.GPU
extractors: ... models: face_age: default: model: faceattr/faceattr.age.v3.gpu.fnk face_beard: default: model: faceattr/beard.v0.gpu.fnk face_beard4: default: model: '' face_countries47: default: model: '' face_emben: default: model: face/nectarine_l_320.gpu.fnk face_emotions: default: model: faceattr/emotions.v1.gpu.fnk face_eyes_attrs: default: model: faceattr/faceattr.eyes_attrs.v0.gpu.fnk face_eyes_openness: default: model: '' face_gender: default: model: faceattr/faceattr.gender.v3.gpu.fnk face_glasses3: default: model: '' face_glasses4: default: model: faceattr/faceattr.glasses4.v0.gpu.fnk face_hair: default: model: '' face_headpose: default: model: faceattr/headpose.v3.gpu.fnk face_headwear: default: model: '' face_highlight: default: model: '' face_liveness: default: model: faceattr/faceattr.liveness_web.v1.gpu.fnk face_luminance_overexposure: default: model: '' face_luminance_underexposure: default: model: '' face_luminance_uniformity: default: model: '' face_medmask3: default: model: faceattr/medmask3.v2.gpu.fnk face_medmask4: default: model: '' face_mouth_attrs: default: model: '' face_quality: default: model: faceattr/faceattr.quality.v5.gpu.fnk face_scar: default: model: '' face_sharpness: default: model: '' face_tattoo: default: model: '' face_validity: default: model: ''
CPU
extractors: ... models: face_age: default: model: faceattr/faceattr.age.v3.cpu.fnk face_beard: default: model: faceattr/beard.v0.cpu.fnk face_beard4: default: model: '' face_countries47: default: model: '' face_emben: default: model: face/nectarine_l_320.cpu.fnk face_emotions: default: model: faceattr/emotions.v1.cpu.fnk face_eyes_attrs: default: model: faceattr/faceattr.eyes_attrs.v0.cpu.fnk face_eyes_openness: default: model: '' face_gender: default: model: faceattr/faceattr.gender.v3.cpu.fnk face_glasses3: default: model: '' face_glasses4: default: model: faceattr/faceattr.glasses4.v0.cpu.fnk face_hair: default: model: '' face_headpose: default: model: faceattr/headpose.v3.cpu.fnk face_headwear: default: model: '' face_highlight: default: model: '' face_liveness: default: model: faceattr/faceattr.liveness_web.v1.cpu.fnk face_luminance_overexposure: default: model: '' face_luminance_underexposure: default: model: '' face_luminance_uniformity: default: model: '' face_medmask3: default: model: faceattr/medmask3.v2.cpu.fnk face_medmask4: default: model: '' face_mouth_attrs: default: model: '' face_quality: default: model: faceattr/faceattr.quality.v5.cpu.fnk face_scar: default: model: '' face_sharpness: default: model: '' face_tattoo: default: model: '' face_validity: default: model: ''
Доступны следующие модели экстракторов:
Экстрактор
Ускорение
Настройка
возраст
CPU
face_age: faceattr/faceattr.age.v3.cpu.fnk
GPU
face_age: faceattr/faceattr.age.v3.gpu.fnk
борода
CPU
face_beard: faceattr/beard.v0.cpu.fnk
GPU
face_beard: faceattr/beard.v0.gpu.fnk
вектор признаков объекта лицо
CPU
face_emben: face/nectarine_l_320.cpu.fnk
GPU
face_emben: face/nectarine_l_320.gpu.fnk
пол
CPU
face_gender: faceattr/faceattr.gender.v3.cpu.fnk
GPU
face_gender: faceattr/faceattr.gender.v3.gpu.fnk
эмоции
CPU
face_emotions: faceattr/emotions.v1.cpu.fnk
GPU
face_emotions: faceattr/emotions.v1.gpu.fnk
очки
CPU
face_glasses3: faceattr/faceattr.glasses4.v0.cpu.fnk
GPU
face_glasses3: faceattr/faceattr.glasses4.v0.gpu.fnk
положение головы
CPU
face_headpose: faceattr/headpose.v3.cpu.fnk
GPU
face_headpose: faceattr/headpose.v3.gpu.fnk
витальность лица
CPU
face_liveness: faceattr/faceattr.liveness_web.v1.cpu.fnk
GPU
face_liveness: faceattr/faceattr.liveness_web.v1.gpu.fnk
медицинская маска
CPU
face_medmask3: faceattr/medmask3.v2.cpu.fnk
GPU
face_medmask3: faceattr/medmask3.v2.gpu.fnk
качество изображения лица
CPU
face_quality: faceattr/faceattr.quality.v5.cpu.fnk
GPU
face_quality: faceattr/faceattr.quality.v5.gpu.fnk
состояние глаз
CPU
face_eyes_attrs: faceattr/faceattr.eyes_attrs.v0.cpu.fnk
GPU
face_eyes_attrs: faceattr/faceattr.eyes_attrs.v0.gpu.fnk
Важно
Модель экстрактора для определения витальности лица
liveness.web.v1
включена по умолчанию. Не выключайте ее, если используется аутентификация по лицу пользователя.
Чтобы включить распознавание лиц, внесите изменения в конфигурационный файл
/opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml
.В разделе
models
укажите модели нейронных сетей для объектаface
по аналогии с примером:GPU
sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml models: ... detectors: ... face: fnk_path: /usr/share/findface-data/models/detector/facedet.kali.005.gpu.fnk min_size: 60 ... normalizers: ... face_norm: fnk_path: /usr/share/findface-data/models/facenorm/crop2x.v2_maxsize400.gpu.fnk face_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/crop1x.v2_maxsize400.gpu.fnk ... extractors: ... face_quality: fnk_path: /usr/share/findface-data/models/faceattr/faceattr.quality.v5.gpu.fnk normalizer: face_norm_quality
CPU
sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml models: ... detectors: ... face: fnk_path: /usr/share/findface-data/models/detector/facedet.kali.005.cpu.fnk min_size: 60 ... normalizers: ... face_norm: fnk_path: /usr/share/findface-data/models/facenorm/crop2x.v2_maxsize400.cpu.fnk face_norm_quality: fnk_path: /usr/share/findface-data/models/facenorm/crop1x.v2_maxsize400.cpu.fnk ... extractors: ... face_quality: fnk_path: /usr/share/findface-data/models/faceattr/faceattr.quality.v5.cpu.fnk normalizer: face_norm_quality
Убедитесь, что добавлен раздел
objects → face
:objects: ... face: normalizer: face_norm quality: face_quality track_features: ''
Для включения распознавания лиц, откройте файл конфигурации
/opt/findface-multi/configs/findface-video-manager/findface-video-manager.yaml
и убедитесь, что он содержит разделface
вdetectors
, аналогичный приведенному ниже.sudo vi /opt/findface-multi/configs/findface-video-manager/findface-video-manager.yaml detectors: face: filter_min_quality: 0.42 filter_min_size: 60 filter_max_size: 8192 roi: '' fullframe_crop_rot: false fullframe_use_png: false jpeg_quality: 95 overall_only: true realtime_post_first_immediately: false realtime_post_interval: 1 realtime_post_every_interval: false track_interpolate_bboxes: true track_miss_interval: 1 track_overlap_threshold: 0.25 track_max_duration_frames: 0 track_send_history: false post_best_track_frame: true post_best_track_normalize: true post_first_track_frame: false post_last_track_frame: false tracker_type: simple_iou track_deep_sort_matching_threshold: 0.65 track_deep_sort_filter_unconfirmed_tracks: true track_object_is_principal: false track_history_active_track_miss_interval: 0 filter_track_min_duration_frames: 1 extractors_track_triggers: {}
Примечание
Необходимо выполнить этот шаг для включения распознавания атрибутов лица.
Включите распознавание атрибутов лица в файле конфигурации
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
.В разделе
FFSECURITY
укажите атрибуты лица, которые требуется отображать в событиях распознавания.sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py available features: age, beard, emotions, gender, glasses, headpose, medmask, eyes_attrs 'FACE_EVENTS_FEATURES': ['gender', 'beard', 'emotions', 'headpose', 'age', 'medmask', 'glasses', 'eyes_attrs'],
Выполните перезапуск контейнеров FindFace Multi.
cd /opt/findface-multi/ sudo docker-compose restart