Мы сделали бота, который находит фильмы и другое видео по фрагменту и даже гифке

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

Мы сделали бота, который находит фильмы и другое видео по фрагменту и даже гифке

Привет, я Алексей Упатов. Я партнер и инвестор нескольких проектов, владелец и руководитель стратегического контент-агентства Ornament Media и CMO компании Comexp Research Lab.

В Comexp мы создаем сервисы на базе собственной технологии, которая позволяет обрабатывать данные быстрее и на порядки энергоэффективнее, чем AI/ML. Например, мы умеем искать видео непосредственно по видео, а не по отдельному кадру, как делают другие сервисы, включая Google. Чтобы развернуть у себя такой поиск, компании используют наш виджет или API.

Для всех желающих мы создали бота Comexp. Под капотом у него та же технология обратного поиска видео (Reverse Video Search), что и в платных продуктах. Бота можно свободно помучить и даже получить пользу 🙂

Чем бот полезен и как им пользоваться

В 2021 году британский телеканал NOW провел исследование среди 2000 взрослых зрителей и выяснил, что они тратят 25 минут в неделю, чтобы выбрать фильм или сериал. Половину опрошенных эти поиски так утомляют, что они решают ничего не смотреть.

Другое исследование, 2024 года, утверждает что британцы каждый день (!) посвящают 30 минут этой задаче. То есть 182,5 часа в год. Почти 60% сдаются, столкнувшись с параличом выбора.

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

Наша технология — в обличии телеграм-бота — частично решает проблему.

Спасибо, Нетфликс, за рекомендации, но нет
Спасибо, Нетфликс, за рекомендации, но нет

💡 Представьте, что у вас есть видеофрагмент. Допустим, коллега поделился в рабочем чате ссылкой на сцену из второго сезона «Разделения» — мол, срочно смотрите. Или кто-то в телеграме выложил смешную гифку, и вы думаете: «Блииин, это из того фильма с Джимом Керри, как же его?»

Тогда вы запускаете бота и отправляете ему этот фрагмент. Если видео есть в библиотеке бота, он быстро выдаст вам:

  • название с ссылкой на сайт Movies;
  • ссылку на IMDB;
  • трейлер (если есть).
Бот находит видео даже по гифке 260px 
Бот находит видео даже по гифке 260px 

Кликайте на название фильма или сериала, и бот перенаправит на нашу страницу Movies, где вас ждет нарезка из популярных сцен. Если рейтинг IMDB для вас не всегда сигнал к действию — с такой нарезкой вы за минуту определитесь, стоит ли тратить вечер на просмотр этого шедевра. В общем, вряд ли опустите руки, как британские зрители.

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

Скоро бот будет выдавать подборку популярных сцен из других фильмов и сериалов со схожими характеристиками. Фактически это рекомендации, но не в таком довольно рандомном виде, как в стримингах. Например, искали «Сияние» — вот вам дополнительно рейтинговые сцены всех экранизаций по Стивену Кингу. Искали «Высокого блондина в черном ботинке» — получите рейтинговые сцены комедий с Пьером Ришаром.

Есть небольшое ограничение, связанное с Telegram: если файл тяжелее 20 МБ, бот предложит загрузить его на Movies (фактически это аналог бота по функциям). А если видео длиннее 30 секунд, бот попросит указать, с какой секунды начать поиск. Это нужно в том числе для подстраховки: длинное видео может быть нарезкой разных фильмов или обзором блогера с говорящей головой в кадре — не очень понятно, что именно распознавать.

Бот определит хронометраж фрагмента больше 30 секунд. Ваша задача — написать число в этом диапазоне так, чтобы оставить на распознавание хотя бы 4–5 секунд, боту этого достаточно
Бот определит хронометраж фрагмента больше 30 секунд. Ваша задача — написать число в этом диапазоне так, чтобы оставить на распознавание хотя бы 4–5 секунд, боту этого достаточно

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

Записали с ТВ на телефон «Жаркие летние ночи» с Шаламе и скинули боту. Он решил, что это «Весенние надежды». Хотя бы догадался, что фильм как-то связан с временем года :) 
Записали с ТВ на телефон «Жаркие летние ночи» с Шаламе и скинули боту. Он решил, что это «Весенние надежды». Хотя бы догадался, что фильм как-то связан с временем года :) 

