Популярные методы обнаружения и распознавания лиц

Наиболее точные результаты предоставляет поиск по образцу (фотографии или изображению из архива) и поиск по лицам. О технологии поиска по приметам наша компания рассказывала в статье «MACROSCOP: быстрый поиск и перехват объектов по приметам» (журнал «Системы безопасности», № 4/2013)1, поэтому сейчас мы поговорим об алгоритмах, позволяющих детектировать и распознавать лица людей в кадре.

Обнаружение лиц – каскады Хаара

Задача обнаружения лиц изучается специалистами в области компьютерного зрения давно, и достигнутые в этом направлении результаты уже очень высоки. В данной статье я рассмотрю самый популярный на сегодня подход – детектирование лиц с использованием каскадов Хаара. Каскады Хаара – наборы масок, прямоугольных окошек, каждое из которых представляет собой изображение с неким черно-белым узором (комбинацией черных и белых частей). Таких масок может быть неограниченное множество, сложность узоров может также разниться (см. рис. 1).

Алгоритм детектирования
Маски накладываются на разные части кадра, и с помощью этого наложения программа определяет, есть ли лицо. Наложение маски на определенную часть кадра дает числовое значение – результат свертки маски с кадром: программа складывает яркость всех пикселей изображения, попавших при наложении в белую часть маски, а также яркость всех пикселей, попавших в черную часть маски, затем вычисляет разность этих значений. Результат свертки сравнивается с пороговой величиной. Популярность данного подхода определяется тем, что свертка вычисляется очень быстро и просто – достаточно выполнить всего три операции для каждого прямоугольного элемента маски.

Обучение детектора лиц
Изображения лица человека отличаются несколькими характерными особенностями:

  1. С фронтальной точки зрения лицо имеет темные и светлые участки и зоны (темные – глаза, губы; светлые – лоб, щеки, подбородок).
  2. Лица всех людей однотипны (они различны в деталях, но в общем изображения лиц людей одинаковы).

Это значит, что можно подобрать такой набор масок (каскад Хаара) и составить такой классификатор (алгоритм, определяющий объект в кадре), который будет учитывать эти особенности и максимально точно сможет детектировать лицо.

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

Масок может быть также огромное количество с различными вариациями бело-черных узоров. Каждая маска при свертке дает определенное значение. Если это значение выше пороговой величины, то в кадре присутствует лицо. Наряду с положительной обучающей выборкой, содержащей изображения лиц, создается отрицательная выборка, на фотографиях которой лиц нет. На этой выборке тоже проходит обучение классификатора, но в этом случае свертка должна выдавать значение меньше пороговой величины.

Если на какой-либо фотографии выборки одна маска ошиблась, то вес (важность) этой фотографии для других масок увеличивается.

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

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

Распознавание лиц – особые точки и 3D-модели

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

Работа с 2D-изображениями
Наиболее часто используемый алгоритм работает с особыми точками лица и расстояниями между ними. Эти точки и расстояния уникальны, поэтому, сравнивая их с соответствующими точками и расстояниями эталонов в базе данных, можно сделать вывод, соответствует ли человек в кадре человеку на фотографии. Вычисляется мера схожести лица в кадре и эталонов в базе, и данные наиболее похожего изображения выдаются оператору.

Такой метод позволяет идентифицировать изображения лиц людей анфас, в высоком разрешении, без засветки. Чувствительность алгоритма к поворотам и наклонам головы, мимике, освещению высока, поэтому он не подходит для распознавания людей в неорганизованных потоках (в толпе, на улице и т.п.). Применение данный метод находит на объектах, требующих учета и контроля доступа людей (проходные, КПП предприятий, заводов, государственных учреждений) и часто работает в связке со СКУД.

Построение 3D-моделей
Существуют методы, решающие проблему строгих требований к изображению лица в кадре с помощью построения 3D-моделей. Метод требует установки нескольких специальных стереокамер, синхронизированных между собой. При появлении в зоне наблюдения человека камеры делают серию снимков с разных ракурсов. Затем строится 3D-модель лица человека, и проводится работа с особыми точками и расстояниями между ними. Дальнейшее сравнение с эталонной базой лиц ведется по аналогии с методом, описанным выше.

Решение конкретных задач

На сегодня одним из основных методов детектирования лиц в кадре является метод, использующий каскады Хаара. Чаще всего высокая точность обнаружения достигается для лиц, изображения которых попали в кадр анфас, при этом в общем случае классификатор метода можно обучить детектированию изображений лиц в других положениях.

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

Одни методы позволяют решать задачи контроля и учета людей и применяются в основном для автоматизации процессов идентификации и допуска сотрудников на территорию предприятий или учреждений.

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

Комментарии запрещены.