我正在开发一种面部算法,该算法将两张图像作为输入,并计算这两张图像中的人脸是否属于同一个人。我使用OpenCV对图像进行了所有预处理。在前置步骤中,我从整个图像中裁剪人脸,将其转换为灰度级,并将其调整为标准大小。我的问题与面部识别有点不同,因为我不关心识别图像中的个人,我只想知道他们是否是同一个人。我研究的大多数面部识别算法都依赖于来自将构成输入的同一个人的样本面部的训练。在我的情况下,我可以用一般的面孔训练,但不能用输入中的确切面孔。你能提出一些适合我情况的方法吗?
对于您的问题,感知哈希和编辑距离可能更合适。
查看
- http://phash.org/
- 看起来像
- TinEye反向图像搜索
通常您会测量特征之间的距离。
如果你无法控制图像的位置/大小/角度,即这是一张真实世界的图像,而不是坐在面部扫描仪前的人,那么你需要考虑如何使这些比例都相等。
试着找到眼睛(容易)和嘴巴或鼻子,然后得到三角形的边/角。然后,你还可以计算头发覆盖面部的百分比、鼻子的宽长比等。
每人一张图像的人脸识别:调查
如果您还没有,请研究Wavelet方法。例如,请参阅本文。