Включение RGB-проверки живого лица в Python и InsightFace Server
Добавьте проверки перед распознаванием и получайте статус и оценки для каждого лица. Настройте допуск к распознаванию по результату проверки или режим наблюдения для обнаружения, сравнения, поиска и процессов RTSP.
Что вы настроите
FaceAnalysis для работы с лицами или PersonAnalysis для обнаружения людей, сопоставления лиц и ReID по телу.
По умолчанию выключена. Проверки при регистрации настраиваются отдельно.
Перед началом
- Обновлённые исходники InsightFace 2 с файлом python-package/docs/liveness.md, Python 3.10+ и установленными зависимостями пакета. Руководство относится к этой версии исходников; старый установленный пакет может не поддерживать API дополнения.
- Локальный файл input.jpg с лицом и достаточной областью изображения вокруг него, а также доступ для установки базовой модели и дополнения liveness. Соблюдайте условия каждой модели.
- Используйте развёртывание из инструкции Docker с существующей конфигурацией. Контейнеры уже работают как root с доступными для записи моделями и настройками. CLI может включить проверку до первого запуска Server.
1. Явно включите проверку в Python
Из корня обновлённого репозитория установите пакет Python в активное виртуальное окружение. Перед запуском поместите input.jpg в рабочий каталог. Пример для CPU выбирает детекцию и распознавание; addons=['liveness'] включает отдельную модель проверки живого лица.
При первом запуске могут скачиваться недостающие модели. Дополнение хранится в ~/.insightface/addons/liveness.onnx; перед загрузкой проверяется SHA-256. Само наличие файла не включает проверку: укажите addons=['liveness'] явно. Без addons она остаётся выключенной.
cd python-package
python -m pip install .import cv2
from insightface.app import FaceAnalysis
image_bgr = cv2.imread("input.jpg")
if image_bgr is None:
raise FileNotFoundError("input.jpg")
app = FaceAnalysis(
name="buffalo_l",
allowed_modules=["detection", "recognition"],
addons=["liveness"],
liveness_mode="normal",
liveness_threshold=0.8,
providers=["CPUExecutionProvider"],
)
app.prepare(ctx_id=-1, det_size=(640, 640))
for face in app.get(image_bgr):
print(face.liveness)
if face.liveness is not None:
print(
face.liveness.status,
face.liveness.is_live,
face.liveness.live_score,
)2. Прочитайте результаты и выберите режим распознавания
В режиме normal распознавание выполняется только при is_live=True. Другие лица остаются в списке с результатами детекции, но без embedding. В режиме observe распознавание продолжается при отрицательной оценке или отклонённом входе, а результат проверки сохраняется. Ошибки модели, выравнивания и инференса вызывают исключения в обоих режимах.
- status='ok': is_live равно True или False, live_score — число в [0, 1]. Порог по умолчанию — 0.8; равенство порогу считается прохождением. Проверьте порог на характерных данных с тем провайдером выполнения, который используется в развёртывании.
- status='input_rejected': is_live и live_score равны None. Это означает недостаточную область исходного изображения вокруг выровненного лица, а не классификацию подделки. Переместите лицо к центру, отойдите от камеры или используйте менее тесно обрезанное изображение. reason содержит пояснение.
- Без выбранного дополнения face.liveness равно None; если лиц нет, возвращается []. В логике используйте status и is_live. Текст reason в Python/API — английское пояснение, а не стабильный код состояния.
Необязательно: включить RGB-проверку живого лица
Да. Добавьте --enable-liveness при установке модели либо включите проверку в разделе Система Web UI, затем запустите или перезапустите Server. normal управляет допуском к распознаванию; observe сохраняет результаты и продолжает его. По умолчанию выключено; у регистрации отдельный переключатель.
Для новой установки добавьте --enable-liveness к команде установки модели из инструкции Docker. Установщик проверит необходимые модели и сохранит включение до первого запуска.
Для работающего сервиса выполните подходящую команду ниже, затем перезапустите его. Обычная установка и models addons install liveness не включают проверку.
Также можно выбрать загрузку с включением после перезапуска в разделе Система → Проверка живого лица. Web и CLI проверяют модель и добавляют liveness в оба списка, сохраняя прочие настройки. Ошибка загрузки ничего не включает; дождитесь успешного сохранения.
Новую установку запустите после подготовки, а работающий сервис перезапустите подходящей командой CPU/CUDA ниже. Проверьте enabled=true и restart_required=false. installed описывает проверенный файл, configured_enabled — сохранённую настройку. Изменение монтирований требует пересоздания контейнера.
По умолчанию проверка выключена. Действие в веб-интерфейсе не меняет регистрацию: liveness_on_registration=false сохраняется. Отдельно задайте true, чтобы применять normal/observe при регистрации. Для отключения сохраните пустые списки в inference.addons и addons.auto_download, затем перезапустите Server.
docker compose -f server/deploy/compose.cpu.yml run --rm models install buffalo_l --accept-license --enable-livenessdocker compose -f server/deploy/compose.cuda12.yml run --rm models install buffalo_l --accept-license --enable-livenessdocker compose -f server/deploy/compose.cpu.yml restart serverdocker compose -f server/deploy/compose.cuda12.yml restart serverНужна помощь с production-развертыванием?
Свяжитесь с InsightFace по вопросам лицензирования моделей, оптимизации runtime и поддержки целевого hardware.
Отправить корпоративный запрос