聚类法 人脸识别 matlab,采用新型密度聚类进行人脸识别的方法

采用新型密度聚类进行人脸识别的方法

【技术领域】

[0001] 本发明设及采用新型密度聚类进行人脸识别的方法。

【背景技术】

[0002] 近年来,人脸识别成为一项热口的计算机技术研究领域。人脸识别技术作为生物 识别技术的一种,它结合了图像处理、计算机图形学、模式识别等多个研究领域。聚类方法 是人脸识别技术的最重要组成部分之一。由于人脸图像数据通常复杂分布,常用的聚类方 法无法很好地识别出复杂的不规则形状分类。如何将准确、健壮、高效的聚类方法应用到人 脸识别中是目前急需解决的问题。

【发明内容】

[0003] 本发明的目的在于提出一种采用新型密度聚类进行人脸识别的方法,与其他的基 于质屯、的聚类方法相比,具有准确度高,能识别分布无序、非球形等复杂数据的优点,提高 了人脸识别的准确度。

[0004] 本发明一种采用新型密度聚类进行人脸识别的方法,包括如下几个步骤:

[0005] 步骤1、读取人脸图像:

[0006] 所用人脸图像是大小为MXN的灰度图像,用每个像素作为一个特征点,读入K张人 脸图像得到图像特征矩阵Ai(mxn),其中i = l,2, . . .,Κ;将图像特征矩阵Ai(mxn)转换为特征向 量 fi(ixMN),其中 fiα:N)=Aiα,l:N),fi(N+l:2N)=Ai(2,l:N),依此类推,对特征向量fi的 每个维度做0-1归一化,即

其中j = 1,2,…,MN,然后更 新特征向量fi;

[0007] 步骤2、计算距离矩阵:

[0008] 用特征向量集f作为待聚类数据集P输入,其人脸特征向量点的数目记为N,待聚类 数据集P中第i个人脸特征向量点记为Pi,计算待聚类数据集P中每两个人脸特征向量点Pi之 间的距离,生成距离矩阵(di,j)NXN,其中di,康示点Pi到pj的距离;

[0009] 步骤3、找出所有人脸特征向量点Pi的密度中屯、点:

[0010] 用r作为扫描半径对每个人脸特征向量点Pi进行扫描,将待聚类数据集P中与Pi的 距离小于r的人脸特征向量点加入到Pi的r-Nei曲bor集合化ii= {pj I di, j非忡,算出集合 化ii中所有人脸特征向量点Pi的平均值

,其中k为集合化ii中人脸特征向量 点的总个数,在待聚类数据集P中找到距离平均值Meani最近的人脸特征向量点作为Pi的密 度中屯、点Ci,即

'其中I |p-meani| h表示点P与mearii的几何距离;

[0011 ]步骤4、计算人脸向量特征点P j的密度:

[0012]将集合Neii中元素的个数作为人脸特征向量点Pi的密度值化= size(Neii),即

[0013] 步骤5、找出所有人脸特征向量点w的密度汇聚点:

[0014] 通过迭代计算寻找每个人脸特征向量点W的局部密度中屯、点,直到最后收敛,收 敛点称为该点的密度汇聚点:

[001引找到Pi的密度中屯、点Ci = pj,找到pj的密度中屯、点cj = pk,若Pk的密度中屯、点仍然 是Ck = pk,则停止迭代,将Pk作为Pi、Pj、Pk的密度汇聚点,记作cp(i)=cp( j)=cp化)=pk;

[0016] 步骤6、找出所有人脸特征向量点w的局部密度峰值点:

[0017] 若人脸特征向量点Pi的密度汇聚点是其自身,即cp(i)=pi,并且Pi的密度值Pi大 于给定的密度阔值t,则将其加入到局部密度峰值点集合LPS中,记作LPS={pi|(cp(i)=pi) 八(化含t)}

[0018] 步骤7、对局部密度峰值点集合WS中的所有人脸特征向量点pi按最近邻近算法进 行聚类,每个类别就是一个密度核屯、,将局部密度峰值点集合LPS中每个局部密度中屯、点Ip 的类别记为cl(lp);

[0019] 步骤8、把其它所有非局部密度峰值点P的类别初始化为-1,再划归到与其汇聚中 屯、点相同类别,即cl(p)=cl(cp(p)),把cl(p)=-l的点记为离群点;

[0020] 步骤9、输出聚类结果cl(p):

[0021] cl(p)表示该人脸的类别,若cl(pl)=cl(p2),表示pi与p2所代表的两张人脸图像 是同一人,若cl(p)=-l表示该人脸类别未识别。

[0022] 由于本发明通过寻找密度核屯、而非单一质屯、来进行聚类,一个类别的密度核屯、由 一些密度相对较高的松散联结在一起的汇聚点构成,其它数据点按一定结构聚焦在运些点 外围.因而可W克服了传统聚类算法难W识别非范数球形结构的数据,提高了人脸识别的 准确度。

【具体实施方式】

[0023] 本发明一种采用新型密度聚类进行人脸识别的方法,包括如下几个步骤:

[0024] 步骤1、读取人脸图像:

[0025] 所用人脸图像是大小为MXN的灰度图像,用每个像素作为一个特征点,读入K张人 脸图像得到图像特征矩阵Ai(mxn),其中i = l,2,...,K;为了方便计算,将图像特征矩阵 Ai(MXN)转换为特征向量fi(ixMN),其中fi(l :N) =Ai(l,1 :N),fi(N+l :2N) =Ai(2,1 :N),依此类 推,对特征向量fi的每个维度做0-1归一化,即:

,其中j = 1,2,…,MN,然后更新特征向量f i;

[00%] 步骤2、计算距离矩阵:

[0027]用特征向量集f作为待聚类数据集P输入,其人脸特征向量点的数目记为N,待聚类 数据集P中第i个人脸特征向量点记为Pi,计算待聚类数据集P中每两个人脸特征向量点Pi之 间的距离,生成距离矩阵(dij)NXN,其中di,康示点Pi到P撕距离;

[00%]步骤3、找出所有人脸特征向量点Pi的密度中屯、点:

[0029] 用r作为扫描半径对每个人脸特征向量点Pi进行扫描,W第i个人脸特征向量点Pi 为例,将P中与Pi的距离小于r的人脸特征向量点加入到Pi的r-Neig化or集合化ii={pj|dij

其中k为集合化ii 中人脸特征向量点的总个数,在待聚类数据集P中找到距离平均值Meam最近的人脸特征向 量点作为Pi的密度中屯、点ci,即

其中Mp-meani||2表示点P与 meam的几何距离;

[0030] 步骤4、计算人脸向量特征点W的密度:<

你可能感兴趣的:(聚类法,人脸识别,matlab)