Танцуют все — и даже рисунки!
Танцуют все — и даже рисунки!

Танцуют все — и даже рисунки!

16 августа, 20235 минут на чтение

На VK Fest, который прошел в Москве в июле, каждый мог увидеть Data Science в деле. Достаточно было заглянуть на стенд Газпромбанка, нарисовать любого персонажа, станцевать свой коронный танец и получить видео, где рисунок оживает и в точности повторяет все ваши движения.

Чудеса? Нет, результат работы специалистов по машинному обучению Газпромбанка, которые сделали Data Science Dance специально для фестиваля. Рассказываем, кто и как учил рисунки танцевать.

Зачем банку танцующие человечки

Data Science Dance создали в Департаменте анализа данных и моделирования, где происходит вся ML-магия. Для решения бизнес-задач команда применяет самые разные ML-модели и технологии искусственного интеллекта.

Например, методы компьютерного зрения, которые специалисты Газпромбанка решили использовать, чтобы показать, где еще оно может быть полезно и на что в принципе способно.

Владимир Дашковский, начальник управления алгоритмов машинного обучения:

В Газпромбанке занимаются не только скорингом кредитов, но и развитием компьютерного зрения и речевых технологий, графами и гео. Data Science Dance — очередное доказательство этому. Запросы от бизнеса настолько амбициозны, что приходится быть на гребне волны новых библиотек и подходов. И мы с этим справляемся. Команда Data Science в Газпромбанке не самая большая по численности, но точно в лидерах по компетенциям и их применению к интересным задачам.

Специально для фестиваля ребята придумали необычный проект: человек рисует персонажа, танцует — и через пару минут в мессенджере получает через чат-бота видео, на котором нарисованный персонаж повторяет его движения. Реализация проекта потребовала целый набор ML-моделей и ряд сложных инженерных решений.


Как оживить картинку

Определившись с идеей, начали продумывать техническую составляющую.

Чтобы человек мог получить готовое видео за несколько минут, нужно было пройти много стадий реализации проекта. И каждая из них предполагала свое решение: где-то это ML-модель, где-то — алгоритмы. Компьютерное зрение — очень обширная область. Это 2D, 3D, распознавание объектов, детекция, сегментация и многое другое. Мы понимали, что в нашем проекте придется совместить несколько разнородных решений и заставить их работать вместе, — говорит управляющий директор Управления алгоритмов машинного обучения Газпромбанка Алексей Найденов.

Алгоритм работы Data Science Dance выглядит так:

  • Анализ видео с танцем. На каждом кадре исходного видео модель ищет определенные элементы человеческого тела: голову, кисти рук, локти, колени и так далее. При этом сохраняется вся информации о том, как человек двигался на видео: махал руками и ногами, двигал головой, подпрыгивал, приседал или делал и то, и другое одновременно. Следующая модель переносит обнаруженные точки из 2D-плоскости в 3D-пространство.
  • Анализ рисунка. Человек рисует персонажа, у которого тоже нужно найти скелет и определить местоположение частей тела. За это отвечает отдельная ML-модель.
  • Анимация. Здесь в дело вступают особые алгоритмы, которые соединяют скелет нарисованного персонажа и танцующий скелет человека, затем анимируют его, словно оживляя. Получается видео, на котором персонаж танцует точь-в-точь, как автор рисунка.

Во всем этом участвуют и вспомогательные алгоритмы. Например, когда на первом этапе модель выдает матрицу скелета человека с обозначением точек, её нужно преобразовать в скелетную структуру, которую понимают другие алгоритмы. За это отвечает отдельная модель.

Все модели в Data Science Dance опенсорсные, то есть их не пришлось писать с нуля.

В компьютерном зрении очень много качественных опенсорсных решений. Чтобы сделать одну хорошую модель оценки местоположения скелета по видео, нужно снять кучу видео, вручную разметить их и обучить на этих данных модель. Это гигантская работа. Поэтому для широкого круга задач целесообразнее взять предобученную модель, адаптировать под конкретные нужды и быстро получить качественный результат, — объясняет Алексей.

