Нейромережеві персонажі навчилися складним рухам по відео з YouTube

Американські та канадські дослідники розробили нейросетевий фреймворк, що дозволяє віртуальним персонажам навчатися складним рухам безпосередньо з відеороликів, де ці рухи виконують люди. Спочатку алгоритм розмічає на кожному кадрі відео елементи людського тіла, потім узгодить дані з сусідніх кадрів, а після цього передає дані нейромережі, яка намагається повторити рух за допомогою навчання з підкріпленням. Стаття з описом розробки буде представлена на конференції SIGGRAPH Asia 2018.


Для навчання віртуального персонажа або реального робота складним рухам можна застосувати різні підходи. Мабуть, найочевидніший спосіб - запрограмувати персонажа вручну, точно описавши потрібну послідовність дій. Але на це йде багато зусиль і часу, а результат підходить для вирішення лише одного конкретного завдання. На зміну цьому підходу в останні роки прийшло машинне навчання, що дозволяє автоматизувати цей процес, а також навченої моделі здатність адаптуватися до нових умов.


На початку 2018 року група розробників з Лабораторії досліджень в області штучного інтелекту Каліфорнійського університету в Берклі та Університету Британської Колумбії представила алгоритм DeepMimic, що дозволяє навчати нейросетевих віртуальних персонажів складним рухам, здійснюваним людьми. Дослідникам вдалося домогтися високої якості копіювання, але вони зіткнулися з класичною проблемою машинного навчання - складністю підготовки вихідних даних для навчання алгоритму, які в їх випадку доводилося збирати за допомогою системи захоплення рухів, що ускладнює процес збору даних і обмежує спектр зібраних рухів.

Тепер дослідники використовували той самий підхід для повторення руху, але доповнили його алгоритмом, здатним отримувати достатні для навчання дані з нерозмічених відео. Процес навчання відбувається наступним чином. Спочатку система отримує ролик, на якому людина виконує необхідну дію, наприклад, зворотне сальто, і розроблений раніше алгоритм створює для кожного кадру відповідну об'ємну модель тіла людини в такій же позі. Оскільки алгоритм створює модель для кожного кадру окремо, послідовність цих моделей потім віддається ще одному алгоритму, який стежить за тимчасовою узгодженістю кадрів і усуває виниклі артефакти. Це дозволяє підготувати плавно рухається між кадрами модель, яку вже можна використовувати для навчання нейромережевого персонажа.

Для навчання імітації рухів розробники застосували створений ними раніше алгоритм DeepMimic, який у процесі навчання намагається повторити рух людської моделі. Дослідники запрограмували середовище для навчання таким чином, що воно заохочує руху нейромережевого персонажа за те, що різниця між його рухами і рухами людської моделі для кожного кадру мінімальна. Крім того, дослідники застосували кілька інших методів, що дозволили прискорити і поліпшити навчання, в тому числі вони рандомізували момент початку руху моделі. Це дозволяє алгоритму розуміти, що той чи інший рух призводить до підвищення нагороди при навчанні ще до того, як він навчився доходити до нього з вихідного положення.

Дослідники вирішили продемонстрували перевагу їхнього підходу, навчивши алгоритм не на спеціально підготовлених відеозаписах, а на реальних роликах з YouTube. На демонтраційному відео можна бачити, що нейромережа навчилася якісно повторювати безліч досить складних рухів. Крім того, розробники показали, що алгоритм може проявляти варіативність, у тому числі підлаштовуватися під зміну будови віртуального персонажа. Як приклад вони поміняли його будову і зробили його аналогічним людиноподібному роботу Atlas. Також він здатний адаптуватися під навколишнє середовище і виконувати ті ж самі дії, рухаючись по складному рельєфу з ямами та іншими перешкодами.

Нещодавно інша група американських розробників навчила віртуальних нейромережевих персонажів навчатися іншого нетривіального завдання - складних рухів разом у стороннім об'єктом. Вони продемонстрували це на прикладі персонажа, навченого реалістично рухатися з м'ячем по баскетбольному майданчику, в тому числі виконуючи трюки.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND