Система «Augmented Hand Series» для создания забавных проекций рук
«Augmented Hand Series» - это интерактивная программная система, которая позволяет создавать весёлые и немного жутковатые трансформации рук. Авторами систем являются Голан Левин, Крис Сугру и Кайли Макдональд.
Проект исследует взаимосвязи между движением рук, сознанием и восприятием человека. Это инструмент для изучения путаницы, возникающей в голове человека, когда он видит свою трансформированную руку, исследования проблемы взаимодействия тела и сознания.
Первоначальная задумка проекта появилась ещё в 2004 году, а разработан проект был студией Frank-Ratchye STUDIO в 2013-2014 в рамках фестиваля Cinekid.
Руки одно из самых главных средств взаимодействия с окружающим миром, позволяющее пользоваться инструментами, осязать предметы и делать различные жесты. Тем не менее, мы часто воспринимаем свои руки, как само собой разумеющееся. Проект «Augmented Hand Series» должен удивить вас своими результатами. Когда человек видит свою руку трансформированной, у него возникает новое восприятие своего тела, как пластичного, изменчивого и нестабильного материала.
Возникает чувство остранения, когда человек видит предмет, понимает, что это за предмет, но не «узнаёт» его, так как в реальной жизни он должен быть другим. Человек начинает задумываться, а может ли он вообще контролировать своё тело?
Инсталляция была представлена в 2014 году на фестивале Cinekid. Человек помещал свою руку в специальную коробку, а на экране видел её трансформированной. Создавалась масштабная проекция, отображающая динамику и трансформацию руки. Система работает даже, когда человек двигает пальцами или перемещает руку. Если рука располагается не совсем ровно (не чётко ладонью вниз или вверх), то программа выдаёт непредсказуемые результаты.
Тем не менее, система работает с руками различных размеров, как детскими (около 5 лет), так и взрослыми, а также – с разным цветом кожи. Также на работу системы не влияет наличие украшений, лака на ногтях, татуировок, родинок, морщин; необычно длинные, короткие или широкие пальцы.
Для проекта было подготовлено около 20 различных трансформаций. Некоторые из них меняют структуру руки, другие наделяют её повышеной пластичностью и размерностью, третьи превращают руку в автономный объект. Эффекты «Plus One» и «Minus One» добавляют/убирают один палец; «Variable Finger Length» изменяет длину пальцев; «Meandering Fingers» заставляет пальцы жить своей собсвенной жизнью; «Procrustes» делает все пальцы одинаковой длины; «Lissajous» меняет руку по фигуре Лиссажу; «Breathing Palm» заставляет руку «дышать» (надуваться и сдуваться); «Vulcan Salute» ращепляет третий и четвертый пальцы; «Angular Exaggeration» добавляет пальцы и меняет угол их роста, «Springers» заставляет пальцы пружинить.
Проект «Augmented Hand Series» разработан с использованием openFrameworks. Инсталляция состоит из двух компонентов: системы распознавания руки и системы трансформации. Оба компоента созданы с использовнаием последних достижений в области компьютерного зрения и графики.
На фотографиях представлен процесс отладки системы распознавания руки: неизменённая рука, трёхмерная модель созданная контроллером Leap Motion, контур и меш руки. Также вы видите результаты трансформаций.
Чтобы создать модель руки используется информация о геометрии («скелете») руки, полученная от контроллера Leap Motion, а также контур и пиксельная информация, полученная с цветной камеры высокого разрешения. Изображение обрабатывается методами OpenCV: вычитанием фона, обнаружением краёв и извлечением контура. Так как камера и контроллер физически находятся в разных местах, они наблюдают руку с разных ракурсов.
Поэтому главной технической задачей было создание кода, который бы согласовывал данные с этих двух устройств, чтобы скелет и контур находились в одной системе координат.
На этом фото представлены этапы калибровки контроллера и камеры. Контроллер Leap Motion формирует данные о скелете, а приложение openFrameworks намечает точки взаимодействия трёхмерной модели с контроллера и двумерного изображения с камеры. На правой картинке продемонстрирована калибровка уже реальной проекции.
В Центре искусств Андерсона Ранча Голан провёл недельный семинар посвящённый проблемам калибровки данных с камер и Leap-контроллеров. Участник семинара, игровой разработчик, Симон Саргинсон в сотрудничестве с Эллиотом Вудсом разработали подобное приложение для проецирования данных о скелете на руку человека. И хотя Симон согласовывает данные с камеры и проектора, а в «Augmented Hand Series» согласовываются данные с камеры и контроллера, математическая модель та же самая. В свете последних обновлений Leap SDK, выполнение подобных калибровок в будущем должно значительно упроститься.
На этом видео представлена трансформация добавляющая руке ещё один палец. При этом стоит заметить, что рука может двигаться в процессе трансформации.
Ещё одной проблемой при разработке «Augmented Hand Series» было корректное совмещение пикселей с камеры с необходимой частью руки. Другими словами, нужно было со стопроцентной точностью определить, какому пальцу принадлежит тот или иной пиксель.
Инструмент разработки Leap Motion позволяют добиться в этом отношении очень хороших результатов. Возможно, это самый лучший инструмент на конец 2014 года, позволяющий наложить геометрический скелет на реальную руку. Но, тем не менее, и он не решает проблему полностью. Здесь не годятся простые геометрические методы. Ошибки этих методов приводили к тому, что некоторые пальцы были неправильно идентифицированы, другие были помечены дважды, а какие-то и вовсе не распознавались. Вмето этого для идентификации применялись диаграммы Вороного (розовые блоки на фото и видео выше).
Полный исходный код проекта доступен на Github - http://github.com/CreativeInquiry/digital_art_2014.
Кроме того, есть архив фотографий с процесса отладки - https://www.flickr.com/photos/golanlevin/sets/72157645462794653/.