Контакты
Подписка
МЕНЮ
Контакты
Подписка

Как правильно сравнивать алгоритмы распознавания лиц: что стоит за рекламой?

В рубрику "Системы контроля и управления доступом (СКУД)" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Как правильно сравнивать алгоритмы распознавания лиц: что стоит за рекламой?

Распознавание лиц, как и любая модная и востребованная технология, привлекает большое число игроков. Однако создать действительно точный и надежный алгоритм очень непросто – это требует кропотливой работы, многочисленных экспериментов и тонкой оптимизации. Чтобы максимально выгодно представить свое решение, некоторые разработчики начинают "играть" цифрами и результатами испытаний. При этом потенциальные пользователи оказываются в сложной ситуации: как понять, какое из предлагаемых решений действительно справится с их задачами?
Алексей Кадейшвили
Технический директор компании "Вокорд"

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

В этой статье мы поговорим о том, по каким параметрам оцениваются алгоритмы распознавания лиц, какие вопросы задавать разработчикам и как правильно провести тестирование системы распознавания для конкретного проекта.

Сравнение различных проектов тестирования

Среди многочисленных конкурсов, связанных с распознаванием лиц, основными являются следующие:

1. LFW (Университет Массачусетса). Наиболее старый конкурс, он проводится на протяжении более пяти лет, сменилось несколько поколений победителей. Но с точки зрения уровня современных технологий он уже лишился смысла. В нем используется относительно небольшая база, на которой значительная часть современных алгоритмов показывает достойные результаты - у 32 участников уровень распознавания выше 99%, и, глядя на такую плотность, выбрать лучших практически невозможно.

2. MegaFace (Университет Джорджа Вашингтона). Хорош тем, что использует большую базу деструкторов - порядка 1 млн лиц. Это позволяет измерить работу алгоритмов в очень широком диапазоне, в том числе при маленьких ошибках ложного принятия (на уровне 10-7). Благодаря этому разница между различными алгоритмами выглядит значимо отрыв 1 - го места от 2-го до недавнего времени составлял 8%. Однако, сейчас дифференциальная значимость этого теста также снижается.

3. FRVT (Американский институт стандартов NIST). Наиболее репрезентативный тест на данный момент. Это настоящее академическое научное исследование, а не конкурс, где раздаются места. Отчет составляет около 80 страниц, продолжают публиковаться новые результаты, и он отражает актуальный срез индустрии распознавания лиц. Здесь используются различные базы, и в итоге получается объемная картина того, как алгоритмы работают в разных условиях.

Два типа ошибок

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

  1. Ложный пропуск. Его имеют в виду, спрашивая: "Какова вероятность распознавания?" Эта ошибка описывает ситуацию, когда человек есть в базе, но система его не нашла.
  2. Ложное срабатывание. Про него очень часто забывают на стадии выбора системы, но сразу вспоминают, когда начинается эксплуатация. Эта ошибка очень значима с точки зрения практического использования системы в реальной жизни и заключается в ситуации, когда человека в базе нет, но система говорит, что нашла его.

Как строится "кривая ошибок"?

В результате сравнения лица человека с эталоном выдается параметр, который называется "степень похожести". Очень часто ее путают с вероятностью распознавания. Обычно степень похожести нормирована от 0 до 100, что ассоциируется с процентом распознавания

На рис. 1 вероятности ложного срабатывания или ложного пропуска показаны красным и зеленым цветом соответственно в зависимости от степени похожести (по горизонтали).


Когда происходит настройка системы, задается порог срабатывания. Если он очень низкий, то ошибка ложного пропуска крайне маловероятна, а ошибка ложного срабатывания, наоборот, очень вероятна. Система становится предельно чувствительной: она не пропустит врага, но зато даст кучу ложных срабатываний, с которыми придется разбираться. Как только порог повышается, увеличивается ошибка пропуска, но падает ошибка ложного срабатывания. Следовательно, нужно найти золотую середину, которая в каждом случае будет индивидуальна в зависимости от поставленной задачи.

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

Какой алгоритм лучше?

Глядя на несколько алгоритмов, графики которых представлены на рис. 2, как определить, как из них хороший, а какой нет?

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


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

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

За последние несколько лет в технологиях распознавания лиц случился технологический прорыв. Если раньше традиционные алгоритмы были построены на том, что расставлялись биометрические точки (уголки глаз, уголки носа), между ними измерялись расстояния и далее разработчики старались придумать уникальные метрики, характеризующие человека (на тот момент между собой соревновались две компании-лидера - Cognitec и NEC), то сейчас ситуация кардинально изменилась. Все лучшие алгоритмы построены на базе глубоких нейронных сетей, и хорошая новость для нас заключается в том, что лучшие алгоритмы разрабатываются в России и в Китае. Понимание того, по каким принципам сделана та или иная система распознавания, позволяет с высокой вероятностью не рассматривать старые решения, которые изжили себя.

Как определить процент ложных срабатываний

Возникает вопрос: как понять, в какой области ошибок ложного срабатывания работать, когда поставлена конкретная задача? Логика здесь очень простая

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

