Распознавание лиц на своём сервере: что умеет открытый SDK и где он вас подведёт
Открытый SDK распознавания лиц считает всё на вашем железе и не отправляет снимки в чужое облако. Разбираю, что он реально делает, почему отсутствие файла лицензии и модуля живости меняет картину, и что я проверяю, прежде чем ставить такое на объект.
Коротко (TL;DR)
- Открытый SDK распознавания лиц считает всё локально: находит лицо, размечает точки, превращает лицо в вектор признаков и сравнивает два вектора. Снимки не уходят в чужое облако.
- Две ловушки, которых не видно из описания. У самого популярного такого репозитория нет файла лицензии, а без лицензии права на коммерческое использование вам никто не передавал. И проверки живости в нём нет: систему обманет фотография с экрана телефона.
- Локальная обработка не отменяет закон. Биометрия — особая категория персональных данных, и требования к ней не зависят от того, где физически стоит сервер.
Открытый SDK распознавания лиц — это библиотека, которая по фотографии находит лицо в кадре, размечает на нём ключевые точки, превращает лицо в числовой вектор признаков и сравнивает два таких вектора между собой. Всё это считается на вашем железе: снимки и шаблоны не уходят в чужое облако. Это честное техническое преимущество — и одновременно самая частая причина, по которой бизнес недооценивает всё остальное.
Что на самом деле делает такой SDK
Полезно разделить четыре операции, которые в описаниях склеивают в одно слово «распознавание». Детекция — найти в кадре лицо и вернуть прямоугольник. Ключевые точки — разметить углы глаз, кончик носа, контур губ; по ним кадр выравнивают, иначе повёрнутое лицо сравнивать бессмысленно. Извлечение признаков — прогнать выровненное лицо через нейросеть и получить вектор чисел, тот самый «шаблон». Сравнение — посчитать близость двух векторов и решить, один это человек или разные.
Последний шаг и есть место, где принимается решение. В открытом SDK от Faceplugin порог сходства по умолчанию стоит на значении 75: выше — считаем, что человек тот же. Эту цифру придётся подбирать под свою задачу, и подбор смещает баланс между двумя ошибками. Опустите порог — начнёте пускать чужих. Поднимете — свой сотрудник будет по три раза переступать перед камерой в минус тридцать.
Работает это на обычном процессоре, видеокарта нужна там, где поток лиц идёт непрерывно. Модели лежат прямо в репозитории. Проект на Python, поддерживает Windows и Linux, набрал больше двух тысяч звёзд, правки приходили в сентябре 2026 года. Если нужен не разбор, а работающий контур на объекте, эту часть я закрываю под ключ — компьютерное зрение для бизнеса.
Первая ловушка: «open-source» без лицензии
Репозиторий называется Open Source Face Recognition SDK, в описании стоит «completely free and open-source», в README — «no licensing fees». Файла LICENSE в репозитории при этом нет. Программный интерфейс GitHub на запрос о лицензии возвращает пустое значение.
Это не придирка. Код без лицензии не переходит в общественное достояние: права остаются у автора, а вам не передаётся ничего, кроме права смотреть. Пока вы играетесь на ноутбуке, разницы нет. Как только SDK оказывается в контуре компании и обслуживает проходную, у вас появляется зависимость, на которую нет ни одного документа.
Вторая деталь того же порядка: внутри «полностью открытого» проекта лежат два скомпилированных бинарника — библиотека для Linux и DLL для Windows, — исходников которых в репозитории нет. Часть логики передана вам в закрытом виде. Вывод простой: до внедрения получите от вендора письменный ответ об условиях использования. Отказ отвечать — тоже ответ.
Вторая ловушка: система пропустит фотографию
Распознавание лиц покупают чаще всего ради контроля доступа: проходная, склад, серверная. И ровно для этого сценария в открытом SDK не хватает главного — проверки живости, она же анти-спуфинг: механизма, отличающего живого человека от распечатанной фотографии, экрана телефона или маски. В проекте её нет, Faceplugin вынес Face Liveness Detection в список своих коммерческих продуктов.
| Что нужно на реальном объекте | Есть в открытом SDK | Чем закрывается |
|---|---|---|
| Найти лицо в кадре | Да | Штатной детекцией |
| Сравнить с базой сотрудников | Да | Векторы признаков и порог |
| Отличить человека от фото на телефоне | Нет | Отдельный модуль живости, обычно платный |
| Право на коммерческое использование | Не оформлено | Письменное соглашение с правообладателем |
| Основание на обработку биометрии | Не относится к SDK | Согласия, политика, регламент хранения |
Отсюда честная область применения бесплатной части: пилот, прототип, сценарии без охранной функции — узнать постоянного клиента на кассе, чтобы поздороваться по имени. Как только распознавание что-то охраняет, к нему нужен модуль живости.
Локально — не значит законно
Самый частый разговор на этой теме звучит так: «Мы же ничего не отправляем наружу, значит, персональных данных нет». Это не так. Биометрические персональные данные — особая категория, и требования к ним не зависят от того, стоит сервер в вашей серверной или в чужом дата-центре. Согласие субъекта здесь нужно, и оно письменное.
Локальность решает другую задачу — сокращает поверхность утечки. Но обязанности получить основание, описать цель, ограничить срок хранения и защитить базу шаблонов остаются на вас целиком. Как устроена биометрия в российском правовом поле, я разбирал отдельно: биометрия и ЕБС для бизнеса и чем отличаются виды биометрии. Обратная задача — убрать лица из кадра, а не узнавать их — тоже решается локально: автоматическое обезличивание лиц на фото.
Что я проверяю, прежде чем ставить распознавание лиц на объект
Цель. Формулирую, какое решение принимает система: пустить, отметить приход или узнать гостя. От этого зависит, нужна ли живость и чего стоит ошибка.
Право использовать код. Смотрю файл лицензии, а не заголовок репозитория. Нет файла — иду за письменным разрешением или беру другой проект.
Что внутри. Проверяю, есть ли закрытые бинарники и откуда взяты веса моделей: у моделей бывает своя лицензия, отдельная от кода.
Порог и метрики. Подбираю порог на реальных снимках с этого объекта, при том свете, который там есть, и считаю обе ошибки: сколько чужих прошло и сколько своих не пустило.
Хранение. Где лежат шаблоны, у кого доступ, как их удаляют при увольнении и что происходит при отзыве согласия.
Запасной путь. Камера запотела, свет пропал, человек в маске. Должен остаться способ пройти, иначе первым морозным утром систему отключат вручную и больше не включат.
Пункты со второго по пятый — то место, где чаще всего рвётся самостоятельное внедрение. Собрать контур и закрыть их можно и на открытом стеке: open-source под ключ.
Частые вопросы
Можно ли на этом сделать проходную для сотрудников?
Технически да, практически — не в таком виде. Без проверки живости турникет откроется по фотографии сотрудника с экрана телефона. Для охранной функции нужен модуль анти-спуфинга, а он в бесплатной части не поставляется.
Насколько точно работает распознавание?
Точность определяет не только модель, но и условия съёмки: угол, освещение, разрешение камеры, головной убор. Чужие цифры на ваш объект не переносятся. Единственный честный способ — собрать сотню-другую снимков с той самой камеры и померить обе ошибки на них.
Чем это отличается от готовой системы контроля доступа?
Готовая система продаётся вместе с ответственностью поставщика, живостью, интеграцией с турникетом и поддержкой. Открытый SDK даёт только математику, остальное вы собираете и обслуживаете сами. Дешевле по лицензиям, дороже по вашему времени — считать надо оба столбца.
Что делать, если сотрудник отзовёт согласие на биометрию?
Заранее спроектировать этот сценарий: шаблон удаляется, человек переводится на другой способ прохода. Если удаление в системе не предусмотрено, делать это придётся руками, а руками такое обычно не делают вовсе.
Коротко о главном
Открытый SDK закрывает ровно одну задачу — считать лица локально, не отдавая их наружу. Но название «open source» здесь опережает документы: файла лицензии нет, часть кода поставляется скомпилированной, проверка живости вынесена в платный продукт вендора. И ни одна строчка кода не снимает с вас обязанностей по обработке биометрии.
Что предлагаю конкретно. Опишите, что должна решать система — пускать, отмечать приход или узнавать гостя, — и на какой технике это будет стоять. Я скажу, хватит ли открытого стека под вашу задачу, где придётся доплатить и что оформить до первого включения камеры. Напишите в Telegram, MAX или VK.
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


