Навчання 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 знімків або коротких фрагментів із тих самих камер, за того самого світла й ракурсів.
- Склад людей: скількох людей розрізняти, скільки кадрів на кожного вже є або може бути зібрано.
- Сценарій: контроль доступу, облік робочого часу, пошук за архівом — від цього залежить поріг спрацювання й логіка відмов.
- Вимоги до якості: допустима частка пропусків і хибних спрацювань, реакція на окуляри, маски, головні убори.
- Обмеження щодо даних: де зберігаються зображення, хто дає згоду, які правила знеособлення діють.
- Інфраструктура: потік із камер або офлайн-обробка, обчислювальна база, стикування з наявною відеоаналітикою.
- Межі етапу: пілотний майданчик або відразу всі об’єкти, критичні терміни, хто приймає результат.
Після обговорення завдання повернемося з оцінкою проєкту, покроковим планом робіт і пропозицією пробного запуску: навчання й перевірка на ваших даних, до масштабування на всю інфраструктуру.







