Система рекомендации мобильных игр на базе искусственного интеллекта
Март 2021

Система рекомендации мобильных игр на базе искусственного интеллекта

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

Бизнес-логика

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

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

У игр можно проанализировать целый ряд параметров геймплея: например, цветовую гамму, угол наклона камеры, как быстро движется камера и пр. Подобная система должна не только оценить потенциал контента, который уже стал популярным, например, какая цветовая гамма наиболее приятна глазу игроков, но и дать рекомендации по улучшению продукта, чтобы он с большей вероятностью стал популярным у игроков.

Проблематика

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

  1. Частота кадров – видеозапись геймплея было необходимо разделить на кадры (фреймы), которые затем можно было бы проанализировать. Чем больше кадров мы выделяли из видеоряда, тем дольше система анализировала параметры. Таким образом, нужно было найти оптимальное число фреймов для анализа.
  2. Цветовые кластеры – поскольку в любом изображении можно выделить бесконечное количество цветов, благодаря градиентным значениям, нам было необходимо определить цветовые кластеры, оптимальные для анализа. А именно, в какое количество кластеров объединить все доступные цветовые значения пикселей на изображении, чтобы не пострадала скорость анализа и его качественная сторона.
  3. Смена сцен – цветовая гамма различных сцен в играх меняется, поэтому нам было необходимо отслеживать этот момент. При смене сцены наше приложение вновь анализирует цветовую гамму геймплея.
  4. Скорость камеры – существует библиотека на базе Python, которая умеет определять скорость движения камеры, анализируя скорость движения объектов в видео. Однако такая библиотека не может быть применима, если на видео множество объектов движутся в различном направлении, как в игре. Поэтому данную библиотеку пришлось модернизировать под наши нужды.

Решение

Частота кадров

Для начала, мы определили частоту съемки кадров, которая бы поддерживала должную скорость анализа и оптимальное качество результата. Наша система снимает каждый 30 фрейм для анализа.

Цветовая гамма

Каждый отобранный фрейм мы разбивали на 16 цветовых кластеров, что было оптимальным для скорости работы приложения и визуального восприятия. Мы воспользовались OpenCV для разбиения фреймов на цветовые подгруппы и выделения в них доминирующего цвета. После анализа каждого отдельного фрейма система совмещала их и получала основную цветовую гамму игры в виде 16 кластеров.

Смена сцен

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

Когда это происходит, приложение понимает, что сцена изменилась, и вновь запускается анализ основной цветовой гаммы.

Скорость движения камеры

Оценка движения скорости камеры – нетривиальная задача, поскльку большое количество объектов в играх движется с разной скоростью в различных направлениях.

Для решения задачи мы решили воспользоваться библиотекой на базе Python, которая может оценивать скорость движения камеры относительно статического объекта в кадре (например, оружия главного героя или его аватара). Оценка происходит на основе построения вектора движения. Библиотека прекрасно подходила под наши нужды, однако был ряд нестыковок с решением задачи, например, статичный главный объект в игре не всегда присутствует, либо в игре имеется множество объектов, которые движутся в хаотичном порядке.

Мы доработали решение дополнительным модулем, которые определяет скорость объектов для более точных результатов.

Цветовая гармония

После выявления основной цветовой гаммы, приложение сопоставляет её с цветовыми гаммами популярных игр для дополнительных рекомендаций.

Результаты

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

другие наши проекты

Система по анализу и выгрузке отзывов с маркетплейса на основе ИИ

Система по анализу и выгрузке отзывов с маркетплейса на основе ИИ

Система сканирования паспортов

Система сканирования паспортов

Парсер данных для маркетплейсов

Парсер данных для маркетплейсов

Инструмент сбора данных о пожарах в США

Инструмент сбора данных о пожарах в США

Мобильное приложение для музеев по распознаванию картин

Мобильное приложение для музеев по распознаванию картин

Распознавание диалоговых пузырей на рисунках манги

Распознавание диалоговых пузырей на рисунках манги

Система по распознаванию чертежей для бюро строительной экспертизы

Система по распознаванию чертежей для бюро строительной экспертизы

Мобильное приложение с KYC-верификацией пользователя

Мобильное приложение с KYC-верификацией пользователя

Инструмент по сбору данных о событиях из американской национальной сети происшествий

Инструмент по сбору данных о событиях из американской национальной сети происшествий

Приложение для обработки резюме на базе LLM для кадрового агентства

Приложение для обработки резюме на базе LLM для кадрового агентства

Сервис для обучения нейронных сетей без кода

Сервис для обучения нейронных сетей без кода

Мобильное приложение для удалённого контроля брака печати 3D-принтеров

Мобильное приложение для удалённого контроля брака печати 3D-принтеров

Давайте найдем решение для вашего бизнеса!

Давайте найдем решение для вашего бизнеса!

Пожалуйста, заполните 'Имя'
Пожалуйста, заполните 'Телефон'
Пожалуйста, заполните 'Емейл'
Пожалуйста, заполните 'Сообщение'

Пожалуйста, заполните 'Имя и фамилия'
Пожалуйста, заполните 'Телефон'
Пожалуйста, заполните 'Емейл'
Выберите файл
Пожалуйста, выберите файл 'Резюме'
Выберите файл
Пожалуйста, прикрепите файл 'Код / ТЗ'