Пишете крутые статьи? Публикуйте их в Workspace Media, бесплатно!
Unistory
Как мы разработали систему из 4 нейросетей для анализа TV эфира
Unistory
WDA
2025
#Разработка программного обеспечения

Как мы разработали систему из 4 нейросетей для анализа TV эфира

1534 
16 ноя 2024 в 11:18
Unistory
Unistory Россия, Санкт-Петербург
Поделиться:
Как мы разработали систему из 4 нейросетей для анализа TV эфира
Клиент

Adello

Бюджет

3 000 000

Сфера

Программное обеспечение

Регион

Швейцария, Цюрих

Сдано

Октябрь 2024

Задача

Один из наших клиентов захотел расширить линейку своих продуктов и обратился за помощью к нам. Суть нового продукта — анализ видео на YouTube. Анализировать нужно было, какие бренды упоминают блогеры в своих роликах, какие предметы попадают в кадр, что говорят люди на видео, какую инфу транслируют.

Зачем это все заказчику? Все очень просто, заказчик — разработчик маркетинговых сервисов. Ребята решили дать европейским маркетологам возможность анализировать, какой контент смотрел пользователь. И на основе этого показывать ему персональную рекламу в следующие полчаса.

Решение

Чтобы выполнить задачу, мы решили подключить несколько разных моделей AI. Компьютерное зрение, speech-to-text, OCR, LLM — нам понадобилось всё.

Глобальная идея проекта сменилась на ходу. Мы шли к тому, чтобы анализировать YouTube-видео. В один момент заказчик понял, что не сможет подключить наш сервис к видеохостингу. Изначальная идея (скачать видео, проанализировать, показать пользователям рекламу) противоречила бы правилам YouTube.

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

1Как это будет работать

— Заказчик, владелец сервиса, заключает контракт с телекоммуникационной компанией

— Наш API анализирует вещание в режиме реального времени

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

— Пользователь видит эти рекламные ролики

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

2Что мы решили анализировать

Видео — контент, который состоит из нескольких потоков информации. Здесь и аудиодорожка, и видеодорожка, и субтитры, и надписи в кадре. Аудиодорожка может содержать только музыку, а может включать в себя речь.

Если мы попытаемся решить задачу анализа видео только с помощью компьютерного зрения, то можем упустить важные вещи, о которых говорят ведущие на TV. Поэтому мы решили анализировать все составные части видео по отдельности:

— Появление логотипов в кадре. На протяжении всего видео, на любом фоне.

— Какие объекты попадают в кадр. Одежда, автомобили, еда — вообще всё.

— Текст, который появляется в кадре, в том числе вшитые субтитры.

— Что говорят в тот момент, когда логотип появляется на экране.

— Сентимент в речи: определяем, что говорит спикер на видео, что-то позитивное или негативное.

3Какие нейросети мы объединили в проекте

— Первая YoloV8 находит в кадре предметы

— Вторая YoloV8, обученная отдельно от первой, находит логотипы в кадре

— Rev AI анализирует, какой был язык в аудиофрагменте, а затем транскрибирует речь

— Tesseract распознает статичный текст в кадре

— Расшифровка текста, сделанная через Rev AI, попадает в Chat GPT, который анализирует ее на позитив / негатив

4Какую информацию получаем по результатам анализа

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

— Результат речевого анализа. Имена селебрити и мест (городов, стран), которые были названы. Позитивные и негативные характеристики, которые ведущий давал людям, предметам и брендам.

— Результат анализа статичного текста. Опять же, позитив / негатив, какие бренды упоминались.  

5Как устроен проект: чуть-чуть архитектуры и микросервисов

Мы сделали проект масштабируемым благодаря микросервисной архитектуре. Именно благодаря этому продолжительность и количество видео не станут проблемой: сервис будет работать достаточно быстро при любых объемах анализируемого контента.

6Компьютерное зрение

Наша система должна была находить в видео много всего, но максимально важны были обычные предметы (на языке маркетологов — товары!) и логотипы. Именно объекты и логотипы в кадре позволяют эффективнее всего определить тематику трансляции, а значит — более прицельно предлагать зрителю рекламу.

Поэтому максимум внимания на проекте — компьютерному зрению.

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

7Датасет для объектов, предметов, товаров

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

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

Можно придумать что-нибудь более хитрое — например, если человек смотрел видео, где люди ходят под зонтом, показать ему рекламу новых брендовых дождевиков.

8Датасет для поиска логотипов

Большинство опенсорсных датасетов с логотипами были устаревшими и плохо размеченными. Лучше всего подошел OpenLogo, правда, здесь мы тоже определились не сразу. Долго выбирали среди разных версий датасета, пока не нашли самый подходящий. В нем были материалы для того, чтобы натренировать модель на обнаружение 352 логотипов.

На видео ниже — демонстрация, как Yolo находит логотипы на видео.

9Аугментировали и балансировали

Посовещались с заказчиком и решили добавить еще 40 дополнительных логотипов в наш датасет. Чтобы обучить нейросеть искать 1 логотип, нашли на каждый минимум 50 изображений, а затем аугментировали материал х3.

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

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

Результат

Сейчас наш сервис анализирует видеофайлы, загруженные пользователем. На анализ 10-минутного ролика уходит 5 минут. 

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

После этого интегрируем бэкенд проекта в качестве API в диджитал-продукты заказчика.


Стек технологий

  • С# С# Язык программирования
  • PostgreSQL PostgreSQL База данных

Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Unistory с удовольствием обсудит вашу задачу

Оставить заявку