Распознавание персон

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 (см. описание ниже).

Включение и настройка кластеризации персон

По умолчанию кластеризация персон отключена. Чтобы включить и настроить ее, выполните следующие действия:

  1. Откройте файл конфигурации /etc/findface-security/config.py.

    sudo vi /etc/findface-security/config.py
    
  2. Включите динамическую кластеризацию, установив ENABLE_PERSONS_REALTIME_CLUSTERIZATION: True .

  3. При необходимости включите кластеризацию по расписанию, установив ENABLE_PERSONS_NIGHT_CLUSTERIZATION: True.

    Важно

    Включать кластеризацию по расписанию имеет смысл только в том случае, если включена динамическая кластеризация. В противном случае система не будет создавать новые персоны, поскольку только динамическая кластеризация может предоставить ей уникальные person events.

    ...
    # -- Persons configuration --
    'ENABLE_PERSONS_NIGHT_CLUSTERIZATION': True,
    'ENABLE_PERSONS_REALTIME_CLUSTERIZATION': True,
    ...
    
  4. При необходимости настройте кластеризацию персон, используя следующие параметры:

    • 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,
    
  5. Перезапустите сервис findface-security. В результате в веб-интерфейсе FindFace Multi появится вкладка Персоны.

    sudo systemctl restart findface-security.service