Автоматическое воссоздание 3D-поверхности

Автор: Пользователь скрыл имя, 05 Октября 2011 в 08:17, реферат

Описание работы

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

Работа содержит 1 файл

3D.docx

— 597.04 Кб (Скачать)
Автоматическое  воссоздание 3D-поверхности  

Юрий  Яцкевич  
Научный сотрудник «Лаборатории информационно-кибернетических систем» Белорусского государственного университета информатики и радиоэлектроники (г. Минск). Кандидат технических наук.

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

Автор этих строк  весьма далек от 3D-дизайна, а тем  более — от детального прорисовывания мимики игровых персонажей. И вообще он не умеет рисовать. Поэтому он пошел по более простому для него пути — стал создавать систему  на основе нескольких видеокамер, компьютера и разработанной лично им программы, которая по принимаемым от видеокамер плоским изображениям строила бы трехмерную поверхность объекта.

И вот, что из этого получилось.

Выбор количества и направления  видеокамер

Первый вопрос, который возникает при построении 3D-поверхности объекта сложной  геометрической формы на основе его  плоских проекций, это какое количество и какая пространственная ориентация проекций необходима для такого построения.

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

По аналогии с человеческим способом восприятия трехмерных объектов и определения  расстояния до них в данной работе рассматривается способ построения фрагмента 3D-поверхности на основе двух одинаково направленных и горизонтально  смещенных друг относительно друга  проекций (рис. 1).

Рис. 1. Взаимное расположение видеокамер и выдаваемых ими проекций для построения фрагмента  поверхности трехмерного объекта.

Такой способ размещения видеокамер (ориентации проекций) является наиболее универсальным. То есть, не привязан к размерам воспринимаемого объекта  и расстоянию до него. Он имеет тот  недостаток, что некоторая часть  растрового пространства проекций не может быть использована для построения поверхности. В левой части проекции 1 (рис. 1) отображено то, что не отображено на проекции 2, а в правой части  проекции 2 отображено то, что не отображено на проекции 1. Чем ближе к фотокамерам  расположен воспринимаемый объект, тем  меньшая область воспринимается одновременно обеими камерами. В дальнейшем, при определении более четких требований к воспринимаемым объектам, возможно иное размещение видеокамер для более полного использования растрового пространства проекций (рис. 2).

Рис. 2. Альтернативное расположение видеокамер и выдаваемых ими проекций для построения фрагмента  поверхности трехмерного объекта  на определенном (фокусном) расстоянии от фотокамер.

Математический  расчет трехмерных координат  точки 3D-поверхности  по координатам этой точки на проекциях

Второй вопрос, на который пришлось ответить —  каким образом можно определить третью координату некоторой точки  поверхности (расстояние от точки наблюдения до точки поверхности), отображенную на обеих плоских проекциях (фотоснимках), с математической точки зрения. То, что это возможно практически, мало у кого вызывает сомнения. И человеческое зрение, и многие оптические приборы (бинокли, дальномеры и др.) используют следующий принцип: два изображения, получаемые двумя одинаковыми подсистемами видео восприятия (глазами или  объективами), изначально направленными  параллельно, совмещаются путем  поворота этих подсистем навстречу  друг другу в плоскости их расположения. Углу поворота глаз или объективов соответствует определенное расстояние от точки наблюдения до наблюдаемого объекта, которое выдается в качестве результата работы всей системы. Например, если объект расположен на бесконечно большом расстоянии от точки наблюдения, то глаза смотрят параллельно (поворот — 0°). А если объект максимально приближен к точке наблюдения (на переносице), то глаза смотрят почти друг на друга (поворот — 90°). Ниже приводится математическая формализация этого принципа.

Пусть две видеокамеры  расположены в горизонтальной плоскости  вдоль координатной оси X на одинаковом расстоянии Rbs от координатной оси Z, как показано на рис. 3. Выдаваемые этими видеокамерами изображения имеют одинаковый размер Rxp×Ryp пикселей. Также известно, что эти изображения на расстоянии Rz метров от камеры вмещают в себя объекты с максимальным размером Rxm×Rym метров. Некоторая точка поверхности объекта, наблюдаемая на обоих изображениях (проекциях), отображается в пикселе с координатами (Pxlp, Pyp) на левом изображении и (Pxrp, Pyp) на правом (вертикальные координаты совпадают). Требуется определить координаты (Xw,Yw,Zw) наблюдаемой точки в выбранной «мировой» системе координат.

Рис. 3. Система  координат, в которой определяются координаты элементов поверхности  наблюдаемого трехмерного объекта.

Для решения  данной задачи, прежде всего, нужно  ответить на вопрос, как перейти  от пиксельных координат (Pxlp, Pyp) и (Pxrp, Pyp) растрового изображения к метрическим координатам (Pxlm, Pym) и (Pxrm, Pym).

Если изображение  вмещает в себя максимальный объект Rxm метров, расположенный на расстоянии Rz метров от камеры (рис. 4), то тангенс половины угла восприятия камеры:

Рис. 4. Схема для определения координат (Xw,Zw) наблюдаемой точки по пиксельным координатам на растровых проекциях (Pxlp и Pxrp — номера пикселей по горизонтали в левой и правой проекциях, Pxlm и Pxrm — метрические координаты пикселей) в плоскости, проходящей через камеры и наблюдаемую точку.

Если изображение  имеет Rxp пикселей по горизонтали, то угловой размер пикселя по горизонтали:

Аналогично, для  вертикали (рис. 5):

