ВІДСТЕЖЕННЯ ОБ’ЄКТІВ У ВІДЕОПОТОКІ

студент, факультет прикладної математики – процесів управління, СПбДУ,

РФ, м. Санкт-Петербург

студент, факультет прикладної математики – процесів управління, СПбДУ,

РФ, м. Санкт-Петербург

студент, факультет прикладної математики – процесів управління, СПбДУ,

РФ, м. Санкт-Петербург

Вступ

Постановка задачі

Завдання знаходження та відстеження об'єкта складається з кількох кроків, а саме: спочатку буде навчений каскадний класифікатор, а потім буде реалізовано процес розпізнавання та трекінгу об'єкта шляхом розробки відповідного програмного забезпечення.

Аналіз предметної області

Розпізнавання зображень

Для детектування об'єкта на зображенні використовуються алгоритми розпізнавання. Алгоритм розпізнавання або класифікації зображень приймає картинку як вхідні дані і виводить, що міститься на даному зображенні.

Класифікація зображень проводиться за кілька кроків. На першому кроці вхідне зображення часто попередньо обробляється для нормалізації контрасту та яскравості, а також на цьому кроці вхідне зображення обрізається та масштабується до фіксованого розміру.

На другому кроці необхідно спростити зображення шляхом отримання важливої ​​інформації, оскільки вихідне зображення містить занадто багато додаткової інформації, яка не потрібна для класифікації. Цей крок називається вилученням ознак. Існує досить велика кількість ознак, що використовуються в комп'ютерному зорі – це ознаки Хаара, HOG (Histogram of Oriented Gradients), SIFT (Scale-Invariant Feature Transform), SURF (Speeded Up Robust Feature) та інші.

На третьому кроці алгоритм класифікації приймає вектор ознак уяк вхідні дані і виводить до якого класу належить зображення.

Метод Віоли-Джонса

Розглянемо докладніше метод Віоли-Джонса, що ґрунтується на ознаках Хаара, оскільки він використовується в даній роботі для розпізнавання об'єкта на кадрі.

Основний принцип алгоритму Віоли-Джонса полягає у скануванні зображення за допомогою вікна, що сканує, що дозволяє виявити заданий об'єкт. При стандартному підході масштабується вхідне зображення, потім запускається детектор фіксованого розміру. Віола та Джонс навпаки масштабують детектор і багаторазово запускають його для вхідного зображення, щоразу використовуючи різний розмір.

Першим кроком алгоритму Віоли-Джонса є перетворення вхідного зображення на інтегральне. Це здійснюється шляхом прирівнювання значення інтенсивності кожного пікселя суми всіх інтенсивностей пікселів, що знаходяться вище і лівіше відповідного пікселя. Це дозволяє обчислювати суму всіх пікселів всередині будь-якого прямокутника заданого за константний час.

Далі алгоритм Віоли-Джонса аналізує зображення, використовуючи ознаки, які з двох чи більше прямокутників. Кожна ознака дає одне значення, яке розраховується шляхом віднімання суми білого прямокутника(ів) із суми чорного прямокутника(ів). Працюючи алгоритму може бути обчислено до 180 000 значень ознак. Серед усіх цих значень лише невелика кількість ознак потрібна для побудови ефективного класифікатора.

AdaBoost – це алгоритм машинного навчання, здатний побудувати сильний класифікатор за допомогою зваженої комбінації слабких класифікаторів. В даному випадку кожна ознака розглядається як потенційний слабкий класифікатор.

Метод Віоли та Джонса поєднує кілька сильнихкласифікаторів побудованих методом AdaBoost у каскад. Завдання кожного етапу каскаду полягає в тому, щоб визначити, чи містить це об'єкт, що сканує вікно, чи ні. Коли вікно, що сканує, класифікується як не містить об'єкт на даному етапі, воно негайно відкидається. І навпаки, вікно, що сканує, класифіковане як «можливо містить об'єкт», передається на наступний етап каскаду. Отже, чим більше етапів проходить дане вікно, що сканує, тим вище ймовірність того, що воно містить об'єкт. У результаті вважається, що тільки вікно, що пройшло через всі етапи каскаду, містить об'єкт, що шукається.

Відстеження об'єкта

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

У разі розташування об'єкта спочатку перебуває з допомогою алгоритму детектування, та був з допомогою алгоритму трекінгу відстежується переміщення об'єкта.

Створення каскаду класифікаторів

Таким чином, першим кроком необхідно сформувати базу зображень, за допомогою якої проводитиметься навчання каскаду. Було створено дві вибірки: позитивні зображення, що містять об'єкт інтересу та негативні зображення, що містять лише тло. Кількість зображень, що потрібна для навчання класифікатора залежить від багатьох факторів, включаючи якість зображень, об'єкт, що розпізнається, метод отримання вибірки та інші. Для детектора, який розглядається вцій статті було взято 200 позитивних та 550 негативних зображень.

Наступним кроком є ​​навчання каскаду за допомогою команди opencv_haartraining. В результаті було навчено кілька класифікаторів з такими різними параметрами (таблиця 1):

  • кількість етапів навчання,
  • MinHitRate – значення мінімального бажаного коефіцієнта успіху кожної стадії навчання класифікатора,
  • MaxFalseAlarm – значення максимального бажаного результату хибних виявлень кожної стадії.

Таблиця 1.

Порівняння параметрів навчання класифікаторів