置信度= 1.0f-sqrt(distSq /(float)(nTrainFaces * nEigens))/ 255.0f
最佳答案
好吧,如果您只是想查找仅具有1个且只有经过训练的人脸的“测试人脸特征 vector (或值?)”的置信度值,则可以执行以下操作
confidence = 1.0f - (sqrt( least_squared_distance / no_of_eigens ) / 255.0)
但是,由于要在经过训练的人脸数据库中找到最近的邻居,因此您需要信心来反射(reflect)出在所有经过训练的人脸中,最近的邻居对训练后的数据库中的其中一张脸具有较高的置信度值。因此,现在不是针对1个训练过的脸部而是计算所有训练过的脸部时的置信度
confidence = 1.0f - (sqrt( least_squared_distance / no_of_trained_faces * no_of_eigens ) / 255.0)
minimum_squared_distance = DBL_MAX基本上是说出minimum_squared_distance = 99999999的安全方法,因为取决于平台,硬件或实现,这可能会导致缓冲区溢出。因此,DBL_MAX是代表最大 double 值的标准库。
这就是它找到最小平方距离的方式
if(distSq < leastDistSq) {
leastDistSq = distSq;
iNearest = iTrain;
}
关于opencv - 人脸识别(二维数组)置信度公式推导,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22791971/