文档介绍:人脸识别经典算法一:特征脸方法(Eigenface )
这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新。特征脸方法基 本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。特征脸用到的理论 基础PCA在另一篇人脸识别经典算法一:特征脸方法(Eigenface )
这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新。特征脸方法基 本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。特征脸用到的理论 基础PCA在另一篇博客里:特征脸(Eigenface)理论基础-PCA(主成分分析法)。本文的参 考资料附在最后了人一人
步骤一:获取包含M张人脸图像的集合S。在我们的例子里有25张人脸图像(虽然是
25个不同人的人脸的图像,但是看着怎么不像呢,难道我有脸盲症么),如下图所示哦。 每张图像可以转换成一个N维的向量(是的,没错,一个像素一个像素的排成一行就好了, 至于是横着还是竖着获取原图像的像素,随你自己,只要前后统一就可以),然后把这M 个向量放到一个集合S里,如下式所示。
步骤二:在获取到人脸向量集合S后,计算得到平均图像屮,至于怎么计算平均图像, 公式在下面。就是把集合S里面的向量遍历一遍进行累加,然后取平均值。得到的这个屮其 实还挺有意思的,屮其实也是一个N维向量,如果再把它还原回图像的形式的话,可以得 到如下的“平均脸",是的没错,还他妈的挺帅啊。那如果你想看一下某计算机学院男生平 均下来都长得什么样子,用上面的方法就可以了。
步骤三:计算每张图像和平均图像的差值①,就是用S集合里的每个元素减去步骤二中 的平均值。
®. =r. -t
步骤四:找到M个正交的单位向量un,这些单位向量其实是用来描述①(步骤三中的
差值)分布的。u里面的第k( k=1,2,3...M)个向量u是通过下式计算的,
n k
当这个;k (原文里取了个名字叫特征值)取最小的值时,u基本就确定了。补充一下,刚
k
才也说了,这M个向量是相互正交而且是单位长度的,所以啦,u还要满足下式:
k
上面的等式使得u为单位正交向量。计算上面的u其实就是计算如下协方差矩阵的特征向
k k
量:
其中
月二{①“①2,①隼…,①相}
对于一个NxN (比如100x100 )维的图像来说,上述直接计算其特征向量计算量实在是太 大了(协方差矩阵可以达到10000x10000 ),所以有了如下的简单计算。
步骤四另解 :如果训练图像的数量小于图像的维数比如(M<N人2),那么起作用的特征 向量只有M-1个而不是N人2个(因为其他的特征向量对应的特征值为0),所以求解特征 向量我们只需要求解一个NxN的矩阵。这个矩阵就是步骤四中的AAT,我们可以设该矩阵 为L,那么L的第m行n列的元素可以表示为:
一旦我们找到了 L矩阵的M个特征向量V],那么协方差矩阵的特征向量ui就可以表示为:
Ul二纭=1%①k 心h 何
这些特征向量如果还原成像素排列的话,其实还蛮像人脸的,所以称之为特征脸(如下图)。 图里有二十五个特征脸,数量上和训练图像相等只是巧合。有论文表明一般的应用40个特 征脸已经足够了。论文Eigenface for recog niti