Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Адаптивний метод класифікації зображень облич

Скачати 230.19 Kb.

Адаптивний метод класифікації зображень облич




Скачати 230.19 Kb.
Дата конвертації28.05.2017
Розмір230.19 Kb.

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
ФАКУЛЬТЕТ ПРИКЛАДНОЇ МАТЕМАТИКИ
КАФЕДРА СИСТЕМНОГО ПРОГРАМУВАННЯ І СПЕЦІАЛІЗОВАНИХ КОМП’ЮТЕРНИХ СИСТЕМ


"На правах рукопису"

УДК 004.93'1



«До захисту допущено»

Завідувач кафедри

__________ В.П. Тарасенко

(підпис)
“___”_____________2015р.





Магістерська дисертація


на здобуття ступеня магістра
зі спеціальності 8.
Систе́мне програмува́ння (або програмування систем) - це вид програмування, який полягає у розробці програм, які взаємодіють з системним програмним забезпеченням (операційною системою), або апаратним забезпеченням комп'ютера.
05010203 “Спеціалізовані комп’ютерні системи”


на тему АДАПТИВНИЙ МЕТОД КЛАСИФІКАЦІЇ ЗОБРАЖЕНЬ ОБЛИЧ



Виконав: студент 6 курсу, групи КВ-33м

Томищ Тарас Вікторович



__________

(підпис)


Науковий керівник д.т.н., проф. Зайцев В.Г.

__________

(підпис)


Рецензент д.т.н., проф. Симоненко В.П.

__________

(підпис)


Засвідчую, що у цій магістерській дисертації немає запозичень з праць інших авторів без відповідних посилань.

Студент _____________

(підпис)
Київ – 2015

Національний технічний університет України

Київський політехнічний інститут”


Факультет прикладної математики

Кафедра системного програмування і спеціалізованих комп'ютерних систем

Рівень вищої освіти - другий (магістерський)

Напрям підготовки 6. 050102 ”Комп'ютерна інженерія”


Спеціальність 8.05010203 ”Спеціалізовані комп’ютерні системи”


ЗАТВЕРДЖУЮ

Завідувач кафедри

__________ В.П.Тарасенко





“___” ___________ 2013 р.

З А В Д А Н Н Я

НА МАГІСТЕРСЬКУ ДИСЕРТАЦІЮ СТУДЕНТУ

Томищу Тарасу Вікторовичу


1. Тема дисертації: АДАПТИВНИЙ МЕТОД КЛАСИФІКАЦІЇ ЗОБРАЖЕНЬ ОБЛИЧ,

науковий керівник дисертації: Зайцев В.Г., д.т.н., професор,

затверджені наказом по університету від 20 березня 2015 року № 785-с.


2. Термін подання студентом дисертації: “19” червня 2015 р.
3. Об’єкт дослідження: методи та алгоритми класифікації зображень облич.
4. Предмет дослідження: програмна реалізація розробленого адаптивного методу класифікації зображень облич.
5. Перелік завдань, які потрібно розробити:

  • провести аналіз існуючих методів класифікації зображень облич;

  • підготувати тестову базу даних зображень облич;

  • розробити адаптивний метод класифікації зображень облич;

  • розробити програмне забезпечення для розпізнавання облич з використанням розробленого класифікатора;
    Програ́мне забезпе́чення (програ́мні за́соби) (ПЗ; англ. software) - сукупність програм системи обробки інформації і програмних документів, необхідних для експлуатації цих програм.


  • провести аналіз отриманих результатів роботи методу.

6. Орієнтовний перелік ілюстративного матеріалу:



  • Структурна схема архітектури програмної системи;
    Програма (фр. programme письмове оголошення, порядок денний, від грец. prógramma вказівка) - заздалегідь затверджена (визначена) дія.


  • Схема взаємодії програмних модулів;
    Модуль - функціонально завершений фрагмент програми, оформлений у вигляді окремого файлу з сирцевим кодом або його іменованої частини (наприклад, Active Oberon), призначений для використання в інших програмах.


  • UML-діаграма класів сутностей програмної системи;

  • Схема алгоритму класифікації зображень облич;

  • Діаграма Вороного методу 1NN;

  • Порівняльна характеристика біометричних методів;

7. Орієнтовний перелік публікацій:



  • Адаптивний метод класифікації зображень облич;

  • Розпізнавання зображень облич з використанням контролеру Kinect;

8. Дата видачі завдання: “15” жовтня 2013 р.




