Распознавание персон
FindFace Multi может автоматически распознавать персоны. Система на лету распознает лица, принадлежащие одному и тому же человеку, и группирует их с созданием галереи персон. Работа с галереей персон производится на вкладке Персоны.
Важно
По умолчанию кластеризация персон отключена. Включите и настройте ее через файл конфигурации /etc/findface-security/config.py
.
В этом разделе:
Методы кластеризации
FindFace Multi использует следующие методы группировки лиц, принадлежащих одному и тому же человеку:
Динамическая кластеризация. Происходит на лету после закрытия эпизода. Результат динамической кластеризации отображается в реальном времени на вкладке Персоны.
Примечание
Технические детали заключаются в следующем. Не каждый эпизод является подходящим: число событий в нем должно быть равно или больше значения параметра
PERSON_EVENT_MIN_EPISODE_EVENTS
(задается через файл конфигурации/etc/findface-security/config.py
). Если эпизод соответствует данному требованию, система выбирает событие наилучшего качества и выполняет следующие операции:Создает новую сущность
person event
в основной базе данных PostgreSQL. Сущность содержит метаданные события, вектор признаков лица и миниатюру лица, а также ссылку на родительский эпизод.Ищет похожий центроид лица в галерее
person_events
в базе векторов признаков Tarantool. Центроид лица - это виртуальный вектор признаков, усредненный по всем лицам персоны, обнаруженным на данный момент. Если подобный центроид найден, система обновляет его, используя вектор признаков из нового события. В противном случае создается новый центроид.
Кластеризация по расписанию. Мы рекомендуем планировать ее на поздние ночные часы, так как процесс занимает много времени и ресурсов.
Примечание
Расписание задается в формате RRULE в параметре
PERSONS_CLUSTERIZATION_SCHEDULE
файла конфигурации/etc/findface-security/config.py
. В остальном техническая реализация напоминает динамический метод. Однако качество центроида лица при кластеризации по расписанию лучше, поскольку в этом случае центроиды усредняются по большему массиву накопленных векторов признаков.Важно
Кластеризация по расписанию полностью перезаписывает содержимое галереи персон, включая id, если не включен параметр
PIN_MATCHED_PERSONS
(см. описание ниже).
Включение и настройка кластеризации персон
По умолчанию кластеризация персон отключена. Чтобы включить и настроить ее, выполните следующие действия:
Откройте файл конфигурации
/etc/findface-security/config.py
.sudo vi /etc/findface-security/config.py
Включите динамическую кластеризацию, установив
ENABLE_PERSONS_REALTIME_CLUSTERIZATION: True
.При необходимости включите кластеризацию по расписанию, установив
ENABLE_PERSONS_NIGHT_CLUSTERIZATION: True
.Важно
Включать кластеризацию по расписанию имеет смысл только в том случае, если включена динамическая кластеризация. В противном случае система не будет создавать новые персоны, поскольку только динамическая кластеризация может предоставить ей уникальные
person events
.... # -- Persons configuration -- 'ENABLE_PERSONS_NIGHT_CLUSTERIZATION': True, 'ENABLE_PERSONS_REALTIME_CLUSTERIZATION': True, ...
При необходимости настройте кластеризацию персон, используя следующие параметры:
PERSONS_CLUSTERIZATION_SCHEDULE
: рекуррентное правило (RRULE), задающее расписание плановой кластеризации персон. Если правило не задано, кластеризация автоматически начинается в 00:00 GMT.Совет
См. калькулятор RRULE.
PERSONS_CONFIDENCE_THRESHOLD
: пороговая степень схожести для принятия решения о принадлежности лица персоне.Предупреждение
Перед изменением данного параметра проконсультируйтесь с нашими специалистами по адресу support@ntechlab.com.
PERSON_EVENT_MIN_QUALITY
: минимальное качество лиц, используемых в кластеризации персон.PERSON_EVENT_MIN_EPISODE_EVENTS
: минимальное количество событий в эпизодах, участвующих в кластеризации персон.PIN_MATCHED_PERSONS
: по умолчанию плановая кластеризация полностью перезаписывает галерею персон. Включите данный параметр, чтобы процесс перезаписи не затрагивал тех персон, у которых есть совпадения с досье, и связанные с нимиperson events
.Примечание
Новые
person events
для персон с совпадениями будут по-прежнему создаваться в ходе динамической кластеризации.
# rrule (recurrence rule) for scheduling persons clusterization # night clusterizer only works when 'ENABLE_PERSONS_REALTIME_CLUSTERIZATION': True # WARNING: all scheduling works with UTC time and NOT aware of any timezone 'PERSONS_CLUSTERIZATION_SCHEDULE': 'RRULE:FREQ=DAILY;INTERVAL=1;WKST=MO;BYHOUR=0;BYMINUTE=0', # face to person matching confidence threshold 'PERSONS_CONFIDENCE_THRESHOLD': 0.723, # model: [kiwi_320] # minimum required face quality for person creation 'PERSON_EVENT_MIN_QUALITY': 0.45, # model: [quality.v1] # minimum required number events in episode for person creation 'PERSON_EVENT_MIN_EPISODE_EVENTS': 1, # coefficient of dependence of the clustering threshold on the person event's quality 'PERSONS_SOFT_CLUSTERIZATION_COEFFICIENT': 0.1, # pin persons with matched events 'PIN_MATCHED_PERSONS': False,
Перезапустите сервис
findface-security
. В результате в веб-интерфейсе FindFace Multi появится вкладка Персоны.sudo systemctl restart findface-security.service
Работа с галереей персон
Для просмотра галереи персон перейдите на вкладку Персоны.
Для работы с галереей персон используйте следующие фильтры:
Досье
Совпадения
Камеры
Группы камер
Списки наблюдения
Период времени
Id персоны
Атрибуты лица (если используются)
Liveness (если используется)
Статическая галерея персон
Иногда необходимо завершить кластеризацию персон и затем оперировать статической галереей сформированных лиц.
Для отображения вкладки Персоны при отключенной кластеризации выполните следующие действия:
Откройте файл конфигурации
/etc/findface-security/config.py
.sudo vi /etc/findface-security/config.py
В раздел
SERVICES
вручную добавьте строку"persons": True
, как показано в примере ниже:... SERVICES = { "ffsecurity": { ... "persons": True, } ...
Отключите кластеризацию.
... # -- Persons configuration -- 'ENABLE_PERSONS_NIGHT_CLUSTERIZATION': False, 'ENABLE_PERSONS_REALTIME_CLUSTERIZATION': False,
Перезапустите сервис
findface-security
.sudo systemctl restart findface-security.service