ИИ-тесты сканирования лица

Почему два сканера лица дают разные оценки

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

Опубликовано Обновлено
точность сканирования лицаточки лицаИИ-анализ лицасравнительный тест

Коротко

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

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

1. Они измеряют не одни и те же точки

Конвейеры анализа лица опираются на схемы ключевых точек, и эти схемы не взаимозаменяемы:

Где это видно: на ширине носа. При 68 точках есть две точки крыльев носа и один отрезок между ними. На сетке из 468 точек поперёк носа проходит несколько возможных пар, и от того, какую выберет формула, измерение сдвигается на несколько процентов. С шириной челюсти то же самое: самая внешняя точка щеки на плотной сетке анатомически не там, где угол челюсти в схеме из 68 точек. Два приложения могут честно написать «ширина челюсти» и измерять разные участки вашего лица.

Больше точек — не значит точнее. Плотная сетка даёт формуле больше выбора, а значит, больше поводов разойтись с соседним инструментом.

2. Любому отношению нужен знаменатель, и они берут разные

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

ЗнаменательПоведение
Межзрачковое расстояниеУстойчиво к кадрированию, но чувствительно к поиску уголка глаза
Ширина ограничивающего прямоугольникаЗависит от волос, ушей и маски фона
Ширина скулБлиже всего к «ширине лица», но точка мягкая и уплывает
Высота от брови до подбородкаМеняется с мимикой и положением челюсти

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

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

3. Обучающие данные не нейтральны

Модели ключевых точек учатся на размеченных фотографиях, и эти фотографии определяют, на каких лицах модель точна. В опубликованных заметках Google о Face Mesh указан обучающий набор примерно из 30 тысяч изображений. Как бы он ни был устроен, ни один набор не представляет все группы населения одинаково, а известные слабые места в этой области устойчивы: крайние повороты головы, слабый свет, перекрытие очками, бородой или волосами, а также оттенки кожи, которые реже встречаются в разметке.

На практике это ошибка, которую вы не видите. Сдвиг на два-три пикселя в углу челюсти незаметен в превью, но это реальное изменение отношения, а отношение потом отображается на шкалу 0–100 с крутым наклоном. Маленькая ошибка на входе — заметная разница на выходе.

По той же причине одно и то же лицо получает разные оценки при другом свете в том же приложении. Это не настроение, это двигается уверенность детектора.

4. Кое-что происходит до запуска модели

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

Во-первых, сглаживание стирает текстурные градиенты, по которым модель ищет границы: линию губ, складку века, боковые поверхности носа. Точки начинают уплывать.

Во-вторых, изменение формы меняет саму геометрию. Модель затем измеряет изменённое лицо — и измеряет точно. Она делает свою работу правильно, просто на неправильном входе.

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

5. Последний шаг — это проект, а не измерение

Даже при одинаковых точках и одинаковом знаменателе число всё равно будет разным, потому что превращение отношения в оценку — проектное решение. Обычная схема: взять отношение r, зажать между минимумом и максимумом и линейно отобразить на 0–100. Сдвиньте границы — сдвинутся все оценки.

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

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

Сравнение, которое действительно можно провести

Приём в том, чтобы убрать себя из уравнения. Напечатанная фотография — физическая константа: одна и та же геометрия и один и тот же свет каждый раз.

  1. Напечатайте чёткий портрет в анфас на матовой бумаге высотой около 15 см.
  2. Приклейте на стену на уровне глаз. Осветите спереди одной лампой, штору задерните.
  3. Просканируйте отпечаток каждым инструментом дважды с перерывом в десять минут. Запишите оба числа.
  4. Повторите с живым селфи: 60 см, объектив на уровне глаз, без фильтра.
  5. Соберите таблицу: инструмент, оценка отпечатка, оценка селфи, разница.

Как её читать:

Сравнение порядка на пяти лицах — единственное межплатформенное сравнение, которое переживает разные шкалы. Абсолютные числа не переносятся, порядок — иногда да.

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

Что делать с полученной оценкой

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

Частые вопросы

Почему два приложения дают разные оценки за одно и то же фото?

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

Более высокая оценка — более точная?

Нет. Эталона, к которому можно попасть, не существует. Высокая оценка обычно означает, что шкала закреплена ниже, или что формула поощряет черту, которая у вас есть.

Какое количество точек самое точное?

Единого ответа нет, всё зависит от задачи. 68 точек хорошо изучены и дёшевы; 468 или 478 дают плотное покрытие и подходят для анализа формы. Точность идёт от обучающего набора и от совпадения с вашими условиями, а не от числа точек.

Попробуйте бесплатные тесты по лицу

15 тестов только для развлечения. Загрузите одно селфи, получите балл и отнеситесь к нему ровно так серьёзно, как он заслуживает.

Открыть тесты