Коротко: В ядре Home Assistant распознавания лиц нет, и отдельной официальной интеграции для него тоже нет. Рабочий путь это Frigate со встроенным распознаванием лиц: имя распознанного человека добавляется как sub_label к объекту person, а интеграция Frigate отдаёт это событие в Home Assistant. Модель small работает на процессоре, модель large требует видеокарты или NPU, а процессору нужны инструкции AVX и AVX2. Распознавание выключено по умолчанию и включается один раз глобально. Модели скачиваются один раз, дальше всё работает локально.
Если хочется, чтобы дом узнавал своих и включал свет не по движению, а по конкретному человеку, одного Home Assistant мало. Нужен сервер, который смотрит в камеры и умеет распознавать лица, и такой сервер уже есть: это Frigate.
Ниже разбор без обещаний: что именно умеет Frigate, какое железо нужно, какие пороги за что отвечают, сколько фото нужно для обучения, что получает Home Assistant и где пределы этого удобства.
Есть ли распознавание лиц в Home Assistant из коробки
В ядре Home Assistant распознавания лиц нет, и отдельной официальной интеграции для него тоже нет. Задача Home Assistant это связать устройства и управлять сценариями, а не обрабатывать видеопоток. Поэтому распознавание приходит снаружи, и самый прямой путь это сервер видеонаблюдения Frigate со встроенной функцией.
Есть и второй путь: сторонний сервис распознавания вроде DoubleTake. Он тоже умеет распознавать лица, но с ним есть важная оговорка. Если используется встроенное распознавание Frigate, другой сервис распознавания будет ему мешать, и в самом Frigate сказано: при работе с DoubleTake функцию sub_label нужно отключить. То есть выбрать стоит один путь, а не включать оба сразу. Камеры и их выбор разобраны в статье Умные камеры для дома.
Как устроено распознавание лиц в Frigate
Frigate определяет известных людей, сравнивая найденные лица с ранее изученными данными. Когда известный человек распознан, его имя добавляется как sub_label к объекту person. Это имя видно в интерфейсе, в фильтрах и в уведомлениях, и именно его получает Home Assistant.
Порядок работы важный: сначала Frigate должен обнаружить человека, и только потом он ищет и распознаёт лицо. Если модель не умеет находить лица сама, включается отдельная лёгкая модель поиска лиц на центральном процессоре. Обе модели распознавания дополнительно используют лёгкую модель разметки лица, чтобы выровнять лицо перед сравнением.
Какое железо нужно под распознавание
Frigate поддерживает два типа модели распознавания, и разница между ними принципиальная.
| Модель | Что это | Где работает | Точность |
|---|---|---|---|
| small | FaceNet | центральный процессор | ниже, зато экономично |
| large | ArcFace | встроенная или дискретная видеокарта, NPU | выше, требует ускорения |
Обязательное требование к процессору одно для обоих вариантов: поддержка инструкций AVX и AVX2. Модель small рассчитана на эффективную работу на процессоре, и большинство современных процессоров справляются с ней. Модель large рекомендуют запускать только при наличии встроенной или дискретной видеокарты либо NPU. Если сервер ещё не собран, полезен разбор Home Assistant на мини-ПК или Raspberry Pi.
Установка Frigate и интеграции для Home Assistant
Интеграция Frigate для Home Assistant не входит в ядро и ставится отдельно через HACS. После установки её нужно вручную добавить в раздел интеграций Home Assistant: HACS сам ничего не настраивает.
Обязательное условие для работы интеграции: в Home Assistant должна быть настроена интеграция MQTT. Она не поднимается автоматически, и без неё интеграция Frigate работать не будет. Разбор настройки есть в статье Как подключить MQTT в Home Assistant.
Интеграция добавляет карточки камер, сенсоры производительности, бинарный сенсор движения, переключатели и сервисы управления. Для медиабраузера дополнительно нужен включённый media_source, иначе часть элементов не появится.
Как включить распознавание лиц
Распознавание лиц выключено по умолчанию и включается один раз глобально, а не для отдельной камеры. В интерфейсе Frigate это раздел Settings, затем Enrichments, затем Face recognition, там есть переключатель Enable face recognition. В конфигурации это блок face_recognition с параметром enabled: true. После включения Frigate перезапускают.
Обработка идёт по потоку detect, который задан в конфигурации камеры. Поэтому разрешение этого потока важно: если оно слишком низкое, деталей лица не хватит для уверенного сравнения. Это тот же поток, по которому Frigate обнаруживает объекты, и отдельного потока для лиц не заводится.
Пороги: что означают числа
Пороги задают, когда система считает лицо найденным и когда она готова назвать человека. Значения по умолчанию выглядят так.
| Параметр | Значение по умолчанию | За что отвечает |
|---|---|---|
| detection_threshold | 0.7 | уверенность поиска лица, только для отдельной модели поиска |
| min_area | 750 пикселей | минимальный размер лица, всё мельче игнорируется |
| unknown_score | 0.8 | ниже этой границы совпадение помечается как неизвестный |
| recognition_threshold | 0.9 | уверенность, при которой имя добавляется как sub_label |
| min_faces | 1 | сколько распознаваний нужно, чтобы имя применилось к объекту |
| save_attempts | 200 | сколько кадров сохранять для обучения |
| blurconfidencefilter | включён | снижает уверенность у размытых лиц |
Менять эти значения стоит осознанно. Слишком низкий recognition_threshold даёт лишние ошибки и путаницу между людьми, слишком высокий мешает распознавать своих. Параметр device имеет смысл только для модели large в системе с несколькими ускорителями.
Сколько фотографий нужно и какие кадры тренировать
Количество фото зависит от разнообразия кадров и нужной точности. Ориентиры такие: минимум 5-10 изображений на человека, рекомендуют 20-30, а для сложных условий 50-100. Начинают с 1-5 чётких фотографий строго в анфас, а дальше библиотеку расширяют постепенно.
Не всё годится для обучения. Нельзя тренировать размытые и пиксельные кадры, кадры с сильной недодержкой или передержкой. Инфракрасные серые изображения не подходят: модели обучены на цветных, и серые лица попадают в другое распределение признаков, из-за чего их легче перепутать. Кепки и тёмные очки мешают распознаванию. Не стоит загружать много похожих снимков сразу: рекомендуют не больше 4-6 похожих кадров на человека, иначе модель переобучается на один ракурс.
Практический приём: сначала собрать чёткие кадры в анфас, пока распознавание не станет стабильным, и только потом добавлять кадры под углом, при разном свете и в разное время суток. Полезнее разнообразие, чем количество.
Почему одна удачная рамка не решает
Распознавание не работает по одному кадру. Пока человек в поле зрения, Frigate прогоняет лицо через модель много раз, а итоговый sub_label собирается из всех этих попыток с весом по площади лица: крупные и близкие лица весят больше, чем мелкие и дальние.
Из этого следуют практические выводы. Несколько ошибочных догадок на размытых или дальних кадрах обычно не меняют общий результат. Одно очень уверенное совпадение само по себе имя не назначает: распознавание должно быть устойчивым. И ещё одно: распознавание не идёт по потоку записи. В документации это объясняют просто: если ждать запись, уведомление не успеет получить имя, потому что распознавание завершится позже события.
Приватность и работа без интернета
Модели обнаружения и распознавания скачиваются один раз и для этого требуют разового подключения к интернету, потому что лежат на GitHub. После кэширования всё работает полностью локально: видеопоток и лица не уходят на чужие серверы.
Frigate не хранит данные о лицах в своей базе. Изображения лежат в папке /media/frigate/clips/faces, и удалить их можно через интерфейс Frigate или очисткой этой папки. Это главное отличие от облачных сервисов распознавания, где кадры уходят наружу. Ограничение тоже честное: локальность не отменяет необходимости защищать сам сервер и доступ к нему.
Что получает Home Assistant и как это использовать
Интеграция отдаёт в Home Assistant события Frigate, а распознанное имя приходит как sub_label. Значит, автоматизация может реагировать не на движение, а на конкретного человека: включить свет в прихожей, снять охрану, отправить уведомление, объявить голосом.
Границы у этого удобства есть, и о них стоит помнить. Инфракрасные кадры хуже подходят для распознавания, размытость и неудачный ракурс снижают результат, а обучение требует времени и аккуратности. Распознавание лиц это удобство, а не защита: его нельзя делать единственным средством безопасности, потому что ошибки возможны, а камера и освещение не всегда идеальны.
Что купить из этого