КАЛЕНДАРНИЙ ПЛАН





з/п


Назва етапів виконання магістерської дисертації


Термін виконання етапів магістерської дисертації

Примітка


1.

Ґрунтовне ознайомлення з предметною галуззю

17.12.2013




2.

Визначення структури магістерської дисертації; вивчення літератури, пошук додаткової літератури, патентний пошук

05.03.2014




3.

Робота над першим розділом магістерської дисертації; проведення наукового дослідження

15.05.2014




4.

Проведення наукового дослідження; робота над другим

розділом магістерської дисертації; розроблення програмного забезпечення



15.10.2014




5.

Проведення наукового дослідження; робота над статтею за

результатами наукового дослідження



15.12.2014




6.

Проведення наукового дослідження; робота над третім

розділом магістерської дисертації; підготовка матеріалів

доповіді на конференції ПМК-2015


11.03.2015




7.

Завершення роботи над основною частиною

магістерської дисертації; підготовка ілюстративного матеріалу



15.05.2015




8.

Оформлення текстової і графічної частини магістерської дисертації

05.06.2015




Студент _________ Томищ Т.В.

Науковий керівник _____________ Зайцев В.Г.


  1. МЕТОДИ ВИДІЛЕННЯ ХАРАКТЕРНИХ ОЗНАК ОБЛИЧ

Отже, оскільки процес розпізнавання облич для ряду методів можна умовно поділити на етапи, розробка класифікатора є незалежною від конкретної реалізації і може опиратись на результати роботи будь-якої з них. Однак, варто враховувати, що кількість точок, отримана на етапі виділення характерних ознак, може відрізнятися в залежності від методу. Форма подання результатів також може бути різною, але зазвичай для одного зображення зводиться до масиву пар «ідентифікатор точки – координати на зображенні».

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

Веб-сервіс (англ. web service) - ідентифікована веб-адресою програмна система зі стандартизованими інтерфейсами. Веб-служби можуть взаємодіяти одна з одною та зі сторонніми додатками за допомогою повідомлень, заснованих на певних протоколах.

На сьогоднішній день найбільшого поширення набули наступні концепції реалізації веб-сервісів:


  • SOAP (Simple Object Access Protocol)

  • REST (Representational State Transfer)

Насправді, SOAP – це протокол, що походить від XML-RPC і є наступною сходинкою його розвитку. У той час як REST - це концепція, в основі якої лежить швидше архітектурний стиль, ніж нова технологія, заснований на теорії маніпуляції об'єктами CRUD (Create Read Update Delete) у контексті принципів WWW.
Архітектурний стиль - сукупність основних рис та ознак архітектури певного історичного часу і місця, яка проявляється у функціональних, конструктивних, мистецьких особливостях будов.

Щодо протистояння SOAP та REST, другий набирає популярності для розробки систем, де взаємодія з сервісом зводиться до основних операцій CRUD. Дійсно, якщо для будь-яких об'єктів сервісу не потрібні більш складні взаємини, крім: «Створити», «Прочитати», «Змінити», «Видалити», REST в порівнянні з SOAP, може виявитися більш продуктивним, адже не вимагає витрат на розбір складних XML команд на сервері (виконуються звичайні HTTP запити - PUT, GET, POST, DELETE). Хоча SOAP, у свою чергу, більш надійний і безпечний.

