Анализ развития распознавания лиц в глубоком обучении
содержание
Введение в распознавание лиц
Что такое распознавание лиц
Макроскопически проблемы распознавания лиц делятся на две категории: 1. Верификация лиц (также называемая сравнением лиц) 2. Распознавание лиц.
Проверка лица — это сравнение 1 к 1, то есть определение того, являются ли люди на двух фотографиях одним и тем же человеком.Самый распространенный сценарий применения — разблокировка по лицу., оконечному устройству (например, мобильному телефону) нужно только сравнить фотографии, зарегистрированные пользователем заранее, с фотографиями, собранными на месте, чтобы определить, является ли это одним и тем же человеком, после чего может быть завершена проверка личности.
Распознавание лиц — это сравнение 1-к-N, то есть для определения того, какой человек, которого система видит в данный момент, находится среди многих людей, которых она видела раньше. НапримерОтслеживание подозрений, контроль доступа к сообществу, регистрация в местах проведения мероприятий и идентификация клиентов в новых концепциях розничной торговли..
Общей чертой этих сценариев применения является то, что система распознавания лиц заранее хранит большое количество различных лиц и идентификационной информации человеческого лица.
Оба были реализованы с помощью разных алгоритмов в первые дни (2012–2015 гг.) Если вы хотите иметь как системы проверки лиц, так и системы распознавания лиц, вам необходимо обучать две нейронные сети по отдельности. В 2015 году компания GoogleFaceNet[1] Публикация статьи изменила эту ситуацию, объединив их в одну структуру.
распознавание лица, как распознать
В этом разделе мы просто хотим прояснить одну основную идею:Разные лица состоят из разных черт.
Чтобы понять эту идею, первое, что необходимо ввести, — это понятие «признак». Взгляните на следующий пример:
Предполагая, что этих 5 признаков достаточно для описания лица, каждое лицо можно представить как комбинацию этих 5 признаков:
(функция 1, функция 2, функция 3, функция 4, функция 5)
Европейское и американское свежее мясо с двойными веками, прямой переносицей, голубыми глазами, белой кожей и коричнево-желтыми волосами можно выразить как (см. элементы, выделенные жирным шрифтом в таблице):
(1,1,0,1,0)
Тогда обход приведенной выше таблицы признаков может представить в общей сложностиразные лица. 32 лица далеко не достаточно, чтобы охватить население в более чем 7 миллиардов человек. Чтобы лица, состоящие из разных элементов, могли покрывать достаточное количество лиц, нам нужно расширить приведенную выше таблицу признаков. Расширенная таблица признаков может быть расширена с двух точек зрения: строки и столбца.
Угол столбца очень прост, просто нужно увеличить количество признаков: (признак 6. форма лица, признак 7. расстояние между глазами, признак 8. толщина губ...) На практике 128, 256, 512 или Обычно используется 1024 различных функции,Откуда столько функций, разве люди не должны разрабатывать их один за другим? Ответ на этот вопрос будет позже.
Также легко понять расширение с точки зрения линии, такой как «элемент 3», за исключением того, что значение 0 представляет синий цвет, а значение 1 представляет серый цвет.Можем ли мы добавить значение 2 для представления черного цвета и значение 3 для обозначения отсутствия волос? Кроме того, в дополнение к этим дискретным целым числам мы также можем взять непрерывные десятичные числа, например, значение 0,1 для признака 3, что означает «слегка черный в синем», а значение 0,9 означает «серый и синий»...
После такого расширения пространство признаков становится бесконечно большим. Лицо в расширенном пространстве признаков может быть представлено как:
(0, 1, 0,3, 0,5, 0,1, 2, 2,3, 1,75,…)
Вопросы, заданные ранее:Откуда берется большое количество признаков, используемых для представления лиц?Именно здесь в игру вступает глубокое обучение (глубокие нейронные сети). После изучения и обучения на базе данных лиц, содержащей десятки миллионов или даже миллиардов, он автоматически суммирует черты лица, наиболее подходящие для понимания и различения компьютером.
Разработчикам алгоритмов обычно нужны определенные методы визуализации, чтобы знать, по каким характеристикам машина научилась различать разных людей.Конечно, эта часть не находится в центре внимания этого раздела.
УточненныйРазные лица состоят из разных чертПосле этого у нас достаточно знаний, чтобы проанализировать распознавание лиц и способы его распознавания.
Теперь рассмотрим самую простую и идеальную ситуацию, признаков для различения разных людей всего два: признак 1 и признак 2. Тогда каждое лицо может быть представлено в виде координаты (признак 1, признак 2), то есть точки в пространстве признаков (в данном примере двумерном пространстве).
Распознавание лиц основано на предположении по умолчанию:Лица одного и того же человека на разных фотографиях очень близки по пространственному признаку..
Почему это предположение выполняется по умолчанию?Представьте себе человека с каштановыми волосами, при разном освещении, окклюзии и ракурсе цвет волос выглядит немного по-другому, но все равно очень близок к реальному цвету, что и отражено в собственных значениях цвета волос. , может быть числом с плавающей запятой от 0 до 0,1.
Еще одна задача и задача глубокого обучения — точно идентифицировать каждую функцию в различных чрезвычайно сложных условиях окружающей среды.
Изображение выше представляет собой PPT, использованный в речи о шумоподавлении крупномасштабных наборов данных лиц в Кумамото. Три фотографии Томохиса Ямасита были преобразованы в 3 точки в 128-мерном пространстве после того, как 128-мерные признаки были извлечены нейронной сетью (красный ), а характерная точка Сатоми Исихары — зеленая.
Этот PPT хочет выразить то же значение:Черты, извлеченные из разных фотографий одного и того же человека, очень близки в пространстве признаков, а лица разных людей находятся далеко друг от друга в пространстве признаков..
Рассмотрим две задачи в области распознавания лиц:проверка лицаираспознавание лица.
проверка лица
Например, при разблокировке по лицу FaceID iPhone заранее сохраняет фотографию пользователя (требуется регистрация пользователя), и эта фотография преобразуется в серию значений признаков (то есть точку в пространстве признаков). Когда пользователь разблокируется, телефону нужно только сравнить геометрическое расстояние между лицом, полученным в данный момент, и лицом, предварительно зарегистрированным в функциональном пространстве. Если расстояние достаточно близко, считается, что это один и тот же человек. недостаточно близко, разблокировка не удалась. Установка порога расстояния получается инженером-алгоритмом путем большого количества экспериментов.
распознавание лица
Также рассмотрим сценарий, посещаемость лица. В компании X есть сотрудники A, B и C. Компания потребует от каждого из трех сотрудников предоставить личную фотографию для регистрации в системе компании, когда они присоединятся к компании, тихо лежащей в функциональном пространстве.
Когда сотрудник А приходит на работу на следующее утро, он указывает своим лицом на машину посещаемости, и система помещает лицо текущего сотрудника А в пространство признаков, сравнивает его с ранее зарегистрированным лицом в пространстве признаков и находит расстояние между зарегистрированными лицами Ближайшим собственным лицом текущего собранного лица является сотрудник A, и регистрация завершена.
Зная основные принципы распознавания лиц, можно увидеть его технические ограничения. На следующей диаграмме показаны некоторые легко определяемые случаи отказа:
При многих условиях, таких как плохое освещение, окклюзия, деформация (смех), боковые лица и т. д., нейросети сложно выделить черты, похожие на «стандартное лицо».Аномальные лица попадают в неправильное положение в пространстве признаков, что приводит к сбою распознавания и проверки.. Это ограничение современных систем распознавания лиц и в определенной степени ограничение глубокого обучения (глубоких нейронных сетей).
Столкнувшись с этим ограничением,Чтобы система распознавания лиц работала должным образом, обычно принимаются три контрмеры.:
1. Инженерная перспектива: Исследуйте и разработайте модель качества для оценки качества обнаруженного лица. Если качество низкое, оно не будет распознано/проверено.
2. Угол приложения: Чтобы наложить ограничения сцены, такие как разблокировка по лицу, выход на улицу и регистрация на месте проведения, пользователь должен стоять лицом к камере при хорошем освещении, чтобы избежать получения изображений низкого качества.
3. Алгоритмическая перспектива: улучшите производительность модели распознавания лиц и добавьте более сложные сцены и качественные фотографии к обучающим данным, чтобы улучшить способность модели противостоять помехам.
в конце концов, распознавание лиц/глубокое обучение далеко не так умны, как думают люди. Я надеюсь, что после прочтения первого раздела читатели смогут отличать достоверность информации в социальных сетях и селф-медиа, смотреть на искусственный интеллект более рационально, уделять ему время и терпимость, и расти медленно.
алгоритм распознавания лиц
Эта часть будет следовать современному алгоритму распознавания лиц из двух идей:
Идея 1: Metric Learning: Contrastive Loss, Triplet loss и связанные с ними методы выборки.
Идея 2: Маржановая классификация: включая Softmax с потерей центра, схемы, нормовой поверхностью, AM-Softmax (Cosface) и Arcface.
ключевые слова: DeepID2, Facenet, центральные потери, триплетные потери, контрастные потери, метод выборки, Sphereface, аддитивная маржа Softmax (CosFace), ArcFace.
Идея 1: метрическое обучение
Contrastive Loss
Одним из первых применений идей Metric Learning в области распознавания лиц на основе глубокого обучения являетсяDeepID2[2] Теперь, в соответствии с идеей главы 1, в этой статье «функция» называется «DeepID Vector».
DeepID2 обучает и Верификацию, и Классификацию в одной сети (то есть есть два сигнала контроля). Среди них Verification Loss представляет Contrastive Loss в векторном слое.
Contrastive Loss, по сути, делает фотографии одного и того же человека достаточно близкими в пространстве признаков, а разные люди достаточно далеко друг от друга в пространстве признаков, пока не превысит определенный порог m (звучит как Triplet Loss).
Основываясь на этом понимании, DeepID2 обучается не на одном изображении, а на паре изображений. Каждый раз вводите два изображения. Для одного и того же человека метка проверки равна 1, а если это не одно и то же лицо, метка - 1. См. следующую формулу для идеи обновления параметра (взято из документа DeepID2):
В 2014 году DeepID2 оказал очень сильное влияние на область лиц, а также вызвал волну внедрения метрического обучения в области лиц.
Triplet Loss from FaceNet
Этот 15-летний FaceNet от Google также является переломным моментом в области распознавания лиц. Не только потому, что они успешно применили Triplet Loss для достижения самых современных результатов в тестах, но и потому, что ониПредложена унифицированная структура решения большинства проблем лица., то есть: распознавание, верификация, поиск и другие задачи могут быть помещены в пространство признаков, и единственное, что нужно решить, это как лучше отобразить лицо в пространство признаков.
С этой целью на основе DeepID2 Google отказался от уровня классификации, а именно от потери классификации, и улучшил контрастную потерю до тройной потери только с одной целью:изучить лучшие функции.
Идея Triplet Loss также очень проста.Ввод больше не пара изображений, а три изображения (триплет), а именно Anchor Face, Negative Face и Positive Face. Якорь — тот же человек, что и Положительное Лицо, но отличается от Негативного. Тогда потеря Triplet Loss может быть выражена как:
Интуитивное объяснение состоит в том, что расстояние между Якорем и Положительным в пространстве признаков меньше, чем расстояние между Якорем и Негативом более чем на Альфа-поле.
С хорошим пространством признаков лица задача лица становится такой же простой и интуитивно понятной, как описано в конце главы 1. Прилагается PPT контрастной потери и тройной потери, которую я сделал:
Проблемы с метрическим обучением
Метрическое обучение, основанное на Contrastive Loss и Triplet Loss, соответствует законам человеческого познания и достигло хороших результатов в практических приложениях, но оноЕсть две очень фатальные проблемы, заставляя их применять как боль в заднице.
1. Модель очень долго подгоняется(месяцы, упомянутые в документе FaceNet), обучающие выборки Contrastive Loss и Triplet Loss основаны на паре или тройке, а возможное количество выборок равно O (N2) или O (N3).
Когда обучающая выборка велика, почти невозможно пройти все возможные выборки (или выборки, которые могут обеспечить достаточное количество градиентов), поэтому обычно требуется много времени для подгонки. Мне потребовался почти месяц, чтобы вписаться в азиатский набор данных из 10 000 человек, 500 000 или около того изображений.
2. Качество модели зависит от метода выборки обучающих данных., идеальный метод Sample может не только улучшить итоговую производительность алгоритма, но и немного ускорить скорость обучения.
Есть также много ученых, которые провели последующие исследования по этим двум вопросам.Следующее содержание, как расширенное чтение Metric Learning, не будет очень подробным.
Метрика Обучение Дальнейшее чтение****
1. Deep Face Recognition [3]
Чтобы ускорить обучение Triplet Loss, в этой статье сначала используется традиционный softmax для обучения модели распознавания лиц., из-за строго контролируемого характера сигнала классификации модель будет соответствовать очень быстро (обычно менее 2 дней, если быстро, то несколько часов).
После этого слой классификации верхнего уровня был удален, а Triplet Loss использовался для точной настройки слоя признаков модели, что дало хорошие результаты.Кроме того, в этой статье также опубликован набор данных о лицах VGG-Face..
2. In Defense of the Triplet Loss for Person Re-Identification [4]
В этой статье есть три очень интересных момента:
-
Автор сказал, что в эксперименте квадрат евклидова расстояния (квадрат евклидова расстояния) не так хорош, как квадрат евклидова расстояния (неквадрат евклидова расстояния), то есть поставить квадрат в формулу ниже.
-
Предлагается формулировка потерь Soft-Margin для замены исходного выражения Triplet Loss.
-
Введен пакетный жесткий сэмплинг.
3. Sampling Matters in Deep Embedding Learning [5]
В этой статье делается два важных замечания:
-
С точки зрения производной функции это объясняет, почему неквадратичное расстояние, упомянутое в пункте 2, лучше, чем квадратичное расстояние, и, исходя из этого понимания, потери на основе маржи (суть по-прежнему является вариантом тройной потери, см. рисунок ниже, картинка взята с оригинала).
-
Предлагаемая взвешенная по расстоянию выборка. В статье говорится, что полужесткая выборка в FaceNet, случайная жесткая выборка в глубоком распознавании лиц [3] и пакетная жесткая выборка, упомянутая в [4], не могут быть легко получены и будут давать большие градиенты (большие потери, что полезно для обучения модели). ), а затем использовали метод взвешенной выборки по расстоянию со статистической точки зрения.
4. Мои экспериментальные впечатления
-
В эксперименте применялись методы, упомянутые в пунктах 2 и 3. Интуитивное ощущение состоит в том, что и Мягкая маржа, и Убыток на основе маржи проще в использовании, чем исходный Убыток на основе тройки, но Убыток на основе маржи лучше в эксперименте.
-
В методе выборки, взвешенной по расстоянию, нет значительных улучшений.
В расширенном чтении упоминаются статьи, которые вас интересуют, вы можете обратиться к ссылке для просмотра исходного текста. Наконец, стоит отметить, что,Triplet Loss также добился хороших результатов в области повторной идентификации пешеходов., хотя, вероятно, в будущем она будет побеждена классификацией на основе маржи.
Идея 2: классификация на основе маржи
Как следует из названия, Классификация на основе маржи не похожа на метрическое обучение, которое напрямую вычисляет потери на уровне признаков, что налагает строгие интуитивные ограничения на признаки.По-прежнему используйте распознавание лиц в качестве задачи классификации для обучения, путем преобразования формулы softmax косвенно реализуется ограничение маржи для слоя объектов, так что конечный признак, полученный сетью, является более дискриминационным.
Эта часть начинается сSphereface[6] Говоря о.
Sphereface
Сначала следуйте проницательности автора, чтобы понять идею (картинка взята из оригинального текста):
Рисунок (a) — это функция, обученная с помощью исходной функции потерь softmax, а рисунок (b) — нормализованная функция. Нетрудно обнаружить, что функции в softmax имеют скрытое распространение с точки зрения перспективы.
Так почему бы просто не оптимизировать угол напрямую?Если веса классификационного слоя нормализованы, и без учета смещения получается улучшенная функция потерь:
Нетрудно видеть, что для признака x_i направление оптимизации функции потерь состоит в том, чтобы сделать его ближе к центру категории y_i и вдали от других центров категорий. Эта цель согласуется с целью распознавания лиц, минимизируя расстояние внутри класса и максимизируя расстояние между классами.
Однако для обеспечения корректности сравнения лиц необходимо также обеспечить, чтобы максимальное внутриклассовое расстояние было меньше минимального межклассового расстояния. Приведенная выше функция потерь не гарантирует этого. Так автор ввел идею маржи, которая согласуется с идеей введения Margin Alpha в Triples Loss.
Так как же автор усовершенствовал приведенную выше формулу и ввел маржу?
Красная коробка в приведенной выше формуле представляет собой косинусное значение функции образца и центру класса. Наша цель - снизить угол между функцией образца и классовым центром, то есть для увеличения этого значения. Другими словами, если это значение меньше меньше, значение функции потерь больше, то есть, чем больше наш штраф для отклонения от цели оптимизации.
То есть, таким образом, внутриклассовое расстояние может быть дополнительно сокращено, а межклассовое расстояние может быть увеличено для достижения нашей цели. Основываясь на этой идее, окончательная функция потерь выглядит следующим образом:
Исходный cos(θ) заменяется на phi(θ), а простейшая форма phi(θ) на самом деле является cos(mθ). ] и гарантированно монотонно убывает в области.
А это m — повышенный коэффициент маржи. Когда m=1, phi(θ) равно cos(θ), а когда m>1, phi становится меньше, а потери увеличиваются. Гиперпараметр m управляет интенсивностью наказания, чем больше m, тем больше интенсивность наказания.
Для удобства вычислений m обычно принимается целым числом. Автор математически доказывает, что m>=3 может гарантировать, что максимальное внутриклассовое расстояние меньше минимального межклассового расстояния. Используйте формулу двойного угла при реализации.
Кроме того: обучение Sphereface очень сложное, что касается деталей его обучения, то в этой статье он не упоминается, а ссылается на предыдущую статью автора [10]. Подробности обучения читатели также могут найти на Github автора, там много обсуждений в проблемах.
Normface
Sphereface работает хорошо, но не изящно. На этапе тестирования Sphereface измеряет сходство по значению косинуса между объектами, то есть угол является мерой сходства.
Но на этапе обучения, я не знаю, заметил ли читатель, что на самом деле функция потерь Sphereface напрямую оптимизирует не угол между функцией и центром класса, а угол между оптимизированной функцией и классом. центр умножается на длину объекта.
То есть, мое утверждение выше о направлении оптимизации функции потерь Sphereface не является строгим, На самом деле часть направления оптимизации заключается в увеличении длины функции.
Я провел эксперименты с набором данных MNIST. Следующие изображения представляют собой визуализацию объектов, когда m = 1 и m = 4 соответственно. Обратите внимание на масштаб координат, чтобы проверить вышеуказанную точку зрения.
Однако длина функции бесполезна, когда мы используем модель. Это приводит к несоответствию целей между обучением и тестом.Согласно оригинальным словам Normface, существует разрыв.
Так появилась основная идея Normface:Почему бы не нормализовать характеристики во время тренировки?Соответствующая функция потерь выглядит следующим образом:
где W — нормализованный вес, f_i — нормализованная характеристика, а два скалярных произведения — косинусы углов. Введение параметра s обусловлено математической природой, обеспечивающей рациональность размера градиента, в исходном тексте есть более интуитивное объяснение, которое здесь не при чем.
Обучение не сойдется без s. Что касается настройки s, ее можно установить как обучаемый параметр. Однако автор рекомендует его как гиперпараметр, и его значение имеет соответствующее рекомендованное значение по классификационной категории.В приложении к этой части исходного текста есть формулы.
В статье также указывается, чтоЕвклидово расстояние нормализованных признаков в FaceNet фактически унифицировано с косинусным расстоянием.. Также есть нормализация весов и признаков.В этой статье много интересных обсуждений.Заинтересованным читателям советую ознакомиться с исходным текстом.
AM-softmax [11] / CosFace [12]
Эти две статьи — одно и то же. Normface решает проблему непоследовательного обучения и тестирования Sphereface за счет нормализации функций. Но смысла в марже нет. Можно сказать, что AM-softmax вводит маржу на основе Normface. Перейдем непосредственно к функции потерь:
Веса и функции здесь нормализованы.
Интуитивно, cos(θ)-m меньше, чем cos(θ), поэтому значение функции потерь больше, чем в Normface, поэтому возникает ощущение запаса.
m — гиперпараметр, контролирующий силу штрафа, чем больше m, тем сильнее штраф. Авторы рекомендуют m=0,35. Метод введения маржи здесь более щадящий, чем «щадящий» метод в Sphereface, который не только легко воспроизводится, но и дает хороший эффект без многих ухищрений по настройке параметров.
ArcFace [13]
По сравнению с AM-softmax разница заключается в том, как Arcface вводит маржу, функцию потерь:
На первый взгляд это то же самое, что и AM-softmax? Обратите внимание, что m находится в косинусе. В статье отмечается, что граница между признаками, полученными на основе упомянутой выше оптимизации, более совершенна и имеет более сильную геометрическую интерпретацию.
Однако есть ли проблема с введением маржи таким образом? Хорошо подумайте, должен ли cos(θ+m) быть меньше, чем cos(θ)?
Наконец, мы используем рисунок в статье, чтобы объяснить эту проблему, а также подведем итог части этой главы, посвященной классификации на основе маржи.
резюме
Это изображение взято из Arcface, Абсцисса - это угол между объектом и центром класса, а ордината - значение части молекулярного индекса функции потерь (независимо от s). Чем меньше значение, тем больше функция потерь.
Прочитав так много статей о распознавании лиц на основе классификации, я полагаю, у вас также возникло ощущение, что все, кажется, суетятся из-за функции потерь, или, точнее, все обсуждают, как спроектировать целевую логит-θ-кривую в приведенном выше фигура.
Эта кривая означает, как вы хотите оптимизировать выборки, которые отклоняются от цели, или, в зависимости от степени отклонения от цели, насколько штрафовать. Два момента, чтобы подвести итог:
1. Слишком сильные ограничения нелегко обобщить. Например, функция потерь Sphereface может удовлетворять требованию, чтобы максимальное расстояние внутри класса было меньше минимального расстояния между классами, когда m=3 или 4. В это время значение функции потерь велико, то есть целевые логиты малы. Но это не означает, что его можно обобщить на выборки за пределами обучающей выборки. Наложение слишком жестких ограничений ухудшит производительность модели и сделает обучение менее вероятным.
2. Важно выбрать, какие образцы оптимизировать. В статье Arcface указано, что слишком большое количество выборок θ∈[60°, 90°] может привести к несходимости обучения. Оптимизация выборок для θ ∈ [30°, 60°] может повысить точность модели, в то время как чрезмерная оптимизация выборок для θ ∈ [0°, 30°] не принесет значительного улучшения. Что касается образцов с большими углами, отклонение слишком далеко от цели, и принудительная оптимизация, вероятно, снизит производительность модели.
Это также отвечает на вопрос, оставленный в предыдущем разделе: кривая Arcface на приведенном выше рисунке поднимается назад, что не имеет значения и даже полезно. Потому что может быть бесполезно оптимизировать твердые образцы с большими углами. Это то же самое, что и полужесткая стратегия отбора проб в FaceNet.
Классификация на основе маржи Дальнейшее чтение
1. A discriminative feature learning approach for deep face recognition [14]
Предлагается центральная потеря, которая взвешивается и интегрируется в исходную потерю softmax. При сохранении центра евклидова космического класса расстояние внутри класса уменьшается, а различительная способность признака повышается.
2. Large-margin softmax loss for convolutional neural networks [10]
Предыдущая статья автора Sphereface, ненормированные веса, ввела поля в потерях softmax. Это также включает в себя детали обучения Sphereface.
Примечание: Идея II была написана Чен Чао.
Практический анализ
Основываясь на знаниях из предыдущих двух глав, я получил 99,47% результатов на lfw.Этот результат был обучен на Vggface2, без дедупликации с lfw, а также я не прошел через очень болезненный процесс настройки параметров.Это напрямую приводится функция потерь AM-softmax доход.
В этом процессе много подводных камней.В этой главе будут разобраны экспериментальные результаты и опыт предыдущего периода, а также даны ответы на некоторые вопросы, которые больше всего волнуют большинство инженеров при распознавании лиц.やりましょう!
адрес проекта:
Содержит код для воспроизведения всех экспериментальных результатов
Стандартная система распознавания лиц включает эти ссылки: Обнаружение лиц и обнаружение характерных точек -> выравнивание лиц -> распознавание лиц.
Обнаружение лиц и обнаружение ориентиров
В настоящее время самым популярным распознаванием лиц и ориентиров являетсяMTCNN[7], но MTCNN иногда не может обнаружить лица, а с другой стороны, обнаружение ориентиров недостаточно точно. Оба эти момента отрицательно повлияют на последующее выравнивание и идентификацию.
Кроме того, в статье COCO Loss [8] упоминается, что хороший метод обнаружения и выравнивания может достигать 99,75% только с softmax, что убивает результаты большинства последних статей. Более подробная информация приведена в выпуске Github [16] COCO Loss.
Кроме того, из-за разницы в производительности алгоритма выравнивания в статьях 2017 г. и позже больше внимания уделяется сравнению относительных экспериментальных результатов, чтобы устранить преимущества и недостатки, привносимые алгоритмом выравнивания, и сравнить Алгоритмы распознавания лиц различных компаний более интуитивно понятны.Он может легко достигать 99 на lfw.% выше также является причиной того, что относительные результаты теперь предпочтительны.
выравнивание лица
Что делает выравнивание лица, так это преобразует обнаруженное лицо и ориентир посредством геометрического преобразования, преобразует черты лица в относительно фиксированное положение на изображении и обеспечивает сильный априор.
Широко используемый метод выравнивания — преобразование подобия. Дополнительные методы преобразования и эксперименты см. в этой статье Zhihu [17].
Реализация кода автора:
Стоит изучить вопрос: действительно ли необходимо распознавание лиц и выравнивание?В реальных приложениях часто бывают случаи, когда ориентир лица не может быть обнаружен, а преобразование подобия нельзя использовать без ориентира.
Есть также связанные исследования по этому вопросу, с использованиемSpatial Transform Network[9] «Пусть сеть сама изучит выравнивание», ссылка на документ.End-to-End Spatial Transform Face Detection and Recognition. Прогресс исследований в этой области недостаточен, поэтому процесс обнаружения->выравнивания все еще используется в большинстве случаев в реальной системе.
распознавание лица
Можно сказать, что большинство проблем в проектах по распознаванию лиц — это проблемы с распознаванием лиц и выравниванием. Разрыв между моделями распознавания менее выражен. Однако в процессе обучения AM-softmax все еще возникают заметные проблемы.
Resface20, предложенный в Spheraface, также используется в AM-softmax,точно так жеВ случае репродукции она может достигать только 94% на lfw.
Условия, которые могут быть установлены в TensorFlow, следующие:
Adam, no weight decay, use batch normalization.
Соответствует исходной конфигурации:
Momentum, weight decay, no batch normalization.
И обнаружил в эксперименте: Ни один оптимизатор, кроме Адама, не может добиться нужного эффекта, что может быть причиной разницы в базовой реализации разных фреймворков. статья используется TensorFlow, это нормально, что выводы разные.
Еще один момент, resnet-inception-v1 в Sandberg FaceNet был перемещен для применения AM-softmax на lfw, и результат не достиг 97%, что является моментом, который не совсем понятен в процессе.
Из других работ, если нет проблем с выделением потерь, то не должно быть существенной разницы в производительности таких структур, как реснет-начало, реснет разной глубины и даже мобайл-нет, сжатие и т.п. (по крайней мере в случае с AM-softmax должно быть до 99%).
Кроме того, прямое применение Arcface невозможно, и требуются дополнительные эксперименты.
Наконец, что касается примечательного момента в коде Сандберга, он определяет train_op в функции facenet.train().Если вы внимательно прочитаете эту функцию, вы обнаружите, что все сетевые параметры в коде Сандберга не обновляются после каждого обновления градиента.значение, но использовать скользящее среднее как фактическое значение параметра сети.
Именно по этой причине Сандберг даже не дал значение «is_training» заполнителю в конфигурации параметра batch_norm, а по умолчанию использовал режим локальной статистики как для обучения, так и для теста.
Такое использование batch_norm было бы неправильным, если бы не тот факт, что все параметры использовали скользящее среднее. О качестве реализации Сандберга можно судить только по экспериментальным результатам.
Если вы хотите использовать сетевые параметры и пакетную норму в обычном режиме, вместо использования параметров скользящего среднего и «is_training» для всего процесса, вам нужно всего лишь заменить функцию facenet.train() обычным оптимизатором, а затем вручную над «is_training» batch_norm в заполнитель для обработки. Подробности см. в моей реализации AM-softmax.
Спасибо, что дочитали до конца, закончим сюжет TensorBoard!
использованная литература
[1] F. Schroff, D. Kalenichenko, and J. Philbin. Facenet: A unified embedding for face recognition and clustering. In Proc. CVPR, 2015.
[2] Y. Sun, X. Wang, and X. Tang. Deep learning face representation by joint identification-verification. CoRR, abs/1406.4773, 2014.
[3] O. M. Parkhi, A. Vedaldi, and A. Zisserman. Deep face recognition. In BMVC, 2015
[4] A. Hermans, L. Beyer, and B. Leibe. In defense of the triplet loss for person re-identification. arXiv preprint arXiv:1703.07737, 2017
[5] Wu, C. Manmatha, R. Smola, A. J. and Krahenb uhl, P. 2017. Sampling matters in deep embedding learning. arXiv preprint arXiv:1706.07567
[6] W. Liu, Y. Wen, Z. Yu, M. Li, B. Raj, and L. Song. Sphereface: Deep hypersphere embedding for face recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, 2017
[7] Zhang, K., Zhang, Z., Li, Z., Qiao, Y.: Joint face detection and alignment using multi-task cascaded convolutional networks. arXiv preprint, 2016
[8] Yu Liu, Hongyang Li, and Xiaogang Wang. 2017. Learning Deep Features via Congenerous Cosine Loss for Person Recognition. arXiv preprint arXiv:1702.06890, 2017
[9] M. Jaderberg, K. Simonyan, A. Zisserman, and K. Kavukcuoglu. Spatial transformer networks. In NIPS, 2015.
[10] W. Liu, Y. Wen, Z. Yu, and M. Yang. Large-margin softmax loss for convolutional neural networks. In ICML, 2016.
[11] F. Wang, W. Liu, H. Liu, and J. Cheng. Additive margin softmax for face verification. In arXiv:1801.05599, 2018.
[12] CosFace: Large Margin Cosine Loss for Deep Face Recognition
[13] Deng, J., Guo, J., Zafeiriou, S.: Arcface: Additive angular margin loss for deep face recognition. In: Arxiv preprint. 2018
[14] Y. Wen, K. Zhang, Z. Li, and Y. Qiao. A discriminative feature learning approach for deep face recognition. In ECCV, 2016.
[15] Y. Liu, H. Li, and X. Wang. Rethinking feature discrimination and polymerization for large-scale recognition. arXiv:1710.00870, 2017.
[16] GitHub.com/поклонники науки…
[17] zhuanlan.zhihu.com/p/29515986