Использование камеры Intel RealSense с TouchDesigner. Часть 2
Содержание материала
Исторические сведения
Все данные, предоставляемые камерами Intel RealSense, очень полезны для создания виртуальной реальности и дополненной реальности. Некоторые попытки делать то, что сейчас делается с помощью камеры Intel RealSense, были еще в 80-х годах. Технология отслеживания расположения руки была разработана в 80-х годах в виде перчатки, передающей данные, авторы этого изобретения — Джейсон Ланьер (Jason Lanier) и Томас Циммерман (Thomas G. Zimmerman). В 1987 году компания Nintendo выпустила первый манипулятор для управления играми в виде перчатки, подключаемой по проводам к игровой консоли Nintendo.
Ссылка на первую часть
Устройства, развитие которых привело к созданию камер Intel RealSense, изначально предназначались для анимации на выступлениях: технологии захвата движения применялись, чтобы преобразовать выступление человека в математические данные, то есть в цифровую информацию. Захват движения применялся еще с 70-х годов в исследовательских проектах в различных университетах, а также в войсках для обучения. Одним из первых анимационных фильмов, созданных с помощью захвата движения, был анимационный ролик Sexy Robot, созданный в 1985 году Робертом Абелем (Robert Abel) и его коллегами. В ролике Sexy Robot использовалось несколько технологий для получения информации, с помощью которой была создана и анимирована цифровая модель робота.
Сначала была создана модель робота. Ее измерили со всех сторон, описывающую ее информацию перевели в цифровой вид: аналогичных результатов камера RealSense добивается при съемке объектов. Для вычисления движения на актере нарисовали точки, движение которых соотнесли с движением цифрового «скелета»: была создана векторная анимация, при помощи которой двигалась цифровая модель. Камера RealSense обладает возможностью инфракрасной съемки и инфракрасным лазерным проектором, что позволяет получать данные для цифровых моделей и отслеживания движений. Возможности отслеживания камеры Intel RealSense достаточно совершенны: можно отслеживать даже движения глаз.
Камеры Intel RealSense
В настоящее время существует две модели камер Intel RealSense. Они выполняют схожие функции, но кое в чем различаются: это камера Intel RealSense F200, для которой предназначены упражнения в этой статье, и камера Intel RealSense R200.
Камера Intel RealSense R200 благодаря своему компактному размеру обладает важными преимуществами. Она предназначена для установки на штатив или на заднюю часть планшета. Таким образом, объектив камеры направлен не на пользователя, а на окружающий мир, а благодаря усовершенствованным возможностям съемки поле зрение камеры охватывает более широкую область. Кроме того, у этой камеры улучшены и возможности измерения глубины.
Эту камеру очень интересно использовать для проектов дополненной реальности, поскольку в ней поддерживается функция восприятия сцены, позволяющая добавлять виртуальные объекты в отснятую сцену реального мира. Также можно накладывать виртуальную информацию на снимаемое изображение в прямом эфире. В отличие от модели F200 камера R200 не поддерживает отслеживания пальцев, рук и лиц. TouchDesigner поддерживает обе модели камер Intel RealSense: и F200, и R200.
Камеры Intel RealSense в TouchDesigner
TouchDesigner идеально сочетается с камерой Intel RealSense: поддерживается прямая связь между мимикой лица пользователя и движениями рук и программным интерфейсом. TouchDesigner может напрямую использовать эти данные отслеживания и положения. TouchDesigner также может использовать данные глубины, цветного изображения и инфракрасного изображения, передаваемые камерой Intel RealSense. Камеры Intel RealSense очень легкие и компактные, особенно модель R200, которую можно легко разместить рядом с исполнителями незаметно для аудитории.
Адам Берг (Adam Berg), исследователь в компании Leviathan, работающий над проектом по использованию камеры Intel RealSense вместе с TouchDesigner для создания интерактивных инсталляций, заявляет: «Благодаря компактному размеру и простой конструкции камера отлично подходит для интерактивных решений.
Камера не бросается в глаза, а требования к инфраструктуре упрощаются, поскольку камере не требуется внешний источник питания. Кроме того, нам понравились низкие задержки при создании изображения глубины.
TouchDesigner — великолепная платформа для работы (от создания первоначального прототипа до разработки финальной версии). Она обладает встроенной поддержкой пяти камер, возможностью высокопроизводительного воспроизведения мультимедиа и удобными возможностями работы с шейдерами. Помимо этого, безусловно, следует отметить и великолепную поддержку».
Использование камеры Intel RealSense в TouchDesigner
Во второй части мы рассматриваем узел CHOP в TouchDesigner для камеры Intel RealSense.
Узел RealSense CHOP
Узел RealSense CHOP управляет трехмерным отслеживанием и данными о положении. Узел CHOP содержит информацию двух типов. (1) Положение в реальном мире (измеряется в метрах, но можно довести точность до единиц миллиметров) используется для преобразования по осям x, y и z. Повороты вокруг осей x, y и z в RealSense CHOP выводятся в виде углов Эйлера по осям x, y и z в градусах. (2) Узел RealSense CHOP также получает пиксели входного изображения и преобразует их в нормализованные UV-координаты. Это полезно для отслеживания изображений.
Узел RealSense CHOP обладает двумя настраиваемыми параметрами: отслеживание пальцев/лица и отслеживание маркера.
- В разделе Finger/Face Tracking можно выбрать отслеживаемые элементы. Можно ограничить список отслеживаемых элементов только одним аспектом, а затем, соединив узел Select CHOP с узлом RealSense CHOP, вновь ограничить список, чтобы отслеживать только движение брови или глаза.
- Отслеживание маркеров позволяет загрузить изображение и отслеживать этот элемент, где бы он ни находился.
Использование узла RealSense CHOP в TouchDesigner
Демонстрация 1: использование отслеживания
Это простая первая демонстрация узла RealSense CHOP показывает, как его можно соединять с другими узлами и использовать для отслеживания и создания движения. Вновь обратите внимание, что для этих демонстраций достаточно крайне поверхностного знания TouchDesigner. Если у вас нет опыта работы с TouchDesigner* и вы собираетесь постепенно разбираться в этой статье, то рекомендую сначала просмотреть документацию, доступную здесь: Изучение TouchDesigner.
- 1. Создайте узлы, которые нам потребуются, и расположение их в горизонтальной строке в следующем порядке: узел Geo COMP, узел RealSense CHOP, узел Select CHOP, узел Math CHOP, узел Lag CHOP, узел Out CHOP и узел Trail CHOP.
- 2. Соедините узел RealSense CHOP с узлом Select CHOP, узел Select CHOP — с узлом Math CHOP, узел Math CHOP — с узлом Lag CHOP, узел Lag CHOP — с узлом Out CHOP Node, а узел Out CHOP — с узлом Trail CHOP.
- 3. Откройте страницу параметров Setup узла RealSense CHOP и убедитесь, что для параметра Hands World Position задано значение On. Выводится расположение отслеживаемых суставов руки в пространстве. Значения указываются в метрах по отношению к камере.
- 4. На странице параметров Select узла Select CHOP установите для параметра Channel Names значение hand_r/wrist:tx, выбрав его среди доступных значений в раскрывающемся списке справа от параметра.
- 5. В параметре Rename From введите hand_r/wrist:tx, затем в параметре Rename To parameter введите x.
- Рисунок 1. Отбор каналов из узла RealSense CHOP происходит в узле Select CHOP
6. В параметре Range/To Range узла Math CHOP введите 0, 100. Для уменьшенного диапазона движений введите число меньше 100. - 7. Выберите узел Geometry COMP и убедитесь, что он находится на странице параметров Xform. Нажмите кнопку «+» в правом нижнем углу узла Out CHOP, чтобы включить просмотр. Перетащите канал X на параметр Translate X узла Geometry COMP и выберите Export CHOP в раскрывающемся меню.
Рисунок 2. Здесь вы добавляете анимацию, полученную из RealSense CHOP
Для рендеринга геометрии понадобится узел Camera COMP, узел Material (MAT) (я использовала Wireframe MAT), узел Light COMP и узел Render TOP. Добавьте эти узлы для рендеринга этого проекта.
- 8. В узле Camera COMP на странице параметров Xform установите для параметра Translate Z значение 10. Это позволит лучше видеть движение созданной геометрии, поскольку камера сдвигается назад по оси Z.
- 9. Проведите рукой перед камерой и посмотрите, как геометрическая фигура будет двигаться в узле Render TOP.
Рисунок 3. Как узлы соединены друг с другом. Благодаря узлу Trail CHOP в конце можно просмотреть анимацию в графической форме
Рисунок 4. Значение преобразования x узла Geometry COMP было экспортировано из канала x в узел Out CHOP, который был передан далее по цепочке от узла Select CHOP