Содержание:
Зачем банку танцующие человечки
Data Science Dance создали в Департаменте анализа данных и моделирования, где происходит вся ML-магия. Для решения бизнес-задач команда применяет самые разные ML-модели и технологии искусственного интеллекта. Например, методы компьютерного зрения, которые специалисты Газпромбанка решили использовать, чтобы показать, где еще оно может быть полезно и на что в принципе способно.
В Газпромбанке занимаются не только скорингом кредитов, но и развитием компьютерного зрения и речевых технологий, графами и гео. Data Science Dance — очередное доказательство этому. Запросы от бизнеса настолько амбициозны, что приходится быть на гребне волны новых библиотек и подходов. И мы с этим справляемся. Команда Data Science в Газпромбанке не самая большая по численности, но точно в лидерах по компетенциям и их применению к интересным задачам.
Как оживить картинку
Определившись с идеей, начали продумывать техническую составляющую.
Чтобы человек мог получить готовое видео за несколько минут, нужно было пройти много стадий реализации проекта. И каждая из них предполагала свое решение: где-то это 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 в банке. Через научно-развлекательные активности мы демонстрируем экспертизу на широкую публику. Это помогает не только привлекать опытных специалистов, но и мотивировать юных участников VK Fest к выбору перспективной профессии.