Основними обмеженнями REST-архітектури є наступні:


  1. технологія «клієнт-сервер» - клієнти відокремлені від сервера єдиним інтерфейсом. Це розділення відповідальності означає, наприклад, що клієнти не відповідають за сховище даних, що є внутрішнім для кожного сервера, тому переносимість коду клієнта покращується. Сервери не відповідають за користувацький інтерфейс або користувацький стан, тому сервери можуть бути простішими та більш масштабованими.
    Сховище даних (англ. data warehouse) - предметно орієнтований, інтегрований, незмінний набір даних, що підтримує хронологію і здатний бути комплексним джерелом достовірної інформації для оперативного аналізу та прийняття рішень.
    Інтерфе́йс користувача́ (англ. user interface, UI, дружній інтерфейс) - засіб зручної взаємодії користувача з інформаційною системою. Сукупність засобів для обробки та відображення інформації, максимально пристосованих для зручності користувача; у графічних системах інтерфейс користувача реалізовується багатовіконним режимом, змінами кольору, розміру, видимості (прозорість, напівпрозорість, невидимість) вікон, їхнім розташуванням, сортуванням елементів вікон, гнучкими налаштовуваннями як самих вікон, так і окремих їхніх елементів (файли, папки, ярлики, шрифти тощо), доступністю багатокористувацьких налаштувань.
    Сервери та клієнти можуть розроблятися і замінюватися незалежно, поки не зміниться інтерфейс;

  2. «без стану» - взаємодія клієнт-сервера обмежується відсутністю збереження контексту клієнта на сервері між запитами. Кожен запит від будь-якого клієнта містить всю інформацію, необхідну для його обслуговування, а будь-який стан сесії зберігається на стороні клієнта.
    Клієнт - апаратний або програмний компонент обчислювальної системи, який надсилає запити серверу.
    Сервер може бути зі станом; це обмеження вимагає, щоб стан на стороні сервера адресувався через URL як ресурс. Це не тільки робить сервери більш видимими для моніторингу, але і робить їх більш надійними в разі часткової відмови мережі, а також додатково покращує їх масштабованість;

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

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

  5. «код на вимогу» (опціонально) - сервери можуть тимчасово розширити або налаштувати функціональність клієнта, передаючи йому виконувану логіку. Прикладами цього можуть служити скомпільовані компоненти, такі як Java-аплети і клієнтські сценарії, такі як JavaScript;

  6. єдиний інтерфейс між клієнтами і серверами спрощує і розділяє архітектуру, дозволяючи кожній частині розвиватися самостійно.

2.1.1 Інтеграція з Animetrics FaceRTM API

FaceRTM API – інтерфейси розпізнавання облич, розроблені компанією Animetrics. Можливості системи дозволяють отримувати характерні точки обличчя на фотографії, ідентифікувати особу за обличчям, створювати галереї, тощо.

Рис. 2.1. Виділення значущих точок засобами FaceRTM API

Всі запити до API здійснюється через стандартні HTTP GET і HTTP POST запити. Результати надсилаються клієнту у вигляді JSON-об’єктів. Методи, що потребую картинку в якості параметру, можуть приймати бінарні файли або їх URL. Для коректної роботи в тілі запиту слід передавати унікальний API-ключ, що генерується для кожного клієнта автоматично.

Детальніше про функції:



  1. Detect – знаходить на зображенні одне або декілька облич (повертає межі прямокутників, що їх містять), інформацію про очі, що включає в себе їх центри та кутики або повну інформацію про характерні точки обличчя, що включає координати брів, очей, носу, підборіддя, губ, вух для кожного обличчя. Також для кожної особи, обличчя якої знайдено, встановлюється її стать. Вихідні дані можуть бути скореговані та надіслані в якості параметрів функції Detect Features. Початок координат – верхній лівий кут зображення.
    Вихідні́ відо́мості - відомості, що містять довідкову інформацію про друковане видання, ідентифікують і класифікують його. Залежно від характеру видання вони розташовані на обкладинці, палітурці, титульному аркуші, поєднаному титульному аркуші, першій сторінці, останній сторінці, кінцевий сторінці видання.
    Початок координат - точка, де осі системи координат перетинаються. Початок координат поділяє кожну вісь системи на дві половини: позитивну та від'ємну.
    Вихідний параметр image_id – ідентифікатор тимчасово збереженого на сервері зображення. Такі зображення видаляються через 5 год.

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

Приклад відповіді сервера:

