Обучение модели ArcFace и FaceNet для распознавания лиц

Модели распознавания лиц уверенно работают в лаборатории и ошибаются на проходной: мешают свет, ракурс, маска. Мы обучаем ArcFace и FaceNet на кадрах вашего объекта, проверяем качество в реальных условиях и доводим решение до внедрения под ключ. После дообучения доля ошибок на живых кадрах снижается в разы, а проверка человека занимает секунды.
Часто задаваемые вопросы

Обучение ArcFace: почему модель путает лица на живых кадрах

Модель на отложенной выборке показывает точность выше 99%, а на проходной начинает путать людей. Разрыв возникает потому, что метрика считается на подготовленных кадрах: ровный свет, лицо в анфас, человек смотрит в камеру. Живой поток — другое распределение, и ArcFace с FaceNet одинаково чувствительны к этому расхождению, если обучение и дообучение шли не на тех данных.

Источников ошибок три. Первый — похожие лица: близнецы, родственники, сотрудники в одинаковой экипировке, касках или масках, когда открытой остаётся треть лица. Второй — качество кадров: контровой свет от входа, движение, смаз от выдержки, ракурс в три четверти вместо анфас. Третий — устаревшая разметка: часть эталонных снимков сделана год назад, человек сменил причёску, отрастил бороду или носит очки, а в галерее он всё ещё прежний.

На проходной это оборачивается двумя классами отказов. Ложные срабатывания в сторону «не пустить» — сотрудник стоит у турникета, очередь копится, охрана вручную подтверждает проход. Ложные срабатывания в сторону «пустить» — чужой человек проходит по совпадению, и это уже инцидент безопасности, а не неудобство.

Ошибки распознавания лиц не лечатся одним порогом срабатывания: снижение порога уменьшает отказы, но открывает доступ. Разбираем, как это закрывается — подбором порога под задачу, дообучением на реальных кадрах с проходной и контролем пар похожих сотрудников в галерее.

Измеримый эффект: точность, доли ошибок, время проверки

Сравнивать модели имеет смысл на кадрах с самого объекта, а не на публичных наборах: другая оптика, высота установки, освещение и типичные ракурсы дают другую картину. Поэтому до адаптации мы прогоняем базовую модель по архиву и фиксируем исходные показатели — с ними потом сопоставляем результат.

После дообучения ArcFace на размеченных кадрах объекта точность распознавания на проверочной выборке растёт, а доля ложных пропусков падает в разы. Модель начинает уверенно работать на вечернем свете, в частичном повороте и при перекрытии лица, где раньше срабатывал ручной пропуск.

Ключевой параметр — порог срабатывания. Сдвигая его, мы меняем баланс между ложными пропусками и ложными срабатываниями: для контроля доступа на проходной важнее не пустить чужого, для учёта времени — не потерять своего. Порог подбираем по кривой на отложенной выборке и фиксируем как часть конфигурации.

Скорость проверки измеряем на потоке: сколько человек проходит за минуту, какова задержка решения на кадр и как ведёт себя система при нескольких камерах одновременно. На практике это доли секунды на человека — очередь у турникета перестаёт собираться.

Устойчивость проверяем не только на своём архиве: прогоняем модель на сдвинутых данных — другая камера, другое время суток, сезонная одежда. Если показатели проседают, добавляем такие кадры в разметку и повторяем цикл. Метрики фиксируем в отчёте, чтобы рост или деградацию после каждой итерации было видно в цифрах, а не на словах.

Режимы внедрения: своя модель, готовая, гибридная схема

Три подхода отличаются тем, сколько данных нужно до старта и насколько глубоко можно влиять на поведение модели. Готовая открытая модель на ArcFace или FaceNet даёт первый рабочий результат на типовом потоке, дообучение подстраивает её под конкретную съёмку, а обучение с нуля берут, когда не проходит ни один из первых двух вариантов. Выбор подхода — это компромисс между сроком запуска, объёмом разметки данных и контролем над моделью.

Вариант Когда подходит Ограничения
Готовая модель Анфас, предсказуемый свет, один-два ракурса, нужен быстрый запуск Точность проседает на головных уборах, контровом свете, сильных наклонах; внутреннюю логику не меняем
Дообучение модели Есть свой корпус снимков с целевого потока, условия съёмки стабильны Нужна разметка пар «свой/чужой» и отложенная выборка, иначе модель переобучается на узком наборе
Обучение с нуля Нетипичный канал съёмки или жёсткие требования к контролю над архитектурой Нужен большой и разнообразный корпус, сроки измеряются месяцами, выше риск ошибок при сборе данных

Решение принимаем по замерам, а не по общим соображениям: сначала прогоняем готовую модель на реальных кадрах заказчика и считаем долю ложных пропусков и ложных срабатываний на выбранном пороге. Если метрики не дотягивают до требований, переходим к дообучению — оно закрывает разрыв на выборке на порядок меньшего размера, чем обучение с нуля. Обучение с нуля оставляем для случаев, когда сама архитектура настраивается под нестандартный канал съёмки.

