Использование технологии «говорящих голов» в системе проведения дистанционных конференций «Виртуальная классная комната»

, ,

Нижегородский государственный университет им.

Введение

В Нижегородском государственном университете ведется разработка системы проведения распределенных конференций «Виртуальная классная комната» [1], финансируемая фондом Бортника, по программе «УМНИК».

В ходе работы над системой перед авторами встала задача реализации технологии «виртуальных голов» [2], суть которой заключается в замене видеоизображения с камеры синтезированным изображением виртуальной головы человека, которая имитирует или повторяет движения головы человека перед камерой. В работе рассматриваются такие задачи как вычисление анимационных параметров головы человека (по результатам распознавания лица перед камерой), моделирование виртуальной головы, а так же реалистичная визуализация и анимация модели виртуальной головы.

Анимационные параметры модели головы человека

В настоящее время существует целый ряд моделей, позволяющих с большой степенью реалистичности описывать поведение человеческой головы. К примеру, в стандарте MPEG-4 [3] все возможные перемещения описываются 2 «высокоуровневыми» и 66 «низкоуровневыми» параметрами. Однако точное вычисление всех этих параметров предполагает наличие изображения высокого качества и является достаточно ресурсоемким.

В силу требований, предъявляемых к системе «Виртуальная классная комната», авторами для реализации была выбрана упрощенная модель, описываемая следующими обобщенными координатами:

НЕ нашли? Не то? Что вы ищете?

1)  - углы поворота головы вокруг осей x, y и z, соответственно;

2)  горизонтальный и вертикальный углы поворота зрачков;

3)  угол открытия рта.

Методы вычисления анимационных параметров головы

На каждом шаге работы алгоритма первоначально осуществляется захват изображения с веб-камеры и выделение прямоугольника, содержащего лицо человека, средствами библиотеки Intel OpenCV [4]. На выделенном изображении, используя алгоритмы, приведенные в [5], происходит обнаружение областей, содержащих рот, глаза и зрачки.

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

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

Горизонтальный и вертикальный угол поворота зрачков вычисляются как:

,

где – текущие координаты прямоугольника, содержащего глаз, – текущие координаты прямоугольника, содержащего зрачок; eyeWidth, eyeHeight – ширина и высота прямоугольника в котором находится глаз, irisWidth, irisHeight – ширина и высота прямоугольника в котором находится глаз, , – максимально возможные углы поворотов зрачков вокруг соответствующих осей.

Для вычисления изменения угла открытия рта между кадрами использовалась формула:

,

где – горизонтальные и вертикальные размеры прямоугольника, содержащего рот на обоих кадрах. – вертикальное смещение пикселя внутри прямоугольника рта между двумя кадрами.

Особенности вычисления и использования анимационных параметров при работе с изображениями низкого качества

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

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

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

Интерполяция анимационных параметров

Важно отметить, что анимация синтетических моделей происходит на последовательности меняющихся параметров. Таким образом, в случае возникновения небольших погрешности при вычислении данных параметров наблюдаются такие эффекты как дрожание модели и чрезмерные углы отклонения модели. Для того чтобы уменьшить данные эффекты и сделать плавное изменение анимационных параметров, в системе реализован метод интерполяции на основе кривых Безье [6].

В системе «Виртуальная классная комната» интерполяция реализована на основе кубических кривых Безье. В параметрической форме кубическая кривая Безье (при n = 3) описывается следующим уравнением

Четыре опорные точки P0, P1, P2 и P3, заданные в 3-мерном пространстве определяют форму кривой. Линия берёт начало из точки P0, направляясь к P1, и заканчивается в точке P3, подходя к ней со стороны P2. Таким образом, кривая не проходит через точки P1 и P2, а лишь использует их для указания направления. Длина отрезка между P0 и P1 определяет то, как скоро кривая повернёт к P3

В нашем случае интерполируемая последовательность анимационных параметров, построенная по набору точек, состоит из набора кривых третьего порядка. Первая кривая строится на основе точек 0, 1, 2, 3. Вторая – на основе 3, 4, 5, 6, и так далее. Кривая Безье проходит между точками параметров, полученных за счёт распознавания, тем самым, усредняя их значения и сглаживая переход между ними. Эксперимент показал, что такой подход дает существенное улучшение качества анимации модели головы.

Этапы создания программной модели головы человека

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

1.  Получение исходных фотографий (фас и профиль) головы человека;

2.  Формирование цилиндрической текстуры головы по фотографиям;

3.  Создание полигональной модели головы с наложением текстуры;

4.  Создание опорных моделей головы для морфинга;

5.  Создание моделей отдельных элементов головы (глаза, веки, зубы);

6.  Сохранение моделей в поддерживаемый программой формат;

7.  Загрузка и анимация модели головы по обобщённым параметрам;

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

Выбор технологии моделирования виртуальных голов

