Что такое распознавание лиц?

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

Что такое трансферное обучение?

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

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

В этой архитектуре 13 уровней CRP (свертка, Relu, пул) и 3 полносвязных уровня.

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

Что такое предварительно обученная модель?

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

Что такое точная настройка?

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

  1. ускорить обучение
  2. преодолеть небольшой размер набора данных

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

Если новый набор данных очень велик, переобучите всю сеть с начальными весами из предварительно обученной модели.

В разработке собственного модельного подхода у нас в основном 4 шага:

Выберите Source → Develop Source Model → Reuse Model → Tune Model.

Часто используется другой тип трансферного обучения, предварительно обученная модель.

Выберите Source → Reuse Model → Tune Model.

Для распознавания лиц я использовал набор данных, который доступен в Интернете.

Набор данных представляет собой набор данных с 5 лицами знаменитостей, но вы можете собрать свой собственный набор данных, используя модель хааркаскад.

Здесь используется предварительно обученная модель VGG16. Эта модель создана Visual Geometry Group в Оксфордском университете, которая занимается разработкой очень глубоких сверточных сетей для крупномасштабного визуального распознавания.

Предварительно обученная модель, такая как VGG-16, представляет собой уже предварительно обученную модель на огромном наборе данных (ImageNet) с множеством разнообразных категорий изображений. Принимая во внимание этот факт, модель должна была изучить устойчивую иерархию вращения пространственных объектов и инвариант смещения относительно функций, изученных моделями CNN. Следовательно, модель, изучив хорошее представление функций для более миллиона изображений, принадлежащих к 1000 различным категориям, может выступать в качестве хорошего экстрактора признаков для новых изображений, подходящих для задач компьютерного зрения. Эти новые изображения могут никогда не существовать в наборе данных ImageNet или могут относиться к совершенно другим категориям, но модель все равно должна иметь возможность извлекать соответствующие элементы из этих изображений.

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

Прежде всего, мы импортируем модуль с помощью модуля Keras Python.

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

Так как нам не нужно переобучать уже обученный слой, мы их заморозим

Из приведенного выше изображения можно отметить, что все слои теперь заморожены, мы можем добавить наши собственные слои поверх ранее доступных слоев. Здесь добавлены два слоя Dense и один слой сглаживания с Dropout.

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

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

Пришло время обучить нашу модель, мы используем здесь оптимизатор RMSprop и сохраняем модель как image_celeb.h5

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

Модель загружается и сохраняется как классификатор.

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

Полный код доступен в моем репозитории GitHub https://github.com/PallaviBhandari13/Face-Recognition_VGG16