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

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

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

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

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

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

Маски - каскады Хаара

Маски - прямоугольные окошки, каждое из которых представляет собой изображение с неким черно-белым узором

Алгоритм детектирования

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

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

Обучение детектора лиц

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

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

2. Лица всех людей однотипны (они различны в деталях, но в общем изображения лиц людей одинаковы).

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

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

Положительная выборка

Положительная обучающая выборка состоит из большого количества фотографий с изображениями лиц

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

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

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

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

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

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

Работа с 2D-изображениями

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

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

Построение 3D-моделей

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

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

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

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

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

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

Статья опубликована в журнале «Системы Безопасности» №2, 2014

© Macroscop

Заказать звонок


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