Большое слово — Mocap


Большинство знает о mocap (захвате движений) из киноиндустрии: чёрный костюм с множеством точек на теле. Однако технологии не стоят на месте, и уже сейчас в домашних условиях для создания развлекательного контента достаточно одной веб-камеры, чтобы полностью захватить движения и преобразовать их в ваш аватар в режиме реального времени. Отличным примером такой технологии является SysMocap. Программа бесплатна, имеет открытый исходный код, работает в реальном времени и не требует предварительной настройки. В данной статье я рассмотрю SysMocap и несколько его аналогов, использующих формат технологии VRM.

Содержание


Технология


Оригинальная схема с Github-репозитория

Захват и преобразование движений реализуются с помощью MediaPipe и TensorFlow Lite. MediaPipe — это набор инструментов, один из которых используется в данном ПО — MediaPipe Pose. Этот инструмент предназначен для захвата движений человека с видеопотока в реальном времени. TensorFlow Lite — облегчённая версия библиотеки машинного обучения TensorFlow, которая снижает вычислительные затраты. Благодаря своим моделям предсказания TensorFlow Lite может самостоятельно достраивать некоторые операции, что уменьшает нагрузку на MediaPipe. Это позволяет снизить необходимость в тяжеловесных вычислениях между кадрами, поскольку TensorFlow Lite способен производить расчёты и генерировать промежуточные кадры. Такой подход делает процесс менее ресурсоёмким.

Кроме графического интерфейса пользователя (GUI), у проекта есть сервер пересылки, который запускается на компьютере пользователя. С его помощью очень просто вывести получаемую модель аватара, например, на OBS или AR/VR устройства.

Насколько это хорошо работает?


Как абсолютно бесплатное ПО для встреч в видеозвонках с друзьями — это весьма хорошее решение. Хотя мелкая моторика и неплохая, руки программно закреплены так, что их нельзя развернуть на 180 градусов, что делает невозможным показать почти любой неприличный жест. Тем не менее, в остальном это полный захват движений тела: руки, ноги, глаза, положение головы и корпуса.

Демонстрационный mocap из Github-репозитория SysMocap

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

Скриншот библиотеки из программы

Аналоги


▍ Webcam Motion Capture


Гораздо более продвинутый захват движения рук, как заявляют авторы ПО «AI-powered Webcam Motion Capture». Подписка стоит всего 2 доллара в месяц. Но у SysMocap всё же есть один плюс — поддержка Linux.


▍ Luppet X


Значительно отличается от ранее рассмотренных вариантов наличием дополнительной гарнитуры — LeapMotion controller за нескромные 15-30 тысяч рублей, но на Авито цена уже более демократичная — 5-12 тысяч рублей. С технической стороны, это более сложный подход, чем Webcam Motion Capture, но в основании принципа они оба просто берут поток данных с сенсоров и преобразуют их в скелетную анимацию. Устройство LeapMotion работает за счёт двух инфракрасных камер и трёх инфракрасных светодиодов, которые создают невидимое для глаз поле. За счёт двух камер строится 3D-проекция картинки, а поскольку они инфракрасные и имеют необходимые излучатели света, устройство работает одинаково хорошо при хорошем и даже отсутствующем освещении.

Демонстрация работы LeapMotion Controller

Гарнитура, поставляемая разработчиками, переносная: её можно повесить на шею или использовать как VR-гарнитуру, что прибавляет ей ещё больше плюсов. Это снижает вероятность выхода из области захвата движений и предотвращает «разрушение» вашего аватара. Сама программа стоит 6600 JPY, что составляет 4249 рублей по текущему курсу.



Установка SysMocap


▍ Windows


Самый простой установщик. От вас требуется только скачать и запустить актуальный релиз программы по ссылке. Нужный файл имеет подзаголовок — SysMocap-Windows-x64-installer.

▍ MacOS


Установка не сложнее обычной программы. Скачиваем последнюю версию программы по ссылке, с подзаголовком SysMocap-MacOS-x64, если вы используете Хакинтош, или SysMocap-MacOS-arm в случае с процессорами M. В обоих случаях стандартным методом .dmg образ устанавливаем в систему и пользуемся.

Также с оригинального Github-репозитория есть отдельная пометка:

Заметка для пользователя на macOS:

Вам необходимо установить Gatekeeper в режим «Anywhere» в настройках системы (используя sudo spctl --master-disable).


Если появится сообщение «SysMocap повреждён и не может быть открыт. Переместите его в корзину», выполните следующую команду в терминале: sudo xattr -r -d com.apple.quarantine /Applications/SysMocap.app

▍ Linux


Всё сводится к простому вводу пачки команд в терминал.

git clone https://github.com/xianfei/SysMocap.git
cd SysMocap
npm i
npm start

Также не будет лишним сделать alias для удобного быстрого вызова программы в одну команду:
sudo nano /etc/bash.bashrc

