Танцуют все — и даже рисунки!
Рассказываем, как в Газпромбанке научились оживлять нарисованных человечков с помощью Data Science и трёх групп ML-моделей.
230 открытий4К показов
На 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 опенсорсные, то есть их не пришлось писать с нуля.
«В компьютерном зрении много качественных опенсорсных решений. Чтобы сделать одну хорошую модель оценки местоположения скелета по видео, нужно снять кучу видео, вручную разметить их и обучить на этих данных модель. Это гигантская работа.Поэтому для широкого круга задач целесообразнее взять предобученную модель, адаптировать под конкретные нужды и быстро получить качественный результат», — объясняет Алексей.
Какие ML-модели мы использовали
Всего в продукте использовали три группы моделей:
- 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 к выбору перспективной профессии.
При этом похожие решения можно внедрять и в финтехе. Например, эти же технологии в отделении банков помогают оценивать нагрузку на специалистов в разное время дня или определяют, в удачном ли месте стоит банкомат. Возможно, в будущем в банковских приложениях нас будут встречать не только милые аватарки, но и анимированные персонажи, которых мы сможем нарисовать сами.
230 открытий4К показов