Машинное обучение в задачах идентификации личности по изображению
Заказать уникальную курсовую работу- 38 38 страниц
- 0 + 0 источников
- Добавлена 25.05.2024
- Содержание
- Часть работы
- Список литературы
Теоретическая часть 5
Нейронные сети 5
Модель персептрона 5
Многослойная нейронная сеть. 8
Методы обучения 9
Сверточные нейронные сети 11
Методы обнаружения лиц 14
Каскады Хаара 15
Сверточные нейронные сети 17
Рекуррентные нейронные сети 18
Методы обнаружения лиц на основе геометри 19
Марковские модели 20
Методы распознавания лиц 21
Архитектура AlexNet 22
Архитектура VGG-16 23
Архитектура ResNet 24
Архитектура Inception v3 26
Полный алгоритм распознавания лиц 28
Практическая часть 30
Описание модели нейронной сети 30
Исходные данные для обучения 33
Результаты обучения модели 35
Вычислительный эксперимент 35
Заключение 37
Эта сеть является третьей версией архитектуры Inception, предназначенной для классификации изображений.Основная идея Inceptionv3 заключается в использовании модулей Inception, которые объединяют несколько операций свертки и пулинга в одном блоке. Каждый модуль Inception имеет несколько ветвей, которые выполняют свертку с различными размерами ядер и объединяют результаты вместе. Например, первый блок Inception в Inceptionv3 выполняет свертку с ядром размером 3x3, свертку с ядром размером 5x5, свертку с ядром размером 1x1 и пулинг с ядром размером 3x3. Затем результаты каждой ветви конкатенируются и передаются на следующий блок Inception. Схема одного блока представлена на рисунке 14.Рисунок 14. Схема блока Inception.Inceptionv3 также использует другие методы для улучшения качества классификации, такие как batchnormalization (нормализация по батчам), которая помогает ускорить обучение и уменьшить переобучение, а также использование регуляризации весов и dropout (случайного отключения некоторых нейронов) для уменьшения эффекта переобучения. Архитектура Inceptionv3 имеет более 40 слоев и содержит около 23,8 миллиона обучаемых параметров. Она была обучена на наборе данных ImageNet и достигла точности классификации изображений в 77,9%, что является лучшим результатом на момент ее создания.Полный алгоритм распознавания лиц Теперь мы имеем все составные части для алгоритма распознавания лиц по изображению. На вход подается изображение произвольного размера предположительно содержащее лицо, а алгоритм определяет на кого из заранее известных людей похож представленный человек. Пример работы алгоритма распознавания лиц представлен на рисунке 15. Рисунок 15. Пример работы системы распознавания лиц.Алгоритм состоит из следующих шагов:Выделение области изображения, содержащей лицо Преобразование изображения лица в вектор (тензор) признаков Поиск наиболее близкого вектора (тензора) признаков уже известных изображений. Первый шаг алгоритма может быть эффективно решен различными методами, описанными ранее. Основная сложность заключается именно в преобразовании изображения в вектор признаков. В качестве базового алгоритмы мы рассматриваем применение уже обученных моделей CNN без последних полносвязных слоев. Идея применения части слоев обученной CNN для решения новой задачи называется transferlearning и широко применяется на практике. Обычно к сверточным слоям добавляют несколько полносвязных слоев, подходящих для решения новой задачи и обучают только новую часть сети. Такой подход позволяет значительно сократить время обучения и повысить эффективность модели. В нашей же задаче нас интересуют именно сами признаки, которые выделяет сверточная часть нейросети, поэтому мы напрямую будем сравнивать трехмерные тензоры, полученные после применения CNN без полносвязных слоев. Такой подход обоснован тем, что сверточная часть нейросети предназначена для экстракции основных признаков изображения и взяв заранее обученную CNN (например на задаче классификации) мы можем получить тензор, содержащий основный характеристики изображения. Главным недостатком такого подхода является слабая обоснованность: у нас нет гарантии того, что все элементы полученного тензора будут описывать какой-то признак изображения, кроме того, не все признаки являются значимыми в контексте задачи распознавания лиц. Другими словами, на практике может оказаться, что часть полученного тензора характирезует нерелевантные для нашей задачи признаки. В следующей главе мы предложим модификацию этого подхода, основанную на дообучении сети по методу сиамских нейронных сетей.Практическая частьОписание модели нейронной сетиДля выделения лица на изображении будет использована модель каскадов Хаара. Для распознавания лица будет использована нейросеть на основе Xception (одна из версий ранее описанной архитектуры Inception v3). Архитектура Xception состоит из 36 сверточных слоев, которые являются последовательными блоками. Каждый блок состоит из нескольких сверточных слоев и нормализации. В отличие от других архитектур, в Xception используются только свертки 3x3, включая свертки внутри блоков и между ними. Это позволяет использовать меньше параметров и более эффективно использовать процессорное время.Особенностью Xception является использование модуля под названием SeparableConv2D. Он состоит из двух последовательных слоев: сверточного слоя с ядром размером 3x3 и слоя глубинного слияния. Сверточный слой применяется к каждому каналу входного тензора отдельно, а затем слой глубинного слияния объединяет результаты в один выходной тензор. Это позволяет уменьшить количество вычислений, поскольку операции свертки выполняются отдельно для каждого канала входного тензора. Архитектура Xception (рисунок 16) состоит из трех основных частей: Entry Flow, Middle Flow и Exit Flow.EntryFlow: Входной слой принимает изображение заданного размера и применяет несколько сверточных слоев с различными ядрами (3x3, 1x1) для извлечения признаков и уменьшения размерности изображения. Затем применяется блок разделенных сверток (depthwise separable convolutions), который состоит из двух последовательных сверточных слоев: сначала выполняется свертка для каждого канала изображения (depthwise convolution), а затем выполняется свертка с ядром 1x1 для комбинирования выходных каналов (pointwise convolution). Этот блок позволяет значительно уменьшить количество параметров в сети, уменьшить вычислительную сложность и улучшить точность.Middle Flow: Состоит из нескольких блоков разделенных сверток, которые повторяются несколько раз. Эти блоки помогают дальше извлекать признаки изображения с сохранением размерности.Exit Flow: Последний блок Entry Flow повторяется, но затем добавляются дополнительные сверточные слои для дополнительной обработки признаков и уменьшения размерности. Затем результат передается в глобальный пулинг (global average pooling), который сжимает пространственные размерности и выдает одномерный вектор признаков. После глобального пулинга используется полносвязный слой для классификации изображения на заданные классы.Рисунок 16.Архитектура модели Xception.Предобученная CNN будет возвращать тензор признаков, который будет сравниваться с векторами известных изображений и находить наиболее близкий по евклидовой метрике. Таким образом, описанный метод будет находить наиболее похожего человека из базы данных, при этом нет необходимости хранить в базе исходные изображения так как для работы методы достаточно иметь только тензор основных признаков.Как уже отмечалось в предыдущей главе, проблема базового метода заключается в том, что предобученная модель CNN может возвращать не только релевантные для нашей задачи признаки изобржения. Для экстракции только значимых признаков мы предлагаем добавить полносвязные слои и обучить их с использованием метода сиамских нейронных сетей. Суть метода заключается в том, что две копии одной и той же нейронной сети обрабатывают два входных объекта и вычисляют их векторные представления, которые затем сравниваются для выдачи ответа на заданную задачу.Архитектура сиамской нейронной сети состоит из двух идентичных нейронных сетей, которые разделяют веса и используют одинаковую архитектуру. Обычно используются сверточные или рекуррентные слои, но это может варьироваться в зависимости от задачи. Каждая сеть принимает на вход свой объект и возвращает его векторное представление. После этого вычисляется расстояние между полученными векторами и на основе этого расстояния производится бинарная классификация (являются ли представленные изображения лицом одного и того же человека). Архитектура сиамской нейронной сети представлена на рисунке 17.Рисунок 17. Принцип работы сиамских нейронных сетей.При этом такой подход не исключает применение transfer learning. Поэтому мы возьмем заранее обученную модель Xception, добавим к ней полносвязные слои и обучим веса этих слоев по модели сиамских нейронных сетей. Этот модифицированный метод позволяет выделить только релевантные признаки с помощью полносвязных слоев, что в теории должно повысить точность модели. Исходные данные для обучения В качестве данных для обучения модели был выбран Labeled Faces in the Wild (LFW) Dataset - это набор данных для задачи распознавания лиц, который содержит фотографии из интернета с изображениями лиц из разных контекстов и сцен. Датасет был создан в 2007 году и включает более 13,000 изображений из более чем 5,000 различных лиц. Пример изображений из набора исходных данных представлен на рисунке 18.Рисунок 18. Пример изображений из LFW Dataset (подписи не входят в датасет).Фотографии были собраны автоматически из интернета, поэтому в наборе данных присутствует разнообразие условий освещения, поз, углов обзора и качества изображений. Это делает датасет LFW одним из самых сложных наборов данных для задачи распознавания лиц.LFW Dataset содержит две версии изображений: оригинальные изображения и изображения с выравниванием. Изображения с выравниванием были предварительно обработаны с помощью алгоритма выравнивания лиц для того, чтобы лица были выровнены по определенным ориентирам (глазам и носу).Каждое изображение в LFW Dataset содержит метку, которая указывает на имя человека на изображении. Метки были собраны автоматически из интернета и могут содержать ошибки.LFW Dataset был широко использован в исследованиях в области распознавания лиц и сравнения алгоритмов распознавания лиц. Он также используется в качестве бенчмарка для оценки качества алгоритмов распознавания лиц в реальных условиях.Результаты обучения модели Модель CNN для модифицированного метода обучалась на 256 эпахах. На рисунке 19 показана история изменения основных метрик в процессе обучения. Как мы видим, примерно после 175 эпохи точность модели на тестовой выборке перестала изменяться. Это свидетельствует о том, что мы нашли локальный оптимум, обычно такое поеведение считается плохим так как нам скорее всего уже не получится выйти из этой точки и модель. Однако значение точности порядка $.93 мы считаем более чем удовлетворительным и поэтому считаем, что обучение прошло успешно. Более подробно эффективность моделей будет разобрана в следующей главе.Рисунок 19. Изменение функции ошибок и точности модели в процессе обучения.Вычислительный экспериментТеперь мы проведем вычислительный эксперимент для проверки точности разработанного метода распознавания лиц. Для этого из тестовой выборки было взято 256 триплетов изображений (два изображения одного человека и одно изображение другого) и проведена попытка отличить схожие лица от отличающихся. В результаты мы получили матрицу ошибок, представленную на рисунке 20.Рисунок 20. Матрица ошибок. Как мы видим, разработанный метод дает примерно одинаковое количество ложно положительных и ложно отрицательных ответов. Эта симметрия является прямым следствием того, что изначально CNN, была обучена на задаче классификации изображений.ЗаключениеВ данной работе были изучены основы машинного обучения, начиная от простых моделей, таких как персептрон, и продвигаясь к более сложным архитектурам, включая сверточные нейронные сети (CNN). Подробное описание каждого этапа позволило понять основные концепции и принципы работы моделей машинного обучения.Особое внимание уделено алгоритму распознавания лиц, который является одним из важных приложений машинного обучения в сфере компьютерного зрения. Подробное описание этого алгоритма позволило осознать сложность задачи идентификации лиц, а также методы, используемые для ее решения.В работе была представлена сиамская нейронная сеть, обученная для распознавания лиц. Этот вид нейронных сетей является мощным инструментом для работы с изображениями и позволяет достичь высокой точности в задачах идентификации лиц.В целом, исследование применения машинного обучения в задаче распознавания лиц позволило углубить понимание основных принципов работы моделей, а также их применимость в реальных приложениях. Полученные результаты могут быть полезны для дальнейших исследований в области компьютерного зрения и разработки систем идентификации лиц.