Сравнение на изображения с помощта на SURF

Проблем:

Имам база данни с изображения на „лица“ на множество хора, в която за всеки човек имам множество изображения (всяко има нещо различно в него по отношение на изражението на лицето като усмихнато, мислещо, просто и т.н.).

Докато тествам, разполагам с тестов набор от данни за „изображение на усмихнато лице“ на хора, за които изображението вече съществува в базата данни, но изображенията в базата данни и наборът от тестови данни не са съвсем еднакви (т.е. две изображения на едно и също лице, усмихнато по различно време, от което едно е в базата данни, а другото е в набор от тестови данни).

Сега проблемът е, че моето приложение разпознава човека правилно, но в изражението на лицето не съвпада напр.: на мястото на „усмихнато лице“ понякога дава „обикновено лице“.

PS: Ефективността по отношение на намирането на точния човек е 100%, но несъответствието на изражението на лицето е проблем.

Алго, което използвам:

  1. Нормализиране и подобряване на изображението
  2. Откриване и съпоставяне на SURF функции

Може ли някой да предложи какво може да се е объркало или какъв може да бъде по-добър алгоритъм/подход за решаване на този проблем?

Има ли по-добър алгоритъм от SURF за сравняване на две изображения??


person techbull    schedule 05.10.2013    source източник


Отговори (1)


Бих използвал други алгоритми за разпознаване на лица, например: LBP + svm.

Можете да използвате face-rec.org, за да прочетете за алгоритмите за разпознаване на лица, или страницата с резултати на страницата „маркирано лице в дивата природа“: http://vis-www.cs.umass.edu/lfw/results.html

Ако използвате OpenCV, можете да разгледате модула на OpenCV за разпознаване на лица http://docs.opencv.org/trunk/modules/contrib/doc/facerec/

person GilLevi    schedule 05.10.2013
comment
Да, използвам opencv. - person techbull; 10.10.2013