Умная камера Xiaomi: 2650 ₽, Xiaomi
Реклама. ООО "МОБИЛИДИ", ИНН 7726398970, erid 25H8d7vbP8SRTvGZyQaa7R

Видеокамера Xiaomi: 4740 ₽, Xiaomi
Реклама. ООО "МОБИЛИДИ", ИНН 7726398970, erid 25H8d7vbP8SRTvGZyQaa7R

Наружная видеокамера Xiaomi: 4836 ₽, Xiaomi
Реклама. ООО "МОБИЛИДИ", ИНН 7726398970, erid 25H8d7vbP8SRTvGZyQaa7R
Даёт картинку и запись событий, а уведомления приходят на телефон вместо постоянного просмотра.
Частые вопросы
Можно ли обойтись без отдельного сервера?
Frigate можно запустить на том же домашнем сервере, где стоит Home Assistant, если хватает ресурсов на видеокарту. Но модели large нужны встроенная или дискретная видеокарта либо NPU, и на слабом железе она не пойдёт. Если ресурсов нет, остаётся модель small на процессоре с поддержкой AVX и AVX2.
Работает ли распознавание ночью?
Ночью мешает не отсутствие камер, а инфракрасный режим: серые кадры хуже подходят для распознавания, потому что модели обучены на цветных изображениях. Если человек появляется только ночью, серые кадры допустимы, но их стоит держать в ограниченном количестве и добавлять только после того, как цветное распознавание станет стабильным.
Нужен ли интернет постоянно?
Постоянно нет. Интернет нужен один раз, чтобы скачать модели обнаружения и распознавания. Дальше они берутся из кэша, и распознавание работает локально, без отправки данных наружу.
Совместимо ли распознавание с DoubleTake?
Оба инструмента могут стоять рядом, но другой сервис распознавания будет мешать встроенному распознаванию Frigate. Если встроенная функция нужна, у DoubleTake отключают sub_label. Проще выбрать один путь: либо встроенное распознавание Frigate, либо сторонний сервис.




Комментарии
Войдите, чтобы оставить комментарий.