Молодой ученый— Асташенкова, Л. К. Распознавание ключевых точек лица на изображении человека / Л. К. Асташенкова, С. Н. Рощупкина, К. В. Кудринская. — Текст : непосредственный // Молодой ученый. — 2019. — № 26 (264). — С. 23-25. — URL: https://moluch.ru/archive/264/61268/ (дата обращения: 15.05.2020). [Ссылка]
Точки изображения, локальные окрестности которых обладают некоторыми отличительными особенностями по сравнению с окрестностями других точек изображения, называют ключевыми точками. На автоматическое определение ключевых точек лица влияют масштаб изображения, наличие шумов, качество освещения, поза человека, выражение лица и прочие факторы. Детектирование ключевых точек лица на изображении можно выполнить за 2 этапа. На первом этапе детектируются и локализуются области, относящиеся к лицам. На втором этапе найденные области обрабатываются, и происходит поиск ключевых точек. В данной статье предлагается модифицировать подход, используемый в [1].
На первом этапе происходит обнаружение лица на изображении, что можно выполнить множеством способов, одним из которых является метод Виолы-Джонса, описанный в [2], его основные принципы следующие:
У данного классификатора высокие точность и скорость обнаружения лиц на изображениях, но имеются и недостатки: долгое время обучения и требование большого объема данных для этого.
Детектировать лицо на изображении можно и с помощью нейронных сетей. Они основываются на идее, что за счет обобщающих способностей обученная нейронная сеть применяет полученный в процессе обучения опыт на неизвестные объекты. В процессе обучения путем решения задачи оптимизации методом градиентного спуска производится настройка весов связей между нейронами, таким образом, нейронная сеть автоматически извлекает ключевые признаки, определяет их важность и строит взаимосвязь между ними. Однако стоит учитывать, что нейронная сеть имеет недостатки. Во-первых, при внесении нового экземпляра в базу данных необходимо полностью ее переобучать, что является долгим процессом. Во-вторых, можно столкнуться с проблемой переобучения, т.е. явлением, при котором алгоритм обучения вырабатывает предсказания, слишком близко соответствующие конкретному набору данных, что делает алгоритм менее точным на дополнительных данных. И наконец, довольно затруднительно формализуется сам этап выбора архитектуры сети, на котором определяется количество нейронов и характер связей между ними.
Еще одним методом детектирования лиц является алгоритм, основанный на классификаторе, обученном на гистограмме направленных градиентов (HOG) и методе опорных векторов. Идея применения HOG-дескриптора заключается в том, что внешний вид и форма объекта в рассматриваемой области изображения можно описать распределением градиентов интенсивностей пикселей, соответствующих не каждой точке конкретно, а всей этой области [3]. Т.к. работа HOG происходит локально, данный метод инвариантен к смещению, повороту, изменению масштаба и яркости изображения, но все равно чувствителен к перемене ориентации объекта. Таким образом, на первом этапе на изображении локализуются области, относящиеся к лицам, и можно перейти к этапу поиска ключевых точек.
Найти и описать ключевые точки лица на изображении можно различными способами, например, при помощи гистограммы направленных градиентов, т.к. данный дескриптор широко распространен и имеет много реализаций. Упрощенное представление изображения или его части, в котором отброшена посторонняя информация, называют дескриптор-функцией, она, как правило, преобразует изображение в вектор. В качестве функции HOG-дескриптор использует распределение направлений градиентов, где суть состоит в том, что наибольшая величина градиентов соответствует краям и углам объекта, т.е. областям с резким изменением интенсивностей. Подробнее этапы для расчета дескриптора HOG таковы [3]:
$$g=\sqrt{g_{x}^{2}+g_{y}^{2}},\theta=arctg(\frac{g_{y}}{g_{x}});$$
В итоге HOG—дескриптор является вектором компонент нормированных гистограмм ячеек из всех областей блока
Существует также метод описания ключевых точек лица, основанный на локальных бинарных паттернах (Local Binary Pattern, LBP), который изначально был предложен в 1996 году Т. Ояла для распознавания текстур [4]. Метод на основе LBP описывает локальный текстурный паттерн при помощи бинарного кода, который зависит от интенсивностей соседних пикселей изображения. Принцип работы LBP следующий:
В результате получается 8-битное число, характеризующее окрестность пикселя. По этим данным строится гистограмма подобных наборов для каждой области, так и описывается лицо. Можно заметить, что LBP эффективен в вычислительном плане благодаря работе только с целочисленной арифметикой, что повышает производительность. Также оператор инвариантен к изменениям яркости изображения, связанным с условиями освещения при съемке. Однако при описании ключевых точек проявляется один из недостатков метода—его вычислительная сложность.
Ключевые точки используются при решении различных задач, среди которых и проблема выравнивания изображений лиц, которая, например, решается в [1] при помощи поиска ключевых точек. Реализация этого метода содержится в библиотеках OpenCV и DLib и рассчитана на поиск 68 ключевых точек (рис. 1), но при необходимости количество точек можно изменить.
В итоге предлагается следующий модифицированный алгоритм:
Конечным результатом является высокоточный детектор ключевых точек лица, который можно использовать в режиме реального времени.
В работе рассмотрены методы, которые можно использовать в процессе локализации ключевых точек лиц, и предложен алгоритм, объединяющий метод Виолы-Джонса и HOG-дескриптор, который позволяет повысить точность определения ключевых точек и увеличить скорость их нахождения.