В библиотеке бота сотни тысяч видео, и каждый день она пополняется. Например, уже доступны практически все фильмы и сериалы с рейтингом 5+ на IMDB и передачи 20 самых рейтинговых телеканалов мира за последние семь дней.

Вы можете подумать, что для работы с такими объемами данных нужен дата-центр, множество видеокарт и все такое. Однако достаточно скромного сервера и ноль GPU.

В начале 2025-го нам хватало менее 10% пространства на жестком диске объемом 2 ТБ и десяти плашек оперативной памяти DDR4 по 16 ГБ. Такую эффективность обеспечивает наша технология TAPe — иначе проект был бы слишком дорогим.

➗ Тест на внимательность для тех, кто любит считать: как думаете, какой объем занимает информация, эквивалентная 1 часу видео (условно, 1 ГБ) благодаря TAPe?

1 час видео с TAPe — это сколько?
1 МБ
10 МБ
100 МБ
400 МБ
700 МБ

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

Никаких сверточных нейросетей: что у бота под капотом

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

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

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

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

Мы сделали бота, который находит фильмы и другое видео по фрагменту и даже гифке

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

Сервисы с TAPe минуют обязательные этапы «традиционного» компьютерного зрения и не ищут по тысячам параметрам. Чтобы решить задачу, достаточно снять с реальности (допустим, с последовательности кадров в видеофрагменте) минимальное количество признаков — на несколько порядков меньше.

Хранить петабайты информации тоже не нужно. TAPe после обработки делает из видео его слепок, обладающий признаками оригинала, который называется tape-индекс.

Каждый 1 ГБ индексируется примерно в 1 MБ. Это правильный ответ на вопрос, сколько места занимает эквивалент 1 часа видео с TAPe.

Такая экономная индексация позволяет разумно использовать ресурсы и быстро искать похожие фрагменты в режиме реального времени.

🤖 Применительно к работе бота с фильмами процесс выглядит следующим образом:

  • загружаем в базу «эталон фильма» — копию минимально доступного качества и разрешения;
  • строим индекс этого фильма, который весит на три порядка меньше;
  • удаляем эталон — теперь в базе хранится только индекс;
  • после запроса на поиск бот сравнивает последовательность кадров видеофрагмента от пользователя с сотнями тысяч индексов в базе. Это занимает 0,01 секунды;
  • бот сводит результаты и выдает пользователю.

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

Где еще применить технологию, помимо бота

Расскажу про опыт в виде некоторых наших проектов.

Примерно то же, что делает бот, можно перенести в онлайн-кинотеатр. Когда вы пишете запрос типа «Режиссер Апичатпонг Вирасетакул», «Страна производства Таиланд» или «Жанр фэнтези», вам показывают нарезку из 20—30 популярных сцен. То есть фрагментов, которые часто цитируют в YouTube, обзорах и т. д. Для реализации этой идеи достаточно одного сервера со средними характеристиками.

Круглосуточный мониторинг ТВ-рекламы. Рекламодатели могут в автоматическом режиме контролировать, выходила ли их реклама на федеральных и региональных каналах, и когда именно. В этом случае система сверяет «эталоны» — десятки тысяч рекламных роликов — с индексированным видеопотоком. Наша статистика показывает, что более 20% роликов в регионах выходит с нарушением договоренностей.

Проверка уникальности загружаемого UGC. Например, на сайте для взрослых с оплатой за хоум-видео. Чтобы пользователи не хитрили, система сверяет каждый новый ролик с миллионами существующих в базе — на это нужно меньше секунды. Если обнаруживается дубликат, в том числе отзеркаленный, с другим разрешением и т. д., система отказывает в загрузке и, соответственно, оплате. Здесь понадобилось восемь серверов и ничего больше.

Применению TAPe на практике мы посвятили отдельную статью на VC:

Если вы дочитали до этого места, видимо, вас привлекла наша технология. Мы ищем инвесторов и партнеров, чтобы быстрее выпустить новые продукты на основе TAPe:

  • сверхточное распознавание любого типа статичных изображений;
  • молниеносный кодека для работы с графикой и видео,
  • новый протокол для работы с видео вместо HTTP,
  • более эффективные CPU, GPU и ALU,
  • системы беспилотного транспорта.

Напишите мне, если вы заинтересовались:

7
Начать дискуссию