Тогда переход  от пиксельных координат (Pxlp, Pyp) и (Pxrp, Pyp) к метрическим (Pxlm, Pym) и (Pxrm, Pym) для проекций, расположенных на произвольном расстоянии Rz метров от камеры, выполняется по формулам:

В данной работе задача определения «мировых» координат (Xw,Yw,Zw) точки по пиксельным координатам на проекциях ((Pxlp, Pyp) и (Pxrp, Pyp)) решается в два этапа. На первом этапе вычисляются координаты (Xw, Zw) наблюдаемой точки в горизонтальной плоскости, проходящей через наблюдаемую точку параллельно плоскости XZ (рис. 4). Это вычисление проводится на основе горизонтальных пиксельных координат точки Pxlp и Pxrp на левой и правой проекциях соответственно. На втором этапе вычисляется координата Yw на основе вертикальной координаты Pyp, совпадающей в обеих проекциях, и вычисленной ранее координаты Zw (рис. 5).

Исходя из подобия  треугольников, как видно на рисунке 4, следуют соотношения:

где

Совокупность  уравнений 6, 7 и 8 представляет собой  систему уравнений, в результате решения которой относительно Xw и Zw с учетом соотношений 3 и 4 были получены формулы для вычисления координат Xw и Zw:

где Pxlp и Pxrp — горизонтальные пиксельные координаты точки на левой и правой проекциях соответственно, Rxp — количество пикселей в проекции по горизонтали, Кpx — угловой размер пикселя по горизонтали (определяется по формуле 1), Rbs — половинное расстояние между камерами.

Рис. 5. Схема для определения координат Yw и Zw наблюдаемой точки по пиксельной координате на растровых проекциях (Pyp — номер пикселей по вертикали в левой и правой проекциях, Pym — метрическая координата пикселей) и ранее вычисленной координате Zw.

Координата Yw вычисляется по формуле, которая следует из подобия треугольников по рис. 5 с учетом соотношения 5:

где Pyp — горизонтальная пиксельная координата точек, совпадающая для левой и правой проекций; Ryp — количество пикселей в проекции по вертикали, Кpy — угловой размер пикселя по вертикали (определяется по формуле 2), Zw — вычисленная по формуле 10 координата.

Таким образом, зная двумерные координаты некоторого пикселя на двух растровых изображениях, по формулам 9, 10 и 11 можно вычислить  трехмерные пространственные координаты соответствующего этим пикселям элемента поверхности.

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

Установка для получения  растровых изображений 3D-поверхности  в цифровом виде

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

Эта установка  изготовлена на основе двух полупрофессиональных видеокамер Canon HV-20, позволяющих получать видеоизображения формата HDV с разрешением 1920×1080 пикселей (Rxp = 1920 пикс., Rxp = 1080 пикс.).

Внешний вид  установки представлен на рис. 6. Как видно из рисунка, видеокамеры  установлены на горизонтальной площадке специально изготовленного штатива  на расстоянии 0,166 м друг от друга (Rbs = 0,166 м /2 = 0,083 м) и направлены одинаково.

Рис. 6. Внешний  вид изготовленной установки  для получения цифровых изображений  поверхности моделируемых объектов.

Оптическая система  видеокамер (10-ти кратное оптическое увеличение, 1 см — минимальное расстояние фокусировки в максимальноширокоугольном  положении) позволяет практически  неограниченно варьировать размеры  снимаемых объектов и расстояния до них. В данной работе использовались изображения объектов, расположенных  на расстоянии Rz = 0,8 м. Размер изображения тестового объекта высотой 8,7 см был равен 584 пикселя. Т.е. размер одного пикселя составлял 0,087/584 = 0,00015 м, а угловой размер одного пикселя составлял Кpx = Кpy = 0,087/0,8/584 = 0,000186.

При таком положении  камер минимально различимая разность расстояния до поверхности объекта (погрешность определения Z-координаты) по теоретическим расчетам составляет 0,72 мм. Эта цифра внушает оптимизм для продолжения разработок в  данном направлении.

Практические  результаты

На рис. 7 представлены фотографии исходного трехмерного  объекта (человеческого лица), полученные при помощи установки, изображенной на рис. 6. После обработки этих изображений специально разработанной программой получился некий фрагмент трехмерной поверхности, представленный на рис. 8. Как видно из рисунка, более или менее удовлетворительно получились участки поверхности с небольшим наклоном (менее 45°) к оси камер. Из этого следует, что двух видеокамер недостаточно для построения качественной поверхности лица

.

Рис. 7 (слева). Фотографии исходного трехмерного  объекта, полученные при помощи разработанной  установки. 
Рис. 8. Результат работы системы — видимый фрагмент поверхности трехмерного объекта.

Перспективы развития системы

Представленная  здесь разработка не является законченным  продуктом. Но полученные и представленные результаты позволяют рассчитывать на успех при создании более серьезных  систем. Планируется создание системы  на основе шестнадцати видеокамер, расположенных вокруг моделируемого  объекта (рис. 9), и шести видеокамер, расположение которых представлено на рис. 10. Система на шестнадцати  видеокамерах позволит получать полную поверхность моделируемых объектов (людей и животных), изменяющуюся во времени. А система на шести  видеокамерах позволит получать поверхность  лица, которую потом можно будет  «вмонтировать» в игрового персонажа.

Рис. 9 (слева). Взаимное расположение видеокамер перспективной  системы для построения 
полной поверхности трехмерного объекта. 
Рис. 10. Взаимное расположение видеокамер перспективной системы для построения фрагмента поверхности 
трехмерного объекта (например лица человека).

Заключение

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

Информация о работе Автоматическое воссоздание 3D-поверхности