【问题标题】:Implement Face Recognition in Python using SVM [closed]使用 SVM 在 Python 中实现人脸识别 [关闭]
【发布时间】:2018-08-21 23:14:34
【问题描述】:

我使用 scikit learn 在 Python 中以 SVM(机器学习算法)为背景创建了一个简单的人脸识别程序。我为训练数据创建了每人 50 张图像,但它仍然没有给我正确的结果(在 10 个人中,它只能正确识别 1 个)。

我只是机器学习的新手。那么我在这里错过了什么?通过程序很简单。它获取图像的像素值并训练数据,然后在实时图像上进行预测。

【问题讨论】:

    标签: python machine-learning svm face-recognition


    【解决方案1】:

    除了机器学习程序本身的设计(我们不知道)之外,根据您提供的信息,这肯定是一个问题:

    50 张图像可能足以(但不是很准确)用于识别图像是否为人脸的训练。

    但是要训练一个系统来识别不同的面孔,它需要一个更大的训练数据集。

    我敢肯定,即使是同一个人,人脸的大小、位置、倾斜度等也会有很大的不同,所以每个人的图片数量应该远远大于 50 来训练系统......

    使用神经网络,层数、设计和大量训练样本是良好学习的关键。

    如果您的训练样本数量过多,则表示过度拟合(系统将在您的训练中完美运行,但不会超出),如果太少,则表示欠拟合(您没有足够的样本来进行很好的学习),我认为是你的情况。

    您可以做的另一件事是不将原始图像作为输入提供给您的系统,而是使用为这些图像提取的数据作为眼睛到嘴巴眼睛到下巴距离之间的关系等。在这种情况下,您可以使用短每个人脸的样本数量,所以 50 个(甚至更少)就绰绰有余了。但是您需要首先使用正确的算法对图像进行预处理以供您的系统使用

    【讨论】:

    • 先生,但我看到人们只用两张图像就可以创建如此先进的人脸识别。他们是怎么做到的?
    • 只用 2 张图像进行训练肯定无法构建人脸识别系统
    • 如果他们只使用 2 张图像,他们可能会首先提取使人脸不同的信息,而不是向系统提供原始图像。这种方式是可行的,但不能将图像作为学习的输入数据。
    猜你喜欢
    • 2014-05-04
    • 2013-07-27
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 2018-08-20
    • 2010-10-31
    • 2015-06-14
    相关资源
    最近更新 更多