Электронный научный журнал
Международный студенческий научный вестник
ISSN 2409-529X

ПРИМЕНЕНИЕ БИБЛИОТЕКИ OPENCV ДЛЯ ЗАДАЧИ РАСПОЗНАВАНИЯ ЛИЦ

Михалин Д.А. 1 Белов Ю.С. 1
1 Калужский филиал федерального государственного бюджетного образовательного учреждения высшего образования «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»
Область компьютерного зрения в информационных технологиях всегда была востребована и актуальна. Одной из задач в рамках этой области является распознавание лиц. Также есть библиотека OpenCV, которая позволяет решать эту задачу, поэтому было решено в данной статье рассмотреть применение библиотеки OpenCV для задачи распознавания лиц. OpenCV – это библиотека с открытым исходным исходом, которая содержит алгоритмы для решения задач компьютерного зрения, обработки изображений и численных алгоритмов общего назначения. Производится обзор структуры библиотеки. Она состоит из 5 основных компонентов: CV, MLL, CXCORE, HighGUI, CvAux. Далее рассматривается непосредственно сам процесс применения функционала библиотеки для процесса распознавания лиц. Он состоит из таких аспектов, как получение изображения с камеры, детектирование лица на нем, а затем уже распознавания. Предварительно требуется сформировать обучающие данные для распознавателя. Для детектирования лица используется метод Виолы-Джонса, рассматриваются его преимущества и недостатки, а также приведена краткая блок-схема алгоритма. Для процесса распознавания используется алгоритм Fisherface, который является модификацией алгоритма собственных лиц, основанном на методе главных компонент. В конце дается вывод по поводу возможности применения OpenCV для задачи распознавания лиц.
распознавание лиц
opencv
метод виолы-джонса
алгоритм fisherface
метод главных компонент
1. Гонсалес Р., Вудс Р., Цифровая обработка изображений // Издательство “Техносфера”, Москва, 2005, С. 238-275
2. Кузнецов Г.С., Пчелинцева Н.И. Основные этапы алгоритма преобразования 2D изображений лиц в 3D модель // Электронный журнал: наука, техника и образование, 2017, № 2 (12), С. 156-161
3. Метод Виолы-Джонса как основа для распознавания лиц. URL: https://habrahabr.ru/post/133826/ (Дата обращения 15.03.2016)
4. Михалин Д.А., Белов Ю.С., Сравнение использования многослойных и сверточных нейронных сетей для задачи идентификации по лицу // Международная научно - практическая конференция НАУЧНЫЕ ИССЛЕДОВАНИЯ В ОБЛАСТИ ТЕХНИЧЕСКИХ И ТЕХНОЛОГИЧЕСКИХ СИСТЕМ 15 января 2018 г. С 171-175. URL: https://aeterna-ufa.ru/sbornik/NK-TT-77.pdf (дата обращения 08.10.2018)
5. Потапов А.С., Автоматический анализ изображений и распознавание образов // М.: LAP Lambert Academic Publishing, 2017, С. 135-171
6. Тихонова Т.С., Белов Ю.С. Основные подходы к отслеживанию и распознаванию лица // Электронный журнал: наука, техника и образование, 2016, № 2 (6), С. 111-115.
7. Тихонова Т.С., Пчелинцева Н.И. Оптимизация процесса построения модели формы в задаче отслеживания и распознавания лица // В сборнике: Новые задачи технических наук и пути их решения // Сборник статей: Международной научно практической конференции, 2017, С. 219-222
8. Bradski G., Kaehler A. Learning OpenCV - Computer Vision with the OpenCV Library // O'Reilly Media, 2008, С. 120-126
9. Face Recognition with OpenCV URL: http://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html (Дата обращения 15.03.2019)

Введение. В связи с прогрессом, происходящим в сфере информационных технологий, а также ростом объема информации, которую люди хотят обрабатывать, средства автоматизации различных процессов входят в нашу жизнь постоянно. Задачи, решаемые областью компьютерного зрения, наиболее широко исследуются в настоящее время. Одной из подобластей является анализ изображений лица человека (Рисунок 1).

Рисунок 1 – Задачи, решаемые в рамках анализа изображений лиц человека

Применение технологий распознавания лиц в настоящее время очень актуально. Данные решения используются для идентификации людей в биометрических системах безопасности или как дополнительный сервис, например, в социальных сетях [4]. Такие системы могут повысить уровень безопасности какого-либо устройства или сервиса, а также предоставить пользователям удобные возможности по поиску запечатленных на фото людей. Чтобы обычному разработчику реализовать такую систему, понадобятся глубокие знания в алгоритмах распознавания лиц человека и умение правильно это применить в конкретном языке программирования. Чтобы облегчить жизнь разработчикам, занимающихся вопросами компьютерного зрения, была создана библиотека OpenCV, которая предоставляет аппарат для выполнения задач компьютерного зрения [5].

