СПОСОБ И УСТРОЙСТВО ДЛЯ ФОТОРЕАЛИСТИЧЕСКОГО ТРЕХМЕРНОГО МОДЕЛИРОВАНИЯ ЛИЦА НА ОСНОВЕ ИЗОБРАЖЕНИЯ
METHOD AND DEVICE FOR PHOTOREALISTIC THREE DIMENSIONAL SIMULATION OF FACE BASED ON IMAGE

Область техники, к которой относится изобретение
Настоящее изобретение относится к обработке изображений, а более конкретно - к способу и устройству для фотореалистического трехмерного моделирования лица на основе изображения.
Уровень техники
Автоматическое фотореалистическое трехмерное моделирование лица рассматривают как очень важную задачу в области компьютерной графики из-за его широкой применяемости в различных областях, таких как создание виртуального пространства, компьютерные игры, видеоконференции и анимация.
Хотя лазерный сканер, фиксирующий точное трехмерное изображение сложного объекта, и устройство, измеряющее расстояние с использованием структурированного света, в настоящее время доступны, их стоимость все еще высока и их не очень удобно использовать. Технологии интерактивного моделирования лица с помощью компьютера требуют профессиональной, тяжелой работы. Так, интенсивные усилия были посвящены тому, чтобы позволить обычным пользователям персонального компьютера (ПК) более легко реконструировать (воспроизводить, воссоздавать) более реалистические модели человеческих лиц. Другими словами, требуется разработать алгоритм, которым может легко управлять обычный пользователь ПК, для предоставления возможности автоматического создания необходимых лиц из несовершенных входных данных, которые получают с использованием экономичных устройств получения изображений, таких как цифровые камеры.
Системы для автоматического воспроизведения модели лица могут быть грубо разделены на несколько категорий согласно используемому источнику данных о трехмерной форме лица. Некоторые исследователи разработали методы получения лицевых данных от лазерных сканеров или устройств структурированного света. Проблемы, возникающие при использовании этих методов, состоят в том, что эти устройства являются дорогими и их трудно использовать.
Много усилий было посвящено созданию модели лица из фронтальной проекции (вида спереди) и профильной проекции (вида сбоку). Однако при использовании обычной карманной камеры без специального вспомогательного устройства трудно достичь строго ортогональное соотношение между двумя изображениями, так что информация о форме, полученная непосредственно из различных проекций, имеет некоторые противоречия. Эта проблема еще не решена.
Некоторые системы полагаются на указанные пользователем характерные точки на нескольких изображениях, что требует трудоемких ручных процедур и большого количества времени. Среди других подходов способы, использующие оптический поток, и стереоскопические способы, кажется, делают самый большой шаг к полной автоматизации процесса реконструкции, но результирующие модели включают в себя значительный шум и противоестественно искажают поверхность лица.
Чтобы избежать нежелательных искажений модели лица и увеличить надежность, некоторые исследователи используют морфируемую (трансформируемую, интеллектуально модифицируемую) модель лица, которая позволяет использовать ограниченное количество характерных точек. Морфируемую модель лица сравнивают с реконструированными трехмерными точками или исходными изображениями, и требуется большое количество основанной на модели подстройки для восстановления формы. Эти подходы в большой степени зависят от того, насколько точным и обширным является набор характерных точек.
В другом способе для получения точной модели при использовании стереоскопической реконструкции восстановление формы ограничено только изменяющей свою форму моделью, которая соответствует дополнительным наложенным ограничениям, таким образом ухудшая точность модели.
Некоторые исследователи пробовали формировать модель только из одного фронтального изображения на основе априорной информации о глубине. Однако результирующее качество модели в этом случае далеко от фотореалистического.
Важной проблемой при моделировании лица является автоматическое выделение лицевых особенностей (черт лица). Были предложены различные способы обнаружения (выделения) лицевых особенностей, такие как моделирование лицевых особенностей на основе внешнего вида, алгоритмы на основе человеческого зрения, поиск определенных образцов краев (резких переходов яркости) и образцов пикселей с низкой интенсивностью, использование морфологических операторов и т.д. Несмотря на очевидный прогресс в этой области, много работы все еще необходимо выполнить для улучшения точности и надежности для создания алгоритмов анализа лица «с качеством, присущим человеку».
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение предлагает способ и устройство для фотореалистического трехмерного моделирования лица на основе изображения с использованием двух изображений, которые включают в себя фронтальное и профильное изображения, или трех изображений, которые включают в себя фронтальное, почти фронтальное и профильное изображения.
Согласно одному из аспектов настоящего изобретения предложен способ создания трехмерной фотореалистической модели головы, данный способ содержит: (a) обнаружение фронтальных и профильных особенностей во вводимых фронтальном и профильном изображениях; (b) генерацию трехмерной модели головы путем подгонки трехмерной универсальной модели, используя обнаруженные особенности лица; (c) генерацию реалистической текстуры из вводимых фронтального и профильного изображений и (d) отображение текстуры на трехмерную модель головы.
Согласно конкретным вариантам осуществления настоящего изобретения генерация трехмерной модели головы на этапе (b) может дополнительно содержать этап генерации информации глубины из фронтального изображения и почти фронтального изображения, на котором универсальную модель подгоняют (настраивают), используя особенности лица, для определения трехмерной формы конкретного лица и генерируют, подогнанную трехмерную модель головы, используя информацию глубины.
Обнаружение фронтальных особенностей на этапе (a) может содержать: обнаружение области кожи; обнаружение области лица; обнаружение ограничивающих глаза рамок; обнаружение радужных оболочек; нормализацию фронтального изображения, обнаружение контуров глаз, обнаружение бровей, обнаружение контура губ, обнаружение контура носа и обнаружение контура подбородка и щек.
Нормализация фронтального изображения может содержать вращение фронтального изображения так, чтобы линия между центрами радужных оболочек стала горизонтальной, и повторное масштабирование фронтального изображения к предварительно определенному разрешению.
Обнаружение особенностей профиля на этапе (a) может содержать: обнаружение области профиля; обнаружение кривой профиля; обнаружение опорных (реперных) точек; и обнаружение контура уха.
Генерация информации глубины из фронтального и почти фронтального изображений может содержать: определение характерных точек на фронтальном изображении; выполнение основанного на модели Lucas-Kanade отслеживания характерных точек для поиска соответствующих точек на почти фронтальном изображении; получение плотной карты различий с помощью интерполяции данных, используя сравнение соответствий; и преобразование карты различий в информацию глубины. В этом случае преобразование карты различий в информацию глубины может содержать: получение разностного значения между максимальным и минимальным значениями различий; определение коэффициента с помощью деления разностного значения на ширину головы и умножения полученного результата на предварительно определенную константу; и получение значения глубины пикселя, умножая данный коэффициент на значение, полученное вычитанием минимального значения различия из измеренного значения различия.
Подгонка универсальной модели на этапе (b) может содержать: преобразование кривых особенностей, обнаруженных на изображениях, в двумерные точки, соответствующие особенностям, определенным в трехмерной универсальной модели, используя соотношения длин для характерных точек на кривой лицевых особенностей трехмерной универсальной модели; и подгонку трехмерной универсальной модели с помощью 3-этапной трансформации на основе функции с радиальным смещением (RBF) на основе соответствий между особенностями изображений и характерными точками трехмерной универсальной модели.
Генерация реалистической текстуры на этапе (c) может содержать: выполнение коррекции цвета в вводимых изображениях для компенсации различных условий освещения или различий цветового баланса между камерами; генерацию фронтальной и профильной текстуры путем отображения фронтального и профильного изображения на общую плоскость UV на основе соответствия между вершинами трехмерной модели и проецируемыми двумерными позициями; и объединение фронтальной и профильной текстур и искусственной текстуры, используя сплайновый алгоритм в разных разрешениях для завершения текстурирования.
Согласно другому аспекту настоящего изобретения предложено устройство для создания трехмерной фотореалистической модели головы, данное устройство содержит: блок обнаружения особенностей лица, который обнаруживает фронтальные и профильные особенности во вводимых фронтальном и профильном изображениях; блок подгонки модели лица, который генерирует трехмерную модель головы путем подгонки трехмерной универсальной модели, используя обнаруженные особенности лица; блок генерации текстуры, который генерирует реалистическую текстуру из вводимых фронтального и профильного изображений; и блок отображения, отображающий текстуру на трехмерную модель головы, сгенерированную в блоке подгонки модели лица.
Согласно определенным вариантам осуществления настоящего изобретения блок подгонки модели лица может содержать узел генерации информации глубины, который извлекает информацию глубины из фронтального изображения и почти фронтального изображения и генерирует трехмерную модель головы, выполняя подгонку универсальной модели, используя особенности лица, обнаруженные в блоке обнаружения особенностей лица, и информацию глубины, сгенерированную в узле генерации информации глубины.
Блок обнаружения особенностей лица может содержать: узел обнаружения фронтальных особенностей, который обнаруживает фронтальные особенности; и узел обнаружения особенностей профиля, который обнаруживает особенности профиля. Узел обнаружения фронтальных особенностей может содержать: узел обнаружения области кожи, который обнаруживает область кожи; узел обнаружения области лица, который обнаруживает область лица; узел обнаружения ограничивающих глаза рамок, который обнаруживает ограничивающие глаза рамки; узел обнаружения радужной оболочки, который обнаруживает радужные оболочки; и узел нормализации фронтального изображения, который нормализует фронтальное изображение.
Узел обнаружения фронтальных особенностей дополнительно может содержать по меньшей мере один из узлов: узел обнаружения контура глаз, узел обнаружения бровей, узел обнаружения контура губ, узел обнаружения контура носа и узел обнаружения контура подбородка и щек.
Узел обнаружения особенностей профиля может содержать узел обнаружения области профиля, узел обнаружения кривой профиля, узел обнаружения опорных точек и узел обнаружения контура уха.
Блок генерации информации глубины может содержать: узел обнаружения характерных точек, который определяет характерные точки на фронтальном изображении и находит соответствующие характерные точки на почти фронтальном изображении; узел получения различий, который получает плотную карту различий с помощью интерполяции данных, используя сравнение соответствий; и узел преобразования различий в информацию глубины, который преобразует карту различий в информацию глубины.
Блок подгонки универсальной модели может содержать: узел преобразования в двумерные точки, который преобразует кривые особенностей, обнаруженных на изображениях, в двумерные точки, соответствующие особенностям, определенным в трехмерной универсальной модели, используя соотношения длин для характерных точек на кривой лицевых особенностей трехмерной универсальной модели; и узел подгонки полигональной модели, который выполняет подгонку трехмерной универсальной модели с помощью 3-этапной трансформации на основе RBF (функции с радиальным смещением) на основе соответствий между особенностями изображений и характерными точками трехмерной универсальной модели.
Блок генерации текстуры может содержать: узел компенсации вводимого изображения, который компенсирует различные условия освещения или различия цветового баланса между камерами с помощью выполнения коррекции цвета в вводимых изображениях; узел генерации фронтальной/профильной текстуры, который генерирует фронтальную и профильную текстуры с помощью отображения фронтального и профильного изображений на общую UV плоскость на основе соответствия между вершинами трехмерной модели и проецируемыми двумерными позициями; и узел завершения текстурирования, который объединяет фронтальную и профильную текстуры и искусственную текстуру, используя сплайновый алгоритм в разных разрешениях для завершения текстурирования.
Согласно другому аспекту настоящего изобретения предложен считываемый компьютером носитель информации, который содержит компьютерную программу для осуществления описанного выше способа фотореалистического трехмерного моделирования головы на основе изображения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Указанные выше и другие признаки и преимущества настоящего изобретения станут более очевидными при подробном описании примерных вариантов его осуществления со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 - последовательность операций способа фотореалистического трехмерного моделирования лица на основе изображения согласно настоящему изобретению.
Фиг. 2 показывает подробный процесс моделирования вместе с фотографиями.
Фиг. 3 показывает фронтальную и профильную проекции универсальной модели.
Фиг. 4 показывает обычные входные фронтальное, почти фронтальное и профильное изображения.
Фиг. 5 - структурная схема устройства для фотореалистического трехмерного моделирования лица на основе изображения согласно настоящему изобретению.
Фиг. 6 показывает подробную конфигурацию блока обнаружения особенностей лица.
Фиг. 7 показывает подробную конфигурацию узла обнаружения фронтальных особенностей.
Фиг. 8 и 9 - подробная последовательность операций обнаружения фронтальных особенностей (извлечение).
Фиг. 10 показывает пример обнаружения изображения области, которая, вероятно, принадлежит коже, и области лица, на котором меньший эллипс соответствует начальной области, и больший эллипс соответствует обнаруженному результату.
Фиг. 11 показывает другой пример обнаружения изображения области, которая, вероятно, принадлежит коже, и области лица.
Фиг. 12A - структурная схема узла обнаружения области лица на фиг. 7.
Фиг. 12B - последовательность операций обнаружения области лица.
Фиг. 13 показывает краткую модель для обнаружения области лица.
Фиг. 14A - структурная схема узла обнаружения ограничивающих глаза рамок на фиг. 7.
Фиг. 14B - последовательность операций обнаружения ограничивающих глаза рамок.
Фиг. 15 показывает пример изображения разновидностей глаз.
Фиг. 16 показывает другой пример изображения разновидностей глаз.
Фиг. 17 показывает результат обнаружения ограничивающих глаза рамок.
Фиг. 18A - структурная схема узла обнаружения радужной оболочки на фиг. 7.
Фиг. 18B - последовательность операций обнаружения центра и радиуса радужной оболочки.
Фиг. 19 показывает примеры обнаруженных радужных оболочек.
Фиг. 20 - последовательность операций аппроксимации для обнаружения контура глаза.
Фиг. 21 - график интенсивности красного канала в области глаза по горизонтальному направлению, который используется для обнаружения контура глаза.
Фиг. 22 показывает точки, используемые для обнаружения контура глаза и обнаруженные контуры глаз.
Фиг. 23 показывает обнаружение вертикального расположения бровей.
Фиг. 24 показывает ограничивающие брови рамки.
Фиг. 25 показывает обнаруженные брови.
Фиг. 26 - последовательность операций обнаружения верхней и нижней губ.
Фиг. 27 показывает итерационное уточнение прямоугольника губ.
Фиг. 28 показывает изображение функции губ с инициализированными точками губ.
Фиг. 29 показывает силы, действующие в точках контура губ.
Фиг. 30 показывает один этап модификации контура губ.
Фиг. 31 - последовательность операций обнаружения боковой стороны носа в процессе обнаружения контура носа.
Фиг. 32 показывает шаблон для крыла носа.
Фиг. 33 показывает крылья носа - кандидаты, обнаруженные на изображении.
Фиг. 34 показывает размещение основных характерных точек для кривой носа.
Фиг. 35 показывает обнаруженные кривые носа.
Фиг. 36A - структурная схема узла обнаружения контура подбородка и щек на фиг. 7.
Фиг. 36B - последовательность операций обнаружения контура подбородка и щек.
Фиг. 37 показывает изменение формы подбородка/щек модели.
Фиг. 38 показывает процесс подгонки подбородка модели.
Фиг. 39 показывает все обнаруженные особенности на фронтальных изображениях.
Фиг. 40 - подробная структурная схема узла обнаружения особенностей профиля.
Фиг. 41 - последовательность операций обнаружения особенностей профиля.
Фиг. 42 показывает случай, когда обнаружение области профиля закончилось неудачей, и появились прерывистые области кожи и носа.
Фиг. 43 показывает другой случай, когда обнаружение области профиля закончилось неудачей, и появилась дефектная область носа.
Фиг. 44 показывает другой случай, когда обнаружение области профиля закончилось неудачей, и появилась дефектная область кожи.
Фиг. 45 - изображение для объяснения обычной функции профиля.
Фиг. 46 показывает обнаружение верхней точки переносицы носа и нижней точки носа.
Фиг. 47 показывает обнаружение опорных точек подбородка и шеи.
Фиг. 48 показывает оценку опорных точек губ.
Фиг. 49 показывает автоматически обнаруженные особенностей профиля (которые не включают в себя ухо).
Фиг. 50 - последовательность операций обнаружения контура уха.
Фиг. 51 - последовательность операций инициализации уха.
Фиг. 52 показывает шаблон кривой, используемый для обнаружения профиля уха.
Фиг. 53 показывает нормализованное изображение, точки калибровки и область поиска уха, используемые для инициализации расположения уха при обнаружении контура уха.
Фиг. 54 показывает границу кожи и волос в области лица около области уха.
Фиг. 55 показывает результаты инициализации уха с использованием информации цвета, в которой красные сегменты соответствуют шаблону уха.
Фиг. 56 показывает результаты инициализации уха с использованием информации краев для уха, которая может выполняться, когда обнаружение уха на профильном изображении с использованием только информации цвета закончилось неудачей.
Фиг. 57 показывает результаты обнаружения уха на профильном изображении.
Фиг. 58 показывает входные кривые лицевых особенностей для подгонки модели.
Фиг. 59 - структурная схема блока подгонки модели лица на фиг. 5.
Фиг. 60 - последовательность операций подгонки исходной модели в блоке подгонки модели лица.
Фиг. 61 показывает ключевые точки, извлеченные из кривых фронтальных особенностей.
Фиг. 62 показывает универсальную (верхняя строка) и созданные модели лица (нижняя строка).
Фиг. 63 - структурная схема блока генерации текстуры на фиг. 5.
Фиг. 64 - последовательность операций генерации текстуры.
Фиг. 65 показывает изображение фронтальной текстуры на UV плоскости.
Фиг. 66 показывает изображение профильной текстуры на UV плоскости.
Фиг. 67 показывает заключительное изображение текстуры, полученное из входного изображения и искусственной текстуры.
Фиг. 68 показывает улучшенные изображения, полученные с использованием текстурированной модели и искусственной текстуры уха.
Фиг. 69 показывает примерную пару лицевых стереоизображений.
Фиг. 70 - структурная схема блока генерации информации глубины на фиг. 5.
Фиг. 71 - последовательность операций генерации информации глубины из фронтального и почти фронтального изображений.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения будут описаны со ссылкой на прилагаемые чертежи.
Краткое содержание способа и устройства для фотореалистического трехмерного моделирования лица на основе изображения согласно настоящему изобретению будет описано до его подробного описания, т.е. относительно обнаружения особенностей лица, подгонки модели лица, генерации текстуры и трехмерной реконструкции, используя пару стереоскопических изображений.
Устройство моделирования согласно настоящему изобретению использует два или три изображения лица, фронтальное и профильное изображения для двух изображений и фронтальное, почти фронтальное и профильное изображения для трех изображений, для генерации фотореалистической трехмерной полигональной (многоугольной) модели лица.
Условия получения изображений просты: хороший контраст и резкость, а также достаточное освещение в лицевой области.
Фиг. 1 - последовательность операций способа фотореалистического трехмерного моделирования лица на основе изображения согласно настоящему изобретению. Фиг. 2 показывает подробный процесс моделирования вместе с фотографиями.
Как показано на фиг. 1 и 2, процесс моделирования включает в себя следующие операции. Сначала выполняют автоматическое обнаружение фронтальных особенностей и полуавтоматическое обнаружение особенностей профиля (операция 100). Затем универсальную трехмерную модель головы (универсальную полигональную модель) трансформируют так, чтобы она соответствовала фронтальным лицевым особенностям (операция 120). Далее выполняют автоматическую основанную на модели стереоскопическую оценку фронтальной фотографии для получения карты глубины; и модель снова трансформируют так, чтобы она соответствовала особенностям профиля и вычисленной с помощью стереоскопических изображений карте глубины (операция 140). Наконец, создают текстуру модели из фронтальной и профильной фотографий вместе с искусственной кожей в некоторых областях (операция 160). Созданную текстуру отображают на соответствующую модель головы для генерации трехмерной модели головы (операция 180).
Использование и карты глубин, и особенностей профиля для выполнения подгонки модели кажется избыточным. Однако карта глубины обеспечивает избыточную и подробную геометрическую информацию, которая заставляет заключительную модель выглядеть более реалистично.
Если почти фронтальное изображение не доступно, то процессы, использующие почти фронтальное изображение, могут быть опущены в способе трехмерного моделирования лица согласно настоящему изобретению. Удовлетворительные результаты могут быть получены даже в этом случае.
В способе трехмерного моделирования лица согласно настоящему изобретению новые модели создаются в структуре подгонки универсальной модели. То есть конкретное лицо создают с помощью подгонки универсальной модели к входным данным человека. Универсальную модель, которую называют «универсальной полигональной моделью» на фиг. 2, можно рассматривать как априорное знание о человеческих лицах, что упрощает автоматизацию процесса и улучшает надежность способа моделирования лица. Универсальная модель, показанная на фиг. 3, включает в себя 7138 вершин и 14 096 треугольников, которые не включают в себя глазные яблоки и волосы.
Универсальную модель устанавливают в стандартную фронтальную ориентацию. То есть ось X направлена справа налево, ось Z - направление, в котором смотрят глаза, и ось Y направлена снизу вверх, формируя правосторонний координатный кадр. Такие направления осей будут использоваться по всему последующему описанию, при условии, что нет никакого специального объяснения. Фиг. 4 показывает типичные вводимые фронтальное, почти фронтальное и профильное изображения.
Фиг. 5 - структурная схема устройства фотореалистического трехмерного моделирования лица на основе изображения согласно настоящему изобретению. Устройство включает в себя блок 500 обнаружения особенностей лица, блок 510 подгонки модели лица, блок 520 генерации текстуры и блок 530 отображения. Устройство может дополнительно включать в себя блок 540 генерации информации глубины.
Блок 500 обнаружения особенностей лица обнаруживает особенности лица на вводимых фронтальном и профильном изображениях. Блок 510 подгонки модели лица генерирует трехмерную модель лица, которая соответствует предварительно определенной универсальной модели, используя обнаруженные особенности лица. Когда устройство дополнительно включает в себя блок 540 генерации информации глубины, то блок 510 подгонки модели лица генерирует трехмерную модель лица с помощью подгонки универсальной модели, используя особенности лица, обнаруженные в блоке 500 обнаружения особенностей лица, и информацию глубины лица, сгенерированную блоком 540 генерации информации глубины.
Блок 520 генерации текстуры генерирует реалистическую текстуру из входных изображений. Текстура при необходимости может быть искусственной текстурой. Блок 530 отображения отображает текстуру на трехмерную модель лица, сгенерированную в блоке 510 подгонки модели лица. Блок 540 генерации информации глубины извлекает информацию глубины лица из фронтального и почти фронтального изображений.
1. Обнаружение особенностей лица
Как показано на фиг. 6, блок 500 обнаружения особенностей лица включает в себя узел 600 обнаружения фронтальных особенностей, который обнаруживает фронтальные особенности лица, и узел 650 обнаружения особенностей профиля, который обнаруживает особенности профиля.
1.1. Обнаружение фронтальных особенностей
Обращаясь к фиг. 7, узел 600 обнаружения фронтальных особенностей включает в себя узел 700 обнаружения области кожи, узел 705 обнаружения области лица, узел 710 обнаружения ограничивающих глаза рамок, узел 715 обнаружения радужной оболочки и узел 720 нормализации фронтального изображения.
Блок 600 обнаружения фронтальных особенностей может дополнительно включать в себя по меньшей мере одно из: узел 725 обнаружения контура глаз, узел 730 обнаружения бровей, узел 735 обнаружения контура губ, узел 740 обнаружения контура носа и узел 745 обнаружения контура подбородка и щек, если требуется.
Будет описан процесс обнаружения фронтальных особенностей. Фиг. 8 и 9 - последовательность операций обнаружения фронтальных особенностей (извлечение). Процесс обнаружения фронтальных особенностей включает в себя обнаружение области кожи (операция 800), обнаружение области лица (операция 810), обнаружение ограничивающих глаза рамок (операция 820), обнаружение радужной оболочки (операция 830), нормализацию фронтального изображения (операция 840), обнаружение контура глаз (операция 900), обнаружение бровей (операция 910), обнаружение контура рта (губ) (операция 920), обнаружение контура носа (операция 930) и обнаружение контура лица (подбородка и щек) (операция 940).
Каждый этап выполняют при условии, что предыдущий этап был успешно выполнен, и предварительно обнаруженные особенности имеют удовлетворительную точность. С этой целью, если существует погрешность в обнаружении особенностей, то пользователю разрешают вручную исправлять погрешность обнаружения особенностей после каждого этапа.
1.1.1. Обнаружение кожи
Предварительно подготовленный (обученный) байесовский классификатор максимальной вероятности (МВ) в нормализованном r-g хроматическом цветовом пространстве используют для моделирования и обнаружения цвета кожи. Нормализованное r-g цветовое пространство выбирают потому, что оно позволяет быстрое и простое преобразование из RGB пространства, и из-за заведомо хорошего качества байесовского классификатора МВ при моделировании цвета кожи.
Обучение выполняют с помощью сбора двух видов статистических данных - p((r,g)|skin) и p((r,g)|¬skin), которые вычисляют с использованием гистограмм кожи и «не-кожи», сформированные из областей обучающих изображений, принадлежащих лицу и не принадлежащих лицу. Изображение области, которая, вероятно, принадлежит коже, создают с помощью вычисления этого показателя для каждого пикселя входного кадра:
Это удовлетворяет байесовскому критерию максимальной вероятности при условии, что априорные вероятности кожи и «не-кожи» равны. Результирующее изображение области, которая, вероятно, принадлежит коже, показано на фиг. 10 и 11.
1.1.2. Обнаружение области лица
Фиг. 12A - структурная схема узла 705 обнаружения области лица на фиг. 7. Узел 705 обнаружения области лица включает в себя узел 1230 инициализации области лица, который инициализирует наибольший связанный компонент цвета кожи, как область лица, узел 1240 стабилизации эллипса, который инициализирует и расширяет эллипс, перемещая граничные точки эллипса, основанного на инициализированной области лица, до тех пор, пока эллипс не будет устойчив, и узел 1250 определения области лица, который определяет ограничивающую устойчивый эллипс рамку как область лица.
Фиг. 12B - последовательность операций обнаружения области лица. Согласно настоящему изобретению область лица обнаруживают как овальную область, и используется основанная на модели методика изменения формы эллипса. Обращаясь к фиг. 13, овальную модель инициализируют в ожидаемой области лица (операция 1200). Ожидаемая область лица может быть наибольшим связанным компонентом цвета кожи или одним из двух наибольших компонентов, имеющих сопоставимые размеры, который расположен ближе к центру изображения.
Граничные точки эллипса перемещают, основываясь на инициализированной области лица, для инициализации и расширения эллипса так, чтобы он стал устойчивым (операция 1210). Эта операция будет подробно описана.
Распределением пикселей цвета кожи внутри эллипса и изменением формы модели управляют, используя множество прямоугольных образцов, установленных на границе эллипса. Смещение каждого образца определяется согласно следующим правилам.
Сначала два значения рассчитывают следующим образом:
inside
outside
in
out
in
out
in
out
где N - количество пикселей кожи, которые лежат внутри и образца, и эллипса; N - количество пикселей кожи, которые лежат внутри образца и вне эллипса; и S - область образца. P и Pимеют большие значения, если образец находится внутри области лица. P и P имеют меньшие значения, если образец находится вне области лица. P имеет большее значение и P имеет меньшее значение, если эллипс находится на границе области лица.
in
in
in
in
out
out
out
out
Если P < T (T - пороговое значение), то образец перемещают внутрь со скоростью V. Иначе, если P > T (T является пороговым значением), то образец перемещают наружу со скоростью V. То есть если мало пикселей кожи расположено во внутренней области образца, то образец расположен вне области лица, так что образец перемещают внутрь; а если количество пикселей кожи и внутри, и вне образца достаточно, то образец перемещают наружу.
Процесс изменения формы модели включает в себя вычисление перемещений для всех образцов и подгонку эллипса к центру перемещаемых образцов. Эллипс ограничен тем, что он имеет фиксированную ориентацию (по главной вертикальной оси). Ограничивающую результирующий стабилизированный эллипс рамку определяют в качестве области лица (операция 1220).
Фиг. 10 и 11 показывает некоторые результаты обнаружения области лица. На фиг. 10 и 11 меньший эллипс соответствует начальной области, а больший эллипс соответствует обнаруженному результату.
1.1.3. Обнаружение ограничивающих глаза рамок
Фиг. 14A - структурная схема узла 710 обнаружения ограничивающих глаза рамок на фиг. 7. Обращаясь к фиг. 14A, узел 710 обнаружения ограничивающих глаза рамок включает в себя узел 1450 генерации размытого изображения, который генерирует размытое изображение с помощью фильтрации нижних частот, узел 1460 бинаризации (преобразования в двоичную форму) изображения, который генерирует новое изображение, вычисляя среднее значение каждого пикселя и соседних с ним пикселей на изображении, полученном с помощью вычитания размытого изображения из исходного изображения, и преобразовывает в двоичную форму новое изображение, используя предварительно определенное пороговое значение, узел 1470 поиска глаз-кандидатов, который ищет связанные сегменты на изображении, которое было преобразовано в двоичную форму в узле бинаризации изображения, как глаза-кандидаты, и узел 1480 определения ограничивающих глаза рамок, который определяет ограничивающие глаза рамки, оценивая глаза-кандидаты на основе формы, размера и относительного расположения.
Фиг. 14B - последовательность операций обнаружения ограничивающих глаза рамок.
Размытое изображение создают с помощью фильтрации нижних частот (операция 1400). Размытое изображение вычитают из исходного изображения (операция 1410). Рассчитывают среднее значение каждого пикселя и соседних с ним пикселей в результирующем изображении. Создают новое изображение, используя среднее значение, и его преобразуют в двоичную форму, используя предварительно определенное пороговое значение (операция 1420). Найденные связанные сегменты становятся глазами-кандидатами (операция 1430). Ограничивающие глаза рамки определяют, оценивая глаза-кандидаты на основе формы, размера и относительного расположения (операция 1440).
В частности, обнаружение ограничивающих глаза рамок в настоящем изобретении основано на обнаружении приблизительно имеющих форму и размер глаза разновидностей в красном канале цветного изображения лица в нескольких масштабах. Красный канал выбирают потому, что радужные оболочки глаз, даже в случае светлых глаз (синих, зеленых), имеют небольшое значение красной составляющей, в то время как глазные белки и окружающая кожа имеют относительно большое значение красной составляющей. Экспериментально доказано, что использование красного канала дает лучшие результаты, чем использующие уровень серого способы на основе изображения.
Сначала исходное изображение R-канала (красного канала) предварительно обрабатывают, чтобы сохранить только ту часть лица, которая определена ограничивающим эллипс прямоугольником, обнаруженным в предыдущем процессе, и масштабируют к фиксированной ширине. Интенсивность красного канала также увеличивают до максимального диапазона на этом этапе.
na
Затем вариационное изображение V(x,y), которое представляет вероятность того, что каждое пятно является глазом, рассчитывают с помощью следующей формулы:
n,x,y
n,r
где p и r представляют расположение... пикселей; I - изображение красного канала после предварительной обработки; R - прямоугольник размером (n x 5), центрированный в точке (x, y); P - эллипс размером (n x n/2), центрированный в точке r; α - коэффициент масштабирования, n представляет ожидаемый размер глаз.
Вариационное изображение рассчитывают, используя 4 комбинации 'n' и α для устранения возможных ошибок при обнаружении лица и чтобы справиться с обработкой различных форм глаз. Фиг. 15 и 16 иллюстрируют примерные полученные вариационные изображения глаза, используя следующие различные комбинации коэффициентов:
n = OPTIMAL_FACE_WIDTH (оптимальная ширина лица)/30, α = 0,6,
n = OPTIMAL_FACE_WIDTH/25, α = 0,6,
n = OPTIMAL_FACE_WIDTH/30, α = 1,4 и
n = OPTIMAL_FACE_WIDTH/25, α = 1,4.
Затем связанные компоненты в ограниченных с помощью порога вариационных изображениях проверяют на удовлетворение критериям формы, размера и относительного расположения для получения наиболее соответствующих рамок глаз. Результаты, полученные из различных вариационных изображений, объединяют в соответствии со следующей стратегией.
Этап 1. Начинают с наименьшего масштаба (первая указанная выше конфигурация).
Этап 2. Если глаза-кандидаты присутствуют в существующем масштабе:
1) если кандидаты не были обнаружены в предыдущих масштабах, то устанавливают в качестве глаз текущие глаза-кандидаты и переходят на этап 3;
2) если кандидаты уже найдены, то сравнивают кандидаты текущего масштаба с предыдущими кандидатами. Если размеры и расположение кандидатов сильно не изменяются, то обновляют глаза кандидатами в текущем масштабе.
Этап 3. Применяют следующий (больший) масштаб и переходят на этап 2.
Ограничивающие глаза рамки на фиг. 9 являются обнаруженными результатами.
1.1.4. Обнаружение радужной оболочки глаз
Радужные оболочки обнаруживают из ограничивающих глаза рамок на изображении красного канала. Фиг. 18A - структурная схема узла 715 обнаружения радужной оболочки на фиг. 7. Обращаясь к фиг. 18A, узел 715 обнаружения радужной оболочки включает в себя узел 1860 поиска блика, который определяет, существует ли блик, сравнивая с пороговым значением количество имеющих максимальные значения яркости пикселей в каждой ограничивающей глаза рамке на изображении красного канала, узел 1870 инициализации центра радужной оболочки, который инициализирует центр масс самых темных пикселей как центр радужной оболочки, если блик не найден, и инициализирует центр области с высокой контрастностью около блика, как центр радужной оболочки, если блик существует, узел 1880 измерения центра/радиуса радужной оболочки, который неоднократно измеряет градиенты пикселей по начальному кругу в центре радужной оболочки при расширении начального круга, и узел 1890 определения радужной оболочки, который определяет область, имеющую наибольший градиент, как центр радужной оболочки и определяет радиус радужной оболочки.
Фиг. 18B - последовательность операций обнаружения центра и радиуса радужных оболочек. Количество пикселей, имеющих максимальные значения яркости в ограничивающей глаз рамке на изображении красного канала, сравнивают с пороговым значением для определения, существует ли блик (операция 1800). Если блик не найден, то центр масс самых темных пикселей инициализируют как центр радужной оболочки (операция 1820). Если блик существует, то центр области с высокой контрастностью около блика инициализируют, как центр радужной оболочки (операция 1810).
Начальный круг в центре радужной оболочки расширяют и измеряют градиенты пикселей по кругу (операция 1830). Это измерение градиента повторяют, используя пиксели, смежные с начальным центром радужной оболочки (операция 1840). Область, имеющую наибольший градиент, выбирают в качестве центра радужной оболочки, и получают значение радиуса радужной оболочки (операция 1850).
Процесс обнаружения радужной оболочки глаза будет описан подробно. Сначала приблизительно оценивают центры радужных оболочек, а затем их уточняют во время обнаружения радиуса радужной оболочки.
Во время процесса оценки центров радужных оболочек, если нет блика, найденного в ограничивающей глаз рамке, то центр масс самых темных пикселей инициализируют, как центр радужной оболочки; в то время как если блик существует, то центр области с высокой контрастностью вокруг блика инициализируют как центр радужной оболочки. Обнаружение центра радужной оболочки выполняют следующим образом, используя изображение R-канала, предварительно обработанное на предыдущей стадии:
1) фильтруют область глаза, используя 3x3 медианный фильтр для устранения шума;
2) определяют, присутствует или нет блик, сравнивая с предварительно определенным порогом количество пикселей, имеющих максимальное значение яркости в ограничивающей глаз рамке;
3) обнаруживают центр радужной оболочки (используя различные способы в зависимости от того, существует ли блик в радужной оболочке);
a) когда сильный блик найден в радужной оболочке, центральную область ограничивающей глаз рамки сканируют, используя способ сравнения с шаблонами. Круговой шаблон с фиксированным радиусом перемещают по области поиска, и в каждом местоположении проверяют указанные ниже условия для обнаружения центра радужной оболочки:
i) локальное минимальное значение (dLocalMinVal) в окне поиска не должно быть слишком близко к локальному максимуму (dLocalMaxVal) в окне поиска (потому что это придает уверенность, что и темные пиксели, и блики присутствуют в окне поиска);
ii) значение dLocalMinVal должно быть достаточно темным;
iii) значение dLocalMaxVal должно быть достаточно ярким.
Используя все местоположения, где выполняются эти условия, определяют ожидаемый центр радужной оболочки как центр масс этих местоположений;
4) когда сильный блик не найден:
a) минимальную функцию 5x5 применяют к области глаза для устранения слабого блика;
b) выполняют операцию свертки области глаза с помощью
Значительные веса назначают средней части обрабатываемой рамки во время операции свертки, в то время как отрицательные веса назначают ее приграничной части. Параметр c управляет радиусом области, для которой назначены положительные веса.
c) Наиболее темные точки, которые сравнивают с предварительно определенным порогом, усредняют, чтобы найти центр радужной оболочки.
Затем центр радужной оболочки (xc, yc), который инициализирован на предыдущем этапе, уточняют, выполняя следующие процессы, используя все пиксели (x, y) вокруг него. В этой процедуре также обнаруживают радиус радужной оболочки R.
1) Следующее вычисление выполняют для всех пикселей (x, y) около центра радужной оболочки (xc, yc):
a) Для R, равного от MinR до R = MaxR:
i) Вычисляют сумму интенсивностей пикселей, расположенных слева и справа от границы круга, имеющего радиус R-1 и центрированного в точке (x, y); верхние и нижние части, очень вероятно, будут закрыты веками, так что они не используются.
ii) Вычисляют сумму интенсивностей пикселей, расположенных слева и справа от границы круга, имеющего радиус R и центрированного в точке (x, y); верхние и нижние части не используются.
iii) Вычисляют разность (D (R, x, y)) между этими двумя суммами.
b) Выбирают максимальное значение D (R, x, y) и записывают соответствующий радиус R в качестве Rmax (x, y).
2) Выбирают максимальное значение D (Rmax (x, y), x, y) среди значений для всех пикселей (x, y) и принимают соответствующий пиксель (x, y) в качестве центра радужной оболочки и Rmax (x, y) - в качестве радиуса радужной оболочки. Фиг. 19 показывает некоторые результаты обнаружения радужной оболочки.
1.1.5. Нормализация изображения лица
После обнаружения радужной оболочки изображение лица вращают так, чтобы линия между центрами радужных оболочек была строго горизонтальной. Размер ограничивающей лицо рамки также корректируют, используя априорное знание относительно соотношения между размером лица и расстоянием между центрами двух радужных оболочек. Затем входное изображение обрезают так, чтобы оно содержало только область лица, и масштабируют к предварительно определенной ширине.
1.1.6. Обнаружение контура глаза
Контуры глаза аппроксимируют, используя два полинома для верхнего и нижнего век. Фиг. 20 - последовательность операций аппроксимации для обнаружения контура глаза. Область поиска предварительно определяют согласно центру и радиусу радужной оболочки (операция 2000). Пиксели на каждой горизонтальной линии сканирования на изображении красного канала в области поиска, в которых существуют локальные минимумы или яркость резко изменяется, выбирают как левую и правую точки века (операция 2010). Крайнюю левую и крайнюю правую точки среди оставшихся точек века выбирают в качестве углов глаза (операция 2020). Верхнюю кривую века оценивают, используя точки на линии, соединяющей углы глаза с помощью способа минимальных квадратов (операция 2030). Кривую нижнего века оценивают, используя выбранные углы глаза и нижнюю точку радужной оболочки (операция 2040).
Процесс обнаружения контуров глаз будет подробно описан. Одна модель обнаружения контура глаза состоит из двух полиномов для верхнего века (кубического и для x, и для y) и нижнего века (квадратичного и для x, и для y). После оценки центра и радиуса радужной оболочки верхнее веко аппроксимируют по области пикселей с низкой интенсивностью (граница между глазным белком и кожей). Никакого дополнительного обнаружения не требуется для нижнего века, и нижнее веко аппроксимируют непосредственно по углам глаза и нижней точке радужной оболочки.
Первоначально перед обнаружением верхнего века изображение глаза красного канала фильтруют, используя медианный фильтр и Гауссово сглаживание для уменьшения уровня шума. Область поиска для точек века предварительно определяют в соответствии с центром и радиусом радужной оболочки.
Затем обнаруживают верхние точки века, используя следующий алгоритм.
1) Для каждой вертикальной позиции в области поиска:
2) если в текущей вертикальной позиции радужная оболочка закрыта кожей (среднее значение интенсивности на этой линии больше порогового значения), то процесс переходит к пункту 1;
3) значения интенсивности пикселей на текущей линии сканируют от левой границы радужной оболочки до левой границы ограничивающей глаз рамки, чтобы найти области, где существуют локальные минимумы или яркость значительно увеличивается (см. фиг. 21). Они области соответствуют левой части верхнего века;
4) тот же самый процесс выполняют на правой стороне. То есть значения интенсивности пикселей на текущей линии сканируют от правой границы радужной оболочки до правой границы ограничивающей глаз рамки, чтобы найти области, где существуют локальные минимумы или яркость значительно увеличивается (см. фиг. 21). Эти области соответствуют правой части верхнего века.
Описанный выше алгоритм дает набор точек, которые, как предполагается, лежат на верхнем веке. Чтобы исключить ошибочно обнаруженные точки, левые и правые половины ограничивающей глаз рамки обрабатывают следующим образом:
1) аппроксимируют точки в линии с помощью преобразования Хоуга (Hough);
2) выбирают линию с подходящей ориентацией и максимальным количеством точек, расположенных рядом с ней;
3) удаляют все точки, которые находятся слишком далеко от предполагаемой линии.
Среди оставшихся точек крайнюю левую и крайнюю правую выбирают в качестве углов глаза, точки, которые лежат выше линии, соединяющей углы глаза, используются для оценки кривой верхнего века (см. фиг. 22).
1.1.7. Обнаружение бровей
Вертикальную позицию бровей аппроксимируют как глобальный минимум в нормализованной горизонтальной интегрированной проекции пикселей (H(y) below) в области лба (см. фиг. 23):
где Face (y) - набор x, которые удовлетворяют условию, что точка (x, y) находится внутри эллипса лица; Wdt (y) - ширина эллипса лица в позиции y; gray (x, y) - интенсивность значения серого в точке (x, y).
Если найденная вертикальная позиция бровей расположена слишком далеко от глаз, то вертикальную позицию бровей устанавливают в предварительно определенное значение в соответствии с размером лица и расположением центров радужных оболочек. Затем определяют ограничивающие брови рамки, основываясь на эмпирической информации относительно расположения бровей (см. фиг. 24).
Затем полином третьей степени (кубический) аппроксимируют, чтобы он изображал бровь. Сначала по каждому вертикальному сегменту в прямоугольнике брови точки, в которых значения серого больше предварительно определенного значения, собирают в качестве точек брови и рассчитывают усредненную позицию этих точек. Оценивают кривую брови, используя усредненные позиции (см. фиг. 25).
1.1.8. Обнаружение контура губ
Обнаружение контура губ включает в себя обнаружение верхней губы и обнаружение нижней губы. Фиг. 26 - последовательность операций обнаружения верхней и нижней губ.
Верхнюю и нижнюю губы обнаруживают следующим образом. Первоначально инициализируют прямоугольник губ (операция 2600). Начальную ограничивающую губы рамку уточняют, чтобы она была меньше, анализируя значения пикселей цвета «не кожи» (операция 2610). Создают изображение функции губ и рассчитывают вероятность того, что каждый пиксель в уточненной ограничивающей губы рамке принадлежит губам или коже (операция 2620). Рассчитывают центральные моменты второго порядка для пикселей, которые имеют большие значения функции губ, и контур губ инициализируют, используя эллипс (операция 2630). Контур губ динамически изменяют с помощью сил, направленных внутрь и наружу (операция 2640). Полином, выражающий контур губ, получают с помощью аппроксимации, используя точки измененного контура (операция 2650).
Направленная наружу сила - сила, которая перемещает точки контура к границе губы-кожа. Направленная внутрь сила состоит из внутренней силы формирования, которая формирует контур так, чтобы он был эллиптическим, и внутренней силы сглаживания, которая определяется предварительно определенными факторами, которые включают в себя силу, предотвращающую точки контура от перемещения за границу.
Обнаружение контура губ будет подробно описано. На первом этапе обнаружения контура губ необходимо оценить с приемлемой точностью ограничивающий прямоугольник. Этот этап оценки включает в себя следующие этапы:
1) формируют определенную для человека гистограмму цвета кожи в течение этапа обнаружения кожи;
2) прямоугольник, центрированный около ожидаемого расположения рта, располагают так, чтобы он был начальным ограничивающим губы прямоугольником;
3) центр масс и моменты второго порядка для пикселей, имеющих маленькие значения определенной для человека гистограммы цвета кожи в текущем прямоугольнике, итерационно рассчитывают для более точного уточнения рамки губ (см. фиг. 27).
Уточнение рамки губ выполняют несколько раз, например, около шести раз, что обычно достаточно для приемлемо точного вычисления ограничивающей губы рамки.
Затем генерируют изображение функции губ для измерения вероятности того, что цвет каждого пикселя принадлежит цвету губ или кожи. Оба класса этих двух цветов представлены двумерными Гауссовыми функциями плотности вероятности в пространстве (r=R/G, b=B/G). Пиксели с низкими значениями определенной для человека гистограммы кожи в ограничивающем губы прямоугольнике используются для вычисления класса цвета губ; пиксели, отмеченные как кожа во время обнаружения кожи, используются для оценки класса цвета кожи. После того, как рассчитаны два класса цвета, генерируют изображение функции губ, используя следующую формулу:
l
s
1
2
где p(r(x, y), b(x, y)) - значение плотности вероятности появления класса цвета губ в позиции пикселя (x, y); p(r(x, y), b(x, y)) - значение плотности вероятности появления класса цвета кожи в позиции пикселя (x, y); α и α - коэффициенты. Поэтому lip_func(x, y) представляет разность между вероятностью того, что пиксель принадлежит классу цвета губ, и вероятностью того, что пиксель принадлежит классу цвета кожи.
Третий этап включает в себя вычисление центральных моментов второго порядка для пикселей, имеющих большие значения функции губ, и аппроксимацию контура губ, используя эллипс.
i
i
c
i
Четвертый этап включает в себя генерацию точного контура губ, неоднократно применяя данный алгоритм к изображению функции губ. Контур губ может быть инициализирован как закрытый многоугольник, состоящий из точек на границе эллипса, которые выбирают с теми же самыми интервалами и углами (см. фиг. 28 для изображения функции губ и точек инициализированного контура губ). При каждой итерации точка контура p перемещается согласно набору простых правил. В варианте осуществления настоящего изобретения направление, в котором точка контура p перемещается с помощью силы - v (см. фиг. 29). Направление движения F точки контура определяют как сумму трех сил, заданных приведенным ниже уравнением (7):
где
где
i-1
i
i+1
sm
p, pи p - три расположенные по часовой стрелке последовательные точки контура, все k* являются предварительно определенными положительными коэффициентами; k - коэффициент, который изменяется в соответствии с расположением точек контура и направлением, в котором перемещаются точки контура, в то время как другие коэффициенты являются постоянными.
i
i
sm
sm
sm
Фактически, чтобы позволить алгоритму быть согласованным с углами, F , что является эллиптическим ограничением, описываемым позднее, должен вносить меньшее влияние на точки углов губ, чем F. Так, k (i) меньше для точек, найденных около углов эллипса в предыдущем итеративном этапе. Нижняя часть контура губ более гладкая, чем верхняя часть, которая используется при вычислении k (i).
i
p
n
i
c
i
p
p
1
f - значение в позиции (p) на изображении функции губ; T - предварительно определенный порог; v и v - векторы от текущей точки p по направлению к предыдущей и последующей точкам контура (см. фиг. 29); v - нормализованное направление от центра эллипса по направлению к p, v генерируют, поворачивая v по часовой стрелке на π/2.
i
i
i
i
n
p
i
data
form
form
sm
В сущности, F  - сила, управляющая расширением или сжатием контура для того, чтобы он соответствовал фактическим данным в точке p, и F вынуждает форму контура быть близкой к эллипсу. Чтобы позволить силе F  влиять на глобальную форму контура, v и v берут из среднего значения следующих (предыдущих) нескольких точек. F  управляет гладкостью контура, не позволяя какой-нибудь одной точке уходить далеко за границу.
Приведенный выше алгоритм заканчивается приблизительно после 30 итераций. Один из процессов модификации контура губ показан на фиг. 30. Затем полиномы (четвертой степени для верхней и нижней губ) подгоняют к результирующим точкам итераций для генерации кривой контура губ.
1.1.9. Обнаружение контура носа
Обнаружение контура носа включает в себя обнаружение боковой стороны носа. Фиг. 31 - последовательность операций обнаружения боковой стороны носа в процессе обнаружения контура носа. Обнаружение боковой стороны носа выполняют следующим образом. Сначала выполняют сравнение изображения краев (карты краев) в предварительно определенной области поиска с шаблоном, который имеет предварительно определенную форму (операция 3100). Выбирают среди обнаруженных кандидатов, имеющих большое значение соответствия, пару кандидатов, которые удовлетворяют требованиям симметрии, и определяют их как расположение крыльев носа (операция 3110). Каждую боковую сторону носа выражают, используя кривую полинома четвертой степени. Эту полиноминальную кривую подгоняют к обнаруженным шаблонам крыльев носа и трем точкам, интерполированным между крылом носа и углами глаза с предварительно определенными коэффициентами (операция 3120). Наконец устанавливают кривую верхней части носа и нижней части носа, используя предварительно определенный коэффициент интерполяции (операция 3130).
Процесс обнаружения контура носа будет подробно рассмотрен. Очень трудно сформировать универсальную методику обнаружения носа, которая может использоваться независимо от условий формирования изображения и освещения. Конечно, в условиях переднего освещения и хорошей резкости никакой существенной проблемы не возникнет, потому что хорошо различимый образец края (резкого перехода яркости) появляется в области носа. Однако в некоторых случаях, когда фотография расплывчатая или она сфотографирована при ненаправленном, рассеянном освещении, область края носа становится слишком зашумленной для идентификации формы контура. В этом случае крылья носа могут обнаруживаться с использованием направленного шаблона карты краев, который обеспечивает хорошую надежность для изображений различных классов. Этот алгоритм обнаружения контура носа может воплощаться согласно следующим этапам.
1) Обрезают и масштабируют к фиксированному разрешению изображение области носа (расположенное в поперечном направлении между центрами глаз и по вертикали - от основания глаз до верха ограничивающей рот рамки).
2) Применяют медианный фильтр к изображению области носа для удаления шума и защиты информации края.
3) Рассчитывают изображения градиента края, используя детектор края Prewitt.
4) Сравнивают направленный шаблон крыла носа с изображением области носа для обнаружения крыльев носа.
Шаблон крыла носа выражает типичную форму боковой стороны носа в установленном масштабе (см. фиг. 32). Точность подгонки измеряют как сумму пикселей края, которые лежат на границе шаблона крыла носа и имеют направление края, близкое к касательной к шаблону. Носы-кандидаты получают из позиций с максимальной 10%-ной точностью подгонки и пару кандидатов (левое и правое крылья носа - кандидаты) проверяют согласно следующим трем критериям для определения самого вероятного расположения носа (см. фиг. 33).
Во-первых, условие совмещения: пара кандидатов должна иметь одинаковую высоту.
Во-вторых, условие разделения: пара кандидатов должна располагаться не слишком близко друг от друга в направлении X.
В-третьих, симметрия в направлении X: различие между расстояниями в направлении X от кандидатов к центру лица не должно быть слишком большим.
Затем выполняют подгонку полинома четвертой степени по шести точкам, отмеченным на фиг. 34, среди которых точки 1, 2 и 3 выбирают из обнаруженного шаблона в предварительно определенных позициях, а другие интерполируют между шаблоном носа и прямоугольниками глаз, используя предварительно определенные коэффициенты.
Описанный выше способ обнаружения контура боковых сторон носа приводит к очень хорошей надежности и точности, когда он применяется к изображениям различного качества, сфотографированным при различных условиях освещения. Пример обнаружения контура боковых сторон носа показан на фиг. 35.
Кончик носа - средняя точка двух центров боковых шаблонов крыльев носа. Кривую нижней части носа (см. фиг. 38 и 39) устанавливают между двумя боковыми сторонами носа, используя предварительно определенные коэффициенты.
1.1.10. Обнаружение контуров подбородка и щек
Фиг. 36A - структурная схема узла 745 обнаружения контура подбородка и щек на фиг. 7. Обращаясь к фиг. 36A, узел 745 обнаружения контура подбородка и щек включает в себя узел 3640 вычисления градиента, который вычисляет поле векторов градиента на изображении красного канала, узел 3650 расширения контура подбородка и щек, который устанавливает начальный шаблон контура в область лица, определенную двумя полиноминальными кривыми, пересекающимися в точке подбородка, и расширяет контур подбородка и щек наружу до тех пор, пока контур подбородка и щек не достигнет сильных краев (резких границ) по касательным к кривым, и узел 3660 определения контура подбородка и щек, который прекращает расширять контур подбородка и щек, когда контур подбородка и щек достигнет сильных краев по касательным к кривым.
Фиг. 36B - последовательность операций обнаружения контура подбородка и щек. Процесс обнаружения контура подбородка и щек выполняют следующим образом.
Сначала рассчитывают поле векторов градиента на изображении красного канала (операция 3600). Начальный шаблон контура устанавливают в область лица, определенную двумя полиноминальными кривыми, пересекающимися в точке подбородка (операция 3610). Контур подбородка и щек расширяют наружу до сильных краев по касательным к кривым (операция 3620). Расширение контура подбородка и щек прекращают при достижении минимальных значений существенной яркости (операция 3630).
Процесс обнаружения контура подбородка и щек будет подробно описан. Контур подбородка и щек выражают с помощью двух непрерывных полиномов четвертой степени, пересекающихся в точке основания подбородка. Эти два полинома имеют фиксированное значение координаты Y на верхних концах. Кривую, определенную полиномами, делят на множество сегментов (см. фиг. 37). Процесс обнаружения контура подбородка и щек включает в себя следующие этапы.
1) Изображение края и кривую подбородка инициализируют следующим образом.
a) Генерируют горизонтальное и вертикальное изображения края с помощью этапов:
i) масштабируют исходное изображение красного канала, чтобы оно соответствовало OPTIMAL_FACE_WIDTH (оптимальной ширине лица), выполняют Гауссово сглаживание на масштабированном изображении и фильтруют изображение, используя медианный фильтр; и
ii) обнаруживают край, используя детектор края Собеля.
b) левую и правую кривые инициализируют по трем точкам, точке основания, левой верхней точке и правой верхней точке так, чтобы они были симметричными. Три точки определяют, используя априорное знание расположения обнаруженных глаз и губ.
2) Уточняют кривую, повторяя следующие процессы:
a) для каждого сегмента i (от 0 до N, где N - общее количество сегментов):
i) точность подгонки устанавливают в 0;
ii) для каждой выбранной точки (x, y) в сегменте i: если угол между касательной к кривой и направлением края в точке (x, y) меньше 60 градусов и размер края в точке (x, y) - не меньше предварительно определенного порога, то точность подгонки увеличивают; и
iii) если точность подгонки меньше другого заданного порога, то сегмент перемещают «наружу» по вектору перпендикуляра к кривой. Иначе, сегмент перемещают немного «внутрь».
b) Повторно выполняют подгонку кривой для всех сегментов.
В пункте 2.a.iii) все сегменты кривой расширяют наружу по перпендикуляру к кривой (см. фиг. 38 для промежуточных стадий процесса подгонки подбородка). Однако перемещение сегмента в нижней части кривой наружу должно быть остановлено при достижении минимальных значений существенной яркости, потому что в нижней области подбородка края обычно очень слабы. В данном случае следующие правила решения могут применяться для нижней части кривой:
c) для каждого сегмента i нижней части кривой:
i) точность подгонки устанавливают в 0;
ii) рассчитывают среднюю яркость (CurBrt (i)) пикселей (x, y) сегмента i;
iii) сегмент i перемещают наружу по перпендикуляру к кривой и рассчитывают среднюю яркость (MovedBrt (i)) пикселей,
iv) если MovedBrt (i) < CurBrt (i), то сегмент перемещают «наружу». Иначе, сегмент i перемещают немного «внутрь» в теневую область.
Все особенности на фронтальных изображениях показаны на фиг. 39. Описанные выше алгоритмы полностью автоматизированы и надежны для различных изображений и различных условий освещения.
1.2 Обнаружение особенностей профиля
Фиг. 40 - подробная структурная схема узла 650 обнаружения особенностей профиля. Блок 650 обнаружения особенностей профиля включает в себя узел 4000 обнаружения области профиля, узел 4020 обнаружения кривой профиля, узел 4040 обнаружения опорных точек и узел 4060 обнаружения контура уха.
Узел 4000 обнаружения области профиля классифицирует пиксели на пиксели, принадлежащие коже, и пиксели, не принадлежащие коже, и выбирает наибольший связанный компонент цвета кожи как область профиля.
Узел 4020 обнаружения кривой профиля обнаруживает правую границу области лица в указанной пользователем ограничивающей рамке фронтального изображения как кривую профиля.
Узел 4060 обнаружения контура уха инициализирует позицию уха с помощью сравнения шаблона кривой с изображением профиля. Инициализированный шаблон уха трансформируют с использованием алгоритма отслеживания контура для поиска более точного контура уха.
Фиг. 41 - последовательность операций обнаружения особенностей профиля. Процесс обнаружения особенностей профиля может включать в себя обнаружение области профиля (операция 4100), обнаружение кривой профиля (операция 4110), обнаружение опорных точек (операция 4120) и обнаружение контура уха (операция 4130). Обнаруженная кривая профиля может сегментироваться на сегменты, основываясь на обнаруженных опорных точках, например, на области лба, носа, губ, подбородка, шеи и т.д.
Во время процесса обнаружения области профиля на более поздних этапах проверяют результаты предыдущих этапов. Если промежуточный результат из предыдущего этапа оказывается ошибочным, то алгоритм автоматически возвращается к предыдущему этапу для исправления ошибок, используя большее количество информации об изображении.
В это время для обнаружения особенностей профиля требуется взаимодействие с пользователем. В качестве первого примера, если размер лица недостаточно большой и задний план изображения лица сложный и включает в себя объект цвета кожи, то пользователя просят определить ограничивающий лицо прямоугольник. Однако это необычный случай. Области лица могут полностью автоматически обнаруживаться почти во всех тестовых изображениях.
В качестве второго примера, после того, как установлено начальное положение верха головы и затылка, точки глаз и точки губ, основываясь на априорных статистических данных, пользователя могут попросить исправить это расположение.
1.2.1. Обнаружение области лица
Процесс обнаружения области лица включает в себя классификацию пикселей на пиксели кожи и пиксели «не-кожи» и выбор наибольшего связанного компонента цвета кожи, как область лица. Когда существуют два наибольших связанных компонента, имеющих подобные размеры, один из компонентов, расположенный ближе к центру изображения, выбирают в качестве области лица.
В частности, подобным способом, который используется в процессе исследования фронтального изображения, определяют, являются ли пиксели пикселями кожи или пикселями «не-кожи», используя нормализованное r-g цветовое пространство и обученную модель определения цвета кожи. Наибольший связанный компонент цвета кожи или один из двух наибольших компонентов цвета кожи, имеющих подобные размеры, который расположен ближе к центру изображения, выбирают в качестве области лица.
В некоторых случаях область носа и область лица могут быть прерывистыми (см. фиг. 42). Такая проблематичная ситуация может обнаруживаться при проверке смежных связанных компонентов цвета кожи, и область носа и область лица объединяют вместе. Дополнительно существуют две проблематичные ситуации. Первый случай, когда целая область носа не может быть получена, если освещение слишком сильное (см. фиг. 43). Второй случай, когда целая область подбородка не может быть обнаружена, если освещение немного темное или если существуют усы (см. фиг. 44). Первый случай распознают в процедуре отслеживания переносицы носа после того, как обнаружен кончик носа. Второй случай оценивают после обнаружения точек подбородка и шеи.
Когда обнаружение кожи заканчивается неудачей, область лица обнаруживают с использованием алгоритма сегментации области на основе пирамиды. Входным изображением для алгоритма сегментации области на основе пирамиды является один канал в преобразованном в формат HSV («цвет-насыщенность-значение») исходном изображении. Этот канал выбирают на основании качества обнаружения отличия кожи от заднего плана по переносице носа.
1.2.2. Обнаружение кривой профиля
Правую границу области лица в указанной пользователем ограничивающей рамке, полученной из фронтального изображения, обнаруживают как кривую профиля.
В частности, когда область лица обнаруживают с помощью обнаружения кожи, крайние правые пиксели области лица в указанной пользователем ограничивающей рамке обнаруживают для кривой профиля следующим образом.
1) Входная информация - двоичные результаты обнаружения кожи (1 означает, что пиксель принадлежит коже, и 0 означает противоположный случай) и найденная область лица (связанный компонент).
2) Пользователь вручную определяет ограничивающую лицо рамку (этот этап не нужен для большинства изображений).
3) Находят грубое приближение контура профиля. Алгоритм создает «функцию профиля» x = x (y), где y изменяется по вертикальному направлению и x соответствует крайнему правому пикселю кожи в y строке в ограничивающей лицо рамке. Если нет пикселей кожи в этой строке, то x (y) устанавливают в нуль.
4) Сглаживают функцию профиля, используя 1D (в одном измерении) Гауссов фильтр для устранения случайного шума (см. фиг. 45 для примерной функции профиля).
Изображение обрезают так, чтобы оно включало в себя только функцию профиля, и масштабируют к фиксированной высоте для упрощения последующих процессов.
2.2.3. Обнаружение опорных точек
Опорные точки кривой профиля обнаруживают, анализируя форму функции профиля.
1) Кончик носа - глобальный максимум функции профиля.
После того, как обнаружен кончик носа, аппроксимируют часть переносицы носа как линию, используя пиксели с резкой границей выше кончика носа. Исследуют качество отделения изображения кожи от заднего плана по переносице носа, используя различные каналы в преобразованном в формат HSV исходном изображении. Кроме того, когда линия переносицы носа расположена слишком далеко от кривой профиля, признается, что обнаружение кожи закончится неудачей, и алгоритм возвращается к обнаружению области лица, используя алгоритм сегментации области.
2) Верхняя точка лба («вершина лба») - самые верхние пиксели кожи.
3) Верхнюю часть (от вершины лба до кончика носа) функции профиля x = x (y) аппроксимируют с помощью полинома седьмой степени (см. фиг. 46). Сканирование снизу вверх полинома выполняют так, чтобы найти позицию, где первая производная полинома меньше установленного порога. Эта точка соответствует вершине переносицы носа.
4) Кусочно-линейную аппроксимацию выполняют на нижней части (ниже кончика носа) функции профиля.
a) Направление линейных сегментов рассчитывают по первым 3 точкам функции, b) рассчитывают расстояние от последующей точки до текущего сегмента, c) если рассчитанное расстояние является слишком большим (больше установленного порога), то начинают новый сегмент, и процесс переходит на этап a), d) выполняют этап (a).
5) Среди совместных точек сегментов линии в предварительно определенной области находят совместную точку, имеющую большой угол (приблизительно 90 градусов) между смежными сегментами. Эта точка соответствует «точке под носом» (см. фиг. 46).
6) Для точек, расположенных ниже «точки под носом», аппроксимируют функцию профиля с помощью линейных сегментов, которые оценивают, используя адаптивный алгоритм построения ломаной линии. Каждый этап этого алгоритма является следующим.
a) Рассчитывают по первым двум точкам направление нового сегмента линии, b) добавляют следующую точку к набору точек аппроксимированного сегмента, c) повторно с помощью наименьших квадратов рассчитывают направление сегмента, которое соответствует всем точкам, d) рассчитывают отклонение каждой точки от аппроксимированных сегментов, e) если какая-либо точка расположена слишком далеко от сегмента, то процесс переходит к пункту a). Иначе процесс переходит к пункту b).
Точки подбородка и шеи обнаруживают из результатов подгонки адаптивной ломаной линии (см. три точки, отмеченные на фиг. 47). Если подбородок расположен слишком близко к кончику носа, то признают, что обнаружение кожи закончится неудачно, и алгоритм возвращается на повторное обнаружение области лица.
7) Очень трудно надежно найти опорные точки верхней и нижней губ, особенно когда условия получения изображений очень различны. В этом случае опорные точки приемлемо аппроксимируют с помощью оценки всего размера лица (см. фиг. 48). Некоторые сегменты на фиг. 48 описаны ниже.
a) «I» - расстояние по вертикали от «точки под носом» до точки начала шеи.
b) «a» = 0,225 · I.
c) «b» = 0,125 · I.
d) «c» = 0,125 · I.
После того, как опорные точки найдены, сегменты кривой профиля между опорными точками аппроксимируют с помощью полиномов. Затылок и верхнюю часть головы, вместе с глазами, непосредственно не обнаруживают и оценивают из разумных размеров человеческой головы. Все результирующие особенности показывают на фиг. 49.
1.2.4. Обнаружение контура уха
Фиг. 50 - последовательность операций обнаружения контура уха. Процесс обнаружения контура уха включает в себя инициализацию расположения уха с помощью сравнения шаблона кривой с изображением профиля (операция 5000) и поиск более точной границы уха с помощью изменения формы инициализированного шаблона уха, используя алгоритм отслеживания контура (операция 5020).
Фиг. 51 - последовательность операций инициализации уха. Обращаясь к фиг. 51, процесс инициализации уха включает в себя: определение вектора сдвига шаблона уха, вращение оригинала изображения так, чтобы сегмент между вершиной переносицы носа и точкой подбородка стал вертикальным, и масштабирование длины сегментов к предварительно определенному значению (операция 5100); определение области поиска уха (операция 5110); сравнение с шаблоном кривой границы между областью лица и областью волос для поиска соответствующих подсегментов, которые имеют форму совпадения двух кривых (операция 5120); обнаружение сегментов, имеющих подобные формы, с помощью сравнения края, обнаруженного с использованием детектора края, и шаблона уха, если длина совпадающих сегментов меньше предварительно определенного порогового значения (операция 5130); и вычисление вектора сдвига сегмента шаблона к совпадающим точкам изображения, используя алгоритм наименьших квадратов (операция 5140).
Процесс обнаружения контура уха будет подробно описан. Процесс обнаружения контура уха может быть грубо разделен на два этапа. На первом этапе шаблон кривой (см. фиг. 52) сравнивают с информацией цвета или края и форму шаблона изменяют так, чтобы она соответствовала информации локального изображения.
В частности, на этапе инициализации расположения уха нормализуют ориентацию и масштаб исходного изображения. Для нормализации выбирают две точки калибровки, т.е. вершину переносицы носа и точку подбородка. Исходное изображение вращают так, чтобы сегмент, соединяющий два точки, стал абсолютно вертикальным, и масштабируют так, чтобы расстояние между двумя точками имело фиксированное значение. Априорный прямоугольник устанавливают для определения области поиска уха на нормализованном изображении. Нормализованное изображение, точки калибровки и область поиска показывают на фиг. 53.
Для поиска вектора сдвига для успешной инициализации позиции шаблона уха используют результаты обнаружения кожи. В общем случае граница области кожи совпадает с границей уха в некоторых частях, как показано на фиг. 54. Шаблон сравнивают с границей области кожи, используя простой алгоритм сравнения кривой, основанный на подобии информации градиента кривой, для поиска хорошо совпадающих сегментов на этих двух кривых. Затем оценивают вектор сдвига с помощью сравнения сегментов, используя способ наименьших квадратов. Результаты инициализации позиции уха показаны на фиг. 55. Сегменты, которые совпадают с шаблоном внутри границы области кожи, отмечены красным.
В некоторых случаях граница области кожи может не совпадать с границей уха, например, когда волосы слишком короткие или освещение очень сильное (см. фиг. 56). Алгоритм, используемый в настоящем изобретении, может автоматически обнаруживать такие неудачные ситуации, оценивая длину совпадающих сегментов и позиции сдвинутого шаблона уха в области поиска. Позицию уха инициализируют, используя информацию о локальном крае.
Детектор края Nevatia-Batu используется для извлечения информации края из серого изображения. Проверяют длинные сегменты края для поиска только одного сегмента края, который лучше всего соответствует шаблону уха, используя тот же самый алгоритм сравнения кривых, который использовался в предыдущем алгоритме инициализации уха. Относительные факторы используются в комбинации для оценки соответствия. Относительные факторы включают в себя совпадающую длину в сегментах края и расположение шаблона уха на основе сегментов в области поиска.
Экспериментально доказано, что инициализация уха на основе края более надежна, чем использование алгоритма на основе определения области лица, но недостаточно точна для поиска начальных сегментов на границе уха. Поэтому алгоритм на основе края используется для дополнения алгоритма на основе определения области лица, таким образом увеличивая надежность алгоритма в целом. Некоторые примеры инициализации уха на основе края показаны на фиг. 56.
На втором этапе изменяют форму сдвинутого шаблона так, чтобы он соответствовал границе уха. Используя точки границы уха, полученные на этапе инициализации (сегменты границы, полученные с помощью определения области лица или определенные с помощью детектора края Nevatia-Batu), выполняют подгонку шаблона к уху в соответствии со схемой отслеживания контура. Подробное описание процедуры является следующим.
n
1) Начиная с точки шаблона уха, которая уже имеет соответствие с границей изображения уха, записывают эту точку как Cont, где Cont - шаблон уха (представляет собой перечень двумерных точек) и n - индекс этой точки в данном перечне;
n
next
i
2) находят первую последующую точку («next»), которая удовлетворяет следующему ограничению: некоторые точки шаблона между Cont и Cont достаточно далеки от линии наименьших квадратов, соответствующей набору точек {Cont, i = n,..., next}; значение «next» должно быть по меньшей мере n + 5; если «next» достигает крайней точки шаблона, то алгоритм отслеживания контура заканчивают;
n
next
n
1) вращают сегменты от Cont и Cont в некотором диапазоне, с центром в Cont; и сравнивают вращаемые сегменты с локальной информацией для поиска «лучшего» угла, имеющего максимальное значение соответствия; если никакого правильного соответствия не нашли в данном угловом диапазоне, то алгоритм заканчивается с отметкой о неудаче;
n
2) вращают все точки шаблона после Cont, используя лучший угол, устанавливают n=next, переходят на этап 1.
Оценку соответствия между сегментами и изображением выполняют, основываясь на комбинации двух видов информации. Одна - интенсивность локального края, оцениваемая как сумма различий интенсивности по сегменту. Другая информация - подобие сегментов. Другими словами, сумма значений интенсивности всех пикселей сегментов не должна сильно отличаться от суммы значений интенсивности предыдущего сегмента. Если результат оценки соответствия, основанной на двух факторах, «плох», то определяют, что соответствия нет.
Алгоритм отслеживания контура выполняют дважды на вершине уха и основании уха. Когда алгоритм отслеживания контура заканчивается с отметкой о неудаче, что происходит обычно потому, что уши закрыты волосами, как показано на фиг. 57, сразу используют результаты инициализации.
Для основания уха длина шаблона может быть недостаточно большой для соответствия границе уха, так что «заключительную часть» шаблона заменяют длинным сегментом. Реальную позицию основания уха находят, измеряя интенсивность края по соответствующему шаблону. В некоторых изображениях граница уха идет к вершине от основания. Этот случай может обнаруживаться, используя информацию локального края, и результирующая граница уха включает в себя заключительную часть, продолжающуюся кверху, как показано на фиг. 57.
2. Подгонка модели головы
Получают полный набор особенностей лица, извлеченных из фронтальной и профильной фотографий и/или трехмерной стереоскопической карты глубины. Стереоскопическое извлечение информации глубины будет описано позднее.
Фиг. 59 - структурная схема блока 510 подгонки модели лица на фиг. 5. Блок 510 подгонки модели лица включает в себя узел 5900 преобразования в двумерные (2D) точки и узел 5950 подгонки полигональной модели. Фиг. 60 - последовательность операций подгонки исходной модели в блоке 510 подгонки модели лица.
Первоначально, используя соотношения длин для характерных точек на кривой лицевых особенностей трехмерной универсальной модели головы, полиномы особенностей, обнаруженных на изображении, преобразуют в двумерные точки, соответствующие особенностям, определенным в трехмерной универсальной модели головы (операция 6000). Форму трехмерной универсальной полигональной модели изменяют с использованием обнаруженных особенностей изображения и характерных точек трехмерной универсальной полигональной модели согласно процедуре 3-этапной трансформации на основе функции с радиальным смещением (RBF) (операция 6050).
Основанную на RBF 3-этапную процедуру трансформации выполняют следующим образом. Сначала координаты X и Y перемещенных ключевых точек модели устанавливают в позиции, соответствующие особенностям изображения, а координата Z остается такой же, как в универсальной полигональной модели, для выполнения RBF интерполяции по фронтальным особенностям. Затем масштаб профильного изображения корректируют с учетом координат Y особенностей профиля, и особенности профиля используются в качестве входной информации для RBF интерполяции. Наконец, выполняют RBF интерполяцию, используя все доступные особенности.
Основанная на RBF трансформация может выполняться так, чтобы вершины универсальной полигональной модели перемещались к соответствующим трехмерным точкам, полученным в процессе восстановления информации глубины.
Процесс подгонки модели головы будет подробно описан. Обнаруженные особенности лица используются для изменения формы (деформации) универсальной модели так, чтобы она соответствовала входному изображению. Для этой цели особенности лица, полученные на этапе обнаружения особенностей, преобразовывают в смещения точек, которые соответствуют особенностям, предварительно определенным в универсальной модели, и все вершины в модели перемещают, используя алгоритм интерполяции данных так, чтобы изменить форму универсальной модели. Соответствие между обнаруженными особенностями (кривыми и точками) и вершинами модели должно устанавливаться вручную заранее. Соответствие для некоторой универсальной модели устанавливают так, чтобы не требовалось взаимодействия с пользователем.
Будет описан процесс установки соответствия для одной кривой особенностей. «Ключевые» вершины на модели и распределенные позиции на кривых лицевых особенностей показывают на фиг. 61. Показывают особенности лица на универсальной полигональной модели, соответствующие кривым особенностей лица, обнаруженным на входном изображении. Характерные точки выбирают из обеих кривых с тем же самым соотношением длин. Этот процесс повторяют дважды с особенностями профиля для генерации двух наборов двумерных смещений «ключевых» точек модели.
Определяют трехмерные смещения «ключевых» вершин согласно соответствующим точкам особенностей изображения. В прямом способе смещения x и y получают из фронтальных особенностей, а смещения z получают из особенностей профиля. Однако приемлемые результаты не могут быть получены с помощью этого способа потому, что некоторые фронтальные особенности (нижняя часть подбородка, верхняя часть головы и затылок и т.д.) испытывают недостаток в информации о позиции y и существуют конфликты между позициями фронтальных и профильных особенностей. Конфликты данных неизбежны, потому что вводимые фотографии не могут быть сделаны одновременно, и ориентация и выражения лица всегда по меньшей мере немного изменяется. Даже если фронтальное и профильное изображения могут быть выполнены одновременно, обычно фронтальные изображения и профильные изображения не стандартны. Другими словами, трудно выровнять фокальные оси двух камер так, чтобы они были перпендикулярны друг другу.
Чтобы решить эти проблемы, используется основанная на RBF трехэтапная процедура трансформации.
2.1. RBF интерполяция данных
i
i
3
'
3
Будет кратко описан основанный на RBF способ интерполяции данных, используемый в настоящем изобретении. Если вводят два соответствующих набора данных, {ū, i = 1,..., N} ⊂ R и {ū , i = 1,..., N} ⊂ R, которые представляют трехмерные выборки до и после процедуры трансформации соответственно, то функцию f() изменения формы в трехмерном пространстве определяют следующим образом:
где
- любой трехмерный вектор;
i
i
i
i
i
-r/Ki
φ является RBF для ū, причем в варианте осуществления φ(r) = e, где K - предварительно определенный коэффициент, который определяет спад влияния ū смещения;
0
1
2
3
i
, , ,  и λ, i = 1..., N - коэффициенты, которые являются всеми трехмерными точками, определяемыми уравнением (9), приведенным ниже:
Используя этот способ интерполяции данных, функция изменения формы f() может определяться при условии, что установлено соответствие «ключевых» точек между универсальной моделью и определенным человеком. Соответственно, совершенная определенная модель для входного изображения может быть сгенерирована, заменяя все вершины универсальной модели на функцию f().
2.2 Трехэтапная процедура трансформации
Процесс подгонки модели будет подробно описан.
1) Выполняют RBF интерполяцию, используя фронтальные особенности. Координаты X и Y перемещенных ключевых точек модели устанавливают в соответствующую особенности изображения позицию, а координата Z остается такой же, как в универсальной модели. На этом этапе фронтальные особенности модели и изображения совершенно согласованы друг с другом. Этот этап необходим для точного наложения текстуры.
2) Выполняют RBF интерполяцию, используя особенности профиля. Координаты Y и Z ключевых точек профиля устанавливают в соответствующие им позиции изображения профиля, а координаты X остаются теми же самыми, как в универсальной модели. Во время этого этапа определяют только значения Z для всех вершин модели. Конфликты между фронтальными и профильными особенностями, которые, вероятно, произойдут на кончике носа, вершине переносицы и губах, могут устраняться, масштабируя и перенося кривые особенности профиля так, чтобы координаты Y были подогнаны к соответствующим точкам трансформируемой модели.
3) Наконец, все ключевые точки используются как входная информация RBF интерполяции для определения результирующей формы головы. На этом этапе ключевые точки профиля остаются на их позициях в результирующей интерполированной модели этапа 2. Для фронтальных ключевых точек устанавливают их координаты Z в соответствии с результатом этапа 2 и устанавливают координаты X и Y в значения результата этапа 1. Если доступно почти фронтальное изображение, то RBF интерполяция может выполняться еще раз, чтобы использовать трехмерные восстановленные точки с использованием стереоскопической информации в качестве входных данных. Примерные модели сгенерированных лиц показывают на фиг. 63.
3. Генерация текстуры
Генерация высококачественной текстуры для модели головы важнее подгонки модели, так как текстура делает основной вклад в визуальный вид модели. Текстуры фронтальной и профильной проекций отображают на модель, и схема сплайнового объединения текстур в разных разрешениях используется для объединения различных фотографий. Кроме того, генерируют искусственную текстуру, например, для подбородка или области шеи, закрытой челюстью, и для задней стороны ушей.
Фиг. 63 - структурная схема блока 520 генерации текстуры на фиг. 5. Блок 520 генерации текстуры включает в себя узел 6300 компенсации входного изображения, узел 6320 генерации фронтальной/профильной текстуры и узел 6340 завершения текстурирования. Фиг. 64 - последовательность операций генерации текстуры. Процесс генерации текстуры будет описан со ссылкой на фиг. 63 и 64.
Узел 6300 компенсации входного изображения выполняет коррекцию цвета на входном изображении для компенсации различных условий освещения или различий цветового баланса между камерами (операция 6400). Узел 6320 генерации фронтальной/профильной текстуры генерирует фронтальную и профильную текстуры, отображает фронтальное и профильное изображения на общую плоскость UV, основываясь на соответствии между вершинами трехмерной модели и проецируемыми двумерными позициями на фотографии (операция 6420). Узел 6040 завершения текстурирования объединяет фронтальную, профильную и искусственную текстуры, используя сплайновый алгоритм в разных разрешениях для завершения текстурирования (операция 6440). Процесс генерации текстуры будет подробно описан.
3.1. Отображение координат текстуры и генерация текстуры
Для объединения текстур, полученных под различными углами зрения, требуются общая плоскость UV, содержащая координаты текстуры вершин модели. Эта общая плоскость UV является двумерной плоскостью, где точки соответствуют расположению трехмерной модели. Плоскость имеет нормализованное координатное пространство, выраженное с помощью M = {(u, v}| u, v ∈ [0, 1]}.
Чтобы гарантировать четное распределение вершин модели по координатному пространству текстуры, плоскость UV создают с помощью сферического отображения с учетом подобной сфере формы человеческой головы. Сгенерированное пространство изменяется вручную для решения проблемы перекрытия, особенно в областях уха, на плоскости UV. Плоскость UV является определенной для отдельной модели и остается постоянной, когда соответствие установлено, так что никакого дополнительного взаимодействия с пользователем не требуется.
Для создания текстурированной модели требуется отображение изображения лица на плоскость UV. Так как модель была подогнана к особенностям изображения, соответствия между вершинами модели и расположением на изображении могут быть легко получены. Поэтому расположения на изображении могут легко отображаться к координатам текстуры на плоскости UV.
Фиг. 65 и 66 изображают фронтальную и профильную текстуры соответственно на плоскостях UV, в которых появляются накладывающиеся координаты текстуры.
3.3. Смешивание текстуры
На этом этапе текстуры фронтального и профильного изображений на плоскости UV и искусственную текстуру кожи для уха смешивают для генерации одного изображения, которое будет воспроизводиться на поверхности трехмерной модели. Для каждой точки p ∈ {(x,y)|x, y ∈ [0,1]} на плоскости UV, ее цвет в смешанном изображении может рассчитываться, используя приведенное ниже уравнение (10):
f
s
art
f
s
art
f
s
art
где C, C, C - цвета точки p для фронтальной, профильной и искусственной текстур кожи соответственно; k, k, k - веса для различных текстур и они нормализованы для удовлетворения условия k (p) + k (p) + k (p) = 1 для каждого p. Веса для смешивания текстур рассчитывают, используя сплайновый алгоритм в разных разрешениях. Основанный на Гауссовой пирамидальной декомпозиции известный алгоритм смешивания изображений, используемый в настоящем изобретении, может достичь гладкого перехода между изображениями без размытия или ухудшения отображения тончайших деталей изображения. Данный алгоритм может использоваться при смешивании границ, имеющих любые формы.
3.4. Искусственная текстура кожи
Искусственные текстуры для заполнения областей подбородка и шеи генерируют, основываясь на статистике цветов близлежащих областей в области профиля. Редко появляющиеся цвета отвергают, цвет каждого пикселя в данных областях выбирают, основываясь на ограниченной статистике цветов, и неровную зернистость удаляют с помощью Гауссова сглаживания.
Заключительное текстурированное изображение показывают на фиг. 67. Примерные текстурированные модели показаны на фиг. 68. Заметна задняя сторона уха, на которую не отображается накладывающаяся текстура. Последние два изображения на фиг. 68 показывают искусственно текстурированную часть уха и нетекстурированную часть уха соответственно.
4. Трехмерная реконструкция с использованием пары стереоскопических изображений
В большинстве случаев результаты трехмерной реконструкции являются приемлемыми при использовании только фронтального изображения или дополнительного профильного изображения. Однако данный алгоритм не может работать должным образом, когда входное изображение лица, которое будет реконструироваться, кажется нетипичным, то есть когда голова человека очень отличается от универсальной модели головы.
В таком случае для дополнительного уточнения модели головы в систему внедряют блок на основе стереоскопического анализа. Два или большее количество лицевых изображений, полученных под немного различными углами зрения, могут анализироваться, используя специализированный алгоритм стереоскопической реконструкции для генерации более точной трехмерной информации для видимых частей головы. Примерную пару стереоизображений, вводимых для этой цели, показывают на фиг. 69.
Фиг. 70 - структурная схема блока 540 генерации информации глубины на фиг. 5. Блок 540 генерации информации глубины включает в себя узел 7000 обнаружения характерных точек, узел 7020 получения различий и узел 7040 преобразования информации различий в глубину. Фиг. 71 - последовательность операций генерации информации глубины из фронтального и почти фронтального изображений. Процесс генерации информации глубины будет описан со ссылкой к фиг. 70 и 71.
Узел 7000 обнаружения характерных точек определяет характерные точки изображения во фронтальном изображении (операция 7100) и выполняет основанное на использовании модели Lucas-Kanade отслеживание характерных точек для поиска соответствующих точек на почти фронтальном изображении (операция 7110).
Узел 7020 получения различий получает плотную карту различий с помощью интерполяции данных, используя сравнение соответствий (операция 7120). Наконец, узел 7040 преобразования информации различий в глубину преобразует карту различий в информацию глубины (операция 7130).
Преобразование карты различий в информацию глубины достигают, основываясь на значении разности между максимальным и минимальным значениями различий. Это значение разности делят на ширину головы и умножают на предварительно определенную константу для получения коэффициента. Значение глубины данного пикселя получают, умножая данный коэффициент на значение, полученное вычитанием минимального значения различия из измеренного значения различия. Эти процессы будут подробно описаны.
4.1 Оценка различий из пары стереоизображений
Будет описано стереоскопическое сравнение с помощью отслеживания особенностей. Ключевая идея реконструкции трехмерной модели - «стереоскопическое сравнение» - процесс поиска «тех же самых» точек на стереоизображениях (в данном случае термин «те же самые» означает, что эти двумерные проекции соответствуют уникальной трехмерной точке). После стереоскопического сравнения может быть восстановлено расположение в трехмерном пространстве.
Несмотря на простоту основной идеи, стереоскопическое сравнение - очень сложная задача. Множество проблем возникает, когда стереоскопическое сравнение выполняют на стереоизображениях с существенными отличиями. Кроме того, стереоскопическое сравнение вызывает сложную в вычислительном отношении проблему, потому что все возможные соответствия по стереоизображениям должны рассчитываться для завершения процесса сравнения.
Однако согласно настоящему изобретению требуемые результаты сравнения могут быть получены в процессе моделирования лица, используя следующие идеи. Так как углы зрения для стереопар не сильно отличаются (фронтальный и почти фронтальный), стереоскопическое сравнение может обрабатываться как процесс отслеживания объектов между стереоизображениями. Соответственно, может использоваться алгоритм отслеживания особенностей.
Большинство алгоритмов отслеживания особенностей работает с набором отдельных точек, выбранных из первого изображения. Целью является отслеживание расположений этих точек на последующих изображениях. В этом случае отслеживание и сравнение - идентичные процессы. По сравнению с полным точка-за-точкой эпиполярным сравнением отслеживание особенностей может привести к дополнительным несоответствиям, но не требует стадии исправления. Все точки могут независимо обрабатываться для создания любой эпиполярной геометрии. Поэтому такое отслеживание особенностей может использоваться при применении некалиброванной камеры. По этим причинам в варианте осуществления выполняют стереоскопическое сравнение, использующее отслеживание особенностей. Будет описан используемый алгоритм отслеживания.
x
y
Учитывая, что А(x, y) и B(x, y) - два двумерных полутоновых изображения, рассматривают точку изображения А(px, py) на первом изображении. Цель отслеживания особенностей состоит в том, чтобы найти расположение B(px+vx, py+vy) на втором изображении так, чтобы А(px, py) и B(px+dx, py+dy) были «подобными». Вектор v = [vx vy] - скорость изображения, и он также известен как оптический поток в точке [px, py]. Скорость изображения v определяют как вектор, который минимизирует остаточную функцию ε в окрестности (2ω+1) x (2ω+1) от точки [px, py]:
opt
Скорость, записанная как v, которая минимизирует указанную выше остаточную функцию, может быть найдена, используя следующее стандартное уравнение Lucas-Kanade:
где
После трехмерной реконструкции выполняют подгонку универсальной модели к изображению, используя описанный выше алгоритм подгонки модели.
Как описано выше, в устройстве и способе для фотореалистического трехмерного моделирования лица на основе изображения согласно настоящему изобретению полученные данные с использованием относительно дешевого устройства, такого как цифровая камера, могут обрабатываться автоматическим способом, и удовлетворительные результаты могут быть получены даже из несовершенных входных данных. Другими словами, согласно настоящему изобретению особенности лица могут извлекаться автоматическим способом, и используется надежный алгоритм анализа лица «с качеством, присущим человеку».
Хотя настоящее изобретение конкретно показано и описано со ссылкой на примерные варианты его осуществления, специалистам будет понятно, что различные изменения в форме и подробностях могут быть сделаны, не отступая от объема и сущности настоящего изобретения, которые определены в соответствии со следующей формулой изобретения.