Модели и платформы ИИ

Глубокое распознавание лиц с помощью DeepFace

mm

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

Чтобы преодолеть этот разрыв и достичь человеческого уровня точности, Meta представила DeepFace,.framework для распознавания лиц. Модель DeepFace обучена на большом наборе данных лиц, который существенно отличается от наборов данных, используемых для создания эталонных тестов, и она имеет потенциал превзойти существующие фреймворки с минимальными адаптациями. Кроме того, фреймворк DeepFace производит компактные представления лиц по сравнению с другими системами, которые производят тысячи особенностей внешности.

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

Традиционный конвейер современных фреймворков распознавания лиц включает четыре стадии: обнаружение, выравнивание, представление и классификация. Фреймворк DeepFace использует явную 3D-модель лица для применения кусочной трансформации и использует девятислойную глубокую нейронную сеть для получения представления лица. Фреймворк DeepFace пытается сделать следующие вклады

  1. Разработать эффективную архитектуру глубокой нейронной сети, которая может использовать большой набор данных для создания представления лица, которое можно обобщить на другие наборы данных.
  2. Использовать явную 3D-модель для разработки эффективной системы выравнивания лиц.

Понимание работы модели DeepFace

Выравнивание лиц

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

Хотя выравнивание является наиболее популярным методом для решения проблемы распознавания лиц в неограниченной форме, нет идеального решения на данный момент. 3D-модели также используются, но их популярность существенно снизилась в последние годы, особенно при работе в неограниченной среде. Однако, поскольку человеческие лица являются 3D-объектами, это может быть правильным подходом, если использовать его правильно. Модель DeepFace использует систему, которая использует фидуциальные точки для создания аналитической 3D-модели лица. Эта 3D-модель затем используется для искажения лица в 3D-фронтальную форму.

Кроме того, как и большинство методов выравнивания, выравнивание DeepFace также использует детекторы фидуциальных точек для направления процесса выравнивания. Хотя модель DeepFace использует простой детектор точек, она применяет его несколько раз для уточнения выходных данных. Регрессор с поддержкой векторов или SVR, обученный для предвзятых конфигураций точек, извлекает фидуциальные точки из описателя изображения на каждой итерации. Описатель изображения DeepFace основан на гистограммах LBP, хотя он также учитывает другие особенности.

2D-выравнивание

Модель DeepFace начинает процесс выравнивания, обнаруживая шесть фидуциальных точек внутри обнаруженного корпуса, центрированного в середине глаз, рта и носа. Они используются для поворота, масштабирования и перевода изображения в шесть якорных мест, и повторяют искаженное изображение до тех пор, пока не будет видно никаких изменений. Суммарная трансформация затем генерирует 2D-выровненный корпус. Метод выравнивания довольно похож на тот, который используется в LFW-a, и он использовался на протяжении многих лет в попытке повысить точность модели.

3D-выравнивание

Чтобы выровнять лица с вращениями вне плоскости, фреймворк DeepFace использует обобщенную 3D-форму и регистрирует 3D-камеру, которая может быть использована для обертки 2D-выровненного корпуса в 3D-форму в его плоскости изображения. В результате модель генерирует 3D-выровненный вариант корпуса, и это достигается путем локализации дополнительных 67 фидуциальных точек в 2D-выровненном корпусе с помощью второго регрессора с поддержкой векторов или SVR.

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

Фронтализация

Поскольку не жесткие деформации и полные проекции перспективы не моделируются, приспособленная 3D-2D-камера служит только приближением. В попытке уменьшить коррупцию важных факторов, несущих идентификацию, в окончательное искажение модель DeepFace добавляет соответствующие остатки к x-y-компонентам каждой справочной фидуциальной точки. Такое расслабление для цели искажения 2D-изображения с меньшими искажениями идентификации является правдоподобным, и без него лица были бы искажены в одну и ту же форму в 3D, теряя важные дискриминационные факторы в процессе.

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

  1. Обнаруженное лицо с 6 фидуциальными точками.
  2. Индуктивно 2D-выровненный корпус.
  3. 67 фидуциальных точек на 2D-выровненном корпусе.
  4. Справочная 3D-форма, преобразованная в 2D-выровненный корпус изображения.
  5. Триангуляция с учетом 3D-2D-камеры.
  6. 67 фидуциальных точек, индуцированных 3D-моделью.
  7. 3D-выровненный вариант окончательного корпуса.
  8. Новый вид, сгенерированный 3D-моделью.

