Какие классификаторы использовать для принятия решения, изображают ли два набора данных одного и того же человека? - PullRequest
3 голосов
/ 15 июля 2011

Предположим, у меня есть фотографии лиц множества людей.Вопрос, на который я пытаюсь ответить: «эти две картинки представляют одного и того же человека»?

Как обычно, у меня есть тренировочный набор, содержащий несколько картинок для нескольких людей.Люди и картинки, которые алгоритм должен будет обработать, конечно же, не находятся в обучающем наборе.

Мой вопрос не об алгоритмах обработки изображений или конкретных функциях, которые я должен использовать, а о проблеме классификации. Я не понимаю, как традиционные алгоритмы классификатора, такие как SVM или Adaboost, могут быть использованы в этом контексте.Как я должен их использовать?Должен ли я использовать другие классификаторы?Какие из них?

Примечание: мое настоящее приложение - это не лица (я не хочу его раскрывать), но оно достаточно близко.

Примечание: набор данных для обучения неогромные, в лучшем случае тысячи.Каждый набор данных довольно большой (несколько мегабайт), даже если он не содержит много реальной информации.

Ответы [ 3 ]

2 голосов
/ 18 июля 2011

Вероятно, вам стоит взглянуть на следующие методы:

  • P. Джонатон Филлипс: Машины опорных векторов, применяемые для распознавания лиц. NIPS 1998: 803-809
  • Хайбин Лин, Стефано Соатто, Нараянан Раманатан и Дэвид В. Джейкобс, исследование распознавания лиц по возрасту, IEEE International Конференция по компьютерному зрению (ICCV), 2007.

Эти методы описывают использование SVM для решения проблем одного и того же человека / другого человека, как та, которую вы описываете. Если выравнивание элементов (глаза, нос, рот) хорошее, эти методы работают очень хорошо.

1 голос
/ 18 июля 2011

Простите за то, что я изложил очевидное, но почему бы не использовать какой-либо контролируемый классификатор (SVM, GMM, k-NN и т. Д.), Получить одну метку для каждого тестового образца (например, лицо, голос, текст и т. Д.),а затем посмотреть, совпадают ли две метки?

В противном случае вы можете выполнить проверку двоичной гипотезы.H0 = два образца не совпадают.H1 = два образца совпадают.Для двух тестовых образцов x1 и x2 вычислите расстояние d (x1, x2).Выберите H1, если d (x1, x2) <эпсилон, и H0 в противном случае.Настройка epsilon отрегулирует вашу вероятность обнаружения и вероятность ложной тревоги.Ваше приложение будет определять, какой эпсилон лучше;Например, может быть, вы можете терпеть промахи, но не можете терпеть ложные тревоги, или наоборот.Это называется проверкой гипотезы Неймана-Пирсона. </p>

1 голос
/ 16 июля 2011

Насколько велик ваш набор данных? Я бы начал эту проблему с придумывания некоторой метрики расстояния (скажем, евклидова), которая бы характеризовала различия между изображениями (например, различия в цвете, форме и т. Д. Или, скажем, местные различия). Два изображения, представляющие одного и того же человека, будут иметь небольшое расстояние по сравнению с изображением, представляющим другого человека ... хотя это будет сильно зависеть от типа набора данных, с которым вы сейчас работаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...