ВВЕДЕНИЕ 3
1 ОБЩИЕ ПРИНЦИПЫ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ ЛИЦ 5
1.1 Этапы распознавания изображений лиц 5
1.2 Предварительная обработка изображений 5
1.3 Детектирование лица 6
1.4 Распознавание лица 11
2 ОПИСАНИЕ АЛГОРИТМОВ РАСПОЗНАВАНИЯ 12
2.1 Алгоритм распознавания Eigenfaces 12
2.2 Алгоритм распознавания Fisherfaces 16
2.3 Алгоритм распознавания LBPH 18
3 БИБЛИОТЕКА МАШИННОГО ЗРЕНИЯ OPENCV 21
3.1 Назначение библиотеки 21
3.2 Изображения и видео 21
3.3 Обработка изображений 23
3.4 Детектирование 25
3.5 Распознавание 26
4 РАЗРАБОТКА ПРОГРАММЫ РАСПОЗНАВАНИЯ ЛИЦ 30
4.1 Описание программы 30
4.1.1 Функции программы 30
4.1.2 Описание режимов работы программы 30
4.1.3 Описание Си-функций программы 35
4.2 Результаты работы программы и их анализ 38
ЗАКЛЮЧЕНИЕ 43
СПИСОК ЛИТЕРАТУРЫ 45
ПРИЛОЖЕНИЕ - ТЕКСТ ПРОГРАММЫ
На сегодняшний день идентификация субъекта является неотъемлемой процедурой практически любой информационной системы, так как позволяет обеспечить конфиденциальность, целостность и доступность информации. Биометрические данные человека, ввиду их уникальности, представляют собой довольно надёжный идентификатор. Таким образом, разработка программного обеспечения, способного определять личность человека путём анализа его биометрических данных, и при этом обеспечивать оптимальное соотношение между точностью и вычислительной стоимостью алгоритма уже не одно десятилетие является актуальной темой для исследований. Один из биометрических признаков, широко используемых в задачах идентификации - человеческое лицо. Передать его особенности можно посредством изображения.
Распознавание изображений может использоваться в различных сферах человеческой жизни. В частности, распознавание изображений для задач идентификации может применяться в аэропортах при прохождении пограничного контроля, в общественных местах для поиска преступников по записям камер наблюдения, и, конечно, в качестве составляющей системы контроля доступа к какому-либо объекту, например, информации.
Немаловажной проблемой является и выбор оптимального алгоритма распознавания. Так как быстродействие и надёжность алгоритма имеет решающее значение в системах распознавания лиц, особенно в случаях, когда речь идёт о безопасности человека.
Цель работы - разработка программного обеспечения для распознавания субъектов по фотографии лица на основе библиотеки OpenCV.
Поставленная цель потребовала решения следующих задач:
1) изучение средства разработки ПО на языке Си++, включая среду разработки QtCreator, библиотеку Qt и компилятор gcc;
2) изучение основных принципов обработки и распознавания изображений, а также библиотеки машинного зрения OpenCV 3.3;
3) разработка программы, осуществляющей идентификацию субъекта по фотографии на основе нескольких алгоритмов распознавания;
4) создание двух баз фотографий субъектов:
1) база 1 предназначена для обучения моделей распознавания и тестирования качества распознавания алгоритмов;
2) база 2 содержит изображения посторонних субъектов (т.е. отсутствующих в обучающем наборе изображений) и предназначена для тестирования ошибки второго рода алгоритмов.
5) тестирование разработанной программы и анализ результатов её работы.
1. Изучены средства разработки ПО на языке Си++, включая среду разработки QtCreator, библиотеку Qt и компилятор gcc, а также основные принципы обработки и распознавания изображений и библиотека машинного зрения OpenCV.
2. Разработана программа на языке Си++, реализующая следующие функции:
1) предварительная обработка изображений;
2) загрузка изображений и соответствующих им меток с целью формирования обучающей выборки;
3) обучение модели распознавания лиц;
4) загрузка существующей модели;
5) детектирование лица на изображении;
6) распознавание лица на основе сформированной базы фотографий;
7) тестирование алгоритмов распознавания.
В программе предусмотрены следующие режимы работы:
1) распознавание лица с фотографии, сделанной на веб-камеру;
2) создание и обучение модели распознавания лиц;
3) тестирование моделей распознавания лиц разных алгоритмов.
3. Созданы две базы фотографий:
1) база 1 содержит 301 фотографию восьмерых субъектов, сделанных в условиях различного освещения и на разном фоне, и используется для обучения моделей распознавания и тестирования точности распознавания алгоритмов;
2) база 2 содержит 17 фотографий посторонних субъектов (т.е. отсутствующих в обучающем наборе изображений) и предназначена для тестирования ошибки второго рода алгоритмов.
4. Работа программы протестирована на трёх заложенных в ней алгоритмах:
1) Алгоритм Eigenfaces показывает точность распознавания 79%, но ошибка второго рода растёт линейно с увеличением порога распознавания и составляет более 50%.
2) Алгоритм Fisherfaces достигает точности распознавания в 90%, однако линейный рост ошибки второго рода также присутствует и превышает 50%.
3) Алгоритм LBPH демонстрирует точность распознавания 98%. Ошибка второго рода имеет единственный резкий скачок, что позволяет точно определить оптимальный порог распознавания. Так, при пороге распознавании, равном 100, ошибка распознавания составляет всего 5%. Выбор данного порога распознавания является наиболее оптимальным решением, так как позволяет сохранить точность распознавания на уровне 75%.
1 Bradski G., Kaehler A. Learning OpenCV 3.USA: O’Reilly Media, 2017. 1255 с.
2 Методы компьютерной обработки изображений / Под ред. В.А. Сойфера. - 2-е изд., испр. - М.: ФИЗМАТЛИТ, 2003. - 784 с.
3 Интерполяция цифрового изображения [Электронный ресурс]: URL: http://www.cambridgeincolour.com/ru/tutorials-ru/image-interpolation.htm(дата обращения: 03.06.2018).
4 Viola P., Jones M. Rapid Object Detection using a Boosted Cascade of Simple Features / Computer Vision and Pattern Recognition. - USA: Victor Graphics, 2001. - С. 511 - 519.
5 Наумов Н. Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц [Электронный ресурс] // Хабр: [сайт]. [2011]. URL: https://habrahabr.ru/post/133826/(дата обращения: 03.06.2018).
6 Константинов Д. Алгоритм AdaBoost [Электронный ресурс] //
MachineLearning.ru[сайт]. [2010]. : URL: http://machinelearning.ru/wiki/index.php?title=AdaBoost(дата обращения: 03.06.2018).
7 Кайгородов В. Р. Курс Аналитической геометрии и линейной алгебры: учебное пособие. - Казань: КГУ, 1985. - 238 с.
8 Компьютерное зрение. Современный подход.: Пер. с англ. - М.: Издательский дом «Вильямс», 2004. - 928 с.
9 Turk M., Pentland A. Eigenfaces for Recognition // Journal of Cognitive Neuroscience. 1991. №1. С. 71-86.
10 Adini Y., Moses Y, Ullman S. Face recognition: the problem of compensating for changes in illumination direction // IEEE Transactions on Pattern Analysis and Machine Intelligence. 1997. №7. С. 721-732.
11 Belhumeur P., Hespanha J., Kriegman D. Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection // IEEE Transactions on Pattern Analysis and Machine Intelligence. 1997. №7. С. 711 - 720.
12 Ильин В. А., Позняк Э. Г. Линейная алгебра: Учеб. Для вузов - 4-е изд. - М.: Наука. Физматлит, 1999 - 296 с.
13 Ahonen T. Face Recognition with Local Binary Patterns / T. Ahonen, A. Hadid, M. Pietikainen // Computer Vision - ECCV 2004. - Berlin: Springer-Verlag, 2004. - p. 469-481.