{

"images": [



{

"time": 2.67475,

"status": "Complete",

"file": "http://example.com/some_image.jpg",

"width": 379,

"height": 270,

"image_id":"7245253dbd2a142ceb40e031cb173734",

"image_expiration":"2013-01-11 18:36 -0500",

"setpose_image": "http://api.animetrics.com/img/setpose/67640462509aeda5d23841.24750584.jpg",

"faces": [

{

"topLeftX": 273,



"topLeftY": 95,

"width": 45,

"height": 45,

"leftEyeCenterX": 283.877,

"leftEyeCenterY": 107.796,

"rightEyeCenterX": 302.113,

"rightEyeCenterY": 101.085,

"noseTipX": 289.074,

"noseTipY": 121.905,

"noseBtwEyesX": 289.048,

"noseBtwEyesY": 102.884,

"chinTipX": -1,

"chinTipY": -1,

"leftEyeCornerLeftX": 280.847,

"leftEyeCornerLeftY": 109.235,

"leftEyeCornerRightX": 288.466,

"leftEyeCornerRightY": 107.078,

"rightEyeCornerLeftX": 298.259,

"rightEyeCornerLeftY": 103.798,

"rightEyeCornerRightX": 305.458,

"rightEyeCornerRightY": 100.501,

"rightEarTragusX": -1,

"rightEarTragusY": -1,

"leftEarTragusX": -1,

"leftEarTragusY": -1,

"leftEyeBrowLeftX": 277.839,

"leftEyeBrowLeftY": 104.823,

"leftEyeBrowMiddleX": 280.527,

"leftEyeBrowMiddleY": 102.526,

"leftEyeBrowRightX": 286.043,

"leftEyeBrowRightY": 101.751,

"rightEyeBrowLeftX": 293.964,

"rightEyeBrowLeftY": 98.7854,

"rightEyeBrowMiddleX": 300.753,

"rightEyeBrowMiddleY": 96.2432,

"rightEyeBrowRightX": 308.567,

"rightEyeBrowRightY": 95.5753,

"nostrilLeftHoleBottomX": 291.582,

"nostrilLeftHoleBottomY": 125.159,

"nostrilRightHoleBottomX": 296.78,

"nostrilRightHoleBottomY": 123.535,

"nostrilLeftSideX": 289.109,

"nostrilLeftSideY": 122.86,

"nostrilRightSideX": 299.787,

"nostrilRightSideY": 119.506,

"lipCornerLeftX": 290.411,

"lipCornerLeftY": 134.952,

"lipLineMiddleX": 297.871,

"lipLineMiddleY": 135.062,

"lipCornerRightX": 306.817,

"lipCornerRightY": 131.389,

"pitch": 7.44029,

"yaw": 44.8204,

"roll": -17.9817

}

]

}



]

}


  1. Enroll – вираховує біометричні дані для знайомого обличчя на зображенні та додає його до галереї для подальшого пошуку. Ідентифікатори обличчя та галереї вказуються у вхідних параметрах. Обличчя можуть належати до декількох галерей, що досягається використанням методів Add To Gallery / Remove From Gallery. Додавання різних зображень однієї персони покращує якість розпізнавання, в той час як асоціація персони з чужою фотографією може вплинути на нього негативно.

  2. Recognize – порівнює невідоме обличчя з екземплярами в колекції галереї відомих осіб. Галереї будуються за допомогою функції Enroll. Відповідь включає в себе ступінь співпадіння вхідного зображення з кожним з колекції і оцінюється від 0 до 1.

  3. Verify – перевіряє, чи належить обличчя, подане на вхід, до того ж класу, що і вказане параметром subject_id_of_target.

  4. View Gallery – повертає список ідентифікаторів персон, зареєстрованих у вказаній галереї.

  5. View Subject – повертає список ідентифікаторів облич, асоційованих з вказаною персоною.

  6. Add To Gallery – додає вказану персону до галереї.

  7. Remove From Gallery – видаляє персону з галереї. Якщо в галереї більше не залишилось персон, галерея видаляється також. Якщо персона не належить більше до жодної галереї, персона видаляється.

  8. Delete Face – відміняє асоціацію певного зображення з вказаною персоною. Це може бути корисно, якщо виявиться, що асоціація була проведена помилково, а обличчя належить комусь іншому.

  9. Assign Face To Subject – асоціює вже оброблене зображення обличчя з певною персоною.

Оскільки в рамках даної роботи інтеграція з Animetrics Face Recognition API необхідна для визначення значущих точок обличчя, то з функціонального набору для досліджень використовуються лише методи Detect та/або Detect Features.

2.1.2 Інтеграція з Face

Face API - веб-орієнтований сервіс, що також надає послуги локалізації обличчя, визначення координат значущих точок, а також, на відміну від Animetrics Face Recognition API, деяких характеристик обличчя, зокрема, наявність окулярів, вік, расу та емоційний стан.

Для коректної роботи також потребує зареєстрований ключ. Спілкування з сервісом проводиться за допомогою HTTP GET запитів, які повертають результати у вигляді JSON-об’єктів.

Набір функцій обмежений в порівнянні з вищеописаним сервісом і включає всього дві:


  1. Face Detection – результатом роботи є координати прямокутника, що містить обличчя, координати центрів очей, носу, губ, а також характеристики обличчя в залежності від переданих атрибутів.

  2. Face Landmark – повертає набір значущих точок обличчя. На вхід приймає тільки ідентифікатор зображення.

Приклад відповіді сервера:

