Scientific journal
Научное обозрение. Педагогические науки
ISSN 2500-3402
ПИ №ФС77-57475

STUDY WAYS TO IMPROVE THE PERFORMANCE THE FACE RECOGNITION SYSTEM

Katin O.I. 1 Goryanina K.I. 1 Donskoy D.Y. 1
1 Don state technical university
Speed and accuracy are a key requirement in the development of face recognition system using computer vision. However, an increase in accuracy leads to a decrease in performance. This paper describes a study of ways to improve the performance of an automatic system for face recognition. Solutions for embedded access control systems are described. The results of testing an automatic system using the OpenCV computer vision library and the built-in LBPHFaceRecognizer, which confirm the lack of accuracy for access control systems, are described. The advantages of the system based on the neural network are analyzed. The advantages and disadvantages of the algorithm proposed by the dlib library developers are considered. Recommendations are given to reduce the time spent on access control in the automatic face recognition system based on Raspberry Pi 2B. Improved performance is achieved by combining the best features and capabilities of the OpenCV and dlib libraries. The use of the face search algorithm in the image using Haar cascades instead of the algorithm built into the dlib library provides acceleration of the face search process by fifteen times. The result of the study is reducing the processing time of each frame of the video.
automation
face recognition
access control
neural networks

При разработке систем распознавания лиц с помощью компьютерного зрения ключевыми требованием являются быстродействие и точность. Однако, увеличение точности влечет за собой снижение быстродействия. Как правило, задача распознавания лиц применяется в системах безопасности или наблюдения.

В настоящей статье будет рассмотрена система автоматического контроля индивидуального доступа. В данном случае предполагается, что требуется определить личность человека, находящегося непосредственно перед камерой. В таких условиях может быть обеспечено наилучшее качество съемки, так как существует возможность четко определить зону контроля для человека, создать в ней оптимальное освещение и минимизировать влияние посторонних факторов. Большая часть этих решений – аппаратная.

Основное внимание следует сосредоточить на программной части системы. Наиболее распространенным и точным решением является применение нейронной сети, которая имеет оптимальную структуру и обучена на большом наборе качественных данных. Иным способом является применение распознавателей, которые встроены в различные библиотеки компьютерного зрения. Например, библиотека OpenCV содержит 3 распознавателя [1]. Для их обучения также необходим набор данных. Такой подход значительно уступает в точности специально разработанным и обученным нейронным сетям [2].

Во время разработки системы контроля доступа были проведены тесты с использованием встроенного в OpenCV распознавателя LBPHFaceRecognizer.

Число фотографий, шт.

5

10

25

50

100

250

500

750

1000

Точность, %

43.2

46.5

50.3

54

63.7

68.1

72.6

75.2

78.6

Результаты показали, что для достижения высокой точности необходим значительный объем качественных и однородных данных для обучения. При использовании 1000 фотографий, максимальная точность составила 78.6%. Дальнейшее увеличение базы фотографий не привело к значительному повышению точности. Данную точность можно считать достаточной для тривиальных задач, но ее недостаточно для создания безопасной системы контроля доступа [3, 4].

Было принято решение использовать алгоритм распознавания на базе библиотеки dlib. В его основе лежит нейронная сеть, обученная на наборе из 3-х миллионов фотографий. Заявленная разработчиком точность составляет 99.38% [5, 6]. В рассматриваемом случае, к системе предъявляются следующие требования: высокая точность определения личности человека, проверка наличия доступа в соответствии с базой сотрудников, максимально быстрая реакция системы. Специфика данного решения заключается в работе со специфическим типом данных библиотеки dlib. Для распознавания лица необходимо провести два предварительных этапа.

Первый этап – определение региона интереса, области на кадре видео, в которой содержится лицо человека. В библиотеке dlib присутствует встроенный детектор лиц. При его использовании время обработки фотографии сильно увеличивается с увеличением разрешения кадра.

Второй этап – размещение меток на лице. Существуют решения различной вычислительной сложности: 5 меток для одного лица, 68 меток и т.д.

Представленный разработчиком библиотеки dlib алгоритм работает с использованием 5 лицевых меток [5, 6]. Такое решение обладает достаточным быстродействием и не нуждается в замене.

Для уменьшения времени выполнения первого этапа было принято решение использовать встроенный в библиотеку OpenCV детектор лиц на основе каскадов Хаара [3]. Сравнительные тесты показали значительное уменьшение времени на поиск лиц на кадре.

Сам же процесс распознавания заключается в построении 128-мерного вектора, соответствующего человеку на кадре.

ka1.wmf

где ka2.wmf.

При этом для разрешения доступа требуется, чтобы Евклидово расстояние dab между полученным вектором ka3.wmf и любым вектором ka4.wmf, содержащимся в базе сотрудников, было меньше 0,6 [5, 6].

ka5.wmf

где i – порядковый номер признака; n = 128; xai и xbi – координаты векторов a и b по признаку i.

Cравнение быстродействия детекторов лиц при использовании Raspberry Pi 2B и Pi Cam v2.1

Разрешение кадра

Детектор лиц dlib

Детектор лиц на основе каскадов Хаара

1920х1080

4.8 с

0.7 с

1280х1024

2.7 с

0.29

1024х768

1.8 с

0.12 с

800х600

0.9 с

0.08 с

640х480

0.6 с

0.05 с

То есть нейронная сеть построена по принципу соответствия каждому человеку уникального 128-мерного вектора. Условие, предъявляемое к Евклидовому расстоянию, позволяет учесть некоторые отклонения, вызванные разным освещением, качеством изображения и положением лица [7]. Время распознавания незначительно изменяется при изменении разрешения.

Там образом, оптимальный набор способов реализации этапов распознавания следующий: применение детектора лиц на основе каскадов Хаара, определение 5 лицевых меток, применение нейронной сети для построения 128-мерного вектора.

Для создания компактной системы с собственным вычислителем была использована Raspberry Pi 2B. Ведется обработка видео с разрешением 1024х768. При использовании встроенного в библиотеку OpenCV детектора лиц удалось снизить время выполнения первого этапа с 1.8 до 0.12 секунд. Второй этап выполняется за 0.04 секунды. Наиболее долгим этапом является построение 128–ми мерного вектора, его выполнение занимает 2.2 секунды.

Суммарное время обработки кадра и принятия решения о разрешении доступа не превышает 3 секунды. Очевидно, что вычислительные возможности Raspberry Pi 2B ограничены. В определенных условиях может потребоваться большее быстродействие. Тогда, уместным будет использование более производительной Raspberry Pi 3B+ или других интегрируемых решений. Наиболее быстрыми будут системы с производительными графическими процессорами или специализированными модулями для работы с нейронными сетями, например, Intel Movidius.