Інструмент для швидкого пошуку сцен у відео файли

Передісторія
Коли то я посперечався з моїм приятелем з приводу одного фільму. Він стверджував, що головний герой говорить одне, я ж вважав, що він говорить зовсім протилежне. В результаті ми посперечалися на N-ну кількість алкогольно-прохолодних напоїв і попрямували до спільного друга, який був щасливим володарем VHS-відеоплеєра і у якого повинен був бути цей самий фільм. Спір цей я програв, але добре пам'ятаю, що ми витратили багато часу на пошук саме цієї сцени.Роки потому, вже в наші дні, інший мій приятель переписав мені відео з реєстратора на флешку зі словами, що там мовляв, після якогось повороту наліво в об'єктив пристрою повинен був потрапити наш спільний знайомий (неприємний тип), який перебував у чудовому стані і, пропонував мені, приколотися з цього приводу.Шукати чиюсь пику на відео довжиною в пару годин, це, звичайно, не те щоб шукати голку в стозі сіна, але, теж задоволення на любителя. Схоже, що саме тоді в моїй голові почала визрівати ідея і я задався питанням: як переглянути кілька годин відеозаписів, щоб знайти там що тобі треба і при цьому не сильно обмежити себе у сні?

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

Табличне представлення відео: що це за звір і з чим його їдять?

Приклади відео у форматі таблиці

Candies
Parking
Road

Приклади зображень в табличному форматі

Candies
Parking
Road

Власне, сам інструмент
Після деяких мук мною була написана програма Table View Video Player. image

Основні можливості програми

  • Відтворення відео в табличному вигляді
  • Можливість зберігати відео в табличному вигляді (для перегляду на планшеті або просто на іншому комп'ютері)
  • Настроюється кількість рядків і стовпців в таблиці, а також розміри результуючого кадру в пікселях
  • Список файлів (для швидкого перемикання між відео, а також якщо подія складається з декількох файлів, наприклад AVI файли на 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

Основні можливості програми

  • Відтворення відео в табличному вигляді
  • Змінні розміри таблиці
  • Список файлів (для швидкого перемикання між відео, а також якщо подія складається з декількох файлів, наприклад AVI файли на DVD або запису відео з реєстратора)
  • Можливість відтворення вихідного відео у звичайному режимі з заданої позиції у вбудованому програвачі.
порівняно зі стандартною версією прибрані багато фічі, але зате програма стала проста як 2 копійки!

Теорія пошуку сцен і об'єктів
Існуючі автоматичні рішення для пошуку по відео архіву ресурсоемки, крім того не завжди можна чітко сформулювати, що ж Ви шукаєте. У цьому разі використання ручного пошуку (я маю на увазі з допомогою оператора), якщо прискорити його за допомогою табличного відтворення, може виявитися досить ефективним.

Сильні сторони

  • Пошук деяких подій у відносно статичною картинці. Наприклад, запис відвідувачів в холі. Якщо їх не так багато, то знайти потрібну людину досить легко. Тут пошук можна прискорити у десятки разів!
  • Пошук сцен, мають контрастне кольорову гаму або освітленість в динамічному відео. Наприклад, є фільм, знятий переважно в приміщенні, але є одна або кілька сцен, знятих на вулиці в ясний сонячний день. Потрібно їх знайти. У цьому випадку вони дуже швидко і очно знаходяться.

Слабкі сторони

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


Конкуренти або програми для пошуку сцен і об'єктів
Прямих конкурентів я назвати не можу, але є кілька програм, які роблять щось схоже. Список далеко не повний, частина посилань ніяк не можу знайти. Але був би вдячний за доповнення…

Плани на майбутнє
  • Прискорення відтворення відео. Вже зараз відео в дозволі VGA на сучасному комп'ютері можна дивитися в таблиці 10x10 з частотою 20-30 СЕК. Проте відео c сучасних фото та відео камер, екшен-камер і відео реєстраторів має дозвіл Full HD або навіть вище і не за горами 4K. Тому без використання GPU не обійтися.
  • Можливість збереження знайденої інформації у вигляді зображень (стоп-кадр), аудіо або відео фрагментів вакансій моментів для подальшого використання. Наприклад, для монтажу відеофільму (збираємо смішні сюжети з вечірки) або для представлення доказів у суді (якщо камера відео спостереження зняла момент крадіжки).


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

Вважаєте Ви, що програми для пошуку сцен і об'єктів у відео могли б бути корисною у Вашій роботі?

/>
/>


<input type=«radio» id=«vv72711»
class=«radio js-field-data»
name=«variant[]»
value=«72711» />
Так
<input type=«radio» id=«vv72713»
class=«radio js-field-data»
name=«variant[]»
value=«72713» />
Немає
<input type=«radio» id=«vv72715»
class=«radio js-field-data»
name=«variant[]»
value=«72715» />
Вже використовую

Проголосував 21 людина. Утрималося 14 осіб.


Хотіли б Ви продовження циклу статей на дану тему?

/>
/>

<input type=«radio» id=«vv72717»
class=«radio js-field-data»
name=«variant[]»
value=«72717» />
Так
<input type=«radio» id=«vv72719»
class=«radio js-field-data»
name=«variant[]»
value=«72719» />
Немає
<input type=«radio» id=«vv72721»
class=«radio js-field-data»
name=«variant[]»
value=«72721» />
Мені все одно

Проголосувало 27 осіб. Утрималося-10 чоловік.


Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.