是否有一种方法来比较两张脸(也许与OpenCv),并得到他们的相似度的分数?我的意思是应用一个面部识别算法,但是只在两张脸之间,而不是在整个数据集上。
问题是,例如,特征面需要至少2个训练图像。
是的,你绝对可以使用特征面。训练脸与你用来进行面部识别的两张脸没有任何关系。有一个包含100张面孔的训练图库。然后比较你的两张脸(face_1和face_2),用训练图库中的100张脸对每张脸进行特征脸分解。例如,face_1 =[2 3 1 5…]*[eigFace1 eigface2 eigface3 eigface4…]第二张脸也是一样。我在上面的例子[2 3 1 5…],在某种距离算法(无论是欧几里得距离还是其他距离度量)中比较你的两个面部分解。如果距离在一定的阈值内,那么你可以说它们是相同的。记住,如果你使用的是特征面,那么所有训练图像的姿势、光照条件、大小和背景以及你试图比较的人脸都必须归一化。眼睛、鼻子、嘴巴也必须尽可能排成一条直线。
这篇文章很好地解释了整个人脸识别过程。使用face_recognition库,您可以识别一个人,即使只有一个图像,然后尝试在另一个图像中识别那个人。这是可能的,因为神经网络已经训练好了。
试着忘记,你比较脸。为这两张照片找到SURF关键点,匹配它们的描述符。为匹配描述符个数与所有描述符个数的照片相似性利用率得分。
-
可以使用openbr中的比较函数。它给你两张脸匹配的百分比。
-
它给出了这个值基于min, max, mean, stddev为正品和冒名者。