И добавляем новый alias:
alias sysmocap='cd ~/SysMocap; npm start'

Чтобы он заработал сразу, без перезахода в систему, воспользуетесь данной командой:
source /etc/bash.bashrc

▍ Запуск


Ничего сложного в запуске нет. 1. Откройте вкладку Mocap. 2. Выберите нужную модель. 3. Нажмите Start, чтобы запустить процесс.



▍ Чиним баги




При возникновении ошибки обычно всё решается ручной настройкой камеры.



Если предыдущий шаг не помог, проблема может быть связана с отключёнными дискретными вычислениями (ГПУ) в настройках.



VRM модели. Где же достать ещё аватаров?


VRM (Virtual Reality Model) не настолько прост, как обычная модель из Blender. Он имеет определённый формат пакета и разметки костей внутри себя. К тому же, ПО SysMocap имеет некоторые проблемы, поэтому фактически вы сможете запустить там только файлы формата .vrm

▍ Первый вариант


Вы сами можете создать свою модель в VRoid Studio, что помимо удобного редактора включает в себя собственно моделирование одежды и любых дополнительных аксессуаров в Blender. Но можно обойтись и только VRoid Studio.

VRoid Studio

▍ Второй вариант


Поиск уже готовых моделей. По сути существует всего один сайт, где вы можете в 99,9% случаев найти рабочую модель бесплатно — Booth. На сайте также очень много платных продуктов. Однако у него весьма нестабильная загрузка без VPN, и он в основном японский.

Скриншот сайта Booth

Вывод картинки из SysMocap на виртуальную камеру OBS


Отлично, программа у нас заработала, и в левой панели вы видите свой аватар. Возникает вопрос: «Как мне теперь показать моё творение друзьям в Discord?». Ответ прост: запуск виртуальной камеры в OBS. Более того, путём нехитрых операций можно значительно улучшить вашу картинку.

Для начала нужно в настройках SysMocap включить Mocap Data Forward и обязательно отключить Support for WebXR (AR/VR). Эта настройка часто вызывает проблемы. После этого на вашем компьютере создастся поток данных с 3D-моделью вашего аватара.

Для её применения в OBS нам нужно создать на сцене источник «браузер» со ссылкой 127.0.0.1:8080. После этого на экране появится ваша транслируемая модель. Через меню «взаимодействие» вы можете приблизить модель, изменить её угол наклона и прочее. А при помощи дополнительных источников, например, добавив на сцену изображение, уже можно будет поместить вашего персонажа в какой-нибудь интерьер.


И чтобы использовать это как поток веб-камеры, достаточно в самом OBS в правой панели запустить виртуальную камеру (на скриншоте не видно, у меня она в тот момент не отображалась из-за бага). Остаётся только выбрать видеокамеру OBS для вывода в Discord или там, где вы собираетесь это использовать.

«У меня ломается модель при приближении или вовсе всегда сломана в вашем дурацком OBS! Что делать!?»

На некоторых версиях программы могут возникать различные баги. Так, у меня на версии 0.7.2 с аватаром происходит какая-то анархия ещё в самой программе SysMocap, а вот на версии 0.6.8 без проблем запустился стриминг модели в OBS.

Заключение


Классический захват движений, используемый в киноиндустрии и профессиональных студиях, обычно требует специального оборудования и костюмов с маркерами. Эта технология обеспечивает высокую точность и детализацию движений, но остаётся дорогостоящей и сложной в использовании для обычных пользователей. Профессиональные системы mocap способны захватывать даже мельчайшие движения пальцев и мимику, что критически важно для создания реалистичных цифровых персонажей в фильмах и играх.

Марк Руффало(Халк) на съёмках Мстителей

Несмотря на то, что домашние решения для захвата движений пока не могут конкурировать по качеству с профессиональными системами, они постепенно совершенствуются. Развитие алгоритмов компьютерного зрения и искусственного интеллекта позволяет улучшать точность захвата движений даже при использовании обычных веб-камер. Это делает технологию mocap более доступной для широкого круга пользователей, от стримеров и создателей контента до людей, просто желающих разнообразить своё общение в сети.

© 2024 ООО «МТ ФИНАНС»

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (3)


  1. Javian
    13.10.2024 14:30

    Наверное большинству это не интересно в реальном времени т.к. ограничивает возможности монтажа.


    1. Lyinx
      13.10.2024 14:30

      А вот за "большинство" тут сложно сказать. Случившийся примерно с началом ковида бум витубинга весьма расширил рынок отслеживаемых реалтайм аватаров. Это конечно больше в уклон ютуберов из области аниме, но оно понемногу растекается и по другим областям.


    1. StepanovAlex
      13.10.2024 14:30

      Это уже актуально и еще более перспективно для управления, в частности, манипуляторами.