{

"result": [



{

"face_id": "1d1c3158b15dc2c9f12b6352d2616769",

"landmark": {

"contour_chin": {

"x": 50.783171,

"y": 52.809268

},…

… "right_eyebrow_lower_middle": {



"x": 57.85439,

"y": 27.24561

},
"right_eyebrow_lower_middle": {

"x": 57.85439,

"y": 27.24561

},


"right_eyebrow_upper_left_quarter": {

"x": 55.513659,

"y": 25.912683

},

"right_eyebrow_upper_middle": {



"x": 57.802439,

"y": 25.852683

},

"right_eyebrow_upper_right_quarter": {



"x": 60.540976,

"y": 26.067317

}

}

}



],

"session_id": "00281d9860844f0ab976ecbe51248f08"

}
2.2. Виділення набору характерних ознак засобами Kinect Face Tracking SDK

Kinect – безконтактний сенсорний ігровий контролер, розроблений компанією Microsoft. На сьогодні використовується в парі з гральною консоллю Xbox чи персональними комп’ютерами під управлінням ОС Windows.

Ігровий контролер - пристрій введення інформації, що використовується у відеоіграх. Зазвичай контролер під'єднується до гральної консолі або персонального комп'ютера.
Ігрова консо́ль (або Ігрова приста́вка) - це спеціалізований електронний пристрій, розроблений і створений для того, щоб грати у відеоігри. Найчастіше пристроєм виводу є телевізор або, рідше, комп'ютерний монітор.
Фізично являє собою горизонтально розташовану коробку на невеликій круглій підставці, яку розміщують вище або нижче екрана. Розміри — приблизно 23 см в довжину і 4 см у висоту.

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

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

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

Розглянемо основні складові частини Kinect:

IR Emitter – Інфрачервоний випромінювач. Його призначення – випромінювати інфрачервоні промені, які, відбиваючись від предметів,потрапляють назад у сенсор, де їх приймають:

IR Depth Sensor – Інфрачервоний приймач.

Інфрачерво́не випромі́нювання (від лат. infra - нижче, скорочено ІЧ) - оптичне випромінювання з довжиною хвилі більшою, ніж у видимого випромінювання, що відповідає довжині хвилі, більшій від приблизно 750 нм.
Збирає відбиті промені, перетворюючи їх у відстань від сенсора до об’єктів. Таким чином будується, можна сказати, матриця відстаней — цілий кадр. Максимальна роздільна здатність 640x480 (30 fps).

Color Sensor – Кольорова камера. Захоплення відео з максимальною роздільною здатністю 1280x960 (12fps). Кут нахилу камери: 43° по вертикалі і 57° по горизонталі. Можна обрати формат зображення: RGB або YUV.

Microphone Array – набір мікрофонів. 4 вбудованих мікрофони дозволяють визначити положення джерела звуку і напрямок звукових хвиль.

Ві́део (від лат. video - дивлюся, бачу) - під цим терміном розуміють широкий спектр технологій запису, обробки, передачі, зберігання й відтворення візуального і аудіовізуального матеріалу на моніторах.
Звук - коливальний рух частинок пружного середовища, що поширюється у вигляді хвиль у газі, рідині чи твердому тілі. У вузькому значенні терміном звук визначають коливання, які сприймаються органами чуття людини.
Вбудований обробник звукового сигналу містить фільтрацію шумів та зменшення відлуння.

Tilt Motor – Корекція нахилу. Дозволяє програмно налаштовувати нахил сенсора у діапазоні ±27° по вертикалі.


Рис. 2.2. Основні складові контролеру Kinect

Kinect SDK надає інструменти і програмні інтерфейси, які необхідні для розробки Kinect-додатків для Microsoft Windows.

Windows - узагальнююча назва операційних систем для ЕОМ, розроблених корпорацією Microsoft. Перші версії були не повноцінними операційними системами, а лише оболонками до ОС MS-DOS. На 2014 рік, за даними сайтів NetApplications та GoStats, Microsoft Windows встановлена більш як на 90% персональних комп'ютерів світу.
Розробка Kinect-додатків, по суті, не відрізняється від розробки інших додатків Windows, за винятком того, що Kinect SDK забезпечує підтримку особливостей ігрового контролеру, у тому числі кольорових зображень, даних про глибину, аудіо даних, каркасних даних і т.п.

Ось деякі додаткові можливості, які надає SDK:



  • визначення і відстеження переміщення людей за допомогою каркасного стеження;

  • визначення відстані між об'єктом і датчиком камери з використанням даних про глибину;

  • захоплення аудіо за допомогою фільтрації шуму або знаходження місця розташування джерела звуку;

  • голосове управління додатками за допомогою програмування граматики для використання із розпізнаванням мови.


