Pull to refresh

Comments 27

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

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

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

Проблема в том, что записать зависимости вручную так, чтобы они учли все мелочи — очень сложно. И даже сложные системы, которые долго писались, типа HumanIK от Maya все равно имеют кучу проблем. Нейронная сеть же сама учитывает все эти особенности человеческих поз, просто за счет того, что о них знают аниматоры.
Применение нейросети здесь, это как сравнивать аналитическое решение уравнение и приближенное. С одной стороны аналитическое решение лучшее, но его надо знать и уметь решать, а с другой стороны запихиваешь в компьютер какие-то число и он сразу тебе выдает очень хорошие аппроксимации.
С практической точки зрение, второе, конечно, лучше, так как экономит кучу сил, а первое останется для студентов и профессоров.

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


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


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

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

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

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

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

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