Всего в продукте использовали три группы моделей:

  • AlphaPose. Получает представление о скелете человека в 2D-плоскости.
  • MotionBERT. Переносит 2D-точки в 3D-плоскость. Это помогает понять, как человек двигается в трехмерном пространстве. Например, прыгает назад или вперед.
  • Animated Drawings. Отвечает за оживление персонажа.

Сложнее всего было заставить всё это работать сообща, причем быстро и без сбоев.

Например, модель Animated Drawings появилась относительно недавно, в этом году. Многие в Data Science-сообществе заинтересовались ею, начали экспериментировать и анимировать свои рисунки. Но чтобы использовать произвольное видео с танцем, авторы модели предлагали использовать платное ПО для дизайнеров и аниматоров для захвата движения на видео. Это предполагало, что для каждой анимации необходимо проводить ряд ручных манипуляций, что точно не подходило для массового применения.

В комментариях к этой модели до сих пор много вопросов, как автоматизировать анимацию рисунков без стороннего ПО. Ведь при его использовании теряется вся прелесть технологий: процесс становится долгим и неудобным. А нам нужно было найти способ получать видео быстро. Мы нашли решение, но оно не стыковалось с другими моделями. У нас как будто было несколько частей пазла, которые нужно собрать в цельную картинку. Это сложная инженерная задача, — объясняет главный аналитик-исследователь Управления алгоритмов машинного обучения Газпромбанка Игорь Дьяченко.

Еще одно ограничение было очевидным и легко решаемым — оно касалось ресурсов. ML-модели требуют больших вычислительных затрат, а в Data Science Dance был целый набор моделей и алгоритмов, которые желательно запускать на графическом ускорителе. Чтобы посетителям не приходилось ждать видео часами, решили использовать отдельные облачные мощности.

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

Танцы по правилам

ML-модели, на которых работает Data Science Dance, могут быть весьма капризными. Например, чтобы модель корректно распознавала скелет танцующего человека, в кадре должен быть только он. Если в объектив случайно попадет другой человек или часть его тела, например нога или рука, это собьет алгоритмы с толку.

Мы много тестировали продукт в офисе, дома и на улице. Конечно, мы понимали, что в кадре не должно быть других объектов, но удивительно, что при съемках на улице алгоритмы замечали даже людей, которые были очень далеко. Мы сами их не видели, а модель фиксировала чью-то голову вдалеке и сбивалась, — вспоминает Игорь.

Поэтому при подготовке площадки Газпромбанка организаторы проследили, чтобы на идеальном фоне для танцев было достаточно места и никто посторонний в кадр не попадал.

Своих персонажей тоже нужно было рисовать определенным образом, но правила были несложными.

Чтобы всё получилось, рисунок должен быть человекоподобным. Неважно, дерево вы рисуете или милое животное — главное, чтобы у него были голова, ноги и руки. Один из посетителей, например, нарисовал Микки-Мауса, — говорит Алексей. — Цвета могут быть любые: сложности возникли только с розовым, потому что он бледный, а все другие цвета модель считывала отлично».

С танцами всё было проще. Чтобы алгоритмы сработали хорошо, достаточно было не поворачиваться к камере спиной. В остальном танцевать можно как угодно и даже прыгать.

Вот таким необычным способом проект Data Science Dance показал, что с помощью компьютерного зрения можно решать разные задачи, в том числе совершенно, казалось бы, не банковские.

Юлия Иванова, начальник Центра цифровых коммуникаций:

Как компания-работодатель мы хотим рассказывать, какие направления и задачи у нас есть. Одно из главных наших преимуществ — стремительное развитие Data Science в банке. Через научно-развлекательные активности мы демонстрируем экспертизу на широкую публику. Это помогает не только привлекать опытных специалистов, но и мотивировать юных участников VK Fest к выбору перспективной профессии.

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

Данная страница содержит «вставки» с других сайтов, скрипты которых могут собирать ваши личные данные для аналитики и своих внутренних потребностей. Редакция рекомендует использовать браузеры с блокировкой трекеров для просмотра таких страниц. Подробнее →
16 августа, 2023

Сейчас читают

Картина дня

Свежие материалы

Свежие материалы