Модул за анализ на лице Intel Perceptual Computing SDK

Метод на главния компонент

Анализът на главните компоненти (PCA) е един от най-често срещаните методи за намаляване на размерите на данните, като се губи най-малко количество информация. Методът ви позволява да подчертаете характерните черти на лицето и да ги използвате за реконструкция и реставрация. Този метод се основава на трансформацията на Karunen - Loeve.

Основната идея на този метод е да представи изображения на лицата на хората под формата на набор от основни компоненти на изображения, наречени „собствени лица“ (Eigenfaces). Полезно свойство на собствените лица е, че изображението, съответстващо на всеки такъв компонент, има лицеподобна форма, както е показано на фиг. 8.3. Изчисляването на основните компоненти се основава на изчислението на собствените вектори и собствените стойности на ковариационната матрица, което се изчислява от изображението. Сумата от основните компоненти, умножена по съответните собствени вектори, е възстановяването на изображението.

За всяко изображение на лицето се изчисляват основните му компоненти. Обикновено се вземат от 5 до 200 основни компонента. Останалите компоненти кодират фини разлики между лица и шумове. Процесът на разпознаване се състои в сравняване на основните компоненти на неизвестно изображение с компонентите на всички известни изображения. Предполага се, че изображенията на лица, съответстващи на един човек, са групирани в клъстери в собственото им пространство. Кандидат-изображенията се избират от базата данни, които имат най-малкото разстояние от входното (неизвестно) изображение [[4], [10], [12]].

Разграничава се и антропометричен метод, чиято същност е да изберете набор от ключови точки (или области) на лицето и след това да изберете набор от функции. Всяка характеристика е или разстоянието между ключовите точки, или съотношението на такива разстояния. В допълнение към количествените признаци има и качествени признаци, които по-пълно описват обекта на вземане на решение: пол, тип, физика, височина. На свой ред всяка функция може да приеме една от няколко възможни стойности. За да се представят количествените характеристики в двоична форма, е необходимо, въз основа на статистически данни, да се раздели диапазонът от допустими стойности на характеристиката на интервали. По този начин всеки човек, изобразен на фотографски портрет, може да бъде описан чрез набор от функции под формата на последователност от нули и единици, част от знанието.

Основният принцип на работа на програмите за проследяване и разпознаване на лица работи по следния начин. На първата стъпка изображението се анализира, след което се търсят лица. След това има обработка, насочена към подчертаване на индивидуалните характеристики на всяко открито човешко лице. Въз основа на избраните индивидуални характеристики се съставя цифров шаблон. Индивидуални характеристики в този случай са разстоянието между очите, дълбочината на тяхното кацане, формата на скулите, носа и челюстта. Всичко това се преобразува в цифров код, който е нещо като "цифров актьорски състав на лицето", който се използва за по-нататъшно сравнение, например, с издирвани престъпници. В повечето случаи е почти невъзможно да се възстанови обратното изображение. Този подход е в основата на биометрията [[5]].

SDK за изграждане на приложения за проследяване и разпознаване на лица

Понастоящем има голям брой библиотеки за разработчици, които включват модули за проследяване и разпознаване на лица. Следните библиотеки представляват особен интерес:

  • Intel Perceptual Computing SDK - включва набор от алгоритми за анализ на човешко лице, включително определяне на местоположението на лицето, неговата ориентация в пространството, подчертаване на контролни точки и разпознаване на лица в базата данни;
  • Kinect за Windows SDK - включва библиотека за проследяване на лица, която ви позволява да проследявате лицето на човек в рамка с изграждането на диаграма на лицето с 87 възли, не поддържа разпознаване на лица;
  • OpenCV - Тази библиотека включва модула opencv_objdetec, който ви позволява да откривате обекти в изображението, включително намиране на лица и откриване на хора;
  • IIT Face Recognizer SDK е алгоритмично-софтуерен комплекс, който решава проблемите на проверката и идентификацията на потребителя въз основа на сравнителен анализ на представеното лице. Процедурата за проверка включва сравняване на представеното лице с избраното лице, съхранявано в текущата база данни. Процедурата за идентификация предвижда проверка на принадлежността на представеното лице към цялата база данни с лица или към предварително уговорена част от нея. Предложеното решение се е доказало добре в системи за личен достъп, системи за игри, системи за достъп до данни и редица други приложения [[3]].

Intel Perceptual Computing SDK Facial Analysis Engine Възможности

Модулът за анализ на лице 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.