Выбор технологий моделирования виртуальных голов прежде всего связан с технологиями программирования 3D-графики и оконных интерфейсов Windows.

В первой опытной реализации системы “Виртуальная классная комната” [7], моделирование виртуальных голов было реализовано на основе Managed DirectX 9 (MDX). Оконный же интерфейс системы был написан на основе технологии Microsoft Windows Presentation Foundation (WPF), предоставляющей богатые возможности по созданию интерактивных графических интерфейсов нового поколения [8]. Была осуществлена интеграция рендеринга виртуальных голов на MDX в интерфейс WPF, в результате чего выяснилась крайняя неэффективность такого подхода, связанная с конфликтом использования двух технологий: WPF и DirectX.

Решением для “бесшовной” интеграции 3D-графики в интерфейсы на WPF, является использование специальных средств самой технологии. Подмножество классов для программирования 3D-графики на WPF, называемое WPF 3D, представляет собой высокоуровневую объектную модель для описания трёхмерной сцены [9]. Технология WPF 3D позволяет использовать язык XAML для декларативного описания сцены и хранения динамически загружаемых ресурсов.

Создание цилиндрической текстуры головы по фотографиям человека

Процесс создания цилиндрической текстуры головы по фотографиям выполняется вручную средствами Adobe Photoshop в несколько этапов:

1.  Делаются три фотографии головы человека (слева, справа и спереди) в одинаковом положении и при неизменном фронтальном освещении;

2.  Вырезаются контуры лица, содержащие только кожу и волосы;

3.  Профили лица составляются в соответствии с определёнными разметочными линиями (задающие положения глаз, рта и ушей на определённых позициях)

4.  Удаляются передние части левого и правого профиля лица, так чтобы стало полностью видно глаза, брови и рот фаса;

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

Создание полигональной модели виртуальной головы и её элементов

Трёхмерная модель головы создаётся вручную с помощью средств системы трёхмерного моделирования 3D Studio MAX:

1.  Низкополигональная заготовка модели головы (болванка) подгоняется под форму головы конкретного человека путём редактирования вершин модели;

2.  Симметричность головы достигается за счёт редактирования только одной половины модели, вторая половина которой автоматически восстанавливается за счёт применения модификатора отражения Mirror;

3.  К низкополигональной модели применяется модификатор полигонального сглаживания – MeshSmooth, повышающий детализацию модели;

Чтобы моделировать открытие рта при разговоре, применяется технология морфинга полигональной модели по заранее подготовленным опорным моделям.

Модель виртуальной головы так же включает в себя дополнительные модели, не зависящие от конкретного индивидуума, для которого создаётся голова: модель глаза, века (в виде сектора сферы), модель зубов (верхняя и нижняя челюсти), модель туловища.

Загрузка модели виртуальной головы в программу и её анимация

Технология Windows Presentation Foundation (WPF) позволяет использовать язык XAML (Extensible Application Markup Language) для описания графических интерфейсов и трёхмерных сцен. Для хранения и загрузки данных, технология WPF предлагает использовать динамические ресурсы, загружаемые из слинкованных XAML-файлов или из XAML-файлов, загружаемых с диска. Для преобразования созданных моделей из формата 3D Studio MAX в формат XAML использовалось приложение ZAM 3D.

Ниже приведено изображение окна демонстрационного приложения с моделью головы, анимированной на основе алгоритмов распознавания лица перед веб-камерой:

Литература

1.  , . Использование новейших технологий Microsoft в реализации коммуникационной системы организации и проведения видео конференций «Virtual Class Room». Технологии Microsoft в теории и практике программирования. Материалы конференции / Под ред. проф. . – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2007 - С. 57-60

2.  , , . Создание персонифицированных моделей головы и их анимация по цифровым фотографиям и видео. Программирование РАН, 30(5), 2004, стр.5-24

3.  http://www. chiariglione. org/mpeg/standards/mpeg-4/mpeg-4.htm

4.  http://www. /technology/computing/opencv/

5.  , , . Библиотеки и Intel OpenCV в реализации слежения за лицом человека в видеопотоке. Технологии Microsoft в теории и практике программирования. Материалы конференции / Под ред. проф. . – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2007 - С. 204-207

6.  http://en. wikipedia. org/wiki/B%C3%A9zier_curve – кривые Безье

7.  , , Анимация виртуальной головы человека с использованием Managed DirectX. Технологии Microsoft в теории и практике программирования. Материалы конференции / Под ред. проф. . – Нижний Новгород: Изд-во Нижегородского госуниверситета, 2007 - С. 255-258

8.  Maк- Windows Presentation Foundation в. NET 3.0 для профессионалов. Изд. Вильямс, 2008г. 992 стр.

9.  Charles Petzold, 3D Programming for Windows: three-dimensional graphics programming for the Widnows Presentation Foundation. Published by Microsoft Press, 2007, 430 pages.