Оценка повышения достоверности распознавания лиц людей в DLIB за счет зашумления эталонного образа
Библиотека Dlib на основе глубокой нейронной сети позволяет эффективно детектировать и распознавать лица людей на изображениях. В целом, процесс распознавания лица выполняется по следующему обобщенному алгоритму:
- детектирование области лица на изображении;
- определение (расчет) признаков данного образа лица. В данной библиотеке вектор признаков состоит из 128 вещественных чисел, определяемых глубокой нейронной сетью;
- сравнение признаков эталонных и распознаваемого образов по критерию минимального расстояния между ними.
Таким образом, процесс распознавания сводится к поиску эталонного образа с минимальной метрикой расстояния от исходного образа, которая меньше определенного порогового значения (оценка порогового значения обычно составляет значение меньше 0.5).
Данный подход работает хорошо, если параметры изображения в эталонном и распознаваемом образе получены при схожих условиях. При отклонениях данных параметров возможны ошибки распознавания. Например, на рисунке 1 представлены 3 варианта фотографий одного человека, в которых метрики отличаются достаточно значительно: метрики отклонения между вариантам а) - б) и а)-в) составляют соответственно 0.145 и 0.33.
а) б) в)
Рисунок 1 – Варианты образов одного человека
Для снижения вероятности ошибки распознавания возможны следующие подходы:
- использование в качестве эталонов сразу M изображений лица человека, снятых в различных условиях и принятия решения на основе средних значений;
- использование в качестве дескриптора эталонного образа среднюю оценку векторов признаков, полученных в результате зашумления изображения.
Недостатком первого подхода является увеличение вычислительной нагрузки на распознавание лица. В частности, при хранении в базе данных информации о людях в количестве N, то потребуется вычислить M*N векторов признаков образов и найти среди них минимальную метрику с исходным. Второй подход позволяет уменьшить количество вычислений на этапе распознавания.
В данной работе производится оценка эффективности повышения достоверности распознавания лица за счет зашумления исходного образа.
В качестве критерия используется следующая формула:
где K- количество рассматриваемых людей;
davg.n.i – средняя оценка метрики расстояния различных фотографий i-го человека от зашумленного эталона;
davg.n.i – средняя оценка метрики расстояния различных фотографий i-го человека от исходного эталона.
Для получения зашумленных образов используется функция jitter_images, представленная в примере библиотеки dlib(http://dlib.net/dnn_face_recognition_ex.cpp.html):
На вход функция подается исходное изображение лица, а на выходе формируется вектор искаженных изображений. Для создания эффекта «дрожания» используется функция jitter_image библиотеки dlib, которая вносит небольшие изменения угла, масштаба или смещения. На рисунке 2 представлены 4 результата выполнения данной функции над одним и тем же изображением.
Рисунок 2 – Результаты зашумления изображения
Средние оценки векторов признаков искаженных образов осуществляется следующим выражением:
matrix<float,0,1> face_descriptor = mean(mat(net(jitter_image(faces[0]))));
Для оценки эффективности схемы использования в качестве дескриптора средней оценки векторов признаков зашумленных образов проводится следующий эксперимент:
- для каждого человека рассматривается средняя оценки метрики расстояния эталонной фотографии с 4 другими его вариантами;
- для каждого человека рассматривается средняя оценки метрики расстояния зашумленного эталона с 4 другими его вариантами.
Изображения взяты из общедоступного набора данных, состоящим из 450 фотографий различных людей (http://www.vision.caltech.edu/Image_Datasets/faces/faces.tar). В работе рассматривались фотографии 19 людей из следующего набора. В таблице 1 представлены результаты экспериментов.
Таблица 1 – Результаты вычислительного эксперимента