ур. 1 FAR = [допустимое количество ложных срабатываний в единицу времени]/[количество лиц, фиксируемых в единицу времени]*[размер эталонной базы]

Пример 1. "Массовое" распознавание в реальном времени

Если система устанавливается в метрополитене, где база розыска насчитывает порядка 10 тыс. лиц и количество проходов людей в час составляет около 1 тыс., то количество сравнений – 10 млн. Если ошибка ложного срабатывания выбрана как 1%, то это приведет к 100 тыс. ложных срабатываний в час. Очевидно, что такой системой нельзя пользоваться ни при каких обстоятельствах: ошибка ложного срабатывания в такой ситуации должна быть как минимум на 4–6 порядков ниже.

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

ур. 2 FRR = [допустимое количество ложных отказов в единицу времени]/[количество лиц, фиксируемых в единицу времени]*[размер эталонной базы]

Пример 2. Поиск по базе данных

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

Пример 3. Аутентификация пользователя в СКУД

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

Зависимость результатов от исходных данных

Алгоритмы по-разному работают на различных исходных данных.

На рис. 3 показан пример результатов тестов NIST, где используются базы с разными названиями и разным качеством изображений.


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


Результаты разных алгоритмов и разных баз очень сильно отличаются. На рис. 4 красным показан алгоритм, продемонстрировавший лучший результат на базе Visa, а синим – лучший результат на базе Wild. На базе Wild (рис. 5) красный алгоритм – в числе худших, а синий проигрывает красному на базе Visa.


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

Скорость работы алгоритмов распознавания

На рис. 6 показана зависимость ложного пропуска от скорости работы.

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


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

  1. Вычисление биометрического шаблона (фотография превращается в набор цифр, который уникально характеризует человека).
  2. Сравнение двух биометрических шаблонов между собой.

При этом скорость сравнения очень высокая и измеряется в наносекундах (10-9 с), а скорость вычисления биометрического шаблона - в миллисекундах. Посмотрим, во что это выливается в реальных кейсах.

Примеры расчета скорости работы алгоритма

Рассмотрим два алгоритма (табл. 1) с разными скоростями вычисления биометрических шаблонов и их сравнения.


У алгоритма 1 быстрее вычисляется биометрический шаблон, но медленнее происходит сравнение, у алгоритма 2 ситуация обратная. Результаты обоих алгоритмов по времени в двух типичных кейсах показаны в табл. 2.


В кейсе № 1 имеется огромная база, в которой нужно найти человека. Кейс № 2 относится к общественной безопасности (например, в метро поставили камеру, мимо которой проходят 1 0 тыс. человек, в базе розыска 1 тыс. человек).

В обоих кейсах количество сравнений одинаковое - 10 млн. Но из-за того что постановка задачи и время вычисления биометрических шаблонов разные, получаются совершенно противоположные результаты.

В кейсе № 1 лучший результат показывает 2-й алгоритм (быстрее в 12 раз), а в кейсе № 2 - 1 - й алгоритм (быстрее в 4-5 раз).

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

Зависимость скорости от платформы и режима обработки

Тесты NIST не покрывают все многообразие ситуаций, происходящих в мире. Кроме большого количества алгоритмов, существуют и разные вычислительные платформы, на которых эти алгоритмы можно запускать, а именно центральные процессоры Intel либо графические процессоры NVIDIA (табл. 3).


В силу того, что все современные алгоритмы построены на глубоких нейронных сетях, которые на GPU работают намного быстрее, чем на CPU, получается очень большая разница в скорости работы. К сожалению, тесты NIST ограничены CPU, в них участвуют и графические ускорители, но устаревшие, которые не показывают всю прелесть их использования. В табл. 3 представлены результаты исследования на самых последних вычислительных платформах.

Как мы видим, если происходит единичная обработка изображения, то использование графического ускорителя дает выигрыш от 1 0 до 4 раз, что не так впечатляюще. В случае же если используется пакетный режим обработки в графических ускорителях, за 1 с можно обрабатывать 300 лиц, а на центральном - всего 1 лицо в 1 с. Это важный фактор, который следует иметь в виду при выборе системы, так как если для достижения желаемой точности нужно построить целый дом из серверов, то такой проект не "взлетит" - скорее всего, просто не хватит бюджета. Если ту же самую задачу можно решить с помощью достаточно компактных серверов на базе графических ускорителей, то такой проект будет абсолютно реализуем. Цифры из табл. 3 мы не видели ни в одном тесте и ни на одном конкурсе - они находятся за скобками, так как слишком сложно проводить подобные вычисления. Но именно эти показатели будут влиять на работу системы при внедрении в реальных условиях, особенно когда речь идет о больших проектах, где такие вопросы, как размер пространства для вычислительной платформы, ее энергопотребление и др., являются принципиально важными

Опубликовано: Журнал "Системы безопасности" #2, 2018
Посещений: 4197

  Автор

Алексей Кадейшвили

Алексей Кадейшвили

Технический директор компании "Вокорд"

Всего статей:  2

В рубрику "Системы контроля и управления доступом (СКУД)" | К списку рубрик  |  К списку авторов  |  К списку публикаций