有没有办法比较两张脸(也许是OpenCv)并获得他们的相似度?我的意思是应用面部识别算法,但仅限于两个面,而不是整个数据集。
问题是,例如,Eigenfaces需要至少2个训练图像。
答案 0 :(得分:2)
是的,你绝对可以使用特征脸。训练面孔无关,您要比较面部识别的两个面部。有一个100面的训练面孔画廊。然后,要比较两个面(face_1和face_2),使用训练库中的100个面对每个面进行特征脸分解。所以例如face_1 = [2 3 1 5 ...] * [eigFace1 eigface2 eigface3 eigface4 ...]'和面部2相同。我在上面的示例[2 3 1 5 ...]中显示的那个向量,在某种距离算法(无论是欧氏距离还是其他距离度量)中比较它的两个面部分解。如果距离在一定的阈值内,则可以说它们是相同的。请记住,如果您使用特征脸,则所有训练图像的姿势,光照条件,大小和背景以及您要比较的面都必须进行标准化。眼睛,鼻子,嘴巴也必须尽可能排列。
答案 1 :(得分:0)
This article 很好地解释了整个人脸识别过程。使用 face_recognition 库,即使只有一张图片,您也可以识别一个人,然后尝试在另一张图片中识别该人。这是可能的,因为神经网络已经过训练。
答案 2 :(得分:-1)
试着忘记,比较一下脸。查找两张照片的SURF关键点,匹配其描述符。作为照片相似度的得分使用匹配描述符的数量与所有描述符的数量的比率。
答案 3 :(得分:-1)
您可以使用来自openbr.Its的比较功能,为您提供两个面的匹配百分比。
它根据真实和冒名顶替者的min,max,mean,stddev给出了这个值。