Инфраструктура распознавания лиц, которая остаётся в вашей сети.
Управляйте полным стеком распознавания лиц в одном самостоятельно размещаемом Linux-сервисе: детекция, сравнение, регистрация, точный поиск 1:N и постоянный RTSP-мониторинг через Web UI, REST API и Python SDK. В измеренных тестах INT8 на одной RTX 5090 поиск масштабировался до 58.9M векторов изображений и обеспечил задержку Top-5 3.84 ms при 10M векторов.
Лицензирование моделей для продакшена
Код Server и SDK распространяется по лицензии MIT; права на модели оформляются отдельно. Получите лицензию на коммерческое использование публичных моделей или запросите более точные приватные модели для поиска 1:N по миллионам и десяткам миллионов идентичностей.
Запросить лицензию на модели
Один самостоятельно размещаемый сервис
Приватность в архитектуре, практичность в работе.
Изображения, embeddings, модели и индексы могут оставаться внутри контролируемой вами инфраструктуры. Многоязычная консоль обращается к тому же публичному API, что и ваши приложения, и не использует CDN, аналитику, удалённые шрифты или сторонний JavaScript.
Детекция
Получайте рамки, пять landmarks, confidence детектора и локальные показатели качества для изображений JPEG, PNG и WebP.
Сравнение
Сравнивайте по одному выбранному лицу из двух изображений с явным порогом и исходным значением косинусного сходства (raw cosine), а не вероятностью.
Регистрация
Организуйте личности в Collections, People и FaceSamples с регистрацией по нескольким изображениям, режимами проверки и явными причинами отказа.
Поиск
Выполняйте полный точный поиск персон 1:N. Ранг каждой персоны определяется её самым близким FaceSample, превышающим порог Collection.
Мониторинг
Запускайте постоянные задачи распознавания RTSP с недавними событиями входа, выхода, ошибки и восстановления, а также необязательным предпросмотром для оператора.
Интеграция
Используйте Web UI, 29 REST-операций, интерактивную справку OpenAPI или лёгкий типизированный клиент Python.
Конвейер распознавания
От изображения до ранжированного совпадения.
Один и тот же явный контракт обработки используется консолью, REST API, Python SDK и RTSP-мониторами.
Изображение или RTSP-кадр
JPEG, PNG, WebP или самый свежий кадр камеры.
Многоразмерный SCRFD
Обнаружение лиц, объединение кандидатов и единый глобальный NMS.
Выравнивание и embedding
Выравнивание по пяти точкам, embedding ArcFace и L2-нормализация.
Collection, привязанная к модели
Фиксирует модель, предобработку, детектор, порог и ёмкость.
Точный поиск на CPU/GPU
Полностью оценивает каждый активный FaceSample в выбранном профиле.
Совпадения персон
Возвращает ранжированных персон с исходными cosine-score и идентификаторами запросов.
SQLite остаётся авторитетным источником
Постоянная база данных служит источником истины, а точные индексы в памяти являются перестраиваемыми проекциями. Принятые регистрации добавляются в индекс до возврата успешного ответа, а удаления выполняются в обоих хранилищах.

Явные контракты идентичностей
Collections чётко разделяют модели, политики и данные.
Каждая Collection фиксирует идентичность модели, версию предобработки, размерность embedding, политику детектора, профиль поиска, ёмкость и порог совпадения. Этот контракт предотвращает незаметное смешение при смене модели или runtime.
- Добавляйте несколько FaceSamples для одной персоны и проверяйте результаты частично успешной регистрации, не теряя весь пакет.
- Выберите режим проверки off, standard или strict, чтобы контролировать число и размер лиц, резкость, яркость, позу и сходство внутри одной персоны.
- Подключите доверенный внешний конвейер embeddings через контракт Collection; изображения всё равно проходят детекцию и проверку.
- При необходимости сохраняйте crop рамки 112×112 для каждого принятого лица. Исходные загрузки и выровненные входы распознавания не сохраняются.
Измеренная производительность поиска
Точный поиск в масштабе одного GPU.
Нативные профили полного точного поиска позволяют выбирать баланс между точностью представления векторов, ёмкостью и пропускной способностью без перехода на приближённый индекс ближайших соседей.
Измеренный максимум для 512-мерных векторов на одной RTX 5090.
Измерено ровно на 10M векторов при одном одновременно выполняемом запросе.
Измеренная пропускная способность полного точного поиска Top-5 на 10M векторов.
Измеренный множитель ёмкости INT8 на том же GPU.
| Тип данных GPU | Максимум векторов | 10M Top-5 p50 | 10M последовательных QPS |
|---|---|---|---|
| FP32 | 15.8M | 12.84 ms | 77.85 |
| FP16 | 30.7M | 6.83 ms | 146.32 |
| BF16 | 30.7M | 6.83 ms | 146.33 |
| INT8 | 58.9M | 3.84 ms | 260.81 |
91.25% для FP32 и INT8
В ICCV21-MFR MR-ALL при FAR 1e-6 оба профиля дают 91.25% при округлении до двух знаков. Разница INT8 с FP32 без округления составила −0.001102 процентного пункта.
Измерено на одной NVIDIA GeForce RTX 5090. Ёмкость — изолированный предел нативного индекса без загруженных ONNX-моделей и нагрузки Server. Скорость измерена ровно на 10M 512-мерных векторов изображений: полный точный Top-5 в памяти GPU, один запрос одновременно, 10 прогревов и 100 измеренных запросов. В production необходимо резервировать VRAM для моделей, запросов, параллельности, перестроения индекса и запаса аллокатора. Поиск точен внутри каждого сохранённого представления, но хранение с пониженной точностью всё же может изменить score и ранжирование относительно FP32.
Постоянные RTSP-мониторы
Мониторинг камер, работающий без браузера.
Создавайте серверные RTSP Monitors, настраивайте частоту инференса и подтверждение событий, а затем позволяйте независимым клиентам опрашивать текущее состояние и недавние события. Закрытие консоли не останавливает распознавание, а включённые Monitors возобновляются после перезапуска Server. Кадры никогда не записываются; недавние события ограничены по числу и не сохраняются постоянно, а предпросмотр по умолчанию выключен.
Используйте распознавание как вспомогательный инструмент оператора, а не как единственное основание для решений с серьёзными последствиями. Определите политики согласия, хранения, удаления, проверки и реагирования на инциденты для каждого развёртывания.

