Розпізнавання обличь: від теорії до практики
{{{img}}} | ||
Імя | Володимир | |
Прізвище | Стойко | |
По-батькові | Ігорович | |
Факультет | ФІС | |
Група | СНм-51 | |
Залікова книжка | СНм-11-250 |
Презентація доповіді на тему Розпізнавання обличчя: від теорії до практики є розміщеною в Репозиторії. |
Розпізнавання обличь – один з підрозділів більш широкої категорії розпізнавання образів. Власне, методи та алгоритми розпізнавання практично дуже схожі, за відмінністю функції розпізнавання, а точніше – її параметрів.
Зміст
Використання алгоритмів розпізнавання обличь
Основними задачами, в яких використовується розпізнавання обличь є:
- Охоронні системи
- Криміналістика
- Комп'ютерна графіка
Із підвищенням обчислювальних потужностей та вдосконаленням алгоритмів розпізнавання список задач, які вони вирішують значно зріс:
- Взаємодія комп'ютер-людина;
- Віртуальна реальність, комп'ютерні ігри;
- Доступ до інформаційних баз;
- Контроль над імміграцією;
- Персоналізація побутових пристроїв;
- Шифрування даних;
- Електронна комерція;
- Соціальні сервіси.
Яскравим прикладом останнього пункту є інтеграція алгоритмів автоматичного розпізнавання обличь на фотографіях в популярних соціальних сервісах Yandex Фотки та Google Picassa.
Особливості розпізнавання обличь
Специфіка задачі
При вирішенні задачі розпізнавання осіб виникають дві проблеми. По-перше, будь-яка картинка являє собою масив пікселів. Водночас один піксель картинки нічого не означає (його колір можна змінити, і ніхто не помітить різниці). Це робить таке подання картинок надлишковим і неекономічним. Таким чином, для ефективного розпізнавання осіб необхідно розробити певний компактний та зручний формат подання картинок. На сьогоднішній день відомо безліч способів стиснення зображень з втратами, але використовуваний в ньому формат не зручний для класифікації фотографій людей, хоча б, тому що для вирішення задачі розпізнавання осіб потрібно, знову-таки, набагато менше інформації. Це пов'язано в першу чергу з тим, що немає необхідності визначати,як виглядає ця людина з колекції, а потрібно вирішити зворотну задачу: який чоловік з колекції виглядає даними чином. Друга проблема полягає в тому, що одна і те ж особа може бути сфотографовано при різних зовнішніх факторах, таких як світло, поза, емоції.
Абстрактна постановка задачі
Для прикладу можна вважати, що всі фотографії мають розмір 100 * 100 пікселів з 256 відтінками сірого. Можна придумати багато варіантів постановки задачі розпізнавання осіб. Один з таких варіантів представлений нижче. Припустимо, що є деяка тренувальна колекція, що складається з 400 фотографій (по 10 фотографій для 40 людей за різних умов). Тоді задачу розпізнавання осіб можна сформулювати наступним чином. Є деяке нове зображення в обумовленому вище форматі. Необхідно видати одну з наступних відповідей:
- Зображення не є обличчям
- Зображення є обличчям такої-то людини з колекції
- Зображення є обличчям, але його немає в колекції. В цьому випадку його можна додати до колекції
Загальні етапи алгоритмів розпізнавання обличь
На першому етапі алгоритм виділяє із загального зображення обличчя. потім відбувається нормалізація зображення. До нормалізації зображення відносяться наступні дії:
- Зміна дозволу зображення до 100 * 100 пікселів
- Перетворення кольорів до 256 відтінків сірого
- Зміна сумарної яскравості зображення до деякого середнього значення
Для деяких алгоритмів потрібно, щоб обличчя на зображенні розташовувалося як можна більш вертикально. В такому випадку поворот обличчя на потрібний кут відбувається саме при нормалізації. Наступним етапом алгоритму розпізнавання є виділення характеристик наявного обличчя. Виділені характеристики сильно залежать від алгоритму розпізнавання, тому їх приклади будуть наведені пізніше. Зауважимо, що після виділення характеристик картинка більше не потрібна. Останнім етапом розпізнавання є застосування класифікатора, який за наявними характеристиками видає відповідь на завдання.
Методологія розпізнавання обличь
Теорія тематики розпізнавання обличь досить складна, адже базується на поєднанні великих об’ємів математичних понять, формул, залежностей. Тому реалізацією методів розпізнавання обличь займаються багато як наукових груп, так і компанії з розробки комерційного програмного забезпечення. Основні методи розпізнавання обличь:
- геометричний метод;
- головних компонент;
- фільтрів Габора;
- нейромережеві методи (згортка нейромережі);
- Віоли-Джонса;
- прихованої марковської моделі;
- дискретного вейвелт-перетворення.
Кожен з них виражається певною функцією розпізнавання F(A), де A – множина параметрів, за якими здійснюється розпізнавання Один з найстаріших методів розпізнавання облич, парктичне застосування якого започаткували криміналісти – геометричний метод.
Метод прихованої моделі Маркова
Прихована марківська модель — статистична модель, що імітує роботу процесу, схожого на марківський процес з невідомими параметрами. На основі моделі ставиться задача знаходження невідомих параметірв на основі параметрів, за якими ведеться спостереження. Отримані параметри можуть бути використані в подальшому аналізі для розпізнавання обличь. З точки зору розпізнавання – зображення це двомірний дискретний сигнал. Важливу роль в побудові моделі зображення грає вектор спостереження, тобто обхід зображення. Для того, щоб уникнути розбіжностей в описах, зазвичай використовують прямокутне вікно для розпізнавання. Щоб не втрачати області даних, прямокутні вікна мають перекривати одне інше. Значення для перекривання, як і області розпізнавання підбираються експериментально. Після зняття блоку виконують його перетворення в цифровий блок за одним з двох методів.
- Карунена-Лоева (KLT);
- дискретне косинус не перетворення (DCT).
KLT в базовому вигляді дає не надто хороші результати, хоча модифікації методів, якіі вимагають значних затрат обчислювальних ресурсів, цього недоліку позбавлені. Натомість DCT простіший і більш стійкий до шумів, трансформації, спотворень. Після отримання блоку пік селів його переводять у вектор F , який містить лише значимі елементи. Значимі – це якась кількість перших коефіцієнтів DCT. Після цього тримані вектори розподіляють по станах моделі. Стани моделі представляють певні класи об’єктів . В загальному це 5 суперстанів, що відповідають областям обличчя – лобова частина, очі, ніс, рот, підборідок. Перехід в наступний стан відбувається після попереднього, в наступний суперстан – після завершення попереднього. Вважається, що обличчя зберігаються в базі даних на рівзних рівнях абстракції. На найнижчому рівні – це набір пікселів. Цей рівень – просто для відштовхування, адже його використання в обчислення вимагає дуже великих обчислювальних ресурсів. Саме тут вводиться поняття сигнатури – числового дескриптора, який описує візуальні характеристики певної області. Користь використання сигнатур зрозуміла, вони вимагають набагато менших затрат на оновлення конфігурацій обчислювальної техніки. Пошук здійснюється саме на основі порівнянь наборів сигнатур. Пошук ведеться поки міра схожості наборів сигнатур не буде відповідати заданим вимогам точності. Практично, тобто програмно реалізація здійснюється на основі трикутного дерева - Really Fixed Query Tree – структура для пошуку співпадінь в залежності від критеріїв пошуку. Компоненти цього дерева – міра відстані, набір ключови зображень і набір елементів бази даних. Ребра від кореня до листя визначають індекс листя, листя дерева в своє чергу містять елементи бази даних. Шлях від кореня до листя – це відстань від елемента бази даних до кожного з ключів.
Основна проблема методів на основі моделі Маркова – це робота, власне, з моделями, тобто алгоритм визначає яка з моделей краще підходить для характеристики цього озображення. Фактично, цей алгоритм зручно виукористовувати на перших етапах розпізнавання.
OpenCV
Найбільш популярна на сьогодні реалізації великої кількості алгоритмів розпізнавання образів - бібліотека OpenCV. OpenCV (англ. Open Source Computer Vision Library, бібліотека комп'ютерного зору з відкритим вихідним кодом) — бібліотека алгоритмів комп'ютерного зору, обробки зображень і чисельних алгоритмів загального призначення з відкритим кодом. Реалізована на C/C++, також розробляється для Python, Ruby, Matlab, Lua та інших мов. Може вільно використовуватися в академічних та комерційних цілях — розповсюджується за умовами ліцензії BSD.
Список літературних джерел
- Лифшиц Ю. Методы распознавания лиц./ 2005р.
- S. Z. Li , Anil K. Jain Handbook of face recognition - Springer Science & Business, 15 бер. 2005 - 395 стор.