我在C#上使用EmguCV库(openCV包装器)使用Eigenface算法实现人脸检测和面部识别
我发现很多准确率的错误,例如最小距离不是训练集中的同一个人,训练集中不存在但与训练集中距离良好的人匹配的人等。
请帮帮我。
谢谢。
其他信息: - 我在训练集中使用1个面部图像(直面部图像,没有方向) - 现在,我在训练集中测试了大约10-20个人
答案 0 :(得分:3)
尝试模糊图像。由于您每人只使用一张训练图像,因此Eigenface无法判断高频分量或低频分量是否更有用。
要决定模糊/缩小图像的程度,请对人进行实验。给一个人一些模糊的测试图像对并要求他们匹配。试着找出你可以模糊图像多少,并仍然成功匹配它们。对计算机使用相同的模糊参数。
图像对齐技术也可能有所帮助。例如,将图像标准化,使鼻尖和两只眼睛(形成一个三角形)仿射变换为一组标准位置。
最后,一些简单的特征值预处理技术或图像预处理技术(如直方图均衡)可能有所帮助。
答案 1 :(得分:1)
1]图像标准化:
2]图像对齐(这是实现良好性能的非常重要的一步):
对齐所有火车图像和测试图像,使所有图像中所有面部的眼睛,鼻子,嘴巴具有几乎相同的坐标
在面部对齐时检查此帖子(强烈推荐):https://www.pyimagesearch.com/2017/05/22/face-alignment-with-opencv-and-python/
3]数据增加技巧:
4]消除噪音: