特征脸算法的人脸识别逻辑,蛮适合你拿来入门或写 demo。思路其实挺直白:把一堆人脸图片转成向量,用线性代数找出最能代表人脸特征的那些“脸”,也就是特征向量。这些向量再转回图像后,看起来还真像人脸,蛮神奇的。
人脸图像要先统一尺寸,比如100x100,拉平成10000 维的向量。求平均脸,再和每张脸做差,用这些差值构建协方差矩阵,从中提取出你要的特征脸。听着有点绕,实际上用矩阵相乘优化一下,性能也不错。
新图片进来后,投影到这些特征脸上,得到一个权重向量。你拿这个权重去跟数据库里已有的比一比,距离近的,就是同一个人。识别效果主要看你特征脸的数量,一般20~40 个就挺够用了。
哦对了,要真用在项目里,别忘了调好阈值,不然误识别会比较严重。推荐你看看下面几个链接,是那个关于协方差矩阵的,讲得还挺清楚:
如果你正在搞图像识别或者人脸比对的项目,强烈建议撸一遍这个算法,理解了它,像PCA 降维、SVM 分类这类技术也就顺了。