Развёртывание Docker
Выберите CPU для простого старта или CUDA 12 для масштабирования.
Запускайте из полного checkout репозитория InsightFace. На хосте не нужны Python, OpenCV, ONNX Runtime, CUDA Toolkit или cuDNN: runtime входит в контейнеры, а модели устанавливаются отдельно в соответствии с их лицензиями.
mkdir -p server/.models
docker compose -f server/deploy/compose.cpu.yml pull
docker compose -f server/deploy/compose.cpu.yml \
run --rm models install buffalo_l --accept-license
docker compose -f server/deploy/compose.cpu.yml up -d
curl -fsS http://127.0.0.1:18097/v1/healthCPU
Linux x86_64 с Docker Engine и Docker Compose. Практичный вариант для оценки и умеренной нагрузки.
NVIDIA CUDA 12
Добавьте поддерживаемую NVIDIA GPU, драйвер и NVIDIA Container Toolkit. При ошибке запуск завершается вместо незаметного перехода на CPU.
Границы развёртывания
Эксплуатация и безопасность
Чёткая граница, которую можно усилить.
Server предоставляет состояние, необходимое для эксплуатации приватного развёртывания, не раскрывая секреты, изображения, embeddings и учётные данные в диагностике.
Готовность и диагностика
Проверяйте сервис, базу данных, модель, Provider, ёмкость и недавние безопасные сводки ошибок.
Строгая проверка CUDA
При запуске проверяются фактический Provider, sessions, библиотеки, совместимость GPU и прогревочный инференс.
Надёжная граница данных
Держите модели в режиме только для чтения, сохраняйте /data и перестраивайте одноразовые точные индексы из SQLite.
Защищённые учётные данные
Хешируйте API-ключ, шифруйте учётные данные RTSP в /data и скрывайте источники в ответах.
Режим только API
Отключите консоль и руководства, сохранив /v1 и /openapi.json для приватных сервисов.
Обеспечьте защиту до открытия сетевого доступа
Поставляемые Compose-файлы отключают аутентификацию для изолированной оценки. Эта версия предоставляет обычный HTTP внутри контейнера, один общий API-ключ и не включает встроенные учётные записи, RBAC, IAM, ограничитель частоты, TLS или слой правового соответствия. В ней также нет проверки живости, детекции дипфейков, демографического анализа, записи/NVR или распределённых workers. Включите аутентификацию, завершайте HTTPS на доверенном reverse proxy, ограничьте CORS и сетевой доступ, установите на периметре лимиты частоты, размера запроса и времени, а volumes данных и резервные копии защищайте как биометрические данные.
Руководства по внедрению
От первого контейнера до рабочей интеграции.
Используйте краткое руководство для первого приватного развёртывания, а затем переходите к работе с API и Python SDK, когда будете готовы подключить приложение.
Начните с приватного развёртывания.
Запустите CPU-image, создайте Collection, зарегистрируйте одну персону и выполните первый точный поиск. После проверки рабочего процесса подберите ресурсы runtime и границы безопасности для production.
Лицензии исходного кода Server и SDK не предоставляют коммерческих прав на файлы моделей. Обратитесь в InsightFace за коммерческим разрешением на модели.