【问题标题】:Eigenfaces algorithm特征脸算法
【发布时间】:2011-07-16 04:46:03
【问题描述】:

我正在使用 OpenCV 编写人脸识别程序。

当生成特征面时:

  • 我需要使用一个包含未知面孔的大型数据库吗?
  • 我是否只需要使用我希望系统识别的人的照片?
  • 我需要同时使用这两个吗?

我说的是特征脸生成,这是“学习”步骤。

我需要使用多少张照片才能获得不错的准确性?更像是 20 还是 2000?

谢谢

【问题讨论】:

    标签: opencv computer-vision face-detection face-recognition eigenvector


    【解决方案1】:

    Eigenfaces 的工作原理是使用主成分分析或 PCA 将人脸投影到特定的“人脸基”中。基础不一定要包含您想要识别的人的照片。

    相反,我会鼓励您基于已良好注册的大型数据库(至少 10k 人脸)进行训练(特征脸不适用于移动的图像)。 Turk 和 Pentland 的原始论文之所以引人注目,部分原因在于他们发布的大型 pin 注册人脸数据库。我还要说,尝试将数据库和测试输入之间的照明标准化为相同。

    在测试方面,前 20 个组件应该足以重建人类可识别的面部,而前 100 个组件应该足以区分任意大数据集的任意两个面部。

    【讨论】:

    • 初始训练集应该由独特的个体组成,还是每个个体有多个图像有用?如果允许多个,每个人是否应该拥有大致相同数量的训练图像?
    • 我认为独特性并不那么重要。有一个合理的分布当然是好的。你得到的正是你在机器学习中训练的输入。如果数据集包含 80% 以上的您的图像,那么您可能正在构建更多的您检测器,而不是通用的人脸检测器。与其构建您自己的数据集,不如在线提供多个满足大多数期望标准的好数据集。
    【解决方案2】:

    你不需要太多随机的面孔来组成一张人脸;接近 20 的某个地方应该会产生很好的结果,如果可以的话,也许可以使用更多。它们都应尽可能相互对齐,正面,在相同照明条件下的灰度照片。

    【讨论】:

    • 感谢您的回答。你的意思是我只需要使用随机的面孔,而不是我想要识别的面孔吗?
    猜你喜欢
    • 2012-08-12
    • 2013-10-07
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2013-11-18
    相关资源
    最近更新 更多