Adello
3 000 000
Информационные технологии и интернет
Швейцария, Цюрих
Октябрь 2024
Один из наших клиентов захотел расширить линейку своих продуктов и обратился за помощью к нам. Суть нового продукта — анализ видео на YouTube. Анализировать нужно было, какие бренды упоминают блогеры в своих роликах, какие предметы попадают в кадр, что говорят люди на видео, какую инфу транслируют.
Зачем это все заказчику? Все очень просто, заказчик — разработчик маркетинговых сервисов. Ребята решили дать европейским маркетологам возможность анализировать, какой контент смотрел пользователь. И на основе этого показывать ему персональную рекламу в следующие полчаса.
Чтобы выполнить задачу, мы решили подключить несколько разных моделей AI. Компьютерное зрение, speech-to-text, OCR, LLM — нам понадобилось всё.
Глобальная идея проекта сменилась на ходу. Мы шли к тому, чтобы анализировать YouTube-видео. В один момент заказчик понял, что не сможет подключить наш сервис к видеохостингу. Изначальная идея (скачать видео, проанализировать, показать пользователям рекламу) противоречила бы правилам YouTube.
Вместе с заказчиком пришли к новому видению проекта: решили анализировать телевизионное вещание. Для этого будем расширять гейтвей и подключать веб-сокет, который даст возможность анализировать TV-эфир.
— Заказчик, владелец сервиса, заключает контракт с телекоммуникационной компанией
— Наш API анализирует вещание в режиме реального времени
— Система подбирает предложения для пользователей на основании контента, который они смотрели
— Пользователь видит эти рекламные ролики
Такая схема дает большие бизнес-возможности. Например, сервисы с нашим API можно будет продавать по подписке. В этой картине мира каждый маркетолог сможет показывать людям таргетированную рекламу на основе тех передач, которые они посмотрели полчаса назад.
Видео — контент, который состоит из нескольких потоков информации. Здесь и аудиодорожка, и видеодорожка, и субтитры, и надписи в кадре. Аудиодорожка может содержать только музыку, а может включать в себя речь.
Если мы попытаемся решить задачу анализа видео только с помощью компьютерного зрения, то можем упустить важные вещи, о которых говорят ведущие на TV. Поэтому мы решили анализировать все составные части видео по отдельности:
— Появление логотипов в кадре. На протяжении всего видео, на любом фоне.
— Какие объекты попадают в кадр. Одежда, автомобили, еда — вообще всё.
— Текст, который появляется в кадре, в том числе вшитые субтитры.
— Что говорят в тот момент, когда логотип появляется на экране.
— Сентимент в речи: определяем, что говорит спикер на видео, что-то позитивное или негативное.
— Первая YoloV8 находит в кадре предметы
— Вторая YoloV8, обученная отдельно от первой, находит логотипы в кадре
— Rev AI анализирует, какой был язык в аудиофрагменте, а затем транскрибирует речь
— Tesseract распознает статичный текст в кадре
— Расшифровка текста, сделанная через Rev AI, попадает в Chat GPT, который анализирует ее на позитив / негатив
— Результат визуального анализа. Какие предметы, какие логотипы появлялись в кадре, в каких временных промежутках и как часто.
— Результат речевого анализа. Имена селебрити и мест (городов, стран), которые были названы. Позитивные и негативные характеристики, которые ведущий давал людям, предметам и брендам.
— Результат анализа статичного текста. Опять же, позитив / негатив, какие бренды упоминались.
Мы сделали проект масштабируемым благодаря микросервисной архитектуре. Именно благодаря этому продолжительность и количество видео не станут проблемой: сервис будет работать достаточно быстро при любых объемах анализируемого контента.
Наша система должна была находить в видео много всего, но максимально важны были обычные предметы (на языке маркетологов — товары!) и логотипы. Именно объекты и логотипы в кадре позволяют эффективнее всего определить тематику трансляции, а значит — более прицельно предлагать зрителю рекламу.
Поэтому максимум внимания на проекте — компьютерному зрению.
Взяли YoloV8 — для нее много библиотек в открытом доступе, а значит, удобнее работать. Высокая производительность — тоже хорошо, учитывая, какой объем данных мы собирались анализировать.
Мы должны были добиться того, чтобы система находила в кадре самые разные предметы. Например, кастрюли, машины, мебель, обувь. Для этого подошел датасет COCO.
Как работает обученная нейросеть, можно посмотреть на видео ниже. Как видите, прекрасно находит зонтик и автомобиль — а значит, сможет помочь маркетологам, которые хотят продать людям зонты и машины (ну вдруг!).
Можно придумать что-нибудь более хитрое — например, если человек смотрел видео, где люди ходят под зонтом, показать ему рекламу новых брендовых дождевиков.
Большинство опенсорсных датасетов с логотипами были устаревшими и плохо размеченными. Лучше всего подошел OpenLogo, правда, здесь мы тоже определились не сразу. Долго выбирали среди разных версий датасета, пока не нашли самый подходящий. В нем были материалы для того, чтобы натренировать модель на обнаружение 352 логотипов.
На видео ниже — демонстрация, как Yolo находит логотипы на видео.
Посовещались с заказчиком и решили добавить еще 40 дополнительных логотипов в наш датасет. Чтобы обучить нейросеть искать 1 логотип, нашли на каждый минимум 50 изображений, а затем аугментировали материал х3.
С изначальным датасетом OpenLogo тоже пришлось поработать. Количество изображений для разных логотипов было неравномерным: могло приходиться на один лого по 20 картинок, а на другие по 150.
Чтобы исправить ситуацию, мы балансировали датасет. Заранее, до обучения, нашли, по каким логотипам у нас меньше картинок, чем по другим. Во время обучения сильнее штрафовали модель, если она пропускала те логотипы, по которым было меньше размеченных изображений.
— Стоимость показа рекламных роликов снизилась на 15%
— Доля целевой аудитории среди увидевших рекламу выросла на 35%
— Частота показов увеличилась на 17% при том же бюджете