Технология видео поиска Video Color

В закладки

Поиск видео

Текущее состояние дел

Текст

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

Изображения

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

  • MicroSoft (bing.com)
  • Yandex (yandex.ru)
  • Google (google.com)

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

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

Microsoft - успешный поиск

Microsoft - неудачный поиск

Yandex – удачный поиск

Yandex – опять удачный поиск

Google – удачный поиск

Google – неудачный поиск

Видео

Поиска видео по небольшим видео фрагментам ни у кого нет.

Желаемое будущее

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

Области применения поиска видео по видео фрагментам

  • Идентификация старых и неизвестных видео фильмов.
  • Нахождение и отсечение рекламных блоков.
  • Проверка частей видео на предмет заимствования их из других фильмов (плагиат).
  • Определение точной даты публикации и названия шоу (передачи) если в репосте отсутствует данная информация. Определение более-менее точной позиции проигрываемого потокового видео, если идёт вещание ранее проиндексированного видео.

Идентификация старых и неизвестных видео фильмов

Предположим, что у вас есть файл с корявым названием. Начальная заставка либо отсутствует (замысел автора) либо вырезана. Что это за фильм? Хотелось бы прочитать описание и комментарии тех, кто его просмотрел.

Нахождение и отсечение рекламных блоков

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

Проверка частей видео на предмет заимствования их из других фильмов (плагиат)

Пример: Если есть подозрение, что кто-то использует в своём видео ваше видео (снятое с квадрокоптера).

Определение точной даты публикации и названия шоу (передачи) если в репосте отсутствует данная информация

Пример: Вы смотрите видео-шоу, размещённое на неизвестном сайте. Возможно, вы даже знаете, как это шоу называется, но не знаете, когда оно было показано. Год назад или два?

Определение более-менее точной позиции проигрываемого потокового видео, если идёт вещание ранее проиндексированного видео

Пример: Это может понадобиться если вы хотите прикрутить к чужому потоковому видео приложение, демонстрирующее титры или другую контекстную информацию (карты, ссылки, новости и т. д.). Сперва идёт захват видео, расчёт индекса, идентификация видео и позиции на сервере, а затем приложение выводит в отдельном окне контекстную информацию, синхронизированную с воспроизводимым видео.

Технология "Video Color"

Основная идея

Будем рассматривать видео как последовательность изображений. Для каждого изображения найдём среднее значение красного, зелёного и синего цвета. Получим три графика в зависимости от времени. Построим и сохраним эти графики для каждого видео, которое мы хотим проиндексировать. Получая видео фрагмент для идентификации построим эти графики и для него. Сравним полученные графики с уже имеющимися. Разумеется, сравнивать придётся по всей длине каждого исходного фильма. Если разница между графиками в конкретной точке меньше определённого значения, то считаем, что задача решена.

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

Плюсы

  • Относительно небольшой размер индексов. Один час видео в проиндексированном виде занимает около 1 МБ. Таким образом, 1000 фильмов, каждый продолжительностью около 2 часов, в проиндексированном виде займут около 2 ГБ.

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

  • Для абсолютного большинства поисковых запросов для правильной идентификации достаточно коротких фрагментов 5-10 секунд.

  • Качество поиска слабо зависит от разрешения видео (в определённых пределах).

  • Поиск идёт исключительно по видео. Аудио из процесса полностью исключено. Плюс в том, что несколько версий одного и того же фильма с разными звуковыми дорожками в результате поиска приведут к одному и тому же фильму. Это исключает ненужное дублирование и, как следствие, экономит ресурсы.

Минусы


  • Поиск необходимо вести от начала и до конца. Т.е. при поступлении запроса необходимо сравнить его со всеми образцами в базе данных. Это накладывает определённые ограничения не только на тип памяти для хранения информации, но и для размеров этой самой памяти. Для того чтобы получить ответ за несколько секунд необходимо, чтобы индексы находились в оперативной памяти. Чем больше база, тем больше места в ОЗУ выделено для хранения информации и тем дольше будет длиться поиск. Например, для 2-х канального доступа и при использовании памяти DDR3 частотой 1600 МГц для поиска по базе размером 12 ГБ понадобится минимум около 0,5 секунды. Для базы размером 48 ГБ необходимо будет уже порядка 2-х секунд минимум.

  • Для очень темных или очень светлых мест в видео (обычно это эффекты перехода между сценами) на коротких исходных фрагментах поиск будет работать плохо. Будут многочисленные совпадения. Что, в общем то, вполне понятно, но неприятно.
  • Также будут проблемы идентификации с начальными заставками компаний производителей видео или с сериалами. Что, в общем то тоже, вполне понятно. Это не проблема алгоритма - это дубликаты данных.
  • Качество поиска может сильно зависеть от обрезки видео по краям.

История

Первая версия пакета VideoColor была выпущена 1 июля 2019 года. Она включала в себя три части:

  • Manager (индексирование исходного видео)
  • Server (серверная часть, которая принимает запросы и ищет совпадение в базе индексов)
  • Client (клиентское приложение, которое позволяет проигрывать AVI файлы и отсылать поисковые запросы серверу).

В конце марта 2020 года был создан веб-сайт с возможностью идентификации видео по загруженному видео фрагменту.

В настоящее время апрель 2020 года готовится к выходу вторая версия пакета VideoColor.

Веб-сайт

На данный момент веб-сайт находится по адресу http://www.videocolor.aapsoftware.ru

Видео на YouTube

Инструменты поиска

Красными кружками помечены ещё не реализованные функции.

Индексирование видео

Для создания индексного файла и нескольких дополнительных используется приложение "Video Color Manager".

Клиентское приложение

Бизнес модель

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

Планы на будущее

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

Пока в нашей базе данных около ста фильмов. Это безусловно очень и очень мало, требуется увеличить хотя бы в 10 раз. И, в перспективе, довести их количество до 10 000.

Индексация новых фильмов

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

Распределённая система поиска

На одном сервере тяжело осуществлять поиск по большому количеству видео. Проще разделить видео по разным серверам, так, чтобы один поисковый запрос обрабатывался сразу несколькими серверами. В этом случае можно охватить разные направления (художественное кино, телесериалы, документальные фильмы, ток-шоу, новости, фильмы для взрослых и т. д.).

Была интересна статья? Имеет ли смысл публиковать другие статьи связанные с этой технологией?
Да
Нет
Затрудняюсь ответить
Показать результаты
Переголосовать
Проголосовать
{ "author_name": "Александр Алексеев", "author_type": "self", "tags": [], "comments": 0, "likes": -2, "favorites": 2, "is_advertisement": false, "subsite_label": "dev", "id": 122967, "is_wide": true, "is_ugc": true, "date": "Sat, 25 Apr 2020 11:04:59 +0300", "is_special": false }
0
Комментариев нет
Популярные
По порядку

Прямой эфир