Обучение ArcFace под ваш сценарий: этапы работы

Обучение ArcFace — это не запуск готовой библиотеки, а подгонка метрики под ваш сценарий: ракурсы, освещение, допустимая доля ложных совпадений. Начинаем с аудита кадров и заканчиваем передачей модели с зафиксированными порогами, чтобы результат воспроизводился на вашей стороне. Ниже — этапы обучения.

  1. Аудит данных — объём и качество кадров: размер лиц, ракурсы, перекрытия, доля брака. Считаем число людей и кадров на каждого, добираем редкие случаи, убираем дубли.
  2. Разметка и подготовка — выравнивание по ключевым точкам, единый масштаб, фиксированное разбиение на обучающую, валидационную и отложенную выборки. Отложенная в обучении не участвует.
  3. Выбор архитектуры — сравниваем ArcFace и FaceNet на ваших данных: где похожие люди разделяются лучше при том же времени отклика. Для ArcFace подбираем величину углового отступа.
  4. Обучение и контроль — добавляем искажения по яркости, повороту и размытию, следим за разделимостью классов на валидации. Останавливаем обучение, когда качество перестаёт расти.
  5. Настройка порогов — по кривой ошибок выбираем порог под сценарий: проходная точка, зона контроля или подтверждение оператором.
  6. Проверка модели на отложенной выборке — тестируем по людям, сессиям и камерам, которых модель не видела, и смотрим метрики отдельно по подгруппам.
  7. Внедрение распознавания — передаём веса, конфигурацию, модуль вывода, регламент порогов и мониторинга, помогаем подключить к вашему контуру.

Артефакты: веса модели, разметка, регламенты

Вместе с обученной моделью заказчик получает не «чёрный ящик», а комплект, который позволяет эксплуатировать решение своими силами или передать его другой команде без потери контекста. Мы считаем передачу завершённой только тогда, когда по этим материалам сторонний инженер сможет воспроизвести результат и внести изменения.

  • Веса модели в открытом формате — итоговые веса после финальной эпохи плюс контрольные точки нескольких лучших эпох: они дают запас для отката и дообучения без повторного прогона всего обучения.
  • Скрипты подготовки данных и обучения с зафиксированными параметрами: состав и порядок аугментаций, скорость обучения, стратегия заморозки слоёв, значения инициализации — чтобы результат воспроизводился до последнего знака.
  • Разметка в исходном виде: снимки, метки, разделение на обучающую, валидационную и отложенную выборки, журнал исключённых кадров и протокол контроля качества разметки.
  • Отчёт по метрикам: качество на отложенной выборке, рабочая точка по порогу срабатывания, доля ложных пропусков и ложных срабатываний, разбивка ошибок по условиям съёмки — слабый свет, ракурс, закрытое лицо.
  • Документация по эксплуатации: запуск распознавания, настройка порога под нужный баланс ошибок, требования к кадру, порядок обработки эмбеддингов и хранения биометрических данных.
  • Регламент переобучения: какие события запускают пересборку — рост доли отказов на новых людях, смена камер или условий съёмки, расширение списка сотрудников, — с какой периодичностью проводится плановая проверка и как фиксируется деградация качества.
  • Права на модель: письменно закреплённая передача прав на веса, на производные модели и на разметку, а также перечень лицензий открытых компонентов, использованных в решении.

Регламент переобучения — не формальность: без него модель тихо устаревает по мере изменений в потоке данных, и первый сигнал приходит уже от службы охраны. Права и документация закрывают второй риск — когда команда, обучавшая модель, недоступна, а разобраться в артефактах некому.

Кейс: проходная с двумя сценариями, метрики до и после

На производственной площадке — четыре проходные и около двух тысяч сотрудников. Контроль доступа работал на модели, обученной на открытом наборе лиц: на похожих сотрудниках (родственники, одинаковая спецодежда, очки, каски) она давала ложные отказы, и охрана пропускала людей вручную.

В пиковые часы у турникетов копилась очередь. За смену набегало больше сотни ручных проверок, а часть сотрудников со временем начала прикладывать пропуск, не глядя в камеру, — статистика по системе перестала отражать реальность.

Что изменили

Собрали датасет на камерах самих проходных — ракурсы, освещение, сезонная одежда — и дообучили эмбеддинги ArcFace на собственной разметке. Второй веткой верификации оставили FaceNet: решение проходит, когда обе модели согласны, поэтому класс ошибок на похожих лицах закрывается.

Пороги срабатывания подобрали отдельно для каждой точки — у ворот с боковым светом качество кадра другое, чем у входного турникета. Сравнение идёт по серии кадров, а не по одному снимку, поэтому блик или разворот головы больше не превращаются в отказ.

Метрики до и после

Показатель До После
Доля ложных отказов 7% 1,2%
Ручные проверки за смену в пик больше 100 около 15
Проходы без остановки 82% 97%

