一种图像分类方法及系统
技术领域
本申请涉及图像分类技术领域。尤其涉及一种图像分类方法及系统。
背景技术
图像分类是一种根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。
目前进行图像分类的方法有许多,形式也千差万别,然而,由于图像中包含大量的结构信息,一般不能用传感器直接获取,而只能靠数学分析和变换方法从图像中求取,而对于图像分类来说,分类的速度至关重要,因此,提供一种高速的图像分类方法是本领域技术人员亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种图像分类方法及系统,以提高图像分类的速度。
为实现上述目的,本申请提供了以下技术方案:
一种图像分类方法,该方法包括:
根据待分类图像的特征对所述待分类图像进行分层,并获取符合预设条件的图像层;
利用预先构建的分类器中的变换群获取所述图像层对应的轨道;
将所述轨道的轨道中心与所述分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断所述待分类图像的类别。
优选的,所述分类器的预先构建包括:
根据训练样本图像的特征对所述训练样本图像进行分类,得到不同类别的训练样本图像;
对每个类别的训练样本图像根据与之对应的特征进行分层,得到分层后的训练样本;
获取不同类别的所述训练样本中符合预设条件的图像层以及所述图像层对应的近似轨道中心;
根据所述近似轨道中心确定所述近似轨道中心集合,并计算得到变换群。
优选的,所述利用预先构建的分类器中的变换群获取所述图像层对应的轨道包括:
将所述变换群作用于所述图像层,进行变换后得到所述图像层对应的轨道。
优选的,所述将所述轨道的轨道中心与所述分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断所述待分类图像的类别包括:
采用邻近算法在所述近似轨道中心集合中获取与所述轨道中心距离最近的近似轨道中心;
将所述近似轨道中心对应的类别作为所述待分类图像的类别。
优选的,所述根据待分类图像的特征对所述待分类图像进行分层,并获取符合预设条件的图像层具体包括:
根据待分类图像的特征利用神经网络对所述待分类图像进行分层,并获取符合预设条件的图像层。
一种图像分类系统,该系统包括:
构建模块,用于预先构建分类器;
第一分层模块,用于根据待分类图像的特征对所述待分类图像进行分层,并获取符合预设条件的图像层;
第一获取模块,用于利用预先构建的所述分类器中的变换群获取所述图像层对应的轨道;
判断模块,用于将所述轨道的轨道中心与所述分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断所述待分类图像的类别。
优选的,所述构建模块包括:
分类模块,用于根据训练样本图像的特征对所述训练样本图像进行分类,得到不同类别的训练样本图像;
第二分层模块,用于对每个类别的训练样本图像根据与之对应的特征进行分层,得到分层后的训练样本;
第二获取模块,用于获取不同类别的所述训练样本中符合预设条件的图像层以及所述图像层对应的近似轨道中心;
计算模块,用于根据所述近似轨道中心确定所述近似轨道中心集合,并计算得到变换群。
优选的,所述第一获取模块包括:
变换模块,用于将所述变换群作用于所述图像层以对所述图像层进行变换;
第一获取子模块,用于通过所述变换模块对所述图像层进行变换后获取所述图像层对应的轨道。
优选的,所述判断模块包括:
第二获取子模块,用于采用邻近算法在所述近似轨道中心集合中获取与所述轨道中心距离最近的近似轨道中心;
确定模块,用于将所述近似轨道中心对应的类别作为所述待分类图像的类别。
优选的,所述第一分层模块包括:
分层子模块,用于根据待分类图像的特征利用神经网络对所述待分类图像进行分层;
获取子模块,用于根据所述分层子模块对所述待分类图像进行的分层获取符合预设条件的图像层。
由以上技术方案可知,本申请提供了一种图像分类方法及系统,该分类方法包括:根据待分类图像的特征对所述待分类图像进行分层,并获取符合预设条件的图像层;利用预先构建的分类器中的变换群获取所述图像层对应的轨道;将所述轨道的轨道中心与所述分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断所述待分类图像的类别。该方法通过进行分层,然后利用预先构建的分类器寻找轨道,根据获取的轨道的轨道中心与分类器中的近似轨道中心进行对比,判断得到待分类图像的类别,该分类方法既满足了速度的需求,且从根本上进一步提高了图像分类的速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例一提供的一种图像分类方法的流程图;
图2为本申请实施例一提供的一种分类器的构建方法的流程图;
图3为本申请实施例一提供的一种采用贝叶斯网络对进行图像分层的示意图;
图4为本申请实施例二提供的一种图像分类系统的结构示意图;
图5为本申请实施例二提供的一种构建模块的结构示意图;
图6为本申请实施例三提供的一种利用神经网络进行图像分层的示意图;
图7为本申请实施例三提供的一种利用图像压缩进行图像分层的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供了一种能够高速进行图像分类的方法和系统,具体方案如下所述:
实施例一
本申请实施例一提供了一种图像分类方法,如图1所示,图1为本申请实施例一提供的一种图像分类方法的流程图。该图像分类方法包括:
S101:根据待分类图像的特征对待分类图像进行分层,并获取符合预设条件的图像层;
具体的,符合预设条件的图像层是指对图像分类最有利的图像层,即具有较高识别度的图像层。
事物的运动从宏观宇宙到微观粒子,都可以按分层的方式来进行观察和研究。基于这样的认识,我们可以将图像空间看成是处于不同层次的图像所构成,每一个层次可以代表某一种维度的图像,不同层次图像之间的变换可以看成是能量的一种跃迁,在图像的处理上表示为降维或者维度扩展;处于同一层次的图像由不同类别的图像构成,每一种类别的图像形成一条轨道,通过样本学习并寻找轨道,就能够对图像进行分类。
本发明通过有效利用图像内在联系或结构信息,对图像空间进行层次建模,然后针对其中某一层的图像,学习该层的轨道分布,接着根据轨道来对图像进行分类或检索。
其中,在本申请中,根据待分类图像的特征对待分类图像进行分层,并获取符合预设条件的图像层具体可以包括:根据待分类图像的特征利用神经网络对待分类图像进行分层,,并获取符合预设条件的图像层。当然,在本申请中还可以采用降维、图像分割等方法,将图像按特征对图像进行分层,以达到提取不同等次特征的目的。
当待分类图像的底层空间(低纬度)信息可以用于分类、识别对象时,那么就可以采用降维或变换的方式进行分层;当待分类图像包含明显的结构信息时,比如人脸(五官的相对位置),那么就可以采用结构分层等方式进行分层。
在对图像空间进行层次分析的时候,可以有很多方法,目前最多的就是使用深度学习的模式来对图像进行处理。处于不同层次的图像可以是通过各种方式变换得到的,比如采用神经网络进行变换等。
S102:利用预先构建的分类器中的变换群获取图像层对应的轨道;
本申请中,需要预先构建分类器,然后利用预先构建的分类器中的变换群作用于图像层,进行变换后能够精确的获取图像层对应的轨道。
现有技术中,待分类图像的轨迹各异,即使是相同类别的图像,可能由于各种原因存在大同小异的问题,如手写体的“2”,由于写法不同,有高矮胖瘦的区别。如果该手写体的“2”为瘦长型的,那么直接获取的轨迹在进行分类时可能会与手写体的“3”的轨迹近似,这样就会造成错分。
本申请中通过利用预先构建的分类器中的变换群对待分类的图像进行变换,置入轨道中,得到该待分类图像的较为精确的轨道,然后与预先所得的近似轨道中心点进行比较,最接近的中心点所属的轨道类别即为待分类图像的类别。其中,每条轨道属于一个类别,并有若干个中心点。
其中,如图2所示,图2为本申请实施例一提供的一种分类器的构建方法的流程图,该分类器的预先构建包括:
S201:根据训练样本图像的特征对训练样本图像进行分类,得到不同类别的训练样本图像;
训练样本中的图像有各种类别,将训练样本中的图像根据各自类别进行分类。具体的,由于一般情况下,该训练样本中的图像均为已知类别的图像,故本步骤不是本方法的关键步骤。
S202:对每个类别的训练样本图像根据与之对应的特征进行分层,得到分层后的训练样本;
具体的,对训练样本进行分层具体也可以采用神经网络或者其他方法,神经网络是一种监督学习方式,由于采用误差修正学习调节神经网络的自由参数以使网络输出信号逼近目标输出,而误差修正学习通过最小化代价函数或性能指标来实现,此时采用误差项作为代价函数,故定义误差项为:
其中,表示误差项,D表示训练集中训练样例的个数,outputs表示第d个训练样本输出单元的个数,tkd表示第d个训练样本的期望输出,okd表示第d个训练样本下的第k个输出单元的实际输出。
多层神经网络要想具有良好的性能,通常需要网络的自由参数的初始化值接近于最优值。将神经网络视为RBM(受限玻尔兹曼机)堆,然后从低层RBM开始进行训练,当低层RBM训练完成后,将低层RBM的隐藏层的输出作为高一层RBM的输入层,再训练高一层的RBM,这样,就可以进行逐层预训练。通过逐层预训练之后,再通过BP(ErrorBackPropagation,误差反向传播)算法对参数进行微调。
还可以是采用简单的维度变换如图像压缩等,
当然,还可以通过其他方式对图像进行变换,变换前后的图像处于不同的层次。逐层预训练的目的就是获得接近于最优值的网络自由参数的初始化值。
通过上述方式,将图像划分成不同层次,然后充分利用图像之间的内在结构关系,按照处理问题的方便,综合使用不同层次的信息来提高问题解决的效率。
上述公式的具体解析根据层之间的关系来定,如果层之间具有概率依赖关系,可以采用贝叶斯层次结构对公式进行分析,如果没有明显的依赖关系,可以根据先验,按权重方式进行整合。
具体来说,如果采用降维等图像变换方式,则可以将变换前后的不同层赋予权重W,各层所得结果依照权重W进行组合可得到更好的结果;如果图像通过结构信息来分层,则可以采用贝叶斯网络对其进行处理,如图3所示(仅作示意)。在图3中,最上层即顶层代表人脸,可以将人脸划分为1~4(上左、上右、下左、下右)四个部分,即顶层下面的第二层,每个部分可以确定与双眼、双眉、鼻子、嘴的关系,如图3示意,最底层中1表示左眼,2表示右眼,3表示鼻子,4表示左眉,5表示嘴,6表示右眉等,从而找出整幅图像中人脸(不同的人脸具有不同的结构):
θ*=argmaxp(I,L|θ)p(θ)
然后,通过最大化后验概率求出解决方案θ(代表一种最可能的分割结构)。
S203:获取不同类别的训练样本中符合预设条件的图像层以及图像层对应的近似轨道中心;
假定一个二值图像X可以表示为:X=(g1,g2……),设一个群G作用于一个图像集合X,则X中的一个元素,即一副图像x可以在群G的作用下发生变换,变换后的像仍然处于集合X中,则图像x的轨道就表示为Gx:
Gx={g.x|g∈G}。
群的性质保证了集合中像元的轨道集在群的置换作用下形成了X的一个划分。换句话说,如果存在群G中的一个元素g使得等式g.x=y成立,那么x和y是等价的,即:x~y,在这种群作用下,轨道就是一些等价类。两个元素x和y等价,当且仅当它们具有相同的轨道即:Gx=Gy,而X在群G作用下的轨道集写作:X/G,也称作群作用的商集,在几何情形下可以称为轨道空间。
设M表示聚类后形成的样本轨道空间点集,G表示变换群,其中,一旦选定中心点后,M即是确定的:
定义1:轨道的定义,若是G在M上作用并且x∈M,则x的轨道定义如下:
在有限维情形,Orb(x)是M的浸入子流形。对于x∈M,在x处的稳定(或对称)群由
给出。
定义2:轨道空间的定义,等价类的集合M/G即称为轨道空间。
1)求线性结构中的不变群:
设M是待分类图像集合经过聚类后形成的图像集,G是作用于M的一个局部李变换群,如果对M的一个子群中的任意一个和g∈G均有即则M的一个子集就是G的不变子集。依此可类推得,若M的子集和是G不变子集,则和也是G不变子集。
2)找线性结构中的生成元:
设G是作用于M的局部李交换群,对其李代数Ge中的任一非零元素v,有相应的单参数子群g(tv)。因此可得M上的向量场v,则称之为G的生成元。并且Ge到M向量场李代数L(M)的一个李代数同态可表示为:
σ:Ge→L(M)。
有了这两个基本概念,则来构造近似轨道学习问题的具体方法:
a假设聚类后的样例空间中有m个独立向量(将图像展成向量)
公式(1)中,m表示样例空间中的类别个数,i表示每一类所产生的近似轨道节点的个数,建立关系式:
xmi=Gxmj,i,j=1,...k;m=1,...n,(2)
b利用关系式求变换群G
通过公式(2)我们来求变换群G,保证每一个类别的元素在变换作用下都属于其唯一的轨道,不同的轨道构成整个聚类中心空间。
此时,我们要考虑的x,其数量(根据K的大小而定)大大减小,在这样的空间中寻找变换群是可行的,这从某种角度来看,近似的解决了从输入数据中直接学习变换群的问题。
具体的,设M是待分类图像集合经过聚类后形成的图像集,G是作用于M的一个局部李变换群,将聚类后的样例空间中图像展成m个独立向量。根据训练样本利用先验知识,确定样本中每一类的子区域个数Km,对每一个子区域利用K-means(K可以根据经验进行微调)找出每个子区域的中心点,重复该步骤,直到每个类别的中心点都求出。
假定不同图像经过K-means找到近似轨道的中心点后,构成的集合为F={Fi1,Fi2,...,Fik},Fij∈Rn*n;i=1,...m;j=1,..k,m为训练集中所有图像的类别;k为每一类中所找到的中心点个数即该类近似轨道的节点,把每一个中心点展开成向量,这样可以形成矩阵这里每一列向量都代表一个近似轨道中心点。
S204:根据近似轨道中心确定近似轨道中心集合,并计算得到变换群。
根据上述步骤获取的近似轨道中心点构成的近似轨道中心集合,按照公式(2)求出变换群G,输出(1)。
S103:将轨道的轨道中心与分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断待分类图像的类别。
将轨道的轨道中心与多个近似轨道中心进行距离对比,判断距离轨道中心最短的近似轨道中心所对应的类别为待分类图像的类别。具体的,采用邻近算法在近似轨道中心集合中获取与轨道中心距离最近的近似轨道中心,然后将近似轨道中心对应的类别作为待分类图像的类别,完成待分类图像的分类。
输入待测试样本,用分类器中求出的变换群G作用于x后,将变换后的结果与近似轨道中的节点求最近邻,或者使用KNN判别测试样本的类别。
由以上技术方案可知,本申请实施例一提供了一种基于轨道变换的图像分类方法,包括:根据待分类图像的特征对待分类图像进行分层并获取符合预设条件的图像层;利用预先构建的分类器中的变换群获取图像层对应的轨道;将轨道的轨道中心与分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断待分类图像的类别。该方法通过进行分层,然后利用预先构建的分类器寻找轨道,根据获取的轨道的轨道中心与分类器中的近似轨道中心进行对比,判断得到待分类图像的类别,该分类方法既满足了速度的需求,且从根本上进一步提高了图像分类的速度。
实施例二
在实施例一的基础上,本申请实施例二提供了一种图像分类系统,如图4所示,图4为本申请实施例二提供的一种图像分类系统的结构示意图。该系统包括:构建模块301、第一分层模块302、第一获取模块303以及判断模块304,其中,
构建模块301,用于预先构建分类器;
具体的,如图5所示,图5为本申请实施例二提供的一种构建模块的结构示意图,该构建模块包括:分类模块401、第二分层模块402、第二获取模块403以及计算模块404,其中,
分类模块401,用于根据训练样本图像的特征对训练样本图像进行分类,得到不同类别的训练样本图像;
第二分层模块402,用于对每个类别的训练样本图像根据与之对应的特征进行分层,得到分层后的训练样本;
第二获取模块403,用于获取不同类别的训练样本中符合预设条件的图像层以及图像层对应的近似轨道中心;
计算模块404,用于根据近似轨道中心确定近似轨道中心集合,并计算得到变换群。
第一分层模块302,用于根据待分类图像的特征对待分类图像进行分层,并获取符合预设条件的图像层;
在本申请中,第一分层模块具体用于根据待分类图像的特征利用神经网络对待分类图像进行分层。具体的,第一分层模块包括:
分层子模块,用于根据待分类图像的特征利用神经网络对待分类图像进行分层;
获取子模块,用于根据分层子模块对待分类图像进行的分层获取符合预设条件的图像层。
具体的,在本申请中,第一分层模块和第二分层模块可以为同一个分层模块,具体在本申请中不做限制,可根据实际需要设置。
第一获取模块303,用于利用预先构建的分类器中的变换群获取图像层对应的轨道;
具体的,第一获取模块包括:变换模块和第一获取子模块,其中,
变换模块,用于将变换群作用于图像层,以对图像层进行变换;
第一获取子模块,用于通过变换模块对图像层进行变换后,获取图像层对应的轨道。
判断模块304,用于将轨道的轨道中心与分类器中的近似轨道中心集合中的多个近似轨道中心进行对比,判断待分类图像的类别。
具体的,在本申请中,判断模块包括:
第二获取子模块,用于采用邻近算法在近似轨道中心集合中获取与轨道中心距离最近的近似轨道中心;
确定模块,用于将近似轨道中心对应的类别作为待分类图像的类别。
具体的在本实施例中不再赘述,相同部分可参考实施例一的相关描述。
实施例三
基于实施例一给出的图像分类方法和实施例二给出的图像分类系统,本申请实施例三提供了一个具体的实施例及测试结果。
本实施例分别在MNIST手写体数据库、ORL人脸数据库上测试本发明算法的性能。
MNIST手写体数字数据库是美国著名数据集NIST的子集,是模式识别常用的实验数据集之一。MNIST手写体数据库共有10类,共有60000个训练样本和10000个测试样本。每个图像的大小是28×28像素。
ORL人脸数据库包含40人的400张人脸图像;每个人的图片总数为10张。其中有一些人脸的图像是在不同的时期拍摄的。人的脸部表情和脸部细节有着不同程度的变化,比如睁眼或闭眼、笑或非笑以及戴眼镜或不戴眼镜;人脸姿态也有相当程度的变化,深度旋转和平面旋转可达20度;人脸大小也有多达10%变化。每张图像数字化并归一化,其灰度值为0~255。由于原始维度太大,我们选取随机降维,降到1024维。选择40%样本作为训练集,其余的60%作为测试集。
(1)图像分层
处于不同层次的图像可以是通过各种方式变换得到的,比如采用神经网络进行变换:
神经网络是一种监督学习方式,先定义误差:
通过逐层预训练之后,再通过BP算法对参数进行微调。得到如图6所示的图像层,其中图6中(a)为手写体数字原始图片,(b)为变换后的可视化基。也可以是简单的维度变换如图像压缩等,可以将图像表示成如图7的层次关系,其中,图7中(a)表示原始头像图片,(b)表示一次压缩后的图片,(c)表示二次压缩后的图片。
当然,还可以通过其他方式对图像进行变换,变换前后的图像处于不同的层次。
(2)轨道建模:
设M是待分类图像集合经过聚类后形成的图像集,G是作用于M的一个局部李变换群,将聚类后的样例空间中图像展成m个独立向量。
步骤1:输入图像样本,利用先验知识,确定样本中每一类的子区域个数Km,对每一个子区域利用K-means(K可以根据经验进行微调)找出每个子区域的中心点,重复之前操作,直到每个类别的中心点都求出;
步骤2:假定不同图像经过K-means找到近似轨道的中心点后,构成的集合为F={Fi1,Fi2,...,Fik},Fij∈Rn*n;i=1,...m;j=1,..k,m为训练集中所有图像的类别;k为每一类中所找到的中心点个数即该类近似轨道的节点,把每一个中心点展开成向量,这样可以形成矩阵这里每一列向量都代表一个近似轨道中心点;求出变换群G,输出(1)。
(3)图像分类
输入待测试样本x,用(2)求出的G作用于x,将变换后的结果与近似轨道中的节点求最近邻,或者使用KNN判别测试样本的类别。
本发明的效果可以通过如下实验验证:
在MNIST手写体上,分两种情况做实验。第一种情况:分别取两种不同的中心点K=5和K=7。为了加快运行速度,在第一种情形下,我们选择1,3,7,8和9做实验。这是因为1,3和7比较相似,8和9比较相似。从这5个不同的数字里,每个数字我们随机选取45个作为训练,再随机选取105个作为测试。K作为选取的中心点个数。分类器我们选用的是最近邻分类器。
表1在MNIST库上性能比较
第二种情况,分别取样本集0-9的部分数据做训练集X,再将数据集剩余部分当作测试集,训练样本集0-9总个数为约为10000,测试数据为60000,用kmeans算法,取得24个中心簇,分别记为K(k1,k2,...,k24);利用最近邻分类器进行识别。
表2在MNIST库上性能比较2
该实验中,测试用时间约为140.160506s,平均识别时间为0.0023s。平均识别率为92.20300。
通过MNIST数据库上完成的实验,可以看出本算法在训练时并不需要太多的样本,而测试数据识别率在保持不降低的情形下,时间大大的减小,对于时间要求高的应用场合有很好的实用意义。
表3在ORL库上性能比较
通过在人脸库上的实验同样可以观察到,本文提出的算法中保证识别率的情形下,能将时间极大的缩短。对于时间要求高的应用场合有很好的实际意义。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。