Американские разработчики создали алгоритм, способный предсказывать движения рук человека по его речи. Получая только аудиозапись речи, он создает анимированную модель тела человека, а затем на ее основе генерирует реалистичный видеоролик. Посвященная разработке статья будет представлена на конференции CPVR 2019.
Основным способом донесения информации до окружающих у людей выступает речь. Однако помимо нее в разговоре мы также активно пользуемся жестами, подкрепляя произнесенные слова и придавая им эмоциональную окраску. Кстати, согласно наиболее вероятной гипотезе развития человеческого языка, изначально предки человека наоборот общались в основном с помощью жестов, однако активное использование рук в быту привело к развитию звуковой коммуникации и сделало ее основной. Так или иначе, процесс произнесения человеком слов в разговоре тесно связан с движениями рук.
Исследователи под руководством Джитендры Малика (Jitendra Malik) из Калифорнийского университета в Беркли использовали эту связь для предсказания жестикуляции человека в разговоре на основе голосовой составляющей его речи. Работу алгоритма можно разбить на два этапа: сначала он предсказывает движения рук по аудиозаписи речи, а затем визуализирует предсказанные жесты с помощью алгоритма, представленного в 2018 году смежной группой исследователей. Тогда разработчики научили нейросеть переносить движения людей между видеороликами, использовав промежуточный этап с распознаванием позы человека.
На первом этапе алгоритм на базе сверточной нейросети UNet принимает двумерную спектрограмму аудиозаписи и превращает ее в одномерный промежуточный сигнал. Затем этот сигнал превращается в последовательность поз, представленных в виде скелетной модели с 49 ключевыми точками, отражающими части рук, плеч и шеи. После этого последовательность поз передается алгоритму визуализации, который превращает ее в видеоролик.
Для того, чтобы обучить алгоритм преобразованию речи в движения, исследователи собрали датасет, состоящий из записей суммарной длиной 144 часа. На записях были телеведущие, лекторы и религиозные проповедники — такой выбор обусловлен тем, что для них было легко найти длинные записи речи с жестикуляцией. С помощью алгоритма OpenPose исследователи сопоставили каждому кадру из датасета скелетную модель. Получая во время обучения записи речи и кадры с готовой моделью алгоритм научился создавать реалистичные видеоролики. Стоит отметить, что выбранный авторами подход подразумевает, что для корректной работы необходимо обучать отдельную нейросетевую модель для конкретного человека.
На продемонстрированном исследователями ролике можно видеть, что некоторые движения не полностью соответствуют реальным движениям человека на исходной записи. К примеру, зачастую алгоритм подбирает корректное движение, но использует не ту руку. Однако, это следствие скорее принципиального недостатка подхода, чем его некорректной реализации. Дело в том, что жесты во время речи не являются инвариантными — одной и той же фразе, сказанной одним и тем же человеком, могут соответствовать разные жесты.
Исследователи провели количественную оценку работы алгоритма, подсчитав, какая доля ключевых точек в созданных алгоритмом моделях соответствовала положению точек, полученных для реального кадра. Новый алгоритм значительно опередил аналогичные алгоритмы, протестированные на тех же данных — 44,62 процента против 39,69 процента у алгоритма с лучшим результатом среди разработок других разработчиков. Примечательно, что вариант нового алгоритма, использованный без дискриминатора, получил более высокий результат, чем с дискриминатором. Авторы объясняют это тем, что дискриминатор провоцирует генератор на создание более однообразных выходных данных.
Недавно другая группа американских разработчиков научила нейросеть создавать по речи человека примерное изображение его лица. Алгоритм был обучен на датасете, состоящем из миллионов видеозаписей.
Григорий Копиев
Что такое опенсорс и почему он важен для IT-индустрии
Наверняка вам доводилось слышать выражение «опенсорс». Может быть, вы даже понимаете, что под этим термином скрывается «программное обеспечение с открытым исходным кодом». Но какие возможности такая открытость дает разработчикам и почему может быть выгодна обыкновенным пользователям? Рассказываем о разработке и значимости опенсорс-проектов.