Распознавание лиц и их атрибутов
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