Рис. 2.3. Діаграма взаємодії контролеру з програмою

За допомогою SDK, розробник має можливість отримати доступ до так званих «фреймів» - кадрів, отриманих з різних потоків і синхронізованих за допомогою події AllFramesReady.

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

Щодо використання відеопотоку, якість можна встановити в залежності від режиму роботи. Від рівня якості безпосередньо залежить кількість і швидкість переданих від сенсора даних, обмеженою, у свою чергу, пропускною здатністю USB 2.0. Так для картинки роздільною здатністю 1280x960 кількість кадрів в секунду становитиме 12, а для картинки роздільною здатністю 640x480 - 30. Формат зображення визначається колірною моделлю і може бути або RGB, або YUV.

Комбінації рівня якості та формату картинки представлені перерахуванням ColorImageFormat. Три з його значень визначають 32-бітове кодування кожного пікселя зображення: RgbResolution1280x960Fps12, RgbResolution640x480Fps30 і YuvResolution640x480Fps15, а четвертий - 16-бітове RawYuvResolution640x480Fps15.

Потік далекоміра формується з кадрів, в яких кожен піксель містить відстань (в міліметрах) від площини сенсора до найближчого об'єкта в певних координатах поля зору камери. Як і у випадку відеопотоку, для потоку даних далекоміра можна встановлювати формат одного кадру, яке визначається перерахуванням DepthImageFormat. При частоті кадрів 30 в секунду, розробник може вибирати роздільну здатність 80x60 (Resolution80x60Fps30), 320x240 (Resolution320x240Fps30) і 640x480 (Resolution640x480Fps30).

Поті́к да́них (англ. data stream) в телекомунікаціях і програмуванні - це послідовність кодованих когерентних сигналів (пакетів даних) в цифровій формі, яка використовується, щоб передавати або отримати інформацію це знаходиться в передачі.
Частота кадрів, або кадрова частота - це частота (швидкість), з якою пристрій формування зображення відображає послідовні зображення, що називаються кадрами. Термін застосовується до кіно- і відео- камер, комп'ютерної графіки, і систем захоплення руху.
Також слід зазначити, що існує два діапазони «робочих» відстаней: Default Range і Near Range, що визначаються перерахуванням DepthRange.

Значення відстані в кожному пікселі кодується тільки 13-ма бітами, а 3 біта покликані ідентифікувати людину. Якщо відстань до об'єкта виявляється виходять за робочий діапазон, в 13 бітах повернеться нуль або певна константа. Якщо при ініціалізації сенсора включити можливість трекінгу людської фігури, в 3 бітах буде повертатися порядковий номер (1 або 2) виявленого людини (якщо в даній точці знайдена персона, інакше повернеться 0).

А́томний но́мер (протонне число,зарядове число, порядковий номер, Z) - властивість атома (нукліда, атомного ядра), яка вказує на загальну кількість протонів, що містяться в його ядрі, отже одночасно вказує на його заряд в одиницях елементарного заряду, а також на порядкове місце хімічного елемента в періодичній системі хімічних елементів.

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


Рис.2.4. Відстеження людських фігур засобами Kinect SDK

Доступ до даних аудіопотоку теж може бути отриманий «з коробки». Кожен мікрофон контролеру встановлений так, щоб мати невелику спрямованість. Чи слід задіяти шумозаглушення залежить від розробника, тобто ці опції задаються на етапі ініціалізації аудіопотоку. Оптимальна відстань між мовцем і сенсором - 1-3 метри.

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

Розпізнава́ння мо́влення (англ. speech recognition) або мо́влення-у-те́кст (англ. speech to text (STT))- процес перетворення мовленнєвого сигналу в текстовий потік. Не варто плутати із визначенням розпізнавання мови, оскільки «розпізнати мову» безпосередньо означає лише дати відповідь на питання, до якої мови належить сегмент мовленнєвого сигналу.
Ініціалізація аудіопотоку займає трохи менше чотирьох секунд. Це необхідно враховувати, і, скажімо, після виклику методу сенсора Start, робити затримку в чотири секунди, перш ніж налаштовувати параметри аудіопотоку - KinectSensor.AudioSource.

