НОУ ІНТУІТ, Лекція, Модуль аналізу міміки обличчя Intel Perceptual Computing SDK
Метод основних компонент
Метод головних компонент ( Principal Component Analysis , PCA) – одне із найпоширеніших методів зменшення розмірності даних, втрати найменшої кількості інформації. Метод дозволяє виділяти характерні ознаки особи та використовувати їх для реконструкції та відновлення. Цей метод заснований на перетворенні Карунена - Лоева.
Головна ідея цього методу полягає у поданні зображень осіб людей як набору головних компонент зображень, званих " власні особи " (Eigenfaces). Корисною властивістю власних осіб є те, що зображення, що відповідає кожному такому компоненту, має лицеподібну форму, як представлено на рис. 8.3. Обчислення основних компонентів ґрунтується на обчисленні власних векторів та власних значень коваріаційної матриці, яка розраховується із зображення. Сума головних компонентів, помножених на відповідні власні вектори, є реконструкцією зображення.
До кожного зображення обличчя обчислюються його основні компоненти. Зазвичай береться від 5 до 200 основних компонентів. Інші компоненти кодують дрібні відмінності між особами та шумами. Процес розпізнавання полягає у порівнянні головних компонентів невідомого зображення з компонентами всіх відомих зображень. При цьому передбачається, що зображення осіб, які відповідають одній людині, згруповані кластери у власному просторі. З бази даних вибираються зображення кандидати, що мають найменшу відстань від вхідного (невідомого) зображення [[4], [10], [12]].
Так само виділяють антропометричний метод, суть якого полягає у виділенні набору ключових точок (або областей) обличчя та надалівиділення набору ознак. Кожна ознака є або відстанню між ключовими точками, або відношенням таких відстаней. Крім кількісних ознак існують якісні ознаки, які повніше описують об'єкт прийняття рішень: стать, тип, статура, зростання. У свою чергу кожна ознака може набувати одного з кількох можливих значень. Для того, щоб представити кількісні ознаки в бінарному вигляді, необхідно, ґрунтуючись на статистичні дані, розбити діапазон допустимих значень ознаки на інтервали. Таким чином, кожна особа, зображена на фотопортреті, може бути описана масивом ознак у вигляді послідовності нулів та одиниць, порцією знань.
Основний принцип роботи програм з відстеження та розпізнавання осіб працюють наступним чином. На першому етапі аналізується зображення, після чого здійснюється пошук осіб. Потім йде обробка, спрямовану виділення індивідуальних особливостей кожного виявленого людського обличчя. На основі відібраних індивідуальних характеристик складається цифровий шаблон. Індивідуальними характеристиками у разі є відстань між очима, глибина їх посадки, форми вилиць, носа, щелепи. Усе це перетворюється на цифровий код, який є щось подібне "цифровому зліпку особи", яким надалі виробляється порівняння, наприклад з розшукуваними злочинцями. Найчастіше відновити зворотне зображення практично неможливо. Цей підхід є основою біометрії [[5]].
SDK для створення програм з відстеження та розпізнавання осіб
В даний час існує велика кількість бібліотек для розробників, які включають модулі з відстеження та розпізнавання осіб. Особливою увагою мають такібібліотеки:
- Intel Perceptual Computing SDK – включає набір алгоритмів для аналізу людської особи, що включають визначення розташування обличчя, його орієнтації в просторі, виділення контрольних точок, і розпізнавання особи в базі даних;
- Kinect for Windows SDK – включає бібліотеку Face Tracking, яка дозволяє відстежувати обличчя людини в кадрі з побудовою 87-ми вузлової схеми обличчя, не підтримує розпізнавання осіб;
- OpenCV – ця бібліотека включає модуль opencv_objdetec , який дозволяє виявляти об'єкти на зображенні, включаючи перебування осіб і виявлення людей;
- IIT Face Recognizer SDK - являє собою алгоритмічно-програмний комплекс, що вирішує завдання верифікації та ідентифікації користувача на основі порівняльного аналізу особи, що пред'являється. Процедура верифікації передбачає порівняння пред'явленої особи з обраною особою, яка зберігається в поточній базі даних. Процедура ідентифікації передбачає перевірку приналежності особи, що пред'являється, до всієї бази даних осіб або заздалегідь обумовленої її частини. Пропоноване рішення добре зарекомендувало себе в системах персонального доступу, ігрових системах, системах доступу до даних та інших додатків [[3]].
Можливості модуля аналізу особи Intel Perceptual Computing SDK
Модуль аналізу особи Intel Perceptual Computing SDK надає набір алгоритмів, які дозволяють визначати розташування особи, її орієнтації в просторі, виділення контрольних точок, і розпізнавання особи в базі даних [[6], [7]].
Модуль розпізнавання особи може проасоціювати цю особу з ім'ям, якщо людина раніше зареєстрована у базі даних імен.

Загальний алгоритм створення програм з відстеженняособи
Додаток використовує таку процедуру для створення екземпляра модуля аналізу особи та надання з неї даних:
1) Розташування модуля реалізації:
Програма використовує функцію PXCSession::CreateImpl для створення екземпляра інтерфейсу PXCFaceAnalysis, як показано в прикладі 8.1.
2) Ініціалізація модуля:
Для ініціалізації модуля використовуються дві функції QueryProfile та SetProfile. Перша функція повертає доступні конфігурації. Остання містить одну конфігурацію як поточну активну конфігурацію. У прикладі 8.2, додаток запитує першу конфігурацію, що підтримується, використовує її, щоб знайти пристрій введення, який може надати дані, а потім ініціалізує модуль з конфігурацією. Слід зазначити, що вимоги вхідного модуля задаються як частина структури ProfileInfo, яка може бути як глибинним зображенням, так і кольоровим зображенням. Службовий клас UtilCapture виявить пристрій введення, який відповідає вхідним характеристикам модуля.
3) Ініціалізація елементів аналізу особи:
Додатково до ініціалізації модуля додатку необхідно ініціалізувати кожен елемент аналізу особи, такої як відстеження особи та її контрольних точок. Кожен елемент має власні параметри конфігурації. Додаток викликає функції QueryProfile і SetProfile для інтерфейсу кожного елемента, наприклад PXCFaceAnalysis::Detection , P XCFaceAnalysis::Landmark , як показано в прикладі 8.3.
4) Цикл обробки даних:
У циклі програма передає дані від пристрою введення модулю аналізу особи. Для передачі даних програма викликає функцію ProcessImageAsync, як показано у прикладі 8.4. Слід зазначити, що дані з пристрою введеннямістити комбіновані зображення, такі як кольорові та глибинні зображення. Програма може використовувати набір функцій PXCSmartArray
для спрощення програмування.
Якщо програму необхідно переключитися на інший контекст , програма викликає функцію ProcessImageAsync із вказівником NULL для скидання ідентифікованих станів збережених у модулі.
Для простого відстеження обличчя та визначення контрольних точок з вхідних даних камери або записаного файлу програма може використовувати конвеєрний утилітний клас UtilPipeline або вбудовану версію процедури, наведеної вище, що показано в прикладі 8.5.