Распознавание силуэтов и их атрибутов
FindFace Multi позволяет распознавать отдельные человеческие силуэты и атрибуты силуэтов.
Атрибуты силуэтов следующие:
тип одежды:
обобщенная категория одежды верхней части тела: с длинными рукавами, с короткими рукавами, без рукавов
детализированный тип одежды верхней части тела: куртка, пальто, жилет без рукавов, толстовка, футболка, рубашка, платье
тип одежды нижней части тела: брюки, юбка, шорты, неопределенный
тип головного убора: шапка/шляпа/кепка, капюшон/платок, без головного убора
цвет одежды (верх/низ)
Для включения распознавания силуэтов и их атрибутов выполните следующие действия:
В файле конфигурации
/etc/findface-extraction-api.ini
укажите модели нейронных сетей для распознавания объектов типа силуэт и их атрибутов. Выполните следующие действия:Важно
Удостоверьтесь, что для каждой модели вы указали правильный тип ускорения CPU или GPU: он должен совпадать с типом ускорения
findface-extraction-api
. Обратите внимание, чтоfindface-extraction-api
на CPU может работать только с CPU-моделями, в то время какfindface-extraction-api
на GPU поддерживает как GPU-, так и CPU-модели.Откройте файл конфигурации
/etc/findface-extraction-api.ini
.sudo vi /etc/findface-extraction-api.ini
Укажите модель детектора силуэтов в разделе
detectors -> models
, вставив следующий код:GPU
detectors: ... models: ... glenn: aliases: - body - silhouette model: pedet/glenn_005.gpu.fnk options: min_object_size: 32 resolutions: [256x256, 384x384, 512x512, 768x768, 1024x1024, 1536x1536, 2048x2048] ...
CPU
detectors: ... models: ... glenn: aliases: - body - silhouette model: pedet/glenn_005.cpu.fnk options: min_object_size: 32 resolutions: [256x256, 384x384, 512x512, 768x768, 1024x1024, 1536x1536, 2048x2048] ...
Укажите модели для экстракции векторов признаков в разделе
extractors -> models
, в зависимости от необходимых экстракторов:GPU
extractors: ... models: body_clothes: pedattr/pedattr.clothes_type.v0.gpu.fnk body_color: pedattr/pedattr.color.v1.gpu.fnk body_emben: pedrec/andariel.gpu.fnk body_quality: pedattr/pedattr.quality.v0.gpu.fnk
CPU
extractors: ... models: body_clothes: pedattr/pedattr.clothes_type.v0.cpu.fnk body_color: pedattr/pedattr.color.v1.cpu.fnk body_emben: pedrec/andariel.cpu.fnk body_quality: pedattr/pedattr.quality.v0.cpu.fnk
Доступны следующие экстракторы:
Тип распознавания
Настройка
тип одежды
body_clothes: pedattr/pedattr.clothes_type.v0.gpu.fnk
body_clothes: pedattr/pedattr.clothes_type.v0.cpu.fnk
цвет одежды
body_color: pedattr/pedattr.color.v1.gpu.fnk
body_color: pedattr/pedattr.color.v1.cpu.fnk
отдельный объект типа силуэт
body_emben: pedrec/andariel.gpu.fnk
body_emben: pedrec/andariel.cpu.fnk
качество изображения силуэта
body_quality: pedattr/pedattr.quality.v0.gpu.fnk
body_quality: pedattr/pedattr.quality.v0.cpu.fnk
Совет
Для того чтобы отключить модель, передайте в соответствующий параметр пустое значение. Не удаляйте сам параметр, поскольку в этом случае будет выполняться поиск модели по умолчанию.
extractors: ... models: body_clothes: '' body_color: '' body_emben: '' body_quality: ''
Убедитесь, что раздел
normalizers
содержит модель для нормализатораcropbbox
, как показано в примере ниже. Данный нормализатор требуется для работы экстракторов, указанных на предыдущем шаге.GPU
normalizers: ... models: ... cropbbox: model: facenorm/cropbbox.v2.gpu.fnk
CPU
normalizers: ... models: ... cropbbox: model: facenorm/cropbbox.v2.cpu.fnk
Убедитесь, что раздел
objects -> body
содержитquality_attribute: body_quality
:GPU
objects: ... body: base_normalizer: facenorm/cropbbox.v2.gpu.fnk quality_attribute: body_quality ...
CPU
objects: ... body: base_normalizer: facenorm/cropbbox.v2.cpu.fnk quality_attribute: body_quality
Перезапустите
findface-extraction-api
.sudo systemctl restart findface-extraction-api
Внесите изменения в файл конфигурации
/etc/findface-video-worker-gpu.ini
(/etc/findface-video-worker-cpu.ini
). В разделеbody
укажите модели нейронных сетей по аналогии с примером ниже. Перезапуститеfindface-video-worker-gpu
(findface-video-worker-cpu
).GPU
sudo vi /etc/findface-video-worker-gpu.ini #------------------------------ [body] #------------------------------ ## detector param ## type:number env:CFG_BODY_MIN_SIZE longopt:--body-min-size min_size = 60 ## path to body detector ## type:string env:CFG_BODY_DETECTOR longopt:--body-detector detector = /usr/share/findface-data/models/pedet/glenny_005_fast.gpu.fnk ## path to normalizer (usually crop2x) ## type:string env:CFG_BODY_NORM longopt:--body-norm norm = /usr/share/findface-data/models/facenorm/cropbbox.v2.gpu.fnk ## path to body quality extractor ## type:string env:CFG_BODY_QUALITY longopt:--body-quality quality = /usr/share/findface-data/models/pedattr/pedattr.quality.v0.gpu.fnk ## path to body quality normalizer ## type:string env:CFG_BODY_NORM_QUALITY longopt:--body-norm-quality norm_quality = /usr/share/findface-data/models/facenorm/cropbbox.v2.gpu.fnk
sudo systemctl restart findface-video-worker-gpu.service
CPU
sudo vi /etc/findface-video-worker-cpu.ini #------------------------------ [body] #------------------------------ ## detector param ## type:number env:CFG_BODY_MIN_SIZE longopt:--body-min-size min_size = 60 ## path to body detector ## type:string env:CFG_BODY_DETECTOR longopt:--body-detector detector = /usr/share/findface-data/models/pedet/glenny_005_fast.cpu.fnk ## path to normalizer (usually crop2x) ## type:string env:CFG_BODY_NORM longopt:--body-norm norm = /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk ## path to body quality extractor ## type:string env:CFG_BODY_QUALITY longopt:--body-quality quality = /usr/share/findface-data/models/pedattr/pedattr.quality.v0.cpu.fnk ## path to body quality normalizer ## type:string env:CFG_BODY_NORM_QUALITY longopt:--body-norm-quality norm_quality = /usr/share/findface-data/models/facenorm/cropbbox.v2.cpu.fnk ## path to body track features extractor ## type:string env:CFG_BODY_TRACK_FEATURES longopt:--body-track-features track_features = ## path to body track features normalizer ## type:string env:CFG_BODY_TRACK_FEATURES_NORM longopt:--body-track-features-norm track_features_norm =
sudo systemctl restart findface-video-worker-cpu.service
Откройте файл конфигурации
/etc/findface-video-manager.conf
и убедитесь, что он содержит разделbody
вdetectors
, аналогичный приведенному ниже.Совет
В качестве эталонного значения параметра
filter_min_quality
можно взять значение параметраMINIMUM_BODY_QUALITY
из файла конфигурации/etc/findface-security/config.py
.sudo vi /etc/findface-video-manager.conf detectors: ... body: filter_min_quality: 0.65 filter_min_size: 1 filter_max_size: 8192 roi: "" fullframe_crop_rot: false fullframe_use_png: false jpeg_quality: 95 overall_only: false 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
Включите распознавание силуэтов и атрибутов силуэтов в файле конфигурации
/etc/findface-security/config.py
. Выполните следующие действия:В разделе
FFSECURITY
установите'ENABLE_BODIES: True
.sudo vi /etc/findface-security/config.py FFSECURITY = { ... # optional objects to detect 'ENABLE_BODIES': True, ...
В том же разделе укажите атрибуты силуэтов, которые требуется отображать в событиях распознавания.
# available features are: color, clothes 'BODY_EVENTS_FEATURES': ['color', 'clothes'],
Перезапустите сервис
findface-security
.sudo systemctl restart findface-security.service