Распознавание лиц
Обзор
Immich распознает лица на ваших фотографиях и видео и группирует их по людям. Затем вы можете назначать имена этим людям и искать их.
Список людей отображается на странице Обзор.

При нажатии на человека будет показан список объектов с его лицом.

На детальном просмотре объекта также будут отображаться распознанные лица.

Действия
Дополнительные действия, которые вы можете сделать:
- Смена основной фотографии человека
- Установка даты рождения человека
- Объединение двух или более распознанных лиц в одного человека
- Скрытие лиц человека на странице Обзор и на детальном просмотре
- Привязка нерспознанного лица к человеку
Эти действия доступны через панель приложения при доступе к детальному просмотру человека.

Как работает распознавание лиц
Распознавание лиц отправляет сгенерированное превью изображения в сервис машинного обучения для обработки. Сервис проверяет, загружена ли соответствующая модель, и если нет, загружает ее. Изображение декодируется, предварительно обрабатывается и передается в модель распознавания лиц (с аппаратным ускорением, если настроено). Выходные координаты и оценки используются для обрезки изображения, которое далее передается в модель распознавания лиц (также ускоренную, если настроено). Полученные данные отправляются обратно на сервер для добавления в базу данных. Эти данные индексируются, чтобы их можно было быстро искать при группировке распознавания лиц.
Как работает алгоритм распознавания лиц
Алгоритм распознавания лиц основан на DBSCAN, популярном алгоритме кластеризации. Каждый распознанный фрагмент лица является точкой, а алгоритм группирует близко расположенные точки.
Ключевая концепция - это основная точка. Основная точка имеет минимальное число точек вокруг себя на определенном расстоянии. Неосновная точка может быть добавлена в кластер только в том случае, если она может достичь основной точки. В Immich параметр Минимальное число распознанных лиц определяет порог для основной точки.
Для каждого лица определяется, находятся ли поблизости другие похожие лица. Если такие лица есть, проверяется, с вязаны ли они с конкретным человеком.
Если есть уже известный человек, лицо будет связано с ним на основе самого похожего лица.
Если нет, алгоритм определяет, является ли лицо основной точкой. Если есть определенное количество похожих лиц (по умолчанию 3, включая обрабатываемое), лицо считается основной точкой. Создается новый человек, и лицо назначается ему. В дальнейшем похожие лица также будут связаны с этим человеком.
Если недостаточно похожих лиц, новый человек не создается. Лицо ждет завершения обработки всех остальных. Если никто не подходит, лицо считается выбросом, например, случайным посторонним на заднем плане фотографии.
Алгоритм имеет некоторые отличия от DBSCAN:
- DBSCAN не поддерживает инкрементную кластеризацию: он обрабатывает все точки сразу. Распознавание лиц развивается по мере добавления новых объектов.
- В Immich алгоритм старается дождаться завершения обнаружения всех лиц и генерации превью перед запуском, так как больший объем данных дает более точные результаты.
- Повторное выполнение на всех объектах работает, как DBSCAN.
- DBSCAN ориентирован на поиск within distance, а алгоритм распознавания лиц из-за производительности ищет небольшое число совпадений для каждого лица.
Если вы загружали объекты частями или сервер обрабатывал задачи быстрее загрузки, кластеризация могла быть неидеальной. Если важно начать с оптимального результата, стоит повторно запустить распознавание на всех объектах. Если поздно, можно вручную связать лица и повторно запустить процесс.
Настройка
Перейдите в Администрация > Настройки > Настройки машинного обучения > Распознавание лиц, чтобы увидеть доступные параметры.
Лучше всего изменять параметры минимально. Неправильные настройки могут ухудшить результаты. Если вы ужесточаете один параметр, можно ослабить другой для компенсации.
Модель распознавания лиц
Доступны различные модели, по умолчанию используется наиболее предпочтительная. На менее мощных системах можно использовать упрощенные модели.
Минимальная оценка обнаружения
Этот параметр влияет на фильтрацию ложных срабатываний. Значение лучше не опускать ниже 0.5 или повышать до 0.9.
После изменения настройка применяется только к новым задачам. Для обновления всех объектов потребуется повторный запуск процесса.
Максимальная дистанция распознавания
Порог дистанции для определения сходства. Хорошо работает дефолтное значение, но его можно снизить для более строгих условий. Для надежности не рекомендуется идти ниже 0.3 или выше 0.7.
Минимальное число распознанных лиц
Определяет порог для основной точки. Увеличение параметра делает кластеризацию более строгой. Установка на 1 отключает понятие основной точки, что может быть полезно для ручного управления.