我正在尝试使用opencv将文件夹分组。
我正在使用http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html处的特征脸示例。但找不到任何解决我问题的方法。
I have a set of faces in my face database: A,B,C,D,E,F,G,H,I
As a result I try to get;
- A,B,D are person1
- C,E,F are person2
- G,H are person3
- I is person4
我猜这个过程应该是这样的;
sampleFace = A
while
mode.train(faces,labels) // trains face database
model.predict(sampleFace, &predict, &confidence) // get the prediction
using the confidence and similarity percentage decide A,B,D faces are person1
remove A,B,D from face database and remove the labels of these images also
if faces.size=1 exit loop
sampleFace = C
end of loop
为了得到那个结果,我想我需要在特征面样本中为我的模型设置一个阈值。并且需要使用置信度值。
实际上我想设置像%80这样的相似度得分,然后我希望获得与给定样本面具有大于%80的相似度得分的图像。特征脸样本仅给出一个具有置信度值的相似面。我需要为每个人获得具有置信度值的多个面,然后我可以比较相似性得分。同样在特征脸样本中我不知道置信度的限制,我需要每个脸的百分比值。
非常感谢任何帮助,建议或代码示例。
答案 0 :(得分:0)
您尝试执行的方法是基于无监督学习,这在面部图像上无效。如果每个人都有足够数量的样本,那么您最好用至少一个人的图像训练分类器;然后为数据集中的每个图像找到最近的类。