18/08/2023

Как в «Газпромбанке» оживляют нарисованных человечков

На 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 к выбору перспективной профессии.

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

Банк ГПБ (АО) использует файлы cookie. Подробная информация –
в правилах по обработке персональных данных. Вы можете запретить сохранение cookie в настройках своего браузера.