одія
Основний внесок в обчислювальну складність розглянутих методів вносить обчислення оптичного потоку, оскільки навіть лінійні реалізації мають дуже великий коефіцієнт. Всі інші кроки алгоритмів виділення рухомих об'єктів - групування векторів, обчислення градієнта, пошук контурів - вимагають лише декількох операцій на кожен піксель зображення. Дані методи можна назвати досить продуктивними, якщо не брати до уваги обчислення оптичного потоку, так як спосіб його обчислення залежить від поставлених завдань, умов і цілей. До того ж всі сучасні комп'ютери мають кілька ядер, і оптичний потік може незалежно обчислюватися на своєму ядрі, не заважаючи решті аналізу. При обробці кожного нового кадру на всі інші розрахунки, крім оптичного потоку, для стандартного розміру кадру (VGA - 64? 480) витрачається не більше 10-60 млн. Тактів, що приблизно дорівнює 4-20 мс процесорного часу для ядра з частотою 3 ГГц. Продуктивність залежить від інтенсивності та складності руху на відеоряді, тому точну алгоритмiчну складність підрахувати неможливо. Наприклад, для нерухомою сцени всі алгоритми дають швидку відповідь про відсутність об'єктів, але чим більше в сцені дрібних рухів, тим більше ресурсів потрібна для їх пошуку. Звичайно ж, наприклад, для методу об'єднання областей нескладно придумати кадри, оптичний потік яких має шаховий порядок, і аналіз таких кадрів буде, як мінімум, кубічної складності. Але на практиці таке не зустрічається, а рухомі об'єкти мають згруповані області на відеокадрах. Ця згруповані зберігається і для оптичного потоку, що дозволяє його аналізувати зі швидкістю, трохи меншою, ніж лінійна. Таким чином, аналізовані методи застосовні для використання на звичайних комп'ютерах для обробки відео в реальному масштабі часу.
Складнощі реалізацій
Чим простіше метод, тим складніше в ньому зробити неявну помилку, і тим цей метод надійніше. Особливо це важливо, коли метод вбудовується як додаткова функціональність у вже працюючу систему. Використання бібліотеки OpenCV дозволяє спростити реалізацію методів шляхом написання коду порівняно невеликого обсягу. Для всіх складних кроків використовувалися стандартні функції з бібліотеки, що дозволяє уникнути можливих помилок при самостійній реалізації. Для зв'язку складних кроків виробляються тільки прості операції (наприклад, передача зображень), тому їх реалізація практично очевидна, і в ній важко допустити помилку.
Таким чином, аналізовані методи легко реалізувати, а значить, вони володіють високою надійністю.
Якість
Розглянуті методи є прийнятними за швидкістю роботи, проте необхідно оцінити якість одержуваного результату. Можна провести наступний експеримент: на вхід алгоритмам подамо відеоряд з побутовою відеокамери. При стандартному кімнатному освітленні плавно проведемо рукою перед камерою. Були випробувані як аналогові камери, для оцифровки сигналу яких використовувалися плати відеозахоплення, так і різні WEB-камери, які підключаються до комп'ютера через інтерфейс USB і передають вже оцифрований сигнал. У ході експериментів не виявлено суттєвих відмінностей об'єктів, що виділяються залежно від використаної камери. На рис. 1.1 для одного і того ж відеоряду представлений результат роботи алгоритмів пошуку контуру та об'єднання областей.
Рис. 1.1 Виділення рухомій руки на основі двох методів: пошук контурів (а); об'єднання областей (б)
Всі порівнювані методи дають подібний за якістю результат - алгоритми виділили шуми як рухомі об'єкти, що непридатне для подальшого використання. Слід зробити висновок, що причина низької якості результату обумовлена ??якістю побудови оптичного потоку, оскільки дані методи на ньому засновані. Більшість алгоритмів побудови оптичного потоку дають прийнятний результат тільки на штучних і чистих кадрах, тому, отримавши на вхід відео з шумами, вони не забезпечують бажану якість виділення об'єкта. Всі розглянуті стандартні методи побудови оптичного потоку дуже чутливі до рівня шумів, що відбивається в знайдених рухомих об'єктах. У ряді випадків алгоритми обчислюють, що рухається вся сцена, хоча насправді руху немає взагалі, а на відео - рівномірний шум. Також класичні методи мають сильні обмеження в допустимої швидкості руху об'єктів - руху повільніше, ніж один піксель за кадр, не виявляються зовсім. [3]
Трасування увазі відстеження рухомого об'єкту і значень його параметрів протягом усього часу його перебування в кадрі. При правильному трасуванні об'єкта з'являється можливість перегляду траєкторії руху об'єкта з будь-яким рівнем деталізації (з точністю до кадру, до 3, 5 і т.д. кадрів). Така можливість забезпечується збереженням положення центральної точки об'єкта на кожному з кадрів у спеціальному масиві, який введено для цієї мети при визна...