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

в 14:28, , рубрики: table view video player, видео плеер, поиск объектов, поиск по видео, поиск сцен, Работа с видео, табличное воспроизведение видео, метки: , , , , ,

Предыстория

Когда то я поспорил с моим приятелем по поводу одного фильма. Он утверждал, что главный герой говорит одно, я же считал, что он говорит совершенно обратное. В результате мы поспорили на N-ое количество алкогольно-прохладительных напитков и направились к общему другу, который являлся счастливым обладателем VHS-видеоплеера и у которого должен был быть этот самый фильм. Спор этот я проиграл, но, хорошо помню, что мы потратили много времени на поиск именно этой сцены.Годы спустя, уже в наши дни, другой мой приятель переписал мне видео с регистратора на флэшку со словами, что там мол, после какого то поворота налево в объектив устройства должен был попасть наш общий знакомый (неприятный тип), который находился в чуднОм состоянии и, предлагал мне, приколоться по этому поводу.Искать чью-то физиономию на видео длиной в пару часов, это, конечно, не то чтобы искать иголку в стогу сена, но, тоже, удовольствие на любителя. Похоже, что именно тогда в моей голове начала зреть идея и я задался вопросом: как просмотреть несколько часов видеозаписей, чтобы найти там что тебе надо и при этом не сильно ограничить себя во сне?

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

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

Табличное представление видео: что это за зверь и с чем его едят?

Примеры видео в табличном формате

Candies
Parking
Road

Примеры изображений в табличном формате

Candies
Parking
Road

Собственно, сам инструмент

После некоторых мучений мной была написана программа Table View Video Player. image

Основные возможности программы

  • Воспроизведение видео в табличном виде
  • Возможность сохранять видео в табличном виде (для просмотра на планшете или просто на другом компьютере)
  • Настраиваемое количество строк и столбцов в таблице, а также размеры результирующего кадра в пикселях
  • Список файлов (для быстрого переключения между видео, а также если событие состоит из нескольких файлов, например VOB-файлы на DVD или записи с видео регистратора)
  • Сохранение индексного изображения
  • Пакетное создание видео и индексных изображений для всех файлов в списке
  • Некоторые преобразования исходного видео при воспроизведении (вращение на 90, 180, 270 градусов, отражение по вертикали и по горизонтали)
  • Возможность выбора конкретной области исходного видео
  • Возможность воспроизведения исходного видео в обычном режиме с заданной позиции во встроенном проигрывателе или в другой программе

А что там под капотом?

Программа написана на C++, использовался MS Visual Studio 2015. В качестве видео библиотек можно было ограничиться FFMPEG, но я юзал OpenCV (планирую использовать другие возможности этой библиотеки).

Область применения данного инструмента

Попробую показать всё на примере. Я поставил видео камеру на кухне, а конфеты спрятал на кухонный навесной шкаф. Продолжительность видео 2 часа. А теперь посмотрите на картинку и скажите кто их съел: папа, мама или кто-то из детей? Даже если бы не было выделения нужных областей, всем всё стало бы ясно через 2 минуты просмотра, а может и раньше.image Если кто-то хочет провести эксперимент, то вот ссылка на исходное видео, а вот ссылка на видео в табличном виде. Итак, основное предназначение программыузнать кто стырил конфеты визуальный анализ видео.

Ещё немного практики

По праздникам я снимаю видео в детском саду, а также семейные юбилеи, свадьбы друзей и родственников. Pinnacle Studio — отличная программа для видеомонтажа! Говорят даже, что в ней с лёгкостью разбираются домохозяйки! Не понимаю правда, откуда у домохозяек столько упорства и свободного времени, чтобы тратить часы на многократные попытки проэкспортировать смонтированное видео в файл или на DVD-диск? Сам я пользуюсь этой программой начиная с 8-ой версии (сейчас использую лицензионную 17, а последняя выпущенная это 19 версия), но, несмотря на мой опыт, редко получается, чтобы в процессе редактирования или экспорта приложение не повисло. Но даже если экспорт завершился удачно (по мнению Pinnacle Studio), то при просмотре видео в VLC-плеере или проигрывателе Windows-Media иногда встречаются артефакты, вид которых смущает пользователей моей продукции.Что ж! Table View Video Player можно использовать и здесь! Запускаем программу, открываем наш файл и не концентрируясь на каком-либо фрагменте конкретно просто пытаемся почувствовать, где вдруг появляется фриз или какая то бяка.Типа этого.imageПять минут на поиск артефактов видео — это не так уж и много!В таком случае заново открываем проект и пытаемся исправить проблему. И немного радуемся тому, что обнаружили это сами, а не «счастливые родители» во время семейного просмотра.

Шаг назад

Некоторое время назад я похвастался своей программой перед знакомым, на что получил замечание, что программа слишком сложна и лично он бы в ней никогда не разобрался. Мдя, а я то думал… Учтя конструктивную критику, я осознал, что, возможно, он прав. Так возникла необходимость создания более простой (Lite) версии.image

Основные возможности программы

  • Воспроизведение видео в табличном виде
  • Изменяемые размеры таблицы
  • Список файлов (для быстрого переключения между видео, а также если событие состоит из нескольких файлов, например VOB-файлы на DVD или записи с видео регистратора)
  • Возможность воспроизведения исходного видео в обычном режиме с заданной позиции во встроенном проигрывателе.

По сравнению со стандартной версией убраны многие фичи, но зато программа стала простая как 2 копейки!

Теория поиска сцен и объектов

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

Сильные стороны

  • Поиск некоторых событий в относительно статичной картинке. Например, запись посетителей в холле. Если их не так много, то найти нужного человека довольно легко. Здесь поиск можно ускорить в десятки раз!
  • Поиск сцен, имеющих контрастную цветовую гамму или освещенность в динамичном видео. Например, есть фильм, снятый преимущественно в помещении, но имеется одна или несколько сцен снятых на улице в ясный солнечный день. Требуется их найти. В этом случае они очень быстро и очно находятся.

Слабые стороны

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

Конкуренты или программы для поиска сцен и объектов

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

Список далеко не полон, часть ссылок никак не могу найти. Но был бы благодарен, за дополнение…

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

  • Ускорение воспроизведения видео. Уже сейчас видео в разрешении VGA на современном компьютере можно смотреть в таблице 10x10 с частотой 20-30 FPS. Однако видео c современных фото и видео камер, экшен-камер и видео регистраторов имеет разрешение Full HD или даже выше и не за горами 4K. Поэтому без использования GPU не обойтись.
  • Возможность сохранения найденной информации в виде изображений (стоп-кадр), аудио или видео фрагментов интересующих моментов для последующего использования. Например, для монтажа видеофильма (собираем смешные сюжеты с вечеринки) или для представления доказательств в суде (если камера видео наблюдения засняла момент кражи).

Выводы

  • Инструментов для поиска сцен и объектов в видео на сегодняшний день для рядового пользователя практически не существует.
  • Приложения Table View Video Player и Table View Video Player Lite пытаются хоть как восполнить эту нишу.
  • Для определённых видов поиска сцен в видео метод табличного представления является очень эффективным.
  • Несмотря на то, что для одновременного воспроизведения нескольких десятков видео потоков требуется высокая производительность компьютера, при невысоком разрешении (SD качество) исходного видео задача успешно решается современными ПК.

Автор: alekseev_ap

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js