Сравнение изображений с использованием 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