Библиотека OpenCV. OpenCV – это библиотека с открытым исходным исходом, которая содержит алгоритмы для решения задач компьютерного зрения, обработки изображений и численных алгоритмов общего назначения [1]. Она написана на языках C и C++ и может работать на компьютерах под управлением разных операционных систем. Главной ее целью является предоставление простого интерфейса, позволяющего разрабатывать приложения с использованием возможностей компьютерного зрения. Библиотека OpenCV содержит множество функций из разных областей компьютерного зрения [6].

Структура библиотеки. OpenCV структурирована по пяти основным компонентам (Рисунок 2). Первый компонент содержит основные алгоритмы для обработки изображений и алгоритмы машинного зрения высокого уровня. Следующий компонент представляет из себя библиотеку машинного обучения, которая может решать задачи статистической классификации и кластеризации. Есть также компонент, предоставляющий функции для взаимодействия с операционной системой, файловой системой и аппаратными средствами компьютера. Он позволяет отображать различные изображения, работать с камерами для записи видео или фото, сохранять информацию в файлы и другое. Еще один компонент просто хранит в себе основные структуры данных для работы с остальными модулями.

Рисунок 2 – Основные модули OpenCV

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

Применение OpenCV. Для начала нужно получить изображение с камеры, это делается очень просто с помощью компонента HighGui [9]. Зациклив получение изображения, можно получить поток изображений – видео. Затем с помощью встроенных структур Mat и Image нужно представить изображение в сером цвете. Все это происходит в видеопотоке, то есть каждый кадр передается на обработку каскадному классификатору, который и будет обнаруживать лицо. Данный классификатор работает по методу Виолы-Джонса.

Метод Виолы-Джонса. Данный алгоритм позволяет обнаруживать различные объекты на изображениях в реальном времени [2,3]. Основной его задачей было обнаружение лиц. Несмотря на то, что обучение классификаторов происходит очень долго, поиск лица осуществляется быстро. Недостатком алгоритма является то, что он распознает черты лица только под небольшим углом до 30 градусов, если больше количество обнаружений резко падает [4].

Алгоритм строится на следующих основных принципах (Рисунок 3, 4):

· Интегральное представление подаваемых на вход алгоритма изображений;

· Применение признаков Хаара для поиска лица;

· Использование каскадов признаков для быстрого отбрасывания участков, где нет лица;

· Использование алгоритма бустинга для выбора подходящих признаков;

· Использование классификатора для анализа признаков на присутствие характеристик лица;

· Обработка изображения методом скользящего окна;

Рисунок 3 – Алгоритм метода Виолы-Джонса

Рисунок 4 – Обработка изображения скользящим окном

Результатом работы классификатора является набор прямоугольников, которые обозначают обнаруженные лица. Эти прямоугольники можно отобразить на изображении при помощи функции Draw. Далее нужно сформировать обучающее множество для дальнейшего обучения распознавателя. Множество должно представлять набор нормализованных изображений, приведенных к серому цвету, и соответствующих им идентификаторов.

Алгоритм Fisherface. Полученные данные нужно подать на вход распознавателю, который работает по алгоритму Fisherface, он является модификацией Eigenface и производит более точное распознавание при различном освещении и выражениях лица [7]. Метод собственных лиц (Eigenface) основан на методе главных компонент или по-другому. С его помощью можно уменьшить размерность данных без потери большого количества информации. Из выборки путем линейных преобразований формируются собственные векторы для каждого изображения, они называются собственными лицами. Данные векторы записываются в специальный файл с расширением yaml. Затем можно производить процесс идентификации, подав желаемое изображение на вход распознавателю. Он также вычисляет собственный вектор для поданного изображения и сравнивает его со значениями в файле, найдя наиболее подходящее, он возвращает соответствующий идентификатор [8]. По этому идентификатору можно понять, какому человеку принадлежит распознанное лицо.

Заключение. Таким образом можно подвести итог: библиотека OpenCV предоставляет достаточный функционал для взаимодействия с камерой, обнаружения лица на входном изображении и идентификации человека. Конечно, точность и охват условий, при которых идентификация будет успешной, далека от платных систем, основанных на нейронных сетях. Успешность обнаружения лица на изображении будет зависеть от правильно выбранного каскада признаков Хаара, обученных на обнаружение лица в разных плоскостях, от световых условий, зашумленности изображения и других условий. Успех же идентификации будет зависеть от количества и разнообразия обучающих данных для классификатора. Но тем не менее, можно с уверенностью сказать, что разработчик может использовать данный инструмент и построить собственную систему, которая будет использовать возможности компьютерного зрения.


Библиографическая ссылка

Михалин Д.А., Белов Ю.С. ПРИМЕНЕНИЕ БИБЛИОТЕКИ OPENCV ДЛЯ ЗАДАЧИ РАСПОЗНАВАНИЯ ЛИЦ // Международный студенческий научный вестник. – 2019. – № 2.;
URL: http://eduherald.ru/ru/article/view?id=19602 (дата обращения: 16.06.2021).

Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»
(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

«Фундаментальные исследования» список ВАК ИФ РИНЦ = 1.074