使用SVM在Python中实现面部识别

时间:2018-03-13 15:56:04

标签: python machine-learning svm face-recognition

我在Python中使用scikit learn在SVM(机器学习算法)的背景下创建了一个简单的人脸识别程序。我已经创建了50个人均图像用于训练数据,但它还没有给出我正确的结果(十个人中,它只能识别1个)。我只是机器学习的新手。所以我在这里缺少什么?通过程序很简单。它采用图像的像素值并训练数据然后预测实时图像。请在这里帮助我。

1 个答案:

答案 0 :(得分:1)

除了机器学习程序本身的设计(我们不知道),您所显示的信息肯定是一个问题:

50张图片可能足以(而且不是非常准确)用于训练以识别图像是否是脸部。

但是为了训练系统识别不同的面孔,它会采用更大的训练数据集。

我确定即使是同一个人,面部大小,位置,倾斜度等也会大不相同,因此每人的照片数量应远大于50来训练系统......

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

如果你的训练样本数量过多,你就会过度拟合(系统在你的训练中会很完美,但不会超出你的训练),如果你的训练样本太少,那么你就是不合适(你不会有足够的样本来学习,我认为是你的情况。

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