Kinect Face Tracking SDK – програмна підсистема Kinect SDK, що базується на аналізі потоків даних, отриманих від сенсору. Пакет включає в себе останні технології виявлення облич науково-дослідних груп Microsoft. Даний набір реалізовує сучасні алгоритми для обробки зображень обличчя і інкапсулює модулі виявлення, вирівнювання та відстеження облич.

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

Вирівнювання. Даний модуль намагається знайти компоненти обличчя (очі, брови, рот, ніс, і т.д.) і повернути координати їх центрів чи контури.

В основі роботи модулю лежить алгоритм Active appearance model (AAM – активна модель зовнішності/активна видова модель). На вхід він приймає структуру даних, що містить RGBA-зображення та масив заданих глибин.

В програмуванні та комп'ютерних науках структу́ри да́них - це способи організації даних в комп'ютерах. Часто разом зі структурою даних пов'язується і специфічний перелік операцій, що можуть бути виконаними над даними, організованими в таку структуру.
В результаті обробки цих даних, на виході отримуємо колекцію 2D-кординат точок елементів обличчя. При зіставленні зображення обличчя та розпізнаних точок, використовується Candide-3 маска.

Повний набір точок, положення яких можуть бути знайдені засобами Face Tracking SDK, показаний на рис. 2.5.

Рис. 2.5. Значущі точки обличчя сутностей Face SDK



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

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

Центральне місце у роботі з обличчями займає клас FaceTracker. У його завдання входить ініціалізація обробника і стеження за переміщеннями людини в кадрі. Перевантажений метод Track дозволяє здійснювати пошук людини за даними з відеокамери і далекоміра. Одне з перевантажень методу приймає фігуру людини - Skeleton, що позитивно позначається на швидкості і якості пошуку. Клас FaceModel допомагає в побудові 3D моделей, а так само займається трансформацією моделей в систему координат камери.

Система координат - спосіб задання точок простору за допомогою чисел. Кількість чисел, необхідних для однозначного визначення будь-якої точки простору, визначає його вимірність. Обов'язковим елементом системи координат є початок координат - точка, від якої ведеться відлік відстаней.
У проекті Microsoft.Kinect.Toolkit.FaceTracking крім класів обгорток, можна знайти і більш прості, але не менш корисні типи. Наприклад, перерахування FeaturePoint описує всі вузли схеми особи.

У загальному вигляді алгоритм використання трекінгу може виглядати наступним чином:



  • вибрати сенсор і включити відеопотік (color stream), потік даних далекоміра (depth stream) і потік відстеження фігури (skeleton stream);

  • додати обробник події сенсора AllFramesReady, яке виникає, коли кадри всіх потоків готові до використання;

  • в обробнику події ініціалізувати FaceTracker (якщо це ще не зроблено) пройти по знайденим в кадрі фігурам і зібрати для них побудовані схеми осіб;

  • обробити схеми осіб (наприклад, показати побудовану 3D маску або визначити емоції персон в кадрі).

Якість визначення характерних точок залежить як від відстані до голови, так і від її положення (нахилів). Прийнятними нахилами голови для сенсора вважаються вгору-вниз ± 20°, вліво-вправо ± 45°, нахил на бік ± 45°. Оптимальними будуть ± 10°, ± 30° і ± 45° для нахилів вгору-вниз, вліво-вправо і набік відповідно.

Рис.2.6. Повороти голови в різних площинах




  1. РОЗРОБКА АДАПТИВНОГО МЕТОДУ КЛАСИФІКАЦІЇ ОБЛИЧ


3.1. Суть та аналіз недоліків базового методу класифікації облич

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

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

Метод k найближчих сусідів (k nearest neighbours), чи kNN-класифікація, визначає поділяючі межі локально. У варіанті 1NN кожна ознака відноситься до визначеного класу в залежності від інформації про його найближчого сусіда. У варіанті kNN кожна ознака відноситься до переважного класу найближчих сусідів, де k - параметр методу.

В основі методу kNN лежить факт, що відповідно до гіпотези компактності, ми очікуємо, що тестова ознака d буде мати таку ж мітку, як і навчальні ознаки в локальній області, що оточує ознаку d. Поділяючі межі в методі 1NN являють собою суміжні сегменти діаграми Вороного, показаної на рис. 3.1.

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

Рис. 3.1. Діаграма Вороного методу 1NN

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

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

Метод 1NN не дуже стійкий. Класифікація кожної текстової ознаки залежить від класу, до якого належить окрема навчальна ознака, що може мати невірну мітку чи взагалі бути нетиповим. Метод kNN при k > 1 є більш стійким. Він приписує ознаки до переважаючого класу за k найближчими сусідами.

