Введение 3
Постановка задачи 3
1. Анализ поставленной задачи 5
2. Обнаружение лиц на изображении и их локализация 6
3. Нахождение ключевых точек 8
3.1 Scale Invariant Feature Transform 9
3.1.1 Нахождение особенных точек 9
3.1.2 Выделение ключевых точек 11
3.1.3 Определение ориентации точки 12
3.1.4 Составление дескрипторов 12
3.2 Speed Up Robust Features 13
4. Нейронная сеть 15
4.1 Ознакомление с алгоритмом 15
4.2 Нейрон 15
4.3 Слой нейронов 17
4.4 Обучение. Стохастический градиентный спуск 18
5. Валидация работы программы после обучения нейронной сети 21
Заключение 24
Список использованной литературы 25
Приложения 28
Исходный код программы
Распознавание лиц на сегодняшний день является одним из наиболее актуальных и популярных направлений компьютерного зрения. Количество областей, где применяются наработки по этому направлению, увеличиваются с каждым днем. Это и подсчет уникальных посетителей в торговых центрах, и обеспечение системы защиты на объектах с ограниченным доступом, и поиск подозреваемых в преступлениях среди прохожих по уличным камерам видео-наблюдения, и многие другие прикладные задачи.
Сегодня известно несколько методов распознавания лиц и объектов в принципе, в том числе метод главных компонент [15], скрытые марковские модели [16] и др. Они используют статистические параметры изображения, сокращают размерность векторного представления изображения, сохраняя отличительные параметры распознаваемого объекта. Но, пожалуй, самым известным и наиболее результативным подходом является применение нейронных сетей [7, 17]. Нейронные сети получили очень широкое применение во многих областях машинного обучения. В компьютерном зрении эта модель применяется для распознавания объектов, классификации и кластеризации изображений, а также ряда других задач.
Постановка задачи
В данной выпускной квалификационной работе рассматривается задача распознавания лиц на изображении и классификация их биометрических данных, таких как: пол, возраст, степень улыбки, с помощью нейронной сети [8].
Чаще всего для распознавания объектов на изображениях используют сверточную нейронную сеть [9,10]. Она принимает в качестве входных данных все изображение в виде вектора , состоящего из всех пикселей изображения.
В дипломной работе рассмотрено и реализовано решение для задачи распознавания лиц и определение их биометрических данных, являющейся крайне актуальной в настоящее время, так как находит применение во многих областях. Применен собственный подход поиска ключевых точек в выстраивании процесса обучения нейронной сети, позволяющий его контролировать. Для оценки скорости обучения с использованием описанного в работе подхода с поиском ключевых точек в сравнении с обучением классической для распознавания изображений сверточной нейронной сети необходимо провести отдельное исследование, но предварительные субъективные оценки дают надежду на получение улучшенных характеристик при обучении сети с использованием поиска ключевых точек.
Основные моменты, реализованы в ВКР. Для обнаружения лиц и их локализации на изображениях используется признаки Хаара в алгоритме Виолы-Джонса (библиотека OpenCV). Для нахождения ключевых точек используется реализация детектора SIFT (библиотека OpenCV). Для построения и обучения многослойной нейронной сети реализованы классы, приведенные в Приложении.
Вывод: все поставленные задачи были успешно выполнены. Исследование в рамках выпускной квалификационной работы успешно завершено.