Родившись ребенком 80-х, я вырос в золотой век марионеток. Мое поколение выросло на Маппетах, Улице Сезам, Звездных войнах, Темном кристалле, Лабиринте, Бесконечной истории, ET, Гремлинах, ALF, и этот список можно продолжить.

Мы с братьями собирались вокруг небольшого телевизора и видеомагнитофона, и наше воображение было захвачено творениями Джима Хенсона и других. Марионетки существуют уже два с половиной тысячелетия, и они все еще живы и здоровы сегодня (хотя в современном кино используются более экономно). В том, чтобы оживить движущуюся руку, есть несомненный абсурд, но это никогда не перестает нас развлекать. Тем не менее, после рождения собственной дочери я вижу, как волшебство, которое я когда-то испытал в детстве, может быть потеряно в переводе на поколение мобильных телефонов, на которое трудно произвести впечатление. Достаточно сказать, что выбранная вами консоль 80-х (в моем случае - Commodore 64) требовала немало воображения, чтобы развеять недоверие.

Создаваемый компьютером контент был таким же благом для индустрии развлечений, как и он, в то же время он высосал из нее большую часть жизни (лично я предпочитаю, чтобы Йода был прикован к спине Люка, а не тот, который переворачивает зеленый экран, как цирковая обезьяна). Возможно, я просто испытываю ностальгию, но я думаю, что часть того, что возвращает меня к фильмам моего детства, заключается в том, что созданные вручную спецэффекты служили определенной цели и были выполнены спонтанно - в отличие от безжизненных, ленивых и преднамеренных визуализаций. современного кино.

Итак, в попытке вернуть часть этой магии поколению моей дочери (и тем, которые предшествовали ей), я решил создать мобильное приложение, которое объединяет оба мира. YoPuppet все еще находится на ранней стадии разработки, и наша главная цель здесь - просто получить отзывы из Интернета. Сейчас наше приложение предназначено для семей и создателей контента, с возможностью записи и обмена при желании. Я уверен, что с небольшой помощью я смогу перевести это приложение в состояние готовности к работе на устройствах iOS и Android (а также на настольных компьютерах). До сих пор мы самофинансируемся, и мы обсуждаем, как лучше всего финансировать этот проект в будущем.

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

Это приложение было разработано с использованием OpenCV, Cocos2d-x и Spine. Большая часть кода написана на C ++. Я не тестировал ни на чем, кроме iPhone 7 Plus, но он показывает около 60 кадров в секунду с небольшой оптимизацией. Он работает как с передней, так и с задней камерами мобильных устройств. Подходит к любому цвету кожи (даже с синей латексной перчаткой на руке). Он будет работать любой рукой (в конечном итоге) и для любого, у кого есть хотя бы 2 пальца (и теоретически, даже с протезами конечностей). Процесс на высоком уровне состоит в том, чтобы сегментировать кожу от фона (обратная проекция HSV), а затем сегментировать контур руки (пороговая обработка, эрозия, расширение) оттуда. Сегментация работает достаточно хорошо в большинстве условий освещения и фона с небольшой ручной настройкой пороговых значений, но ее необходимо улучшить для использования потребителями (возможно, путем динамической адаптации к окружающей среде). Я пытаюсь найти ориентиры вокруг кисти и руки, используя дефекты выпуклой оболочки контура, и на этом сложность действительно заканчивается. После этого я просто прикрепляю скелеты к ориентирам и при необходимости вращаю и масштабирую. Как вы могли заметить, я не художник, и эти марионетки, которые вы видите прикрепленными к скелету, просто заполнители для гораздо более творческого искусства, чем мое собственное. Я решил использовать одну конкретную плоскую ориентацию руки и 2d вместо 3d, просто чтобы иметь возможность сделать что-то, что работает на мобильном устройстве и надежно. Теоретически его можно расширить для поддержки других направлений и трехмерных марионеток, но это проблема для команды, намного большей, чем я. Для тех, кто не знаком, распознавание жестов руки намного сложнее, чем определение черт лица - из-за множества степеней свободы руки и пальцев - и это в значительной степени нерешенная область с 2d камерами.