Застосуємо метод до задачі класифікації зображень облич.

Класифіка́ція (фр. , англ. classification походить від лат. classis - клас і facio - роблю) - система розподілення об'єктів (процесів, явищ) за класами (групами тощо) відповідно до визначених ознак. Інколи вживають термін категоризація у значенні «розподілення об'єктів на категорії».
Для цього виділимо N значущих точок та їх комбінації, відстані між якими будуть враховуватись при класифікації (ознаки). При заданій точності  знаходимо всі зображення з навчальної вибірки, які задовольняють умову:



,

де  – відстань на i-тому зображенні класу c,



 – відстань на тестовому зображенні.

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

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

Однак базовий метод не вирішує проблеми емоційного стану обличчя, адже деякі значущі точки (наприклад ті, що визначають положення губ) можуть бути дуже «рухливими».

Емо́ції (від фр. emotion - «хвилювання», «збудження») - складний стан організму, що припускає тілесні зміни поширеного характеру - в диханні, пульсі, залозо-виділеннях тощо - і на ментальному рівні, стан збудження чи хвилювання, що позначається сильними почуттями, і зазвичай імпульсом щодо певної форми поведінки.
При експериментальному підборі ознак такі точки, як правило, відкидають, що приводить до втрати вагомих даних і може негативно вплинути на результат.


3.2. Адаптивний метод класифікації облич

Покращення базового методу полягає в усуненні його двох важливих недоліків: ручного вибору значущих точок/ознак і цілковите відкидання «рухомих» точок.

Для виділення значущих точок система інтегрована зі сторонніми сервісами та пакетом Kinect Face Tracking SDK. Даний вибір обумовлює використання наданого набору значущих точок, до якого входять: зіниці очей, лівий та правий кутики губ, середина лінії губ, ніс між очима, кінчик носу, центр підборіддя і т.д.

Представимо обличчя у вигляді повного графу з вершинами у кожній значущій точці.

Повний граф - простий граф, в якому кожна пара різних вершин суміжна, тобто існує ребро, що сполучає ці вершини. Повний граф зазвичай позначається Kn.
При цьому вагами ребер будуть відстані між кожною парою точок на 2D зображенні. Після формування навчальної бази, для неї необхідно дослідити, які ознаки справді являються значущими (інформативними), і є майже незмінними від зображення до зображення, а які можуть змінюватись і мають робити невеликий внесок в кінцевий результат (неінформативні).

Як показник інформативності ознаки або коефіцієнт вкладу в кінцевий результат запропоновано емпіричний критерій - величину, обернено-пропорційну до дисперсії для вибірки ознак одного типу кожного класу:

де  - відстань між двома певними значущими точками на зображеннях одного класу; математичне очікування.

Математи́чне сподіва́ння, середнє значення - одна з основних числових характеристик кожної випадкової величини. Воно є узагальненим поняттям середнього значення сукупності чисел на той випадок, коли елементи множини значень цієї сукупності мають різну "вагу", ціну, важливість, пріоритет, що є характерним для значень випадкової змінної.

Щоб підрахувати значення коефіцієнту, необхідно пройти процес навчання класифікатора на конкретній вибірці. Слід зазначити, що при додаванні або видаленні екземпляру з вибірки, навчання треба проходити з початку.

Розглянемо конкретний приклад на рис. 3.2. Відрізок, що з’єднує крайні точки обличчя, практично не змінився при появі на обличчі усмішки. В той час, як відстань між губами помітно зросла.


Рис. 3.2. Залежність відстаней між значущими точками від наявності емоцій

В такому випадку коефіцієнт інформативності ознаки, або ступінь довіри до неї буде високим в першому випадку і, навпаки, низьким у другому.

Рішення щодо віднесення ознаки до певного класу проводиться зваженим способом на основі величини оцінки близькості:



де  - відстань між двома значущими точками (ознака j) на i-тому зображенні класу c;  – відстань між двома значущими точками (ознака j) на тестовому зображенні.

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

Сумарний вклад ознаки обчислюється за формулою:





Остаточно екземпляр відноситься до класу, у якого значення  найвище.


Скачати 230.19 Kb.

  • Магістерська дисертація
  • Спеціальність 8.05010203 ”Спеціалізовані комп’ютерні системи”
  • З А В Д А Н Н Я
  • КАЛЕНДАРНИЙ ПЛАН
  • Примітка