我会解释我正在尝试做什么,因为它似乎是相关的,以便理解我的问题。
我目前正在尝试根据数据库中的已知照片,对站在相机前的人进行人脸识别。
这些已知图片是从识别智能卡(仅包含单个正面面部图片)或来自社交网络的正面面部档案图片收集的。根据我到目前为止所读到的,似乎要想获得一个好的人脸识别,需要大量的训练图像(50+)。因此,由于我收集的图像非常少,无法创建可靠的训练集,因此我尝试使用我的实时相机帧捕获(当前使用150)作为训练集,并将之前收集的识别出的照片作为测试集。我不确定我尝试的是不是正确的,所以如果我搞砸了,请让我知道。
所以,问题是,假设我从智能卡上获得了5张识别出的照片,我尝试使用摄像头捕捉到的150帧作为训练集进行人脸识别。在尝试识别时,5个测试面的置信度非常相似,这使得整个程序无用,因为我无法准确地识别任何人。通常,使用不同的相机捕捉作为训练,我从随机人的照片中获得比我自己的照片更高的置信度。
如果你能给我任何帮助,我将不胜感激,因为我对此一无所知。
谢谢。
注意:我使用OpenCV的JavaCV包装器来制作我的程序,以及包中包含的haarcascades。本征面是使用的算法。
发布于 2012-07-07 18:27:46
人脸识别
简介
我想加上这一点。官方OpenCV 2.4.2中已经包含了libfacerec,请查看:
这意味着如果您使用的是OpenCV 2.4.2,那么在contrib模块中就有了新的cv::FaceRecognizer。我知道最近添加了一个Python包装器(感谢它!),可能在写这篇文章的时候Java也已经包装好了。
cv::FaceRecognizer附带了大量文档,将通过大量完整的源代码示例向您展示如何进行人脸识别:
如果你想知道可用的人脸识别算法(特征脸,鱼子脸,局部二进制模式直方图)是如何工作的,那么特别要阅读Guide To Face Recognition with OpenCV。在这里,我解释了算法是如何工作的,并提到了它们的缺点:
少量图像的人脸识别
现在来看看最初的人脸识别问题,当你的训练数据集很小时。我会给你写一份完整的答案,所以它可能会对从谷歌来这里的人有所帮助。
实际上,当你的数据集中每个人只有很少的样本时,不应该使用特征面和鱼子面。,你需要这些模型的数据才能工作,我再怎么强调也不为过。越多越好。这些方法是基于估计数据中的方差,所以给他们一些数据来估计你的模型!不久前,我在AT&T Facedatabase (使用facerec framework)上运行了一个小测试,显示了这些方法在每个人不同数量的图像下的性能:
我在这里不是在写出版物,也不会用详细的数学分析来支持这些数字。以前已经做过了,所以我建议每个对这些数字有疑问的人去看看(2),以便看到对小训练数据集的PCA (特征脸)和LDA (鱼子脸)的非常详细的分析。
因此,我建议在小样本场景中使用局部二进制模式直方图(3)进行人脸识别。这些也包括在OpenCV FaceRecognizer中,并且已经被证明在小的训练数据集上表现得非常好。如果您将其与TanTriggs预处理(4)相结合,您应该拥有一个真正健壮的人脸识别模型。TanTriggs预处理在Python语言中是一个8行代码(大约是8行代码),有关实现,请参阅https://github.com/bytefish/facerec/blob/master/py/facerec/preprocessing.py#L41。这应该很容易适应Java (或者如果人们需要的话,我也可以用OpenCV实现它)。
文学作品
发布于 2012-07-04 16:15:50
您想知道的是,如何仅使用一张训练图像执行人脸识别。这是可能的,但也取决于您想要分类的不同人的数量。
当然不需要50+训练图像。对于基本的人脸识别,你需要大约50个人脸来计算你的人脸空间(特征脸)。也许你把它和那个混在一起了。看到你的脸有很多变化(肤色,眼镜,形状……)你可以从任何你喜欢的人脸数据库中获取这些人脸。http://www.face-rec.org/列出了几个数据库并解释了不同的算法。
在你计算了你的脸部空间后,你可以训练出尽可能多的脸部。在您的情况下,您只有一个。根据你想要对多少不同的主题进行分类,这可能已经奏效了。
如果你得到了太多的错误分类,我会看看混合方法。混合方法将模板匹配算法(特征脸,渔夫脸)与基于特征的算法相结合。在这种情况下,您使用第一个算法的输出,并将眼睛、鼻子、眉毛、下巴形状等与您的测试脸进行匹配。
简写:
使用haarcascades
如果你还没有找到它,OpenCV还有一个人脸识别库:https://github.com/bytefish/libfacerec
编辑:我不会使用超过10-15个组件(特征面)。
https://stackoverflow.com/questions/11315157
复制相似问题