Обучение ArcFace: почему модель путает лица на живых кадрах
Модель на отложенной выборке показывает точность выше 99%, а на проходной начинает путать людей. Разрыв возникает потому, что метрика считается на подготовленных кадрах: ровный свет, лицо в анфас, человек смотрит в камеру. Живой поток — другое распределение, и ArcFace с FaceNet одинаково чувствительны к этому расхождению, если обучение и дообучение шли не на тех данных.
Источников ошибок три. Первый — похожие лица: близнецы, родственники, сотрудники в одинаковой экипировке, касках или масках, когда открытой остаётся треть лица. Второй — качество кадров: контровой свет от входа, движение, смаз от выдержки, ракурс в три четверти вместо анфас. Третий — устаревшая разметка: часть эталонных снимков сделана год назад, человек сменил причёску, отрастил бороду или носит очки, а в галерее он всё ещё прежний.
На проходной это оборачивается двумя классами отказов. Ложные срабатывания в сторону «не пустить» — сотрудник стоит у турникета, очередь копится, охрана вручную подтверждает проход. Ложные срабатывания в сторону «пустить» — чужой человек проходит по совпадению, и это уже инцидент безопасности, а не неудобство.
Ошибки распознавания лиц не лечатся одним порогом срабатывания: снижение порога уменьшает отказы, но открывает доступ. Разбираем, как это закрывается — подбором порога под задачу, дообучением на реальных кадрах с проходной и контролем пар похожих сотрудников в галерее.
Измеримый эффект: точность, доли ошибок, время проверки
Сравнивать модели имеет смысл на кадрах с самого объекта, а не на публичных наборах: другая оптика, высота установки, освещение и типичные ракурсы дают другую картину. Поэтому до адаптации мы прогоняем базовую модель по архиву и фиксируем исходные показатели — с ними потом сопоставляем результат.
После дообучения ArcFace на размеченных кадрах объекта точность распознавания на проверочной выборке растёт, а доля ложных пропусков падает в разы. Модель начинает уверенно работать на вечернем свете, в частичном повороте и при перекрытии лица, где раньше срабатывал ручной пропуск.
Ключевой параметр — порог срабатывания. Сдвигая его, мы меняем баланс между ложными пропусками и ложными срабатываниями: для контроля доступа на проходной важнее не пустить чужого, для учёта времени — не потерять своего. Порог подбираем по кривой на отложенной выборке и фиксируем как часть конфигурации.
Скорость проверки измеряем на потоке: сколько человек проходит за минуту, какова задержка решения на кадр и как ведёт себя система при нескольких камерах одновременно. На практике это доли секунды на человека — очередь у турникета перестаёт собираться.
Устойчивость проверяем не только на своём архиве: прогоняем модель на сдвинутых данных — другая камера, другое время суток, сезонная одежда. Если показатели проседают, добавляем такие кадры в разметку и повторяем цикл. Метрики фиксируем в отчёте, чтобы рост или деградацию после каждой итерации было видно в цифрах, а не на словах.
Режимы внедрения: своя модель, готовая, гибридная схема
Три подхода отличаются тем, сколько данных нужно до старта и насколько глубоко можно влиять на поведение модели. Готовая открытая модель на ArcFace или FaceNet даёт первый рабочий результат на типовом потоке, дообучение подстраивает её под конкретную съёмку, а обучение с нуля берут, когда не проходит ни один из первых двух вариантов. Выбор подхода — это компромисс между сроком запуска, объёмом разметки данных и контролем над моделью.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Готовая модель | Анфас, предсказуемый свет, один-два ракурса, нужен быстрый запуск | Точность проседает на головных уборах, контровом свете, сильных наклонах; внутреннюю логику не меняем |
| Дообучение модели | Есть свой корпус снимков с целевого потока, условия съёмки стабильны | Нужна разметка пар «свой/чужой» и отложенная выборка, иначе модель переобучается на узком наборе |
| Обучение с нуля | Нетипичный канал съёмки или жёсткие требования к контролю над архитектурой | Нужен большой и разнообразный корпус, сроки измеряются месяцами, выше риск ошибок при сборе данных |
Решение принимаем по замерам, а не по общим соображениям: сначала прогоняем готовую модель на реальных кадрах заказчика и считаем долю ложных пропусков и ложных срабатываний на выбранном пороге. Если метрики не дотягивают до требований, переходим к дообучению — оно закрывает разрыв на выборке на порядок меньшего размера, чем обучение с нуля. Обучение с нуля оставляем для случаев, когда сама архитектура настраивается под нестандартный канал съёмки.
Обучение ArcFace под ваш сценарий: этапы работы
Обучение ArcFace — это не запуск готовой библиотеки, а подгонка метрики под ваш сценарий: ракурсы, освещение, допустимая доля ложных совпадений. Начинаем с аудита кадров и заканчиваем передачей модели с зафиксированными порогами, чтобы результат воспроизводился на вашей стороне. Ниже — этапы обучения.
- Аудит данных — объём и качество кадров: размер лиц, ракурсы, перекрытия, доля брака. Считаем число людей и кадров на каждого, добираем редкие случаи, убираем дубли.
- Разметка и подготовка — выравнивание по ключевым точкам, единый масштаб, фиксированное разбиение на обучающую, валидационную и отложенную выборки. Отложенная в обучении не участвует.
- Выбор архитектуры — сравниваем ArcFace и FaceNet на ваших данных: где похожие люди разделяются лучше при том же времени отклика. Для ArcFace подбираем величину углового отступа.
- Обучение и контроль — добавляем искажения по яркости, повороту и размытию, следим за разделимостью классов на валидации. Останавливаем обучение, когда качество перестаёт расти.
- Настройка порогов — по кривой ошибок выбираем порог под сценарий: проходная точка, зона контроля или подтверждение оператором.
- Проверка модели на отложенной выборке — тестируем по людям, сессиям и камерам, которых модель не видела, и смотрим метрики отдельно по подгруппам.
- Внедрение распознавания — передаём веса, конфигурацию, модуль вывода, регламент порогов и мониторинга, помогаем подключить к вашему контуру.
Артефакты: веса модели, разметка, регламенты
Вместе с обученной моделью заказчик получает не «чёрный ящик», а комплект, который позволяет эксплуатировать решение своими силами или передать его другой команде без потери контекста. Мы считаем передачу завершённой только тогда, когда по этим материалам сторонний инженер сможет воспроизвести результат и внести изменения.
- Веса модели в открытом формате — итоговые веса после финальной эпохи плюс контрольные точки нескольких лучших эпох: они дают запас для отката и дообучения без повторного прогона всего обучения.
- Скрипты подготовки данных и обучения с зафиксированными параметрами: состав и порядок аугментаций, скорость обучения, стратегия заморозки слоёв, значения инициализации — чтобы результат воспроизводился до последнего знака.
- Разметка в исходном виде: снимки, метки, разделение на обучающую, валидационную и отложенную выборки, журнал исключённых кадров и протокол контроля качества разметки.
- Отчёт по метрикам: качество на отложенной выборке, рабочая точка по порогу срабатывания, доля ложных пропусков и ложных срабатываний, разбивка ошибок по условиям съёмки — слабый свет, ракурс, закрытое лицо.
- Документация по эксплуатации: запуск распознавания, настройка порога под нужный баланс ошибок, требования к кадру, порядок обработки эмбеддингов и хранения биометрических данных.
- Регламент переобучения: какие события запускают пересборку — рост доли отказов на новых людях, смена камер или условий съёмки, расширение списка сотрудников, — с какой периодичностью проводится плановая проверка и как фиксируется деградация качества.
- Права на модель: письменно закреплённая передача прав на веса, на производные модели и на разметку, а также перечень лицензий открытых компонентов, использованных в решении.
Регламент переобучения — не формальность: без него модель тихо устаревает по мере изменений в потоке данных, и первый сигнал приходит уже от службы охраны. Права и документация закрывают второй риск — когда команда, обучавшая модель, недоступна, а разобраться в артефактах некому.
Кейс: проходная с двумя сценариями, метрики до и после
На производственной площадке — четыре проходные и около двух тысяч сотрудников. Контроль доступа работал на модели, обученной на открытом наборе лиц: на похожих сотрудниках (родственники, одинаковая спецодежда, очки, каски) она давала ложные отказы, и охрана пропускала людей вручную.
В пиковые часы у турникетов копилась очередь. За смену набегало больше сотни ручных проверок, а часть сотрудников со временем начала прикладывать пропуск, не глядя в камеру, — статистика по системе перестала отражать реальность.
Что изменили
Собрали датасет на камерах самих проходных — ракурсы, освещение, сезонная одежда — и дообучили эмбеддинги ArcFace на собственной разметке. Второй веткой верификации оставили FaceNet: решение проходит, когда обе модели согласны, поэтому класс ошибок на похожих лицах закрывается.
Пороги срабатывания подобрали отдельно для каждой точки — у ворот с боковым светом качество кадра другое, чем у входного турникета. Сравнение идёт по серии кадров, а не по одному снимку, поэтому блик или разворот головы больше не превращаются в отказ.
Метрики до и после
| Показатель | До | После |
|---|---|---|
| Доля ложных отказов | 7% | 1,2% |
| Ручные проверки за смену в пик | больше 100 | около 15 |
| Проходы без остановки | 82% | 97% |
Разметка и подобранные пороги переиспользуются на остальных точках доступа: каждая следующая проходная подключается быстрее предыдущей и без сбора датасета с нуля.
Что делать, если на объекте уже работает другая модель?
Работающая система — это не только веса модели: вокруг неё уже собраны эталоны лиц, подобранные пороги решения, связки с учётной системой и правила, по которым событие превращается в доступ. Поэтому развилка «менять или доращивать» решается не по качеству модели как таковой, а по тому, что именно перестало справляться в текущем контуре. Если деградация локальная — новые ракурсы, освещение, добавленная камера — дообучение ArcFace на этих данных закрывает задачу без пересборки базы эталонов.
Доращивание сохраняет вектор признаков, поэтому ранее зарегистрированные эталоны остаются валидными, пороги почти не сдвигаются, а связки с учётной системой не трогаются. Замена модели целиком — другой сценарий: новый вектор признаков несовместим со старым, значит эталоны пересчитываются заново, пороги калибруются на размеченном наборе, а решения сверяются с прежним контуром, пока расхождения не уйдут в допустимый коридор. Такой путь оправдан, когда модель проигрывает по классу задач, а не по отдельным условиям съёмки.
Третий вариант — второй контур проверки: новая модель считает признак параллельно с работающей, и решение принимается по согласию обеих. Это снижает долю ложных проходов там, где цена ошибки высока, но добавляет нагрузку на вычислительные ресурсы и увеличивает время принятия решения, поэтому так закрывают только критичные точки доступа.
Перенос наработок при любом пути одинаков: разметка, сценарии проверки, история срабатываний и связки с учётной системой переиспользуются — заново собирается только то, что привязано к признакам конкретной модели. Выбор пути фиксируем после замера на накопленной истории: сравниваем доли пропусков и ложных срабатываний по каждой схеме на реальных камерах объекта. Обновление идёт без остановки работы — прежняя модель остаётся в строю, пока новая не подтвердит результат на том же потоке.
Частые технические вопросы перед стартом
Перед стартом обучения ArcFace заказчики поднимают один и тот же набор технических сомнений: хватит ли данных, законно ли хранить биометрию, что будет при смене камер и как поведёт себя модель на нескольких точках. От ответов зависит архитектура сбора данных, поэтому разбираем их до первой строки кода — часть ограничений потом снимается настройкой съёмочной зоны, часть не снимается вообще.
Хватит ли данных и что делать с редкими ракурсами?
Ориентируемся на десятки кадров на человека в разных условиях — свет, поворот головы, очки, головной убор. Редкие ракурсы добираем с рабочих камер и добавляем в выборку: без этого ложные отказы приходятся именно на них.
Как хранятся биометрические данные и нужно ли согласие сотрудников?
В базе лежит не фотография, а числовой вектор признаков — восстановить по нему изображение нельзя. Согласие оформляем отдельным документом, доступ разграничиваем по ролям, ведём журнал обращений и удаляем записи по заявлению.
Что будет при смене камер и не деградирует ли качество со временем?
Модель чувствительна к сцене: угол, высота, освещение, дистанция. После замены оборудования пороги подбираем заново, а дальше следим за долей отказов — приходят новые люди, меняется свет и сезонная одежда, поэтому периодически дообучаем модель на пополненной выборке.
Как система масштабируется на несколько точек?
Сравнение идёт по индексу, а не перебором, поэтому время отклика не растёт линейно с размером базы. Точки подключаем к общей базе, пороги фиксируем отдельно для каждого входа и сверяем долю ложных срабатываний.
Обсудим вашу задачу распознавания лиц
Чтобы вместо общих слов вернуться с оценкой проекта, планом работ и сроками, нам нужен небольшой набор исходных данных — и чем ближе они к реальным условиям площадки, тем точнее прогноз по качеству модели. Особенно когда речь о обучении ArcFace под ваш сценарий.
- Примеры данных с площадки: 30–50 снимков или коротких фрагментов с тех же камер, при том же свете и ракурсах.
- Состав людей: сколько человек различать, сколько кадров на каждого уже есть или может быть собрано.
- Сценарий: контроль доступа, учёт рабочего времени, поиск по архиву — от этого зависит порог срабатывания и логика отказов.
- Требования к качеству: допустимая доля пропусков и ложных срабатываний, реакция на очки, маски, головные уборы.
- Ограничения по данным: где хранятся изображения, кто даёт согласие, какие правила обезличивания действуют.
- Инфраструктура: поток с камер или офлайн-обработка, вычислительная база, стыковка с существующей видеоаналитикой.
- Границы этапа: пилотная площадка или сразу все объекты, критичные сроки, кто принимает результат.
После обсуждения задачи вернёмся с оценкой проекта, пошаговым планом работ и предложением пробного запуска: обучение и проверка на ваших данных, до масштабирования на всю инфраструктуру.