Разметка и подобранные пороги переиспользуются на остальных точках доступа: каждая следующая проходная подключается быстрее предыдущей и без сбора датасета с нуля.

Что делать, если на объекте уже работает другая модель?

Работающая система — это не только веса модели: вокруг неё уже собраны эталоны лиц, подобранные пороги решения, связки с учётной системой и правила, по которым событие превращается в доступ. Поэтому развилка «менять или доращивать» решается не по качеству модели как таковой, а по тому, что именно перестало справляться в текущем контуре. Если деградация локальная — новые ракурсы, освещение, добавленная камера — дообучение ArcFace на этих данных закрывает задачу без пересборки базы эталонов.

Доращивание сохраняет вектор признаков, поэтому ранее зарегистрированные эталоны остаются валидными, пороги почти не сдвигаются, а связки с учётной системой не трогаются. Замена модели целиком — другой сценарий: новый вектор признаков несовместим со старым, значит эталоны пересчитываются заново, пороги калибруются на размеченном наборе, а решения сверяются с прежним контуром, пока расхождения не уйдут в допустимый коридор. Такой путь оправдан, когда модель проигрывает по классу задач, а не по отдельным условиям съёмки.

Третий вариант — второй контур проверки: новая модель считает признак параллельно с работающей, и решение принимается по согласию обеих. Это снижает долю ложных проходов там, где цена ошибки высока, но добавляет нагрузку на вычислительные ресурсы и увеличивает время принятия решения, поэтому так закрывают только критичные точки доступа.

Перенос наработок при любом пути одинаков: разметка, сценарии проверки, история срабатываний и связки с учётной системой переиспользуются — заново собирается только то, что привязано к признакам конкретной модели. Выбор пути фиксируем после замера на накопленной истории: сравниваем доли пропусков и ложных срабатываний по каждой схеме на реальных камерах объекта. Обновление идёт без остановки работы — прежняя модель остаётся в строю, пока новая не подтвердит результат на том же потоке.

Частые технические вопросы перед стартом

Перед стартом обучения ArcFace заказчики поднимают один и тот же набор технических сомнений: хватит ли данных, законно ли хранить биометрию, что будет при смене камер и как поведёт себя модель на нескольких точках. От ответов зависит архитектура сбора данных, поэтому разбираем их до первой строки кода — часть ограничений потом снимается настройкой съёмочной зоны, часть не снимается вообще.

Хватит ли данных и что делать с редкими ракурсами?

Ориентируемся на десятки кадров на человека в разных условиях — свет, поворот головы, очки, головной убор. Редкие ракурсы добираем с рабочих камер и добавляем в выборку: без этого ложные отказы приходятся именно на них.

Как хранятся биометрические данные и нужно ли согласие сотрудников?

В базе лежит не фотография, а числовой вектор признаков — восстановить по нему изображение нельзя. Согласие оформляем отдельным документом, доступ разграничиваем по ролям, ведём журнал обращений и удаляем записи по заявлению.

Что будет при смене камер и не деградирует ли качество со временем?

Модель чувствительна к сцене: угол, высота, освещение, дистанция. После замены оборудования пороги подбираем заново, а дальше следим за долей отказов — приходят новые люди, меняется свет и сезонная одежда, поэтому периодически дообучаем модель на пополненной выборке.

Как система масштабируется на несколько точек?

Сравнение идёт по индексу, а не перебором, поэтому время отклика не растёт линейно с размером базы. Точки подключаем к общей базе, пороги фиксируем отдельно для каждого входа и сверяем долю ложных срабатываний.

Обсудим вашу задачу распознавания лиц

Чтобы вместо общих слов вернуться с оценкой проекта, планом работ и сроками, нам нужен небольшой набор исходных данных — и чем ближе они к реальным условиям площадки, тем точнее прогноз по качеству модели. Особенно когда речь о обучении ArcFace под ваш сценарий.

  • Примеры данных с площадки: 30–50 снимков или коротких фрагментов с тех же камер, при том же свете и ракурсах.
  • Состав людей: сколько человек различать, сколько кадров на каждого уже есть или может быть собрано.
  • Сценарий: контроль доступа, учёт рабочего времени, поиск по архиву — от этого зависит порог срабатывания и логика отказов.
  • Требования к качеству: допустимая доля пропусков и ложных срабатываний, реакция на очки, маски, головные уборы.
  • Ограничения по данным: где хранятся изображения, кто даёт согласие, какие правила обезличивания действуют.
  • Инфраструктура: поток с камер или офлайн-обработка, вычислительная база, стыковка с существующей видеоаналитикой.
  • Границы этапа: пилотная площадка или сразу все объекты, критичные сроки, кто принимает результат.

После обсуждения задачи вернёмся с оценкой проекта, пошаговым планом работ и предложением пробного запуска: обучение и проверка на ваших данных, до масштабирования на всю инфраструктуру.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142