
Модуль: https://ali.click/xwpzl1m?erid=2SDnjbx97nK
У Hilink есть модули распознавания лица. В данном примере модель HLK-FM225.
У модуля 2 камеры, и вот его характеристики:
Основные характеристики
- Интерфейсы связи: UART (TTL) и USB.
- Алгоритм: поддержка глубокого обучения с инфракрасным распознаванием лиц.
- Точность распознавания: 98,85%.
- Количество запоминаемых лиц: до 100 уникальных черт лица.
- Дистанция распознавания: 0,3–1,1 м.
- Угол распознавания: до 20 градусов в любую сторону (влево, вправо, вверх, вниз).
- Скорость распознавания: менее 1 секунды.
- Питание: DC 5 В.
- Потребляемый ток: ≤ 200 мА.
- Рабочая температура: от -20 °C до +60 °C.
- Габариты: 50 мм × 40 мм × 15 мм.
Сам модуль HLK-FM225 поддерживается в ESPHome примерно уже как год. Но примеров хорошей работы и полезной с модулем распознавания лица я не нашёл.
Но кое-какие наработки все-же удалось найти. Их сделал мой друг с помощью себя и ии.
Проект состоит из кода ESPHome, который можно скачать отсюда: https://disk.yandex.ru/i/sYSfdckZ_qT1qA
В проекте много непонятного кода, но стоит обратить внимание на:
- lambda: |-
if (face_id == 1) {
id(last_face_name).publish_state("Pavel");
} else if (face_id == 2) {
id(last_face_name).publish_state("Pavel открыл рот");
} else if (face_id == 3) {
id(last_face_name).publish_state("Павел показал язык");
} else {
id(last_face_name).publish_state("Неизвестный ID " + std::to_string(face_id));
}
Получается, что каждому последующему записанному лицу присваивается id. И чтоб его как-то обозвать, нужно добавить else if (face_id == 4) к примеру, что является 4 id и далее id(last_face_name).publish_state(“Pavel открыл рот”); где Pavel открыл рот это имя.
да, такой способ добавления имен костыльный, но другого варианта нет.
После загрузки кода и добавления в Home Assistant, устройство будет выглядеть так:

Тут из того, что нужно будет использовать, это кнопка, при нажатии которой будет запускаться распознавание лица. И Last fase id – туда будет писаться id который распознается. ПО нему можно и делать автоматизации.
Запись лица в базу:
Модели лиц хранятся в самом модуле. И их нужно предварительно записать.
Для записи хорошо подойдёт карточка, которая выглядит так:

Тут просто нажимаем старт и следуем инструкции на экране. На картинке пишет “Смотрите ПРЯМО в камеру…”.
Еще из нюансов, модуль HLK-FM225 нужно держать примерно на расстоянии вытянутой руки и стараться голову держать ровно. С первого раза может не получиться отсканировать, но со временем приловчитесь.
По итогу попросит посмотреть прямо в модуль, потом повернуть на лево голову, потом на права, потом вниз и вверх. После успешных всех этих действий, ваше лицо запишется в базу.
Код этой карточки выглядит так:
type: entities
title: Управление лицами FM225
entities:
- entity: sensor.esp32s3_matrix_enrollment_instruction
name: Инструкция
- entity: sensor.esp32s3_matrix_last_face_name
name: Кто в кадре
- entity: sensor.esp32s3_matrix_last_face_id
name: ID пользователя
- entity: button.esp32s3_matrix_scan_button
name: Сканировать сейчас
- type: button
name: Запустить добавление лица
action_name: Старт
tap_action:
action: call-service
target: {}
service: esphome.face_recognition_2_start_enrollment
data:
user_name: Pavel
