РЕКОНСТРУКЦИЯ 3-МЕРНОЙ МОДЕЛИ ГОЛОВЫ ПО ДВУМ ОРТОГОНАЛЬНЫМ ВИДАМ Хюсейин Савран, huseyinsavran@yahoo.com, П.Б. Панфилов, panfilov@cse.yeditepe.edu.tr Университет «Едитепе» (Yeditepe University), Стамбул, Турция Московский институт электроники и математики (технический университет) 3D HEAD MODEL RECONSTRUCTION FROM TWO ORTHOGONAL VIEWS Hüseyin Savran, Peter Panfilov, Yeditepe University, Istanbul, Turkey Введение Автоматическое построение 3-мерной модели головы человека по двум изображениям головы, полученным с двух разных точек съемки, является активной областью исследований в области компьютерной графики. Многие разработчики компьютерных игр начали предоставлять инструментальные средства для 3-мерного моделирования игроками самих себя. Правда, в большинстве случаев это делается вручную, что требует немалого времени. Вдобавок, проблемой может оказаться текстурирование модели головы. Сама модель может быть достаточно хорошей, но если текстура неправильно подобрана и подогнана, модель не будет выглядеть реалистично. В данном докладе представлен новый подход к полуавтоматическому трехмерному моделированию головы человека. Предлагаемый метод назван «методом матрицы весов». Идея метода строится вокруг некоторого ограниченного числа точек на поверхности 3мерной модели головы, названных «базовыми точками». Базовые точки способны оказывать определенное «воздействие» на соседние точки модели. Значение веса, присваиваемое каждой точке модели, определяет степень такого воздействия и может быть использовано в процессе автоматического изменения формы поверхности модели в ответ на манипуляции с базовыми точками. Для получения базовых точек используются два ортогональных 2-мерных изображения головы: виды в фас и в профиль. Эти же изображения применяются и для генерации текстуры и ее применения к модели с использованием тех же самых весовых коэффициентов вершин модели. В общем, процедура 3-мерного моделирования головы человека включает в себя следующие шаги: 1) выбор обобщенной структурной модели человеческой головы, 2) сбор и подготовка специфической для конкретного человека информации о голове/лице при использовании методов машинного зрения и обработки изображений, 3) деформация обобщенной модели и 4) подготовка текстуры и деформация точек текстуры. Подход 1. Обобщенная модель головы Прежде всего, нам необходимо построить обобщенную модель головы, которую потом можно использовать в процессе деформации для построения новой модели (настоящей) головы. В нашей работе для этих целей использовалось программное обеспечение Softimage|XSI. Обобщенная модель головы состоит из 1316 точек (вершин), 3902 ребер, 2586 граней (полигонов), 7852 текстурных вершин. Все грани модели являются треугольными. На изображении головы сбоку были выбраны 56 уникальных базовых точек, а на фронтальном изображении – 57 точек, используемых в процессе модификации модели и текстуры. Некоторые точки являются общими для обоих видов. Таким образом, общее количество уникальных базовых точек на модели головы составляет 88, из которых 25 являются общими для двух видов. На самом деле, пользователю-модельщику достаточно вручную указать лишь 31 точку на боковом изображении, поскольку часть точек может быть сгенерирована автоматически. Для этих целей может использоваться программное обеспечение выделения базовых точек Feature Point Obtainer (FPO). 2. Деформирование обобщенной модели головы 2.1. Определление точки отсчета и масштабирование базовых точек Два изображения на рисунке 1 представляют 3-мерную модель головы в 2-мерном виде. Эти изображения могут использоваться в процедуре сравнения с фотографиями реального человека. Размер фотографий может оказаться отличным от размеров изображений обобщенной модели головы. Поэтому их нужно отмасштабировать для приведения к единому размеру. Прежде всего, на изображении головы надо задать некую центральную точку или точку отсчета. «Физиологически», такой точкой можно считать точку, находящуюся ровно посередине между глазами человека. Точное положение этой точки может быть получено на основании информации некоторых базовых точек. На рисунке 1 точкой отсчета для фронтального изображения является точка, расположеннаая ровно посередине между двумя базовыми точками 29 и 33. На изображении бокового вида точка отсчета (показана зеленой точкой на рисунке) располагается посередине между базовыми точками 17 и 11 (значение координаты y для точки отсчета равно значению координаты y базовой точки 29). Рис. 1. Базовые точки и точки отсчета Рис. 2. Морфинг по матрице весов Масштабирование изображений включает в себя следующие шаги. Во-первых, мы можем отобразить все базовые точки с изображения обобщенной модели головы на окружность с центром в точке отсчета и радиусом равным среднему значению расстояний всех базовых точек от точки отсчета. Затем, то же самое делается и для изображений головы реального человека, которую мы планируем смоделировать. Коэффициент масштабирования равен отношению радиуса окружности, полученной для обобщенной модели головы, к радиусу окружности для изображения головы реального человека. Далее, все базовые точки на изображениях головы реального человека перемножаются на этот коэффициент масштаба. И, наконец, центр изображения перемещается в точку отсчета согласно следующих уравнений: P_x = P_x - Origin_x, P_y = Origin_y - P_y, (1) (2) где P_x и P_y есть значения координат x и y базовой точки, а Origin_x и Origin_y есть значения координат x и y точки отсчета. Для определения величины смещения надо вычесть значения базовых точек обобщенной модели из значений базовых точек изображений головы реального человека. 2.2. Изменение значений положения базовых точек в 3-мерной среде Мы не можем напрямую использовать значения смещений, полученные по 2мерным изображениям, в 3-мерном пространстве. Необходимо каким-то образом найти усредненный коэффициент изменений. Используемый для этих целей подход выглядит следующим образом. Для каждой базовой точки ищется величина отношения расстояния от соответствующей точки до точки отсчета в единицах измерения длины к пиксельному расстоянию от базовой точки до точки отсчета. Все эти величины суммируются, а сумма делится на число базовых точек. В результате имеем коэффициент изменений модели. 2.3. Основная концепция метода матрицы весов Каждая базовая точка должна «оказывать влияние» на другие точки модели. Одна точка модели может оказаться «под влиянием» сразу нескольких базовых точек. Другими словами, если какая-то базовая точка перемещается в 3-мерном пространстве, то и некоторое количество «подвластных» ей точек модели также должны перемещаться в пространстве в соответствии с их весами «воздействия». Рисунок 2 иллюстрирует концепцию такого морфинга модели по матрице весов. Значения весовых коэффициентов выбираются из интервала от 0 до 1. Эти значения могут быть получены с использованием мощных инструментальных средств программы Softimage|XSI. Затем данные весов могут быть экспортированы в прикладное программное обеспечение через код скрипта vbscript. Алгоритм морфинга модели прост. Зная величины смещений и весовых коэффициентов базовых точек, мы просто изменяем значения положений точек в пространстве на величины произведений соответствующих смещений и весов точек. Следующее уравнение объясняет алгоритм: P(i) = P(i) + D(j) * W(D(j)), (3) где вектор P хранит информацию о положении точек в пространстве, включая значения координат x, y и z; i = 0, 1315; j = 0, No_of_Feature_points; D(j) – это смещение для j-й базовой точки, а W(D(j)) – это значение веса i-й точки, связанной с j-й базовой точкой. Данное исходное уравнение необходимо реорганизовать для двух ортогональных изображений головы. Для точек фронтального изображения уравнения морфинга выглядят следующим образом: P(i).x = P(i).x + Df(j).x * W(Df(j)) (4) P(i).y = P(i).y + (Df(j).y / 2) * W(Df(j)) (5) Для точек бокового изображения уравнения морфинга следующие: P(i).z = P(i).z + Ds(j).x * W(Ds(j)) (6) P(i).y = P(i).y + (Ds(j).y / 2) * W(Ds(j)) (7) Обработка текстурного изображения Для целей текстурирования модели головы необходимо сделать две фотографии головы реального человека в фас и в профиль на голубом фоне. Это позволит легко отделить изображение головы от фона, что упрощает дальнейшую обработку изображения для текстурирования. 1. Создание текстуры Во-первых, необходимо отмасштабировать изображение так, чтобы расстояние от глаз до верхней точки головы было одинаковым в обоих видах. Во-вторых, текстурная карта имеет три части: левую, центральную и правую, которая симметрична левой части. Левая часть текстурной карты определяется по базовым точкам 17 и 2 на изображении вида с боку головы. Центральная часть определяется по базовым точкам 25 и 3. В-третьих, на границах трех частей тектурной карты применяется алгоритм сглаживания изображения. И, наконец, заполняются «пустоты» в изображении, появившиеся в результате удаления фона. Рисунок 3 показывает фронтальное и боковое фото головы человека и результурующую текстурную карту. Рисунок 3. Фронтальный и боковой виды и текстура для модели головы 2. Деформирование текстурных вершин Детали лица располагаются на текстурной карте по-разному для разных людей. Поэтому текстурные вершины (привязанные к соответствующим точкам на модели головы) должны смещаться подобно точкам модели, как это было описано в разделах выше. Наиболее важной областью в изображении лица человека является область глаз. Поскольку эта область выступает в качестве точки отсчета, то необходимо произвести настройку положения всех вершин тектуры относительно глаз. Морфинг вершин текстуры осуществляется в виде трехступенной процедуры. Во-первых, мы одновременно смещаем все точки до тех пор, пока вершины текстуры в области глаз не совпадут с их реальным положением на текстурной карте. Затем, осуществляется реорганизация нижней и верхней частей текстуры через их масштабирование до заполнения текстурной карты по высоте. С использованием выше описанного подхода выполняется морфинг вершин текстуры для глаз, носа, губ и ушей. Здесь используются значения смещений точек модели и матрицы весов. Рисунок 4 показывает текстурированную 3-мерную модель головы человека. Рисунок 4. Реконструированная 3-мерная модель головы Заключение и планы на будущее направления дальнейшего улучшения Возможные качества моделирования включают в себя: Подбор более обобщенных моделей головы для уменьшения ошибок деформирования модели. Идентификация более «эффективных» базовых точек для улучшения точности деформирования модели. Улучшение процесса генерации текстур для большего реализма модели. Наши работы в ближайшем будущем будут сфокусированы на двух основных областях. Во-первых, планируется разработать инструментальные средства генерации текстур, которые способны производить текстурные карты для более реалистического вида головы моделируемого человека. Во-вторых, в процессе разработки находится полностью автоматическое средство генерации базовых точек для изображений головы.