Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 人脸识别:每个人的所有图像都必须是相同的计数吗?_C++_Opencv_Face Recognition - Fatal编程技术网

C++ 人脸识别:每个人的所有图像都必须是相同的计数吗?

C++ 人脸识别:每个人的所有图像都必须是相同的计数吗?,c++,opencv,face-recognition,C++,Opencv,Face Recognition,我想知道,每个人拥有相同数量的图像是否很重要,例如:10张图像/人在Eigen/Fisher/LBPH人脸识别器中训练人脸?或者它可以是不同计数的人1:10图像,人2:20图像,对于Eigen/Fisherfaces,最安全的答案是每个类的数据量必须平衡。虽然一个类只缺少一些图像是可以的,但是拥有一个比所有其他类多一个数量级的图像的类肯定会导致问题。我想,每个任务都有可容忍的不平衡 最后,上述每一种算法都需要从训练数据集中找到最近的邻居来查询图像。在整个给定数据集上训练特征面/鱼面,计算数据集图

我想知道,每个人拥有相同数量的图像是否很重要,例如:10张图像/人在Eigen/Fisher/LBPH人脸识别器中训练人脸?或者它可以是不同计数的人1:10图像,人2:20图像,

对于Eigen/Fisherfaces,最安全的答案是每个类的数据量必须平衡。虽然一个类只缺少一些图像是可以的,但是拥有一个比所有其他类多一个数量级的图像的类肯定会导致问题。我想,每个任务都有可容忍的不平衡

最后,上述每一种算法都需要从训练数据集中找到最近的邻居来查询图像。在整个给定数据集上训练特征面/鱼面,计算数据集图像变化最大的向量。代表性过高或过低都会导致一个不平衡的模型,而该模型在实现这一点上的作用是不充分的

相反,LBPH不会在整个数据集上进行训练。它独立地分析数据集中的每个图像,并将查询图像分别与每个图像进行比较。因此,数据集的全面性和代表性比图像计数更重要


OpenCV提供了许多这样的算法。

谢谢,先生!还有一个我想问你们的问题,我们如何为这些算法设置一个好的阈值,用于确定已知和未知人脸之间的距离。如果我们设置最高值Double.Max,那么预测结果总是正的,这就给区分已知和未知人脸带来了问题。如果你有什么办法,请建议我!提前谢谢!阈值是最常见和最直接的经验设置。我建议收集另一个你不想被识别的随机未知人脸数据集,然后手动或通过迭代调整阈值,以便识别大多数已知面,而不识别大多数未知面。您的意思是我测试识别训练面和未训练面并查看其返回的阈值?我的意思是:对于双阈值=0;阈值