Исследователи из Disney Research разработали алгоритм, способный создавать короткие анимационные ролики на основе сценария, написанного естественным языком. Во время работы алгоритм упрощает исходные предложения, а затем сопоставляет каждый объект или действие с аналогами, имеющимися в его библиотеке, и создает на их основе 3D-анимацию, рассказывают авторы статьи, опубликованной на arXiv.org.
Ученые начали решать проблему синтеза изображений или видеозаписей на основе текстового описания достаточно давно, однако пока эта технология находится на начальном этапе развития и ее реализации обладают множеством недостатков. Эту проблему можно разбить на две основные части: обработка естественного языка, позволяющая компьютеру понимать смысл сказанного человеком, а также создание кадров. При обработке речевой последовательности от человека компьютер пытается понять структуру предложений, а также соотношение между словами в нем, а затем на основе этих знаний выполнить следующую задачу. В данном случае такой задачей является синтез реалистичного изображения или видеоролика, в котором объекты действуют в соответствии с исходным сценарием.
Алгоритмы, создающие ролики на основе текстового описания, уже существуют. Однако они обладают несколькими недостатками, главный из которых заключается в том, что им требуется не обычный текст на естественном языке (к примеру, сценарий фильма), а максимально простые, хотя и грамматически корректные, предложения. Ашутош Моди (Ashutosh Modi) и его коллеги из DIsney Research разработали алгоритм, способный работать с реальными сценариями фильмов и спектаклей. Обычно сценарии имеют четкую структуру, в которой можно выделить описание сцены с действиями персонажей, диалоги, техническую информацию для операторов и другие элементы. В своей работе исследователи сконцентрировались только на основном элементе, в котором происходит общее описание сцены и перечисляются действия действующих лиц.
Созданную разработчиками программу можно разделить на несколько модулей, выполняющих определенную функцию. Сначала исходный текст сценария получает модуль, отвечающий за предварительную обработку. Он распознает элементы сценария, к примеру, описание сцены, и создает пары типа «абзац текста — название элемента». Затем эти данные передаются модулю обработки языка. Изначально он упрощает предложения, по возможности разбивая каждое из них на два или больше, которые описывает по одному действию. Это происходит благодаря набору правил, по которым алгоритм распознает типы слов и их соотношения между собой.
Кроме того, модуль упрощает предложения не только структурно, но и лексически, заменяя слова на синонимы. Это необходимо для того, чтобы на последнем этапе алгоритм смог подобрать для каждого слова в сценарии соответствующую 3D-модель или анимацию из библиотеки, собранной авторами. После получения упрощенного сценария алгоритм размечает технические данные, такие время начала действия, эмоции действующих персонажей и другие, и отдает эти данные модулю, создающему итоговую 3D-анимацию на основе этих данных.
Разработчики проверили эффективность алгоритма с помощью BLEU-метода. Во время оценки три человека проводили такое же преобразование сценариев, как и алгоритм, а затем исследователи измеряли различия в преобразованиях, выполненных людьми и алгоритмом. Выяснилось, что качество преобразования (близость к преобразованию, сделанному человеком) достаточно сильно варьируются в зависимости от типа слова в предложении, к примеру, ближе всего к человеку алгоритм описывал манеры, с которыми делаются те или иные действия. Сравнение с другими алгоритмами обработки естественного языка показало, что новый алгоритм дает более близкий к человеческому результат.
Наконец, авторы провели оценку на добровольцах, которых просили оценить качество работы алгоритма. В общем случае при оценке по пятибалльной шкале от «Полностью несогласен» до «Полностью согласен» 45,23 процента добровольцев согласились с утверждением, что алгоритм корректно визуализирует текст. Кроме того, почти 60 процентов добровольцев согласились с тем, что алгоритм не добавляет в визуализацию действия, не упомянутые в сценарии.
В прошлом году американские разработчики научили нейросетевой алгоритм создавать по текстовому описанию ролики с персонажами мультсериала «Флинтстоуны». После обработки текста нейросеть ищет похожие кадры из реального мультфильма и дорабатывает их соответствующим образом.