Введение 3
Глава 1. Обзор алгоритмов для распознавания лиц 5
1.1 Особенности задачи распознавания лиц 5
1.2 Нейронные сети 7
1.3 Метод гибкого сравнения на графах 9
1.4 Метод Виола-Джонса 11
1.4.1 Интегральное представление изображений 12
1.4.2 Признаки Хаара 14
1.4.3 Обучение классификатора 15
1.4.4 Бустинг и разработка AdaBoost 16
Глава 2. Обзор средств для разработки программного продукта 20
2.1 Библиотека OpenCV 21
2.2 Среда разработки MathWorks MATLAB 22
2.3 Выбор наиболее подходящего средства разработки 24
Глава 3. Практическая часть 25
3.1 Алгоритм программы 25
3.2 Реализация метода Виола-Джонса 26
3.3 Расчёт параметров лица 32
3.4 Сохранение данных 34
3.5 Корреляционная функция 35
Заключение 39
Список литературы 40
Приложение
Проблема формализации и автоматизации процесса распознавания человеческих лиц была затронута еще на самых ранних стадиях развития систем распознавания образов. Первые работы по данной тематике появились еще в 50-60-е годы ХХ века. Однако именно в течение последнего десятилетия количество научных исследований и публикаций по данной тематике выросло в несколько раз, что свидетельствует о возрастании актуальности этой проблемы. Это объясняется тем, что в связи со значительным ростом вычислительной мощности ЭВМ и удешевлением их эксплуатации открылись новые возможности применения вычислительной техники в самых различных сферах, и соответственно появилось множество прикладных задач, требующих своего скорейшего разрешения [1].
Существует несколько подходов к решению задачи распознавания лиц, основанных на методах радиофизики: интегральные методы, теория графов, нейросетевые модели. В выпускной квалификационной работе для исследования были выбраны три алгоритма: метод гибкого сравнения на графах, нейронные сети и метод Виола-Джонса. Каждый из этих алгоритмов реализует отличный от других подход к распознаванию, имеет свои преимущества, недостатки и ограничения применимости.
Целью дипломной работы является разработка программы, в котором будет реализован один из методов распознания лиц на изображении и поиск одинаковых лиц.
Необходимо решить следующие задачи:
• Изучить существующие подходы для распознавания лиц;
• Изучить методы, применяемые в алгоритмах распознавания лиц;
• Научиться основам языка программирования matlab;
• Реализовать метод Виола-Джонса.
• Реализовать поиск одинаковых лиц в базе из 50 фотографий.
При выполнении дипломной работы были изучены следующие алгоритмы, применяемые для распознавания лиц: метод главных компонент, нейронная сеть и метод Виола-Джонса. Алгоритмы были проанализированы на предмет вычислительной сложности, а также возможности решения дополнительных задач, зависящих от особенностей изображения лица.
Разработана программа и база данных фотографий, содержащие необходимый функционал и информацию для проведения исследований работы алгоритма распознания лиц на изображении, различных наборах обучающих и тестовых данных. В программе реализован алгоритм распознавания лиц - метод Виола Джонса.
Программа в реальном времени производит анализ из базы 50 фотографий, осуществляет поиск лица, глаз и губ, выделяя искомые объекты геометрическими фигурами. Также рассчитывает расстояние между этими объектами, сохраняя их в файл, после чего находит коэффициент корреляции и выводит их на графике для нахождения одинаковых лиц.
Добился следующих результатов:
• Изучил существующие подходы для распознавания лиц;
• Изучил методы, применяемые в алгоритмах распознавания лиц;
• Научился основам языка программирования matlab;
• Реализовал метод Виола-Джонса;
• Реализовал поиск одинаковых лиц в базе из 50 фотографий;
В качестве развития данной работы можно рассматривать расширение функционала приложения путем построения 3D модели в программе matlab.