Как стать автором
Обновить

Cascadeur: предсказание позы персонажа по шести точкам

Время на прочтение3 мин
Количество просмотров10K
Всего голосов 42: ↑42 и ↓0+42
Комментарии27

Комментарии 27

Сейчас модно везде применять нейросети. Мне кажется, для данной задачи, хватило бы простой математики и зависимостей.
Это же типичная задача как раз под нейросети — математика и ограничения вам дадут бесконечное множество возможных положений костей. Нейросеть выберет из них то, которое больше похоже на натуральное.
НЛО прилетело и опубликовало эту надпись здесь
Мне кажется, нейросеть проще переобучить или дообучить, чем переписывать или писать новые математические формулы.
НЛО прилетело и опубликовало эту надпись здесь
Если формулы пишутся в течении дня-недели и дают тот же результат, то где же все эти сотни-тысячи игр с крутой процедурной анимацией персонажей в играх, где куча либ под все популярные движки делающие из пяти точек живые позы? Это ведь тот же срок что тратится скажем на код несложного UI движка, а функционал такой что его бы с руками оторвали будь он легко доступен. Быть может решение этой задачи не так просто и очевидно?
НЛО прилетело и опубликовало эту надпись здесь
в каждой ААА игре сотни крутых процедурных техник
А точнее записанные заранее ключевые кадры плюс немного обычного IC.
генерируемая графика это и текстуры и нормал мапы итени и отражения, и сотни других приемов, а не только летающие кубики… В Думе 2016 года сделали очень крутое освещение
Это все очень круто, но какое все это имеет отношения к обсуждению процедурных анимаций?
еще во флеше были, не говоря уже про денди и более старые игры где оптимизации зашкаливали
Это в каких таких играх на флеше и на денди было что-то связанное с темой этой статьи? Максимум что там можно найти это 2d IC уровня «нога это два катета, давайте посчитаем угол».
тут уже вопрос монетизации и маркетинга
Этот же вопрос не мешает существованию кучи открытых библиотек того же UI под каждый популярный игровой/графический движок.
Ниже DesertFlow хорошо описал, почему задача аналитического описания человеческого тела сложная.

Чтобы оценить масштаб проблемы, стоит посмотреть на пример простого классического рига: www.youtube.com/watch?v=RUvgboeR2_0&t=1200s. Видно, что контроллеров (а значит, и степеней свободы) там целая куча и умение с ними работать требует определенных навыков. Это пример рига, построенного вручную, из функций, при помощи графа зависимостей.

Наш стандартный риг в каскадере с одной стороны более интуитивен, за счет использования физики внутри рига (можно посмотреть на примере нашего тутора). С другой стороны — «сломать» позу в нем даже проще.

Проблема в том, что записать зависимости вручную так, чтобы они учли все мелочи — очень сложно. И даже сложные системы, которые долго писались, типа HumanIK от Maya все равно имеют кучу проблем. Нейронная сеть же сама учитывает все эти особенности человеческих поз, просто за счет того, что о них знают аниматоры.
Более того, вот этот парень уже сделал. (Проект полного присутвия в VR)
www.youtube.com/watch?v=9IDhcrzJtY4
это же задача кинематики и только
Применение нейросети здесь, это как сравнивать аналитическое решение уравнение и приближенное. С одной стороны аналитическое решение лучшее, но его надо знать и уметь решать, а с другой стороны запихиваешь в компьютер какие-то число и он сразу тебе выдает очень хорошие аппроксимации.
С практической точки зрение, второе, конечно, лучше, так как экономит кучу сил, а первое останется для студентов и профессоров.

Хорошая работа. Сделать математическую модель человеческого тела совсем не просто. Когда вы сгибаете одну часть тела, например руку, остальные части тела тоже сдвигаются. Причем по очень нелинейным зависимостям. Как из-за самой структуры тела (суставы, мышцы, связки), так и из-за подобранной эволюцией минимизации затрат энергии на поддержание позы. Более того, в позу включается также готовность к следующим действиям. Например, перед боем поза будет напряжённая, жертвуя минимизацией энергии. Потому что в этом случае для выживания выгоднее иметь преднапряженные мышцы.


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


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

А если натравить штуки гуглящиеся по запросам «opencv human pose estimation» на боевики из 90-х с азиатами и запихнуть в эту модель?
Прочитал заголовок и подумал — до создания грамматона клерика осталось 10 лет…
Я хочу состязание с роботом-фехтовальщиком!
Роботом-фехтовальщиком!
А.Ха.Ха.
НЛО прилетело и опубликовало эту надпись здесь
Я думаю было бы интересно добавить к этому еще и дельту всех значений точек, и посмотреть что получится.
НЛО прилетело и опубликовало эту надпись здесь

Только положения, повороты конечно дали бы очень много дополнительной информации нейросети, но потребовали бы и гораздо больше действий от пользователя

НЛО прилетело и опубликовало эту надпись здесь
Да, для мокапа конечно стоит учитывать всю информацию, которая есть. Но в нашем случае это именно инструмент, с помощью которого можно ставить позу, поэтому чем меньше степеней свободы приходится задавать — тем лучше и проще пользователю.
НЛО прилетело и опубликовало эту надпись здесь
Классное применение, молодцы!
Каким инструментарием пользовались для обсчёта НС?

Сначала мы использовали напрямую tensorflow, сейчас переехали на pytorch

Спасибо. А что стало толчком к переходу на торч?
Если кратко, то Pytorch гораздо более прямолинейный фреймфорк чем TF. Конечно с выходом TF 2.0 возможно что-то там поменялось, но зачем наступать на одни и те же грабли уходить с такого интуитивного инструмента, как Pytorch.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий