特征脸算法

5
我正在使用OpenCV编写一款人脸识别程序。
在生成特征脸时:
  • 我需要使用大量未知人脸的数据库吗?
  • 我只需要使用我想让系统识别的人的照片吗?
  • 还是两者都需要?
这是“学习”步骤中的特征脸生成问题。
那么我需要使用多少张照片才能获得足够的准确性?是20张还是2000张?
谢谢。
2个回答

3
Eigenfaces通过主成分分析或PCA将面部投影到特定的“面部基础”中。该基础不必包括您想要识别的人的照片。
相反,我建议您基于一个大型数据库进行训练(至少10k张面孔),该数据库已经过良好注册(eigenfaces不能很好地处理已移位的图像)。 Turk和Pentland的原始论文之所以引人注目,部分原因在于他们发布了大量的已注册面部数据库。我还会说尝试使数据库和测试输入之间的照明标准化。
在测试方面,前20个组件足以重构出一个可识别的人脸,前100个组件足以对任意大型数据集中的任何两个面进行区分。

初始训练集应由独特的个体组成,还是拥有每个个体的多个图像会更有用?如果允许使用多个图像,那么每个个体的训练图像数量是否应大致相同? - Kaelin Colclasure
我认为独特性并不是那么重要。当然,有一个合理的分布是好的。在机器学习中,你得到的正是你训练的输入。如果数据集由80%以上的你的图像组成,那么你可能正在构建更多的“你”的检测器,而不是通用的人脸检测器。与其构建自己的数据集,不如使用在线上有多个满足大多数所需标准的好数据集。 - peakxu

0
你不需要太多随机的面孔来组成一个人脸;大约20个左右应该能得到不错的结果,如果可以的话可以再多一些。它们应该尽可能地排列在一起,面向正前方,并且在相同的灰度下拍摄,使用相同的光照条件。

谢谢您的回答。那么您的意思是我只需要使用随机人脸,而不是我想要识别的那个人脸吗? - Matthieu Napoli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接