Использование нейросетей для автопозинга — опыт авторов программы для создания анимации Cascadeur Статьи редакции
Вложенность входных данных, комбинирование результатов и использование физической модели.
Разработчики из студии Banzai, которые работают над программой для создания анимации Cascadeur, в своей колонке для DTF рассказывают, как они комбинируют несколько нейросетей в одном инструменте автопозинга, о котором шла речь в их статье на «Хабре». В этом тексте будет рассмотрен подход, позволивший им реализовать достаточно продвинутые функции, используя лишь стандартные deep learning методы.
Постановка задачи
Мы хотим дать пользователю возможность ставить позы быстро. Он может управлять позициями интересующих его точек, а инструмент будет выставлять по ним позиции остальных точек, сохраняя позу реалистичной.
Использование полносвязных нейросетей предполагает фиксированные вход и выход, поэтому мы сделали несколько нейросетей с разным количеством входных точек: 6, 15, 20, 28 из всех 43 точек персонажа. На картинках ниже в зелёный окрашены те точки, которые подаются на вход нейросети соответствующего уровня детализации.
В чём же проблема использования уровней детализации? Если мы хотим подвинуть точку из 4 уровня, то нам нужно подать на вход все 28 точек. Но мы не хотим заставлять пользователя ставить их все. Наша цель — дать ему возможность подвинуть только несколько из них. Как в таком случае добиться хорошего результата?
Наше решение предполагает вложенность входных данных, комбинирование результатов и использование физической модели.
Вложенность входных данных
Мы выбрали такие уровни детализации, которые имеют особое свойство иерархической вложенности.
Множество входных точек нейросети каждого уровня содержит в себе все точки с предыдущего уровня и добавляет к ним несколько новых. Это позволяет нам использовать выходные данные с одной сети как входные для следующей.
Комбинирование результатов
Давайте рассмотрим работу инструмента на примере: пользователь расставил все шесть основных точек и решил отредактировать ориентацию левой кисти за счёт дополнительных точек кисти со второго уровня детализации.
Как только вы меняете ещё одну точку, кроме основных шести, инструмент запоминает её и начинает использовать в вычислении позиции других точек.
Работа инструмента происходит в несколько этапов в зависимости от отредактированных точек. В данном случае весь процесс схематично изображен на картинке ниже.
Сперва используется сеть первого уровня — она выставляет все 43 точки персонажа по шести основным. Затем по очереди вызываются сети более детальных уровней. Каждая последующая принимает на вход всё более детальные входные данные — либо уточнённые пользователем, либо из результата работы предыдущего уровня. Таким образом, мы получаем возможность использовать нескольких нейросетей с разной детализацией одновременно.
Физическая корректность
Поскольку модели машинного обучения несовершенны, а наша нейросеть предсказывает глобальные позиции точек, итоговая поза будет иметь ошибку в длине рёбер. Это исправляется с помощью итеративного физического процесса, который и восстанавливает её. Если снизить количество итераций в настройках программы, то можно сразу увидеть, как это влияет на финальный результат.
Этот процесс вызывается после работы каждого из уровней, чтобы не допустить ситуации, когда на вход нейросети подаются точки из некорректной позы.
Заключение и планы
Итак, созданный нами инструмент доказал свою пользу на практике. Он помогает нам при создании анимации уже на самом первом этапе, когда необходимо видеть приблизительные позы. В будущем мы планируем добавить поддержку пользовательских гуманоидных скелетов, а также сделать инструмент более точным и устойчивым.
Также мы исследуем возможности, которые дарят нам более универсальные deep learning подходы. Например, уже сегодня можно восстанавливать части фотографий с заданными характеристиками, а также переносить стиль и другие характеристики между изображениями. В будущем мы могли бы использовать этот метод и при создании анимации, например, чтобы добавить в неё или же в позу желаемые характеристики.
Мы продолжаем развивать наш инструмент автопозинга. Уже в ближайшее время Cascadeur войдет в стадию открытого бета-теста. Обязательно следите за новостями на cascadeur.com и в социальных сетях проекта.
Вот, отличная статья, с полным (пусть и максимально общим) описанием пайплайна работы программы
Не то, что ИИ Ведьмака
Вообще, советую не брать интервью у людей, которые не могут вот на таком же уровне объяснить, что и как у них работает
да, в разделе Геймдев появляются статьи смысл которых "нужно много тестировать и мы много тестировали" , но находятся ценители которые пишут что "такие статьи нужны для новичков"
что сказать круто и давно пора.
К сожалению 3дс макс как был с простой IK ( ещё в 2000 году) так и остался. Приходится качать шесть гигабайт какой то воды что бы просто импортировать в FBX который корректно прочитает Юнити.
Будь ты проклят Аутодеск со своим автокадом.
Аминь
Давно пора переходить на Blender.
Для этого они купили майю
Это какой-то англицизм. По-русски будет так: "используя лишь стандартные методы deep learning".
По-русски это будет "используя лишь стандартные методы глубокого обучения".
По сути новый Endorphin? Круто!
Сколько стоит будет можете уже сказать или еще не решили?
Та оно вроде бесплатное, по крайней мере пока что.
Давно слежу (но нифига не вкуриваю хех) за нейронками в анимации, вот за этими ресерчами явно нас ждет некстген и дикое удешевление процесса.
https://twitter.com/blacksquirrel__
Надеюсь в каскадере не только Human риг будут апгрейдить, но и квадрапех.
Квадропеды вообще отдельная тема, да. У меня студентка одна в ИТМО как раз научку делает по созданию алгоритма для четвероногих копытных (в особенности весь фокус на лошадей, так как они в каждой второй ААА игре) - смешивает нейронки с существующими процедурными алгоритмами копытных. Не знаю, что получится в итоге. Но сам очень уже жду, когда анимации станут красивые, быстро модифицируемые и доступные для всех.
У него, кстати, в твиттере есть на тему обработки движений прямо с видео:
https://www.youtube.com/watch?v=rIr-nX63dUA&feature=youtu.be
https://github.com/mkocabas/VIBE
Для квадрапехов нужно много чего менять и потратить много сил, при том что в 99% анимация гуманойда используется точно то пускай они концентрируют свою работу именно на ней не разбазаривая свои силы, это же не корпорация с триллионом долларов
Если это то о чем я думаю, то их анмации хорошо выглядят только с одного ракурса
Одни из немногих кто реально двигает вперед индустрию, почему-то это не убергигантские корпорации с миллиардами, а такие вот студии которые создают то что реально изменит и качество и количество трехмерных фильмов и игр. Спасибо вам !
Вообще, занимаются. EA, например.
А я думал, её уже доделали. Ну ладно, подождём.
Похожий результат даёт прога для художников Design Doll, в ней ты тоже двигаешь ключевые точки, и затем с помощью инверсной кинематики и многократного релакса поза преобретает реалистичный вид.
В Cascadeur конечно покруче, и программа заточена под анимацию. Думаю, это даст огромную экономию для индустрии. Ведь суть мокапа скорее не в точной передаче движений (ну хрен знает что там получится у артиста в мокап костюме), а в придании анимации реалистичности. Она проявляется в первую очередь в удержании равновесия, когда минимальное движение узнаваемо отражается на всем теле и особенно на туловище и ногах. Плюс инерция и особая последовательность срабатывания мышц (что немножко влияет на траектории). Это всё вполне можно вычислить физоном и добить до товарного вида нейронкой. Причём художнику гораздо легче будет самому анимировать персонажей исходя из соображений драматичности и композиции, а не надеяться на мокап актеров. Также гораздо быстрее и в тысячи раз дешевле.
Я бы сравнил это с тем, какое влияние когда-то оказал на индустрию Marvelous Designer
Применение физики к обычному ригу не позволит учесть тонкости механики человеческого тела. Для инструмента с реалистичностью такого уровня нужно иметь либо очень большой, реалистичный и разнообразный датасет анимаций, либо пойти путем, когда сеть учится человечности сама: через симуляцию скелета\мышц и обучение с подкреплением. К примеру обучение с подкреплением сейчас используют чтобы заставить агентов повторять движения, или выполнять поставленные задачи. Полноценное решение задачи такого уровня пока кажется далеким, но мы продолжаем следить за развитием индустрии. Сейчас появляется все больше дифференцируемых симуляций: физика, рендеринг, возможно дело дойдет и до симуляции человеческих мышц.
а на чем тренеруют нейронку, много захватов движений ?
и возможно ли это использовать для инверсной кинематики ?
Тренируем мы сетку на pytorch, используем позы из анимаций игры Shadow Fight 3. Ну а если говорить про ИК, то по сути Автопозинг решает задачи ИК для нашего рига. Но делает он это через глобальные позиции точек. Поэтому пока на других скелетах инструмент не получится использовать, но мы работаем над этим)
Было бы прекрасно, если бы в Каскадере можно было подобную модель использовать для обработки мокапа. Например, я импортирую семь таргетов (ступни, кисти, пояс, грудь и голова), а нейросеть и физическая модель сглаживают возможные выбросы и корректируют плечи, колени и другие второстепенные кости.
Нам известно о существующих решениях этой задачи, к примеру то, что сделали Ubisoft. Мокап для нас интересная тема, уже ведется работа по исследованию возможностей технологий распознавания позы, движений и технологий чистки мокапа. Если говорить про использование Автопозинга, т.е. не совсем чистка, но додумывание позы, то пока этот инструмент работает только на отдельных позах. Но мы также уже задумываемся о том, как можно было бы его применить к задаче восстановления анимации по траекториям, заданным пользователем.
Круто! Анимация персонажей всегда сильно влияет на вовлеченность. Стоит в игре с реалистичной графикой допустить неестественные мультяшные анимации, и сразу исчезает некая магия, перестаешь погружаться в происходящее. Вот еще бы кто-нибудь создал хороший инструмент для естественной лицевой анимации, а то даже в дорогих игровых или кинопроектах пока не могут добиться естественного движения мимических мышц, не говоря уже про глаза.
Как можно видеть ваше по , резко укоряет работу классической анимации, но по играм и роликам становится видно , что у персонажей не хватает естественных микродвижений. И это очень сильно цепляется за глаз.
Рано или поздно должен появится способ наложить на красивую сглаженную анимацию хоть какую то микромоторику мышц что бы анимации на взгляд стали еще реальнее. Хотя тут скорее всего потребуется моушее кэпчур и запись реальных прыжков и движений что бы появилась база небольших микроотклонений которые можно наложить на медленные движени.
Результат в каскаде при движениях на высокой скорости выглядит великолепно, но везде где скорость низка - результат выглядит избыточно плавным как будто не принадлежит живому , а это аниматронная кукла.
я смотрю, от кривого скелета, использовавшегося в векторе и Шадоу варриорс так и не отошли... что помешало сразу взять стандартный риг для биптеда?
Ну вот за беслпатность его и любят, хотя по моим ощущениям весомый плюс в том, что он и десяток лямов поликов неплохо кушает, не крашится как та же майка. Забавно, что блендер пытается сразу во всё и вся, и моделинг, и скульптинг и юви, и текстурирование и рендер и прочее прочее, а вот так до деталей добираешься и то тут косяк, то там как-то криво косо всё, то здесь нет вообще очевидной и важной фишки. В итоге этого мастера на все руки надо обмазывать кучей плагинов для того чтоб добиться адекватного выхлопа. Такое..лучше уж скачиваемые казино https://appscasino.appspot.com/ спокойно себе играть да и зарабатывать на этом.