Розглянемо докладніше інструментарій, який планується використати при розробці програми:
Міжкадровая різниця
Обчислення міжкадровой різниці є дуже поширеним методом первинного виявлення руху, після виконання якого, взагалі кажучи, вже можна сказати, чи присутній у потоці кадрів рух. Однак, відеокадри повинні бути попередньо оброблені перед обчисленням різниці між ними. Алгоритм обчислення межкадровой різниці двох кадрів для випадку обробки кольорового відео в форматі RGB виглядає наступним чином:
- На вхід алгоритму надходять два відео кадри, що представляють собою дві послідовності байт у форматі RGB.
- Виробляється обчислення попіксельно межкадрових різниць.
- Для кожного пікселя обчислюється середнє значення між значеннями трьох компонентів кольору.
- Середнє значення порівнюється із заданим порогом. В результаті порівняння формується двійкова маска.
Таким чином, на виході алгоритму формується двійкова маска, одному елементу якої відповідають три компоненти кольору відповідного пікселя вихідних двох кадрів. Одиниці в масці розташовуються в областях, де, можливо, присутній рух, проте на даному етапі можуть бути і помилкові спрацьовування окремих елементів маски, помилково встановлених в 1. У якості двох вхідних кадрів можуть використовуватися два послідовних кадру з потоку, однак можливе використання кадрів з великим інтервалом, наприклад, рівним 1-3 кадру. Чим більше такий інтервал, тим вище чутливість детектора до мало рухомих об'єктів, які відчувають лише вкрай малий зсув за один кадр і можуть відсікатися, будучи віднесеними до шумової складової зображення.
Недоліком такого методу є фіксація шуму апаратури при реєстрації даних. Шум неминуче з'являється при роботі будь-якої з сучасних камер, тому з ним необхідно боротися окремо.
Перевагою даного методу є простота і невимогливість до обчислювальних ресурсів. Метод широко застосовувався раніше через те, що в розпорядженні розробників не було достатніх обчислювальних потужностей. Трудомісткість алгоритму має порядок O(n) і здійснюється всього за один прохід, що дуже важливо для растрів великої розмірності.
Базовий кадр
Описуючи метод межкадрових попіксельно різниць з побудовою маски руху, в якості двох вхідних кадрів ми ставили або два сусідніх кадри, або два кадри, взятих з невеликим інтервалом. Однак використання цього методу залишає можливість обчислювати різницю з деяким кадром, який би містив виключно нерухомі області фону (базовий кадр). Такий підхід дав би нам істотне збільшення ймовірності виявити будь-який об'єкт, як самий повільний, так і швидкий, причому саме в тій точці, в якій він знаходився в даний момент. В іншому разі, цей метод називається методом віднімання або сегментації фону.
Робота методу повністю аналогічна роботі алгоритму межкадровой різниці з тією лише відмінністю, що різниця обчислюється між поточним і базовим кадром. Великою проблемою тут є спосіб побудови базового кадру, оскільки він повинен володіти декількома властивостями:
- Якщо кадр являє собою кадр реального зображення, він повинен мінімально відстояти за часом від поточного кадру.
- Якщо базовий кадр готується штучно, він повинен містити мінімальну кількість рухомих елементів, інакше неминучі помилкові спрацьовування на об'єкти, яких на поточному кадрі вже немає, проте базовий кадр містить якісь їхні елементи.
- Мінімальний рівень шуму. Перед оновленням базового кадру необхідно проводити фільтрацію.
Математична морфологія
Математична морфологія представляє собою аналіз зображення з точки зору його форми. Робота алгоритмів, заснованих на застосуванні даного підходу, пов'язана з виконанням над зображенням ряду перетворень, що змінюють форму об'єктів, що утримуються на зображенні.
Математична морфологія застосовується в різних системах, що мають справу з обробкою зображень, на різних етапах і для досягнення різних цілей:
- поліпшення візуальних характеристик зображення (яскравість, контрастність та інш.)
- відновлення зіпсованих зображень, наприклад, реставрація фотознімків.
- виявлення контурів.
- зниження рівня шуму.
Виділення об'єктів
Визначимо поняття об'єкту з точки зору детектора руху. Воно буде трохи відрізнятися від того, що людина звикла розуміти під об'єктом, сприймаючи оком оточуючі його предмети.
Виділяючи об'єкти на зображенні, людське око працює у зв'язці з головним мозком, який на поточний момент вже зберігає достатньо інформації про типи, формі, лінійні розміри, кольори та інші характеристики, притаманні тим чи іншим об'єктам, з якими людина стикалася раніше. Таким чином, разом з виділенням об'єктів сцени, людський мозок виконує процедуру їх розпізнавання, тому людина без зусиль розрізняє відомі йому об'єкти. Робота по виділенню об'єктів детектором руху, заснованим на алгоритмі обчислення попіксельно різниць між кадрами, починається з аналізу маски руху. Реальним об'єктам в ній зазвичай відповідають пікселі (або мінзони), які утворюють зв'язкові групи, тому логічно визначити об'єкт з точки зору детектора руху як групу зв'язкових пікселів в масці руху. Такому об'єкту відповідають декілька параметрів:
- Лінійні розміри мінімального прямокутника (надалі просто прямокутник), який можна описати навколо пікселів групи.
- Координати (x, y) центральної точки прямокутника. Будемо вважати дану точку центральною точкою об'єкта.
- Кількість пікселів, що входять до групи.
- Область маски руху, що лежить усередині прямокутника.
- Область поточного кадру, що лежить усередині прямокутника.
Оскільки детектор виявляє тільки рухомі об'єкти, ця група пікселів і відповідний їй об'єкт з надходженням на вхід детектора нових кадрів підлягатиметься зсуву, тому крім параметрів, перерахованих вище, можна ввести ще декілька:
- Вектор, що описує напрям і швидкість руху об'єкта.
- Масив, що містить координати центру об'єкту на попередніх кадрах.
- Час життя об'єкта, що вимірюється в кількості кадрів.
Виділення об'єктів відбувається при послідовному обході пікселів маски руху. Якщо в масці руху виявлена одиниця, запускається процедура пошуку пікселів, зв'язаних з даними, яким також відповідають одиниці в масці руху. Знайдені пікселі позначаються, щоб уникнути повторного їх виявлення.
Функція кореляції
Функція взаємної кореляції двох зображень — функція, що показує ступінь кореляції двох зображень. Зазвичай вона використовується для обчислення ступеня схожості областей на різних кадрах. Ця функція повинна давати єдиний максимум тільки для випадку двох однакових зображень. Дуже часто використовується нормалізована функція взаємної кореляції. Максимальним значенням функції при повному збігу першого растру з прямокутником на другому растрі буде одиниця.
Алгоритми, що використовують функцію кореляції, працюють таким чином.
Спочатку вони знаходять кілька значень функції, різним чином накладаючи на один растр прямокутник, взятий з іншого растру. Потім з отриманих значень вибирають максимальне. Якщо найкраще значення досить близьке до одиниці, значить, на першому растрі виявлений саме той об'єкт, який потрапив до «корелюючого» прямокутника, взятого на другому растрі. Ступінь близькості значення функції кореляції до одиниці — параметр, вибираючи значення якого, можна домогтися оптимального співвідношення кількості помилок помилкового виявлення і невиявлення взагалі.
Трасування
Термін трасування припускає відстеження об'єкту, що рухається, і значень його параметрів протягом всього часу його перебування в кадрі. При правильному трасування об'єкта з'являється можливість перегляду траєкторії руху об'єкта з будь-яким рівнем деталізації (з точністю до кадру, до 3, 5 і т.д. кадрів). Така можливість забезпечується збереженням положення центральної точки об'єкта на кожному з кадрів у спеціальному масиві, який введено для цієї мети при визначенні параметрів для кожного з рухомих об'єктів. Алгоритми, трасуючі рухомі об'єкти, не повинні плутати один об'єкт з іншим, втрачати об'єкт, якщо він зупинився на невеликий проміжок часу або зник за будь-якою перешкодою (наприклад, людина сховалася за деревом), а потім з'явився знову.
При обчисленні функції кореляції з метою виявлення на поточному кадрі об'єкта, виявленого раніше, використовуються тільки ті пікселі зображення, яким в масці руху відповідають одиниці. В іншому випадку в формулу для обчислення функції кореляції можуть потрапити значення кольорів пікселів, що лежать всередині прямокутної області, але за межами об'єкта, а ці пікселі зовсім не обов'язково повинні корелювати один з одним, отже, значення функції кореляції в цьому випадку зменшиться. А якщо воно стане менше обраного порога схожості, алгоритм може помилково визнати дану прямокутну область растру несхожою на об'єкт, з яким проводиться порівняння, навіть якщо насправді це не так.
Мал.2. Анімований процес розпізнавання образів (рухомих машин і людей) при охороні об'єкту (кількість кадрів — 4; кількість повторень — нескінченно; обсяг — 124 КБ.)
Розробки та дослідження, плановані до виконання:
- вивчити можливості різних алгоритмів розпізнавання подій у відеопотоці;
- провести аналіз ефективності різних підходів і вибрати оптимальний по співвідношенню «швидкість-якість»;
- застосувати розбиття відеопотоку на два;
- проаналізувати результати розбиття і з'ясувати, наскільки воно ефективне.
Висновки:
У результаті цієї роботи були розглянуті основні методи і алгоритми розпізнавання подій у відеопотоці і вказані їх основні недоліки. Також був розглянутий спосіб поліпшення роботи алгоритмів розпізнавання за рахунок збільшення обсягів необхідної оперативної пам'яті.
В результаті виконання роботи буде розроблен метод, позбавлений недоліків існуючих рішень та збільшуючий ефективність обробки відеозображення підчас охорони об'єктів великої протяжності.
Це автореферат незакінченої роботи. Завершення планується до грудня 2010-го року. Результати роботи можна буде отримати, написавши листа автору.
Література
ol class="text">Н.С. Байгарова, Ю.А. Бухштаб, Н.Н. Евтеева. Современная технология содержательного поиска в электронных коллекциях изображений // Электронные библиотеки, 2001, Выпуск 4, том 4.
Jain, R. and Gupta, A. Visual Information Retrieval, Communications of the ACM. // 1997, vol. 40, no. 5.
Н.С. Байгарова, Ю.А. Бухштаб. Некоторые принципы организации поиска видеоданных. Программирование, N 3. // Электронные библиотеки, 1999.
Виктор Гаганов, Антон Конушин. Сегментация движущихся объектов в видео [Электронный ресурс] / Graphics & Media lab, — http://cgm.graphicon.ru/obzoryi/segmentatsiya_dvizhuschihsya_obektov_v_video_potoke.html.
Белявцев В. Г., Воскобойников Ю. Е. Локальные адаптивные алгоритмы фильтрации цифровых изображений // Научный вестник НГТУ, 1997, №3.
Путятин Е.П., Аверин С.И. Обработка изображений в робототехнике. // М.: Машиностроение, 1990, 320 с.
А.П. Горелик, В.А. Скрипкин. Методы распознавания. // М.: «Высшая школа». 1989, 216 с.
Павлидис Т. Алгоритмы машинной графики и обработки изображений. Пер с англ. // М.: Радио и Связь, 1986.
Дэвид А. Форсайт, Джин Понс. Компьютерное зрение. Современный подход // 2004, 1 кв.; Вильямс, 928 с.
Гиренко А.В., Ляшенко В.В., Машталир В.П., Путятин Е.П. Методы корреляционного обнаружения объектов. // Харьков: АО «БизнесИнформ», 1996, 112 с.