用于确定两个数据集是否描述同一个体的分类器是什么?

时间:2011-07-15 15:00:56

标签: artificial-intelligence machine-learning classification

假设我有一组个人的面孔照片。我试图回答的问题是:“这两张照片代表的是同一个人吗?”

像往常一样,我有一套训练集,其中包含一些个人的照片。算法必须处理的个人和图片当然不在训练集中。

我的问题不是关于图像处理算法或我应该使用的特定功能,而是关于分类问题。 我不知道在这种情况下如何使用传统的分类器算法,如SVM或Adaboost。我应该如何使用它们?我应该使用其他分类器吗?哪些?

注意:我的真实应用不是面孔(我不想透露它),但它足够接近。

注意:训练数据集不是很大,最多只有数千。每个数据集都很大(几兆字节),即使它不包含大量真实信息。

3 个答案:

答案 0 :(得分:2)

您应该查看以下方法:

  • P上。 Jonathon Phillips:用于人脸识别的支持向量机。 NIPS 1998:803-809
  • Haibin Ling,Stefano Soatto,Narayanan Ramanathan和David W. Jacobs,人脸时代的人脸识别研究,IEEE国际 计算机视觉会议(ICCV),2007年。

这些方法描述了将SVM用于与您描述的人相同的人/不同的人问题。如果特征(眼睛,鼻子,嘴巴)的对齐良好,这些方法效果非常好。

答案 1 :(得分:1)

您的数据集有多大? 我会通过提出某种距离度量(比如欧几里德)来开始这个问题,它可以表征图像之间的差异(例如颜色,形状等的差异或者表示局部差异)。代表同一个体的两个图像会有很小的距离与代表不同个体的图像相比,虽然它在很大程度上取决于您当前正在使用的数据集的类型。

答案 2 :(得分:1)

原谅我陈述明显的,但为什么不使用任何监督分类器(SVM,GMM,k-NN等),为每个测试样本(例如,面部,语音,文本等)获得一个标签,然后看看两个标签是否匹配?

否则,您可以执行二进制假设检验。 H0 =两个样本不匹配。 H1 =两个样本匹配。对于两个测试样本x1和x2,计算距离d(x1,x2)。如果d(x1,x2)