Введение Задача обнаружения лица на изображении является простой для человеческого зрения, однако при построении реальной автоматической системы обнаружения лиц необходимо учесть следующее [1]: - сильно варьирующийся размер области лица, в сочетании с большим количеством лиц на одном изображении, в значительной степени осложняет возможность распознавания; - ориентация лиц на изображении не всегда строго вертикальная - в большинстве случаев они повернуты под неизвестным углом, что вносит дополнительные погрешности при распознавании лиц; - различные условия освещенности (тип, количество и направление источников света, их цвет и яркость, наличие теней, цветовой баланс камеры, искажение изображения, привносимое оптической системой и пр.) в значительной степени влияют на получающееся изображение лица; - возможное присутствие индивидуальных особенностей (усы, борода, очки, морщины и т. д.) существенно осложняет автоматическое распознавание; - изменение выражения лица может сильно сказаться на том, как лицо выглядит на изображении; - часть лица может быть невидимой (закрыта другими предметами); - фон (фиксированный, контрастный однотонный, слабоконтрастный, зашумленный и т. п.) может вносить погрешности в работу алгоритмов распознавания лиц. Существуют различные подходы к решению задачи по распознаванию лица человека и его деталей. Один из них заключается в поиске на изображении заданных шаблонов лиц или их отдельных частей [2]. Для поиска соответствия шаблона участкам изображения могут использоваться различные методы, например простое вычитание изображений [3-5]. Одним из наиболее перспективных методов такого поиска является корреляция шаблона с изображением [6, 7]. В рамках традиционного подхода выделяют процесс распознавания лиц на изображении и получение самого изображения (фотосъемку). Кроме того, существующие алгоритмы распознавания лиц рассчитаны на то, что лицо человека располагается на изображении строго фронтально (анфас), и это затрудняет их использование в реальной жизни при большом потоке людей, проходящих мимо камеры. С учетом вышеизложенного актуальной является задача создания программно-аппаратного комплекса, который в автоматическом режиме позволял бы выделять лица проходящих мимо него людей и передавать для дальнейшей обработки не просто фотоизображение, а связку «лицо - фото». Модель программно-аппаратного комплекса обнаружения лиц Программно-аппаратный комплекс состоит из камеры высокого разрешения и блока управления, в состав которого входят различные программные модули (рис. 1). 1. Модуль обнаружения статичного изображения (МоСИ), предназначенный для получения с камеры потока статических изображений через заданные промежутки времени. Промежутки времени могут изменяться оператором комплекса в зависимости от задач исследования. Выходными данными модуля являются изображения и параметры съемки (яркость, контрастность, цветность и т. п.), этот модуль может быть реализован в виде программируемой логической интегральной схемы (ПЛИС). 2. Модуль обнаружения лиц (МоЛ), предназначенный для выделения лиц на изображениях, полученных от МоСИ. Рис. 1. Блок-схема программно-аппаратного комплекса В результате обработки выходными данными МоЛ являются фрагменты изображения, содержащие лица. Для повышения качества обнаружения лиц на изображении в МоЛ предлагается использовать гибридный алгоритм обнаружения лица человека, который объединяет алгоритм сравнения с шаблоном лица и модифицированный алгоритм обнаружения кожи лица (рис. 2). Обнаружение кожи по цвету. Существует несколько цветовых пространств, которые могут быть использованы для выделения на изображении областей, содержащих кожу человека. К группе априорных относятся методы, которые в качестве модели цвета кожи используют явно заданный многогранник в заданном цветовом пространстве, т. е. заранее задается некоторый жесткий набор правил. Для обнаружения кожи в рамках нашего исследования использовались цветовые модели с выделением нескольких блоков изображения. Это цветовые модели HSV и YIQ, для которых, в свою очередь, экспериментально установлены граничные условия для отнесения пикселов к цвету кожи. Например, пиксели изображения относятся к коже, если выполняется следующее условие: (20 ≤ I ≤ 90) из YIQ и (0,20 ≤ S ≤ 0,75), (V > 0,35), (0 ≤ H ≤ 25) из YSV, (1) где I - синфазная цветоразность (цветовая модель YIQ); H - цветовой тон; S - насыщенность; V - значение цвета (цветовая модель HSV). Стандартным для большинства изображений является использование цветовой модели RGB (R, G, B - соответственно значения красной, зеленой и синей составляющих яркости пикселя). Компоненты HSV получаются из тройки RGB с помощью следующего преобразования [8, 9]: (2) Конверсия в RGB из YIQ и обратно осуществляется по следующим формулам [10]: . (3) Чтобы ускорить работу алгоритма, предлагается разделять изображение на блоки, каждый размерами 3 × 3 пикселя (рис. 3). Затем производится тестирование центрального пикселя. Если этот пиксель удовлетворяет условиям (1), то блок пикселей рассматривают как содержащий изображение кожи, в противном случае данный блок маркируется как не содержащий изображения кожи. Математическая морфология. Математическая морфология используется для извлечения некоторых свойств изображения, полезных для его представления и описания (контуры, остовы и т. п.). Интерес представляют и морфологические методы, применяемые на этапах предварительной и итоговой обработки изображений, например морфологическая фильтрация, утолщение или утоньшение. В рамках нашего исследования предлагается использовать морфологическое сужение (эрозию) и морфологическое расширение (дилатацию). Эрозия заключается в удалении точек вдоль границ в бинарном изображении (т. е. в изображении, переведенном в двухцветную (черно-белую) цветовую схему). Дилатация заключается в добавлении точек вдоль границ бинарного изображения. Такая операция вызывает рост светлых областей на изображении и тем самым способствует объединению областей изображения (рис. 4). а б в Рис. 4. Объединение областей обнаружения: а - исходное изображение; б - обнаружение кожи; в - морфологические операции В результате устраняются случайные помехи внутри ранее обнаруженных областей, которые определяются как кожа. Связанные компоненты. После морфологической обработки дальнейший анализ бинарного изображения может быть произведён посредством выделения связанных компонентов на изображении. Два пиксела называются связанными, если они расположены в соседних ячейках. При этом вводится понятие 4- и 8-связанности. По вертикали и горизонтали соседствуют 4-связанные пиксели, 8-связанные пиксели соседствуют по горизонтали, вертикали и диагонали. Исключение фрагментов, не относящихся к области лица. Для исключения фрагментов, которые были получены на предыдущих этапах и которые не относятся к области лица, можно использовать правила, предложенные в [11]. 1. Исключаем из рассмотрения фрагменты, размер которых меньше чем 1/600 общего размера изображения в пикселях. 2. Соотношение между шириной и высотой фрагмента, содержащего лицо, должно удовлетворять следующим условиям: (2) или (3) Экспериментальные исследования показали, что для фильтрации фрагментов изображения, полученных на предыдущих этапах, с целью исключения фрагментов, не содержащих изображение лица, лучшие результаты дает комбинация правил (2) и (3): , и исключение фрагментов, размер которых меньше 400 пикселей. Для обнаружения границ лица в полученных фрагментах используется детектор пикселей границы на основе оператора Собеля [12]. Сравнение с шаблоном лица. Недостаток метода обнаружения кожи - сложность распознавания границ области лица, связанная с тем, что данный метод основан только на классификации пикселов изображения с целью обнаружения областей, содержащих кожу. Именно поэтому для обнаружения более точных границ лица и исключения «не-лиц» предлагается использовать метод сравнения с шаблонами. Преимущество метода сравнения с шаблонами состоит в том, что его просто реализовать для определения расположения лица и отдельных фрагментов (нос, глаза, рот и т. д.). Метод заключается в выделении областей лица на изображении и последующем сравнении этих областей для различных изображений. Для тестирования был выбран готовый шаблон. Шаблон представляет собой изображение центральной части лица, содержащее его основные элементы: глаза, брови, нос и рот (рис. 5). Использование в качестве шаблона только центральной части лица позволяет устранить влияние наиболее непостоянных частей головы человека (верхних и нижних), содержащих прическу и (или) бороду. Обнаружение лица с помощью шаблона заключается в проверке каждой из областей изображения на соответствие заданному шаблону. Рис. 5. Шаблон, используемый для обнаружения лиц Шаблон масштабируется согласно высоте и ширине проверяемой области. Отнесение части изображения к области, содержащей лицо, производится путем расчета корреляции между исследуемой частью изображения и шаблоном. Для этого используется коэффициент корреляции r: . Экспериментально установлено, что лучшие результаты получаются, когда коэффициент корреляции r > 0,6. Таким образом, программная часть МоЛ реализует следующий алгоритм: 1. Производится цветовая сегментация кожи на изображении. 2. Выполняется преобразование полученных областей с помощью операций математической морфологии. 3. Проводится анализ связанных компонент для выделения областей цвета кожи. 4. Из получившегося набора областей, потенциально содержащих лица, исключаются области, для которых не выполняется условие или которые содержат меньше 400 пикселей. 5. На получившемся после фильтрации (шаг 4) наборе областей производится обнаружение границ лиц. 6. Проводится дополнительная обработка с целью исключения неверно определенных лиц на базе метода сравнения с шаблоном. Результаты экспериментов На основе предлагаемого подхода был создан прототип программно-аппаратного комплекса обнаружения лиц. Для проведения апробации МоЛ было использовано 175 цветных изображений из базы данных, суммарно содержащей 252 лица. На рис. 6 представлены примеры изображений из этой базы, на которых с помощью тестируемых алгоритмов были выделены лица, на рис. 7 - пример результата работы алгоритма обнаружения лиц для людей с черным цветом кожи. Для количественной оценки результатов работы предлагаемых алгоритмов используем понятие «точность обнаружения» [13]: , где ТР (true positive - верные обнаружения) - число объектов, присутствующих на изображении и обнаруженных алгоритмом; FN (false negative - ложноотрицательные срабатывания) - число объектов, присутствующих на изображении, но не обнаруженных предложенным алгоритмом. По нижеприведенной формуле можно провести итоговую оценку эффективности работы алгоритма, т. е. определить степень достоверности, %: Степень достоверности = 100 - (ΔFN % + ΔFP %), где (FP (false positive - ложноположительные срабатывания) - число объектов, обнаруженных алгоритмом при их отсутствии на изображении). Описанный алгоритм позволяет с высокой степенью достоверности обнаруживать несколько лиц на одном изображении. Итоговые результаты обнаружения лиц представлены в таблице. Результаты работы алгоритма обнаружения лиц Количество лиц Точность обнаружения ΔFN* ΔFP* Степень достоверности, % 252 95,64 * Над чертой - количество лиц; под чертой - в %. Согласно данным таблицы, степень достоверности обнаружения лиц составляет 95,64 %, что подтверждает преимущество предлагаемого решения по сравнению с аналогами. Заключение Таким образом, по результатам исследований предложена модель программно-аппаратного комплекса обнаружения лиц на изображении и описан новый алгоритм выделения области лица на изображениях в режиме реального времени, основанный на комбинации алгоритмов обнаружения кожи и сравнения с шаблонами. Описанный программно-аппаратный комплекс позволяет обнаруживать приблизительно 95,64 % лиц, представленных на тестовом наборе.