- •Дослідження основних проблем предметної області
- •Роль інформаційних технологій у предметній області
- •Загальний опис проблем предметної області.
- •Актуальність даної теми.
- •Аналіз існуючих аналогів
- •Метод Віоли-Джонса
- •Метод surf
- •Метод sift
- •Метод orc
- •Порівняльна характеристика
- •Мета кваліфікаційної роботи
- •Постановка задачі
- •Об’єкт та методи дослідження
- •Програмна підтимка дослідження
- •Інформаційна модель системи
- •Детальний опис реалізації основних процедур та функцій додатку з прикладами.
- •Рекомендації по впровадженню та використанню
- •Порівняльний аналіз методів
- •Оцінка складності алгоритму контурного аналізу
- •Аналіз продуктивності методів
- •Рекомендаціі до використання методів
- •Охорона праці
- •Економічна частина диплому
- •Цивільний захист
- •Наукова новизна та практичне значення одержаних результатів
- •Перелік використаних джерел
- •Додаток a
- •Додаток b
Актуальність даної теми.
В рамках цієї роботи розробляється метод і алгоритми автоматизованого розпізнавання образів на базі алгоритмів контурного аналізу. Досліджуються у окремому завданні: розпізнавання Герба України. Методи що розробляються носять загальний характер і можуть застосовуватися для розпізнавання широкого кола об'єктів на базі шаблонів - контурів. У методі застосовується еквалізація що дозволяє відкоригувати зображення. Застосовуються фільтри для усунення паразитних шумів. Також в даній роботі використовуються методи Віоли і Джонса, які дозволяють навчити нейронну мережу і отримати на виході каскад Хаара, завдяки якому можна розпізнавати той же об'єкт (Герб України). І це дозволить провести порівняльний аналіз отриманих результатів від розробленого методу і від навченого каскаду, який використовує зовсім інші методи виявлення об'єктів. Після закінчення дослідження, будуть запропоновані рекомендації для використання того чи іншого методу, в таких чи інших завданнях. Так як в Україні поки що не ведуться такого роду розробки, на відміну від західних країн, в яких комп'ютерний зір поступово знаходить своє застосування, і дозволяє зекономити на виробництві значні суми грошей. Даною роботою можуть зацікавитися наші державні військові служби або комерційні підприємства, з метою автоматизації процесів та зниженні витрат на виробництві, шляхом впровадження систем комп'ютерного зору і базуючись на дослідження даної роботи, знизити ризик вибору непідходящого методу детектування об'єктів.
Аналіз існуючих аналогів
Метод Віоли-Джонса
Метод П.Віоли і М.Джонса, був опублікований в 2001. Цей підхід до детектування об'єктів на зображенні комбінує чотири ключові концепції:
Прості прямокутні функції, які називаються функціями Хаара.
Інтегральне зображення для швидкого виявлення функції.
Метод машинного навчання AdaBoost.
Каскадний класифікатор для ефективного поєднання множинних функцій.
Особливості, які використовували Віола і Джонс, базуються на вейвлетах Хаара. Вейвлети Хаара представляють собою прямокутні хвилі однакової довжини (один високий інтервал і один низький інтервал). У двох вимірах, прямокутна хвиля являє собою пару сусідніх прямокутників - один світлий і один темний [23-30].
Рисунок 2.1.1 – Приклад функцій Хаара
Фактично прямокутні комбінації, що використовуються для візуального виявлення об'єкта не є справжніми вейвлетами Хаара. Замість цього, вони містять прямокутні комбінації, які краще підходять для візуальних завдань розпізнавання. Через цю різницю, ці функції називаються функціями Хаара (або Хаар-подібними функціями), а не вейвлетами. Рисунок 2.1.1 показує ті функції, що використовуються в OpenCV.
Наявність функції Хаара визначається за допомогою вирахування середнього значення області темних пікселів із середнього значення області світлих пікселів. Якщо різниця перевищує поріг (визначається в процесі навчання), тоді кажуть, що функція є існуючою.
Щоб ефективно визначити наявність і відсутність сотень функцій Хаара на кожній локації зображенні і в декількох масштабах, Віола і Джонс використовували технологію Інтегрального Зображення. Загалом, «інтеграція» означає складання маленьких блоків разом. В цьому випадку, маленькі блоки є піксельними значеннями. Інтегральне значення для кожного пікселя є сума всіх пікселів над ним і ліворуч від нього. Починаючи з лівого верхнього кута і здійснюючи обхід вправо і вниз, все зображення може бути інтегровано з кількома цілочисельними операціями на піксель.
Рисунок 2.1.2 – Трюк Интегрального Изображения.
Як показано на Рисунок 2.1.2.a, після інтеграції, значення в кожнго пікселя (х, у) містить суму всіх піксельних значень всередині прямокутної області, яка має один кут у лівій верхній частині зображення і інший в положенні (х, у). Щоб знайти середнє піксельне значення в цьому прямокутнику, необхідно тільки розділити значення в (х, у) на площу прямокутника. Але що якщо цікавлять підсумовані значення для деяких інших прямокутників, які не мають жодного кутка в лівій верхній частині зображення, Рисунок 2.1.2.b ілюструє вирішення цієї проблеми. Припустимо, потрібно дізнатися підсумовані значення в D = (x4, y4) - (x2, y2) - (x3, y3) + (x1, y1) [28-34].
Для вибору конкретних функцій Хаара і встановлення граничних рівнів, Віола і Джонс використовують метод машинного навчання під назвою AdaBoost. AdaBoost комбінує багато «слабких» класифікаторів з метою створення одного «сильного» класифікатора. «Слабкий» тут означає такий класифікатор, який отримує правильну відповідь ненабагато частіше, ніж випадкове вгадування. Це не є добре. Але якщо у вас є безліч таких слабких класифікаторів, і кожен з них «висунув» остаточну відповідь трохи у вірному напрямку, ви можете отримати серйозну, комбіновану силу для досягнення коректного рішення. AdaBoost вибирає набір слабких класифікаторів для об'єднання і привласнює кожному з них свою вагу. Ця зважена комбінація і є сильним класифікатором. Віола і Джонс об'єднали серії класифікаторів AdaBoost як послідовність фільтрів, показаних на Рисунку 2.1.3, що особливо ефективно для класифікації областей зображення. Кожен фільтр є окремим класифікатором AdaBoost з досить невеликим числом слабких класифікаторів [28-34].
Рисунок 2.1.3 – Каскад фільтрів Хаара
Прийнятий поріг на кожному рівні встановлюється досить низьким, щоб пройти всі (або майже всі) особові зразки в тренувальному наборі. Фільтри на кожному рівні навчені класифікувати тренувальні зображення, які пройшли всі попередні етапи (навчальна вибірка являє собою велику базу осіб, може бути, близько тисячі або близько до цього). Під час роботи, якщо якийсь будь-який з цих фільтрів не пропускає область зображення, то тоді область відразу ж класифікується як «Об’єкт відсутній». Коли фільтр пропускає область зображення, вона переходить до наступного фільтру в послідовності. Область зображення, що пройшли через всі фільтри, класифікуються як «Об’єкт виявлено». Віола і Джонс називали це фільтрацією ланцюга каскаду.
Порядок фільтрів в каскаді грунтується на ваговому значенні, які присвоює AdaBoost. Більш важкі зважені фільтри йдуть в першу чергу, з метою якомога більш швидкого усунення областей що не містять цільового об’єкта. Рисунок 2.1.4 показує перші дві функції Хаара, що накладені на обличчя. Перший налаштовує дальню область щік більш «світлою», ніж область очей. Другий використовує факт того, що носова перегородка більше світла, ніж очі.
Рисунок 2.1.4 – Накладання функцій Хаара на зображення
