ВВЕДЕНИЕ 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%.