本发明属于图像处理技术领域,具体涉及一种用于图像类别识别的图像聚类方法。
背景技术:
在如今信息高度膨胀的社会,数字图像信息迅猛增加。如何对海量的图像数据进行高效的查询和处理,并获得有价值的数据信息至关重要。在图像检索处理时,为了提升检索效率,会应用到图像类别识别处理,即首先对图像库中的图像进行聚类处理,例如k均值聚类,将图像库聚类为k个大类;图像检索处理时,先实现待检索图像的图像类别识别处理,即粗略检索(即在k个大类的中心点图像中查询与当前待检索图像最相似的中心点图像),然后再与待检索图像最相似的类簇中对图像进行遍历检索,获取图像检索结果。
目前,对聚类算法的研究包括算法性能的改进、适用于特定数据的聚类算法研究、聚类数目的确定、初始聚类中心的选择、聚类效果的评价指标等多种研究方向。
k均值聚类算法,是一种无监督的聚类方法,是可以处理大量个案的算法,它也是通过逐步将样本不断靠近中心点,又称逐步样本聚类算法。根据选定的中心点尝试发现相对近似的个案组的分析过程。分析方法有几个优点,相对于分层方法,算法相对简单,算法效率较高。算法受欢迎的原因一个在于它易于解释、实现简单、收敛速度快、对稀疏数据的适应性强。另一个优点是它在接受测量距离方面的灵活性。k-means的主要缺点是,当数据中有异常值时,可能会得到扭曲的结果,即单个异常值可以显著增加平方误差。然后,这些更典型的对象将被划分为非常少的组,但是异常值将被放在非常小甚至单个的集群中。
在k均值聚类处理时,给定一个数据集u,记为u={n1,n2,n3,…,nn},其中ni(i=1,2,…,n)一般是指元组或者记录。设置k为参数,将数据集中的n个元组或记录分成k个聚类组,其中k<n,以使各个聚类组组内达到较高的相似度,而各组间具有最大的差异性。聚类得到的这k个分组需要满足以下几个条件:每个分组中的数据元组或者记录数必须大于零;每个数据元组或者记录有且仅属于一个分组。
从数据集u={n1,n2,n3,…,nn}中任意选择k个对象作为初始质心,即所期望的聚类簇个数;而将数据集中其余对象指派到离它们最近的质心所在的聚类组中,其中“最近”是指它们与其中一个聚类中心的相似度最高或者说距离(一般指欧氏距离)最短;根据所得的聚类簇,重新计算每个聚类簇的新质心,即该聚类簇中所有对象的均值;不断重复上述的指派和更新质心的过程,直到聚类质心不在发生任何变化或者标准测度函数开始收敛,则结束聚类。一般标准测度函数是指均方差,即准则函数。
但是,由于经典k均值聚类算法中初始聚类数目和初始聚类中心点选取困难,从而导致基于k均值聚类算法的图像聚类处理的准确性和效率有待于进一步提升。
技术实现要素:
本发明的发明目的在于:针对上述存在的问题,对k均值聚类方式进行了改进,从而基于改进的k均值聚类方式,根据图像的像素特征,实现对图像的聚类处理,使得相似度高的图像归为一类,从而提升图像的管理和检索性能。
本发明的用于图像类别识别的图像聚类方法包括下列步骤:
步骤s1:对待处理的图像进行降维处理:
步骤s101:对待处理的图像的像素值进行归一化处理;其中,待处理的图像的尺寸相同,图像尺寸表示为n×m;
步骤s102:计算每幅图像的相关系数矩阵:
第q幅图像的相关系数矩阵
步骤s103:基于主成分分析得到降维后的图像数据:
计算相关系数矩阵rq的特征根并降序排列:λ1,λ2,…,λm;
将与m个特征值λ1,λ2,…,λm对应的特征向量记为:αj=[α1jα2j…αmj]t,其中j=1,2,…,m;
根据公式yij=α1jxi1+α2jxi2+…+αmjxim计算主成分yij,其中i=1,2,…,n,j=1,2,…,m;
计算每个特征值λj的累计贡献率
分别将α1和α2对应的主成分的均值记为yq1、yq2,从而得到第q个图像降维后的图像数据yq={yq1,yq2}。
步骤s2:基于泰森多边形对待聚类的图像集进行聚类处理:
步骤s201:基于降维后的图像数据构建泰森多边形:
将图像数据yq={yq1,yq2}作为数据点q,其中yq1,yq2用于标识数据点q的位置坐标;
在数据点q所在的二维平面内构建矩形e,且所有待聚类的图像数据yq所对应的数据点均位于矩形e中;
在所有降维后的图像数据集所构成的二维平面α内,构建一个矩形e,所有待聚类的图像数据yq位于所述矩形e内;
在点q所在的二维平面内构建泰森多边形,且各个泰森多边形单元的母点均在矩形e中;
步骤s202:遍历泰森多边形中的边缘单元,确定泰森多边形单元的顶点集:
对当前边缘单元vi,连接边缘单元vi和其相邻单元vi+1的母点,将母点的连线的斜率记为k1;以及将边缘单元vi和其相邻单元vi+1的公共边的斜率记为k2;
若k2>k1,则边缘单元vi和其相邻单元vi+1的公共边和矩形e相交,计算边缘单元vi和其相邻单元vi+1与矩形e的公共交点并加入边缘单元vi的顶点集中;若k2≤k1,则将该公共边与矩形e交点加入vi+1单元的顶点集中;其中单元的顶点集的初始值为空集;
其中,若边缘单元与矩形e的交点位于不同的边上,则将边缘单元与矩形e的所有交点加入当前边缘单元的顶点集中;
步骤s203:基于泰森多边形设置初始聚类数和初始聚类中心点:
计算当前泰森多边形的每个泰森多边形单元的单元密度系数,若存在单元密度系数小于预置的密度系数阈值,则将单元密度系数大于或等于密度系数阈值的泰森多边形单元的质心为新的母点重新生成新的泰森多边形;
若当前泰森多边形的每个泰森多边形单元的单元密度系数均大于或等于密度系数阈值,则保留当前泰森多边形,否则继续重新生成新的泰森多边形;
将保留的泰森多边形的单元个数作为聚类数目k,并将每个泰森多边形单元的母点作为初始聚类中心点d1,d2,…,dk;
其中,单元密度系数为:单元密度与参数ρrectangle的比值,
步骤s204:基于确定的聚类数目k、以及初始聚类中心点d1,d2,…,dk,通过k均值聚类法对所有图像数据yq进行聚类处理,得到k个聚类结果;
再将当前k个聚类结果转换为对应的原始图像,得到待处理的图像的聚类结果。
进一步的,步骤s204中,在k均值聚处理时,为了提升聚类的准确性,可根据数据对象的加权平均值
且聚类处理时采用的收敛准则函数为:
其中,函数d(·)表示两个数据对象之间的欧式距离,
综上所述,由于采用了上述技术方案,本发明的有益效果是:本发明通过基于泰森多边形的k均值算法改进,达到更精准和高效地实现数据对象聚类和区分数据对象之间的不同,通过基于加权平均值法的k均值算法改进,进一步提高聚类效率,通过基于主成分分析法的k均值算法改进,把多维的数据特征降维,以方便使用泰森多边形初始化,最终得到改进的k均值算法,从而基于该改进的k均值算法实现本发明的图像聚类处理,提升图像的管理和检索性能。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式,对本发明作进一步地详细描述。
本发明通过基于泰森多边形的k均值算法改进,更精准和高效地实现图像聚类和区分图像之间的不同,通过基于加权平均值法的k均值算法改进,进一步提高聚类效率,通过基于主成分分析法的k均值算法改进,把多维的图像数据特征降维,以方便使用泰森多边形初始化,最终得到改进的k均值算法,从而实现对图像的聚类处理。
本发明的图像聚类方法可用于图像检索,即基于本发明改进后的k均值算法对图像库中的图像进行聚类处理,得到多个聚类结果和对应的中心点;当进行图像检索处理时,首先基于图像的像素的前2个主成分(确定方式与聚类处理中的方式相同)同各个聚类中心点的欧式距离,从所有中心点中检索与待检索图像最相似的中心点,确定待检索图像的图像类别,即与待检索图像最相似的类簇;然后再在该最相似的类簇中对图像进行遍历检索,查找与待检索图像最相似的图像,从而获得图像检索结果。
其中,聚类处理的具体实现过程为:
(1)定义q表示待聚类的图像数量,即图像库的图像数量;并定义xq表示第q个图像,每个图像具有n个行像素,m个列像素。则每个图像xq构成了n×m阶矩阵:
则图像数据集可以表示为x={x1,x2,…,xq}。
(2)将n×m阶矩阵xq中的图像数据标准化(归一化处理),即将矩阵xq中的图像数据都映射到[-1,1]区间。
例如,可采用下述归一化公式实现:
其中,xi'j是xij归一化之后的值,xij是xq中的元素,a=-1,b=1,
(3)计算图像库中各图像的相关系数矩阵,即矩阵xq的相关系数矩阵rq:
其中,
(4)计算相关系数矩阵rq的特征值λ1≥λ2≥…≥λm>0以及对应的特征向量:
(5)计算主成分:yij=α1jxi1+α2jxi2+…+αmjxim,i=1,2,…,n;j=1,2,…,m;
(6)计算每个特征值λj的累计贡献率
在本申请中,为了进一步减少计算量,可以先从满足累积贡献率条件(累计贡献率达到贡献率阈值)的特征值中筛选出前2个最大特征值,并将其对应的特征向量记为α1,α2;
然后再根据公式
再分别将n个
(7)在y={y1,y2,…,yq}所构成的二维平面α内(横纵坐标为图像的前2个主成分,即一个主成分为横坐标,另一个为纵坐标),构建一个简单的矩形e,其四条边分别是eup、edown、eleft、eright,将待聚类的数据集y归置于e所形成的二维封区域中,并运用简单的增量法构建整个空间平面区域的泰森多边形,从而使得q个点分布在各个泰森多边形单元中,其中,全部的母点(落在每个泰森多边形单元中的全部点的几何平均值)都在构造好的矩形e中。
(8)从泰森多边形中找出位于边缘的单元vi并且计算出边缘单元vi和相邻单元vi+1与矩形e边的交点。
计算方法如下:
先找到与vi单元相邻的vi+1单元,连接相邻两个单元的母点并根据这两个母点的坐标值求出连线的斜率k1,同时求出这两个单元公共边的斜率k2。
然后比较k1和k2的大小,若k2>k1,则这两个单元的公共边和矩形e的当前边缘边相交,此时可知vi和vi+1与矩形e边的公共交点,将求得的交点归于vi单元的顶点集中,否则归于vi+1单元的顶点集中。
(9)反复执行步骤(8),直到循环一周后返回最初的单元。
(10)查看各个边缘单元与矩形e的交点,如果交点位于不同的边上,则需要在顶点集中加入矩形交点。
(11)计算泰森多边形有限区域的密度,该密度的值就是区域内所有数据点数与区域的面积的比值,然后计算出区域内的每一个泰森多边形单元的密度,此时该密度的数值等于泰森多边形单元中所包含的数据点数与其面积的比值。
本具体实施方式中,泰森多边形的单元面积计算方式为:
设泰森多边形中某单元的顶点集为c={c1,c2,…,cl,cl+1},其中c1=cl+1,每个顶点坐标表示为(xi,yi)(i=1,2,…,l),则该单元的面积为:
基于得到的第i个泰森多边形单元的面积si,以及该泰森多边形单元包括的数据点数di,根据公式
若存在泰森多边形单元的密度系数不满足预设置的密度系数阈值ηthreshold(即ηi<ηthreshold),则将满足条件(ηi≥ηthreshold)的各单元的质心分别作为新的母点重新生成新的泰森多边形,直到当前生成的泰森多边形的每个单元均满足条件。
最终,得到满足条件的泰森多边形的单元个数为初始聚类数目k和每个单元的母点为初始聚类中心点d1,d2,…,dk。
(12)数据集y={y1,y2,…,yq}、初始聚类数目k、初始聚类中心d1,d2,…,dk;
k个簇分别用c1,c2,…,ck表示,ci中数据对象的个数用ni表示,其中i=1,2,…,k,则每个簇所对应的数据集中的每一个数据对象的权值表达式为:
簇中对象的加权平均值表达式为:
(13)计算目标准则函数值j*,更新每个簇的中心点,直到满足预设的收敛条件即j*<jthreshold。
其中,目标准则函数的表达式为:
(14)将聚类结果转换成对应的图像数据(即将各簇类中的yq替换为对应的xq),在同一个聚类簇中的图像具有相同的图像类别,归为一类。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。