Представление

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

Архитектура DNN и обучение

DNN DeepFace обучается на многоклассовой задаче распознавания лиц, которая классифицирует идентификатор лица на изображении.

Вышеуказанная фигура представляет общую архитектуру модели DeepFace. Модель имеет свертку (C1) с 32 фильтрами размером 11x11x3, которая подается 3D-выровнено-3-канальному RGB-изображению размером 152×152 пикселей, и это приводит к 32 картам особенностей. Эти карты особенностей затем подают в слой максимального пулинга или M2, который берет максимальное значение по 3×3 пространственным окрестностям, и имеет шаг 2, отдельно для каждого канала. Следующий за ним является еще один свертка (C3), который состоит из 16 фильтров размером 9x9x16. Основная цель этих слоев – извлечь низкоуровневые особенности, такие как текстура и простые края. Преимущество использования слоев максимального пулинга заключается в том, что оно делает выходные данные, сгенерированные свертками, более устойчивыми к локальным переводам, и когда они применяются к выровненным лицам, они делают сеть намного более устойчивой к ошибкам регистрации на небольшом масштабе.

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

Следующие слои L4, L5 и L6 подключены локально, и как свертка, они применяют банк фильтров, где каждое место в карте особенностей учитывает уникальный набор фильтров. Поскольку разные области в выровненном изображении имеют разные локальные статистики, это не может сохранить пространственную стационарность. Например, область между бровями и глазами имеет более высокую дискриминационную способность по сравнению с областью между ртом и носом. Использование локально подключенных слоев влияет на количество параметров, подлежащих обучению, но не влияет на вычислительную нагрузку во время извлечения особенностей.

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

Наконец, верхние слои полностью подключены, и каждый выходной блок подключен ко всем входам. Два слоя могут захватить корреляции между особенностями, захваченными в разных частях изображений лиц, таких как положение и форма рта, и положение и форма глаз. Выход первого полностью подключенного слоя (F7) будет использован сетью как сырое представление лица. Модель затем подает выход последнего полностью подключенного слоя (F8) в K-шаговый softmax, который производит распределение по меткам классов.

Наборы данных

Модель DeepFace использует комбинацию наборов данных, причем набор данных Social Face Classification или SFC является основным. Кроме того, модель DeepFace также использует набор данных LFW и набор данных YTF.

Набор данных SFC

Набор данных SFC обучен на коллекции изображений из Facebook, и он состоит из 4,4 миллиона помеченных изображений 4030 человек, причем у каждого из них 800-1200 лиц. Последние 5% изображений лиц из набора данных SFC для каждого идентификатора оставлены для тестирования.

Набор данных LFW

Набор данных LFW состоит из 13 323 фотографий более пяти тысяч знаменитостей, которые затем делятся на 6000 пар лиц по 10 разделам.

Набор данных YTF

Набор данных YTF состоит из 3425 видеороликов 1595 субъектов, и это подмножество знаменитостей в наборе данных LFW.

Результаты

Без фронтализации и при использовании только 2D-выравнивания модель достигает точности только около 94,3%. Когда модель использует центральный корпус обнаружения лица, она не использует никакого выравнивания, и в этом случае модель возвращает точность 87,9%, потому что некоторые части области лица могут выйти за пределы центрального корпуса. Чтобы оценить дискриминационную способность представления лица в изоляции, модель следует настройке без надзора для сравнения внутреннего продукта нормализованных особенностей. Это увеличивает среднюю точность модели до 95,92%.

Вышеуказанная модель сравнивает производительность модели DeepFace по сравнению с другими современными моделями распознавания лиц.

Вышеуказанная картина изображает кривые ROC на наборе данных.

Вывод

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

"Инженер по профессии, писатель по сердцу". Кунал - технический писатель с глубокой любовью и пониманием ИИ и МО, посвященный упрощению сложных концепций в этих областях посредством своей увлекательной и информативной документации.