图像分类方法及装置与流程

文档序号:13760837阅读:260来源:国知局
图像分类方法及装置与流程

本公开涉及图像处理领域,特别涉及一种图像分类方法及装置。



背景技术:

随着智能终端的普及,使用智能终端随时随地的记录生活已经成为用户的生活常态。随着用户保存在智能终端中的图像越来越多,图像的分类整理成为人们研究的热点问题。

相关技术中采用Bag-of-Words(词袋)模型对图像进行分类,其中,Bag-of-Words模式以图像的局部纹理特征来表示图像,可以取得较好的图像分类的效果。



技术实现要素:

为解决相关技术中的问题,本公开提供了一种图像分类方法及装置。

根据本公开实施例的第一方面,提供一种图像分类方法,所述方法包括:

获取待分类的图像;

确定所述图像中每个对象的类别信息和每两个对象之间的位置信息;

根据每个对象的类别信息和每两个对象之间的位置信息确定所述图像的场景;

按照所述图像的场景对所述图像进行分类。

可选的,所述确定所述图像中每个对象的类别信息和每两个对象之间的位置信息,包括:

对于从所述图像中选取的n个滑动窗口中的每个滑动窗口中的对象,读取根据预设算法对所述对象进行计算得到的m维的第一向量,将所述第一向量作为所述对象的类别信息,所述第一向量包括所述对象分别属于预设的m个类别中的每个类别的概率;

对于筛选出的p个第一向量所对应的p个对象中的每个对象,计算所述对象在所述图像中的绝对位置;

对于所述p个对象中的每两个对象,根据所述两个对象在所述图像中的绝对位置计算所述两个对象的位置关系是预设的q种位置关系中的每种位置关系的概率,得到q维的第二向量,将所述第二向量作为所述两个对象之间的位置信息,n、m、p和q均为正整数。

可选的,所述计算所述对象在所述图像中的绝对位置,包括:

读取所述对象所在的滑动窗口的原始坐标;

读取根据所述预设算法对所述对象进行计算得到的调整坐标,所述调整坐标用于对所述原始坐标进行调整;

根据所述调整坐标对所述原始坐标进行调整,将调整结果确定为所述对象在所述图像中的绝对位置。

可选的,所述方法还包括:

按照预设的卷积窗口对所述图像进行卷积,得到全局矩阵;

从所述图像中选取n个滑动窗口;

对于所述n个滑动窗口中的每个滑动窗口,在所述全局矩阵中查找与所述滑动窗口具有映射关系的局部矩阵;

对查找到的n个局部矩阵进行池化处理;

对池化处理得到的n个局部矩阵进行全连接处理,得到所述图像中每个对象的所述第一向量;

筛选满足预设条件的每个第一向量所对应的对象,得到所述p个对象,所述预设条件是所述第一向量中存在至少一个概率值大于预设阈值;

计算所述p个对象中每个对象所在的滑动窗口的所述调整坐标。

可选的,所述根据每个对象的类别信息和每两个对象之间的位置信息确定所述图像的场景,包括:

将所述图像中每个对象的第一向量相接合,得到m×p维的第三向量;

将所述图像中每两个对象对应的第二向量相接合,得到q×p×(p-1)/2维的第四向量;

将所述第三向量和所述第四向量相接合,得到m×p+q×p×(p-1)/2维的第五向量;

将所述第五向量输入到预设的SVM(Support Vector Machine,支持向量机)中,将所述SVM的输出作为所述图像的场景。

根据本公开实施例的第二方面,提供一种图像分类装置,所述装置包括:

图像获取模块,被配置为获取待分类的图像;

信息确定模块,被配置为确定所述图像获取模块得到的所述图像中每个对象的类别信息和每两个对象之间的位置信息;

场景确定模块,被配置为根据所述信息确定模块确定的每个对象的类别信息和每两个对象之间的位置信息确定所述图像的场景;

图像分类模块,被配置为按照所述场景确定模块确定的所述图像的场景对所述图像进行分类。

可选的,所述信息确定模块,包括:

第一确定子模块,被配置为对于从所述图像中选取的n个滑动窗口中的每个滑动窗口中的对象,读取根据预设算法对所述对象进行计算得到的m维的第一向量,将所述第一向量作为所述对象的类别信息,所述第一向量包括所述对象分别属于预设的m个类别中的每个类别的概率;

位置计算子模块,被配置为对于筛选出的p个第一向量所对应的p个对象中的每个对象,计算所述对象在所述图像中的绝对位置;

第二确定子模块,被配置为对于所述p个对象中的每两个对象,根据所述位置计算子模块得到的所述两个对象在所述图像中的绝对位置计算所述两个对象的位置关系是预设的q种位置关系中的每种位置关系的概率,得到q维的第二向量,将所述第二向量作为所述两个对象之间的位置信息,n、m、p和q均为正整数。

可选的,所述位置计算子模块,还被配置为:

读取所述对象所在的滑动窗口的原始坐标;

读取根据所述预设算法对所述对象进行计算得到的调整坐标,所述调整坐标用于对所述原始坐标进行调整;

根据所述调整坐标对所述原始坐标进行调整,将调整结果确定为所述对象在所述图像中的绝对位置。

可选的,所述装置还包括:

卷积计算模块,被配置为按照预设的卷积窗口对所述图像进行卷积,得到全局矩阵;

窗口选取模块,被配置为从所述图像中选取n个滑动窗口;

矩阵查找模块,被配置为对于所述窗口选取模块得到的所述n个滑动窗口中的每个滑动窗口,在所述卷积计算模块得到的所述全局矩阵中查找与所述滑动窗口具有映射关系的局部矩阵;

第一处理模块,被配置为对所述矩阵查找模块查找到的n个局部矩阵进行池化处理;

第二处理模块,被配置为对所述第一处理模块池化处理得到的n个局部矩阵进行全连接处理,得到所述图像中每个对象的所述第一向量;

对象筛选模块,被配置为筛选满足预设条件的每个第一向量所对应的对象,得到所述p个对象,所述预设条件是所述第一向量中存在至少一个概率值大于预设阈值;

第三处理模块,被配置为计算所述对象筛选模块得到的所述p个对象中每个对象所在的滑动窗口的所述调整坐标。

可选的,所述场景确定模块,包括:

第一接合子模块,被配置为将所述图像中每个对象的第一向量相接合,得到m×p维的第三向量;

第二接合子模块,被配置为将所述图像中每两个对象对应的第二向量相接合,得到q×p×(p-1)/2维的第四向量;

第三接合子模块,被配置为将所述第一接合子模块得到的所述第三向量和所述第二接合子模块得到的所述第四向量相接合,得到m×p+q×p×(p-1)/2维的第五向量;

场景确定子模块,被配置为将所述第三接合子模块得到的所述第五向量输入到预设的SVM中,将所述SVM的输出作为所述图像的场景。

根据本公开实施例的第三方面,提供一种图像分类装置,所述装置包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取待分类的图像;

确定所述图像中每个对象的类别信息和每两个对象之间的位置信息;

根据每个对象的类别信息和每两个对象之间的位置信息确定所述图像的场景;

按照所述图像的场景对所述图像进行分类。

本公开的实施例提供的技术方案可以包括以下有益效果:

通过确定图像中每个对象的类别信息和每两个对象之间的位置信息,根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景,从而按照图像的场景对图像进行分类,可以从全局的角度对图像进行分类,解决了根据图像的局部纹理特征对图像进行分类,导致对图像的分类不准确的问题,达到了提高图像的分类准确性的效果。

通过筛选满足预设条件的每个第一向量所对应的对象,得到p个对象,该预设条件是第一向量中存在至少一个概率值大于预设阈值;计算p个对象中每个对象所在的滑动窗口的调整坐标,使得终端可以删除不完整的对象,保留完整的对象,并只计算完整的对象之间的调整坐标,以节省计算不完整的多个对象之间的调整坐标所占用的资源。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本公开说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种图像分类方法的流程图。

图2A是根据另一示例性实施例示出的一种图像分类方法的流程图。

图2B是根据另一示例性实施例示出的一种绝对位置计算方法的流程图。

图3是根据一示例性实施例示出的一种图像分类装置的框图。

图4是根据一示例性实施例示出的一种图像分类装置的框图。

图5是根据一示例性实施例示出的一种用于图像分类的装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种图像分类方法的流程图,该图像分类方法应用于终端中,如图1所示,该图像分类方法包括以下步骤。

在步骤101中,获取待分类的图像。

在步骤102中,确定图像中每个对象的类别信息和每两个对象之间的位置信息。

在步骤103中,根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景。

在步骤104中,按照图像的场景对该图像进行分类。

综上所述,本公开提供的图像分类方法,通过确定图像中每个对象的类别信息和每两个对象之间的位置信息,根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景,从而按照图像的场景对图像进行分类,可以从全局的角度对图像进行分类,解决了根据图像的局部纹理特征对图像进行分类,导致对图像的分类不准确的问题,达到了提高图像的分类准确性的效果。

图2A是根据另一示例性实施例示出的一种图像分类方法的流程图,该图像分类方法应用于终端中,如图2A所示,该图像分类方法包括如下步骤。

在步骤201中,获取待分类的图像。

待分类的图像可以是终端拍摄得到的图像,也可以是终端从网络中下载并存储的图像,还可以是终端从其他终端获取到的图像,本实施例不限定图像的来源。

其中,终端获取的图像中需要包括对象,对象可以是人物、动物、植物、建筑物等等,本实施例不作限定。

在步骤202中,按照预设的卷积窗口对图像进行卷积,得到全局矩阵。

本实施例中,终端将图像输入到预设算法中,利用预设算法对图像进行处理。其中,预设算法可以是Fast(快速)RCNN(Fast Region Based Convolutional Neural Network,基于区域的卷积神经网络)算法,下面以Fast RCNN算法进行举例说明。

在实现时,用户可以预先设置Fast RCNN算法中的卷积窗口,当终端将图像输入到Fast RCNN算法后,终端利用卷积窗口对图像进行卷积,得到全局矩阵。其中,全局矩阵是指对图像进行卷积后得到的完整的矩阵。

本实施例中,全局矩阵可以是二维矩阵,也可以是三维矩阵。当全局矩阵是二维矩阵时,图像没有RGB特征,此时全局矩阵为r×s的全局矩阵;当全局矩阵是三维矩阵时,图像具有RGB特征,此时全局矩阵为r×s×t的全局矩阵,t为3,r、s均为正整数。其中,R代表红色、G代表绿色、B代表蓝色。

在步骤203中,从图像中选取n个滑动窗口。

用户可以预先设置在图像中横向和纵向选取的滑动窗口的数量,终端根据该数量选取n个滑动窗口,n为正整数。本实施例不限定滑动窗口的形状。

由于图像中的对象的尺寸不定,一个滑动窗口内可能包括多个对象,也可能只包括一个对象的部分,因此,为了提高选取的滑动窗口能够包括一个完整的对象的概率,终端还可以对滑动窗口设置不同的尺寸,并在图像中的每个位置选取尺寸不同的至少两个滑动窗口。

例如,假设用户设置在图像中横向选取60个滑动窗口,纵向选取80个滑动窗口,且在每个位置选取3个尺寸不同的滑动窗口,则终端最终选取得到的60×80×3个滑动窗口。

在终端选取到n个滑动窗口后,还需要获取每个滑动窗口的原始坐标,以标识滑动窗口。其中,原始坐标可以由滑动窗口左上角和右下角的坐标确定,也可以由滑动窗口右上角和左下角的坐标确定,还可以由左上角、右上角、左下角、右下角这四者中的三个或四个坐标确定。

原始坐标中的第一个数值指示横向位置,第二个数值指示纵向位置。

其中,本实施例不限定步骤202和步骤203之间的执行顺序。

在步骤204中,对于n个滑动窗口中的每个滑动窗口,在全局矩阵中查找与该滑动窗口具有映射关系的局部矩阵。

由于全局矩阵是对图像进行卷积得到的,而每个滑动窗口都是从图像中选取的,因此,每个滑动窗口与全局矩阵中对应位置的部分数据具有映射关系,本实施例中将全局矩阵中与滑动窗口具有映射关系的部分数据称为局部矩阵。

其中,局部矩阵与滑动窗口的位置的表达方式相同。即,如果终端利用滑动窗口的左上角和右下角的坐标表示滑动窗口的原始坐标,那么,终端利用局部矩阵的左上角的数据和右下角的数据的坐标表示局部矩阵的原始坐标。

例如,三维的r×s×t的全局矩阵中,一个滑动窗口对应的局部矩阵为a×b×t,a为小于r的正整数,b为小于s的正整数。

在步骤205中,对查找到的n个局部矩阵进行池化处理。

终端从局部矩阵中每k个数据中提取出一个数据进行保留,删除剩余k-1个数据,以达到降低局部矩阵的维数的目的,减少计算复杂度,k≥2。

在从k个数据中提取一个数据时,终端可以取k个数据中的最大值,将该最大值作为提取出的数据,删除剩余k-1个数据。

可选的,终端还可以循环执行步骤202至步骤205,以提高计算结果的准确性。

在步骤206中,对池化处理得到的n个局部矩阵进行全连接处理,得到图像中每个对象的第一向量,第一向量包括对象分别属于预设的m个类别中的每个类别的概率。

在将图像输入到Fast RCNN算法中进行处理之前,用户还需要指定对象可能的m个类别,这样,终端可以计算出每个滑动窗口中的对象分别属于这m个类别的概率,得到m维的第一向量,m为正整数。

例如,用户指定的4个类别分别为人物、动物、植物和建筑物,且终端计算出某个滑动窗口中的对象属于这4个类别的概率为0.6、0.2、0.1、0.1,则该对象的第一向量为(0.6,0.2,0.1,0.1)。

在步骤207中,筛选满足预设条件的每个第一向量所对应的对象,得到p个对象,预设条件是第一向量中存在至少一个概率值大于预设阈值。

全连接处理后,终端除了得到第一向量,还可以得到调整坐标,调整坐标的第一个数值指示横向调节距离,第二个数值指示纵向调节距离。其中,调整方向可以由调整坐标中数值的符号表示。例如,符号为正表示向右或向下移动,符号为负表示向左或向上移动。假设某个对象所在的滑动窗口的调整坐标为(5,4),则终端需要将该滑动窗口向右移动5个单位长度,向下移动4个单位长度。

由于对图像进行处理的目的是确定完整的多个对象在图像中的位置关系,而选取的滑动窗口中的对象可能是完整的对象,也可能是不完整的对象,因此,为了节省计算不完整的多个对象之间的调整坐标所占用的资源,终端还可以在计算每两个对象之间的调整坐标之前,对对象进行筛选。例如,滑动窗口1选取的对象是完整的人、滑动窗口2选取的对象是人的头部、滑动窗口3选取的对象是人的腿,则终端可以删掉人的头部和腿这两个对象,保留完整的人这个对象。

在过滤对象时,由于完整的对象包含的特征较多,确定该完整的对象属于某个类别的概率也越高,因此,终端可以根据对象的第一向量对对象进行筛选。例如,终端可以读取对象的第一向量中的每个概率值,检测该概率值是否大于预设阈值,当该概率值大于预设阈值时,说明该对象属于某个类别的概率较高,该对象是完整对象的概率越高,保留该对象;当第一向量中每个概率值都小于等于预设阈值时,说明该对象不是完整的对象的概率较高,删掉该对象。

在步骤208中,计算p个对象中每个对象所在的滑动窗口的调整坐标,调整坐标用于对对象所在的滑动窗口的原始坐标进行调整。

假设筛选之后最终得到p个对象,则终端还需要通过全连接处理对该p各对象进行计算,得到每两个对象之间的调整坐标。

在步骤209中,对于从图像中选取的n个滑动窗口中的每个滑动窗口中的对象,读取根据预设算法对该对象进行计算得到的m维的第一向量,将该第一向量作为该对象的类别信息。

在步骤210中,对于筛选出的p个第一向量所对应的p个对象中的每个对象,计算该对象在图像中的绝对位置。

终端在得到每个对象的调整坐标后,还需要对该对象所在的滑动窗口的原始坐标进行调整,以得到该滑动窗口的绝对位置。

请参考图2B,计算对象在图像中的绝对位置,包括:

在步骤2101中,读取对象所在的滑动窗口的原始坐标。

在步骤2102中,读取根据预设算法对对象进行计算得到的调整坐标。

在步骤2103中,根据调整坐标对原始坐标进行调整,将调整结果确定为对象在图像中的绝对位置。

在步骤211中,对于p个对象中的每两个对象,根据两个对象在图像中的绝对位置计算两个对象的位置关系是预设的q种位置关系中的每种位置关系的概率,得到q维的第二向量,将第二向量作为两个对象之间的位置信息。

在将图像输入到Fast RCNN算法中进行处理之前,用户还需要指定q种位置关系,这样,终端可以计算出每个两个对象的位置关系是预设的q种位置关系中的每种位置关系的概率,得到q维的第二向量,q为正整数。例如,当q为10时,10种位置关系分别为前、后、左、右、上、下、远、近、里、外。

为了便于说明,以3个对象和上述前、后、左、右这四种位置关系为例进行举例说明,则对象1和对象2的第二向量为(0.1,0.2,0.7,0),对象1和对象3的第二向量为(0.2,0.3,0.2,0.3),对象2和对象3的第二向量为(0.8,0,0.1,0.1)。

在步骤212中,将图像中每个对象的第一向量相接合,得到m×p维的第三向量。

例如,对象1的第一向量为(0.1,0.1,0.8,0),对象2的第一向量为(0.2,0.1,0.7,0),则接合得到的第三向量为(0.1,0.1,0.8,0,0.2,0.1,0.7,0)。

本实施例不对多个第一向量的接合顺序作限定。

在步骤213中,将图像中每两个对象对应的第二向量相接合,得到q×p×(p-1)/2维的第四向量。

例如,对象1和对象2的第二向量为(0.1,0.2,0.7,0),对象1和对象3的第二向量为(0.2,0.3,0.2,0.3),对象2和对象3的第二向量为(0.8,0,0.1,0.1),则接合得到的第四向量为(0.1,0.2,0.7,0,0.2,0.3,0.2,0.3,0.8,0,0.1,0.1)。

本实施例不对多个第二向量的接合顺序作限定。

在步骤214中,将第三向量和第四向量相接合,得到m×p+q×p×(p-1)/2维的第五向量。

例如,第三向量为(0.1,0.1,0.8,0,0.2,0.1,0.7,0),第四向量为(0.1,0.2,0.7,0,0.2,0.3,0.2,0.3,0.8,0,0.1,0.1),则接合得到的第五向量为(0.1,0.1,0.8,0,0.2,0.1,0.7,0,0.1,0.2,0.7,0,0.2,0.3,0.2,0.3,0.8,0,0.1,0.1)。

在步骤215中,将第五向量输入到预设的SVM中,将SVM的输出作为图像的场景。

本实施例中,SVM是一个学习模型,用来识别图像的场景。在实现时,终端将大量指定了图像的场景和这些图像的第五向量的训练样本输入到SVM中,使得SVM进行学习得到一个目标函数,再将需要进行场景识别的图像的第五向量输入到该SVM中,该SVM利用该目标函数对该第五向量进行计算,并对计算结果进行输出,该输出即为图像的场景。

其中,第五向量中第三向量和第四向量的接合顺序与SVM中训练样本的接合顺序相同。即,SVM中训练样本的接合顺序为先第三向量后第四向量时,第五向量的接合顺序为先第三向量后第四向量;SVM中训练样本的接合顺序为先第四向量后第三向量时,第五向量的接合顺序为先第四向量后第三向量。

例如,当图像中的对象包括人和马,且人与马的位置关系是人位于马的上方,则确定出图像的场景为骑马场景。

在步骤216中,按照图像的场景对图像进行分类。

综上所述,本公开提供的图像分类方法,通过确定图像中每个对象的类别信息和每两个对象之间的位置信息,根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景,从而按照图像的场景对图像进行分类,可以从全局的角度对图像进行分类,解决了根据图像的局部纹理特征对图像进行分类,导致对图像的分类不准确的问题,达到了提高图像的分类准确性的效果。

通过筛选满足预设条件的每个第一向量所对应的对象,得到p个对象,该预设条件是第一向量中存在至少一个概率值大于预设阈值;计算p个对象中每个对象所在的滑动窗口的调整坐标,使得终端可以删除不完整的对象,保留完整的对象,并只计算完整的对象之间的调整坐标,以节省计算不完整的多个对象之间的调整坐标所占用的资源。

图3是根据一示例性实施例示出的一种图像分类装置的框图,该图像分类装置应用于终端中,如图3所示,该图像分类装置包括:图像获取模块310、信息确定模块320、场景确定模块330和图像分类模块340。

该图像获取模块310,被配置为获取待分类的图像;

该信息确定模块320,被配置为确定图像获取模块得到的图像中每个对象的类别信息和每两个对象之间的位置信息;

该场景确定模块330,被配置为根据信息确定模块320确定的每个对象的类别信息和每两个对象之间的位置信息确定图像的场景;

该图像分类模块340,被配置为按照场景确定模块330确定的图像的场景对图像进行分类。

综上所述,本公开提供的图像分类装置,通过确定图像中每个对象的类别信息和每两个对象之间的位置信息,根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景,从而按照图像的场景对图像进行分类,可以从全局的角度对图像进行分类,解决了根据图像的局部纹理特征对图像进行分类,导致对图像的分类不准确的问题,达到了提高图像的分类准确性的效果。

图4是根据一示例性实施例示出的一种图像分类装置的框图,该图像分类装置应用于终端中,如图4所示,该图像分类装置包括:图像获取模块410、信息确定模块420、场景确定模块430和图像分类模块440。

该图像获取模块410,被配置为获取待分类的图像;

终端获取的图像中需要包括对象,对象可以是人物、动物、植物、建筑物等等,本实施例不作限定。

该信息确定模块420,被配置为确定图像获取模块得到的图像中每个对象的类别信息和每两个对象之间的位置信息;

该场景确定模块430,被配置为根据信息确定模块420确定的每个对象的类别信息和每两个对象之间的位置信息确定图像的场景;

该图像分类模块440,被配置为按照场景确定模块430确定的图像的场景对图像进行分类。

可选的,信息确定模块420,包括:第一确定子模块421、位置计算子模块422和第二确定子模块423;

该第一确定子模块421,被配置为对于从图像中选取的n个滑动窗口中的每个滑动窗口中的对象,读取根据预设算法对对象进行计算得到的m维的第一向量,将第一向量作为对象的类别信息,第一向量包括对象分别属于预设的m个类别中的每个类别的概率;

该位置计算子模块422,被配置为对于筛选出的p个第一向量所对应的p个对象中的每个对象,计算对象在图像中的绝对位置;

终端在得到每个对象的调整坐标后,还需要对该对象所在的滑动窗口的原始坐标进行调整,以得到该滑动窗口的绝对位置。

该第二确定子模块423,被配置为对于p个对象中的每两个对象,根据位置计算子模块422得到的两个对象在图像中的绝对位置计算两个对象的位置关系是预设的q种位置关系中的每种位置关系的概率,得到q维的第二向量,将第二向量作为两个对象之间的位置信息,n、m、p和q均为正整数。

在将图像输入到Fast RCNN算法中进行处理之前,用户还需要指定q种位置关系,这样,终端可以计算出每个两个对象的位置关系是预设的q种位置关系中的每种位置关系的概率,得到q维的第二向量,q为正整数。例如,当q为10时,10种位置关系分别为前、后、左、右、上、下、远、近、里、外。

可选的,该位置计算子模块423,还被配置为:

读取对象所在的滑动窗口的原始坐标;

读取根据预设算法对对象进行计算得到的调整坐标,调整坐标用于对原始坐标进行调整;

根据调整坐标对原始坐标进行调整,将调整结果确定为对象在图像中的绝对位置。

可选的,装置还包括:卷积计算模块450、窗口选取模块460、矩阵查找模块470、第一处理模块480、第二处理模块490、对象筛选模块491和第三处理模块492;

该卷积计算模块450,被配置为按照预设的卷积窗口对图像进行卷积,得到全局矩阵;

本实施例中,终端将图像输入到预设算法中,利用预设算法对图像进行处理。其中,预设算法可以是Fast RCNN算法,下面以Fast RCNN算法进行举例说明。

在实现时,用户可以预先设置Fast RCNN算法中的卷积窗口,当终端将图像输入到Fast RCNN算法后,终端利用卷积窗口对图像进行卷积,得到全局矩阵。其中,全局矩阵是指对图像进行卷积后得到的完整的矩阵。

本实施例中,全局矩阵可以是二维矩阵,也可以是三维矩阵。当全局矩阵是二维矩阵时,图像没有RGB特征,此时全局矩阵为r×s的全局矩阵;当全局矩阵是三维矩阵时,图像具有RGB特征,此时全局矩阵为r×s×t的全局矩阵,t为3,r、s均为正整数。

该窗口选取模块460,被配置为从图像中选取n个滑动窗口;

用户可以预先设置在图像中横向和纵向选取的滑动窗口的数量,终端根据该数量选取n个滑动窗口,n为正整数。本实施例不限定滑动窗口的形状。

由于图像中的对象的尺寸不定,一个滑动窗口内可能包括多个对象,也可能只包括一个对象的部分,因此,为了提高选取的滑动窗口能够包括一个完整的对象的概率,终端还可以对滑动窗口设置不同的尺寸,并在图像中的每个位置选取尺寸不同的至少两个滑动窗口。

在终端选取到n个滑动窗口后,还需要获取每个滑动窗口的原始坐标,以标识滑动窗口。其中,原始坐标可以由滑动窗口左上角和右下角的坐标确定,也可以由滑动窗口右上角和左下角的坐标确定,还可以由左上角、右上角、左下角、右下角这四者中的三个或四个坐标确定。

原始坐标中的第一个数值指示横向位置,第二个数值指示纵向位置。

该矩阵查找模块470,被配置为对于窗口选取模块460得到的n个滑动窗口中的每个滑动窗口,在卷积计算模块得到的全局矩阵中查找与滑动窗口具有映射关系的局部矩阵;

由于全局矩阵是对图像进行卷积得到的,而每个滑动窗口都是从图像中选取的,因此,每个滑动窗口与全局矩阵中对应位置的部分数据具有映射关系,本实施例中将全局矩阵中与滑动窗口具有映射关系的部分数据称为局部矩阵。

其中,局部矩阵与滑动窗口的位置的表达方式相同。即,如果终端利用滑动窗口的左上角和右下角的坐标表示滑动窗口的原始坐标,那么,终端利用局部矩阵的左上角的数据和右下角的数据的坐标表示局部矩阵的原始坐标。

该第一处理模块480,被配置为对矩阵查找模块470查找到的n个局部矩阵进行池化处理;

终端从局部矩阵中每k个数据中提取出一个数据进行保留,删除剩余k-1个数据,以达到降低局部矩阵的维数的目的,减少计算复杂度,k≥2。

在从k个数据中提取一个数据时,终端可以取k个数据中的最大值,将该最大值作为提取出的数据,删除剩余k-1个数据。

该第二处理模块490,被配置为对第一处理模块480池化处理得到的n个局部矩阵进行全连接处理,得到图像中每个对象的第一向量;

在将图像输入到Fast RCNN算法中进行处理之前,用户还需要指定对象可能的m个类别,这样,终端可以计算出每个滑动窗口中的对象分别属于这m个类别的概率,得到m维的第一向量,m为正整数。

该对象筛选模块491,被配置为筛选满足预设条件的每个第一向量所对应的对象,得到p个对象,预设条件是第一向量中存在至少一个概率值大于预设阈值;

全连接处理后,终端除了得到第一向量,还可以得到调整坐标,调整坐标的第一个数值指示横向调节距离,第二个数值指示纵向调节距离。其中,调整方向可以由调整坐标中数值的符号表示。例如,符号为正表示向右或向下移动,符号为负表示向左或向上移动。假设某个对象所在的滑动窗口的调整坐标为(5,4),则终端需要将该滑动窗口向右移动5个单位长度,向下移动4个单位长度。

由于对图像进行处理的目的是确定完整的多个对象在图像中的位置关系,而选取的滑动窗口中的对象可能是完整的对象,也可能是不完整的对象,因此,为了节省计算不完整的多个对象之间的调整坐标所占用的资源,终端还可以在计算每两个对象之间的调整坐标之前,对对象进行筛选。例如,滑动窗口1选取的对象是完整的人、滑动窗口2选取的对象是人的头部、滑动窗口3选取的对象是人的腿,则终端可以删掉人的头部和腿这两个对象,保留完整的人这个对象。

在过滤对象时,由于完整的对象包含的特征较多,确定该完整的对象属于某个类别的概率也越高,因此,终端可以根据对象的第一向量对对象进行筛选。例如,终端可以读取对象的第一向量中的每个概率值,检测该概率值是否大于预设阈值,当该概率值大于预设阈值时,说明该对象属于某个类别的概率较高,该对象是完整对象的概率越高,保留该对象;当第一向量中每个概率值都小于等于预设阈值时,说明该对象不是完整的对象的概率较高,删掉该对象。

该第三处理模块492,被配置为计算对象筛选模块491得到的p个对象中每个对象所在的滑动窗口的调整坐标。

假设筛选之后最终得到p个对象,则终端还需要通过全连接处理对该p各对象进行计算,得到每两个对象之间的调整坐标。

可选的,场景确定模块430,包括:第一接合子模块431、第二接合子模块432、第三接合子模块433和场景确定子模块434;

该第一接合子模块431,被配置为将图像中每个对象的第一向量相接合,得到m×p维的第三向量;

本实施例不对多个第一向量的接合顺序作限定。

该第二接合子模块432,被配置为将图像中每两个对象对应的第二向量相接合,得到q×p×(p-1)/2维的第四向量;

本实施例不对多个第二向量的接合顺序作限定。

该第三接合子模块433,被配置为将第一接合子模块431得到的第三向量和第二接合子模块432得到的第四向量相接合,得到m×p+q×p×(p-1)/2维的第五向量;

该场景确定子模块434,被配置为将第三接合子模块433得到的第五向量输入到预设的SVM中,将SVM的输出作为图像的场景。

本实施例中,SVM是一个学习模型,用来识别图像的场景。在实现时,终端将大量指定了图像的场景和这些图像的第五向量的训练样本输入到SVM中,使得SVM进行学习得到一个目标函数,再将需要进行场景识别的图像的第五向量输入到该SVM中,该SVM利用该目标函数对该第五向量进行计算,并对计算结果进行输出,该输出即为图像的场景。

其中,第五向量中第三向量和第四向量的接合顺序与SVM中训练样本的接合顺序相同。即,SVM中训练样本的接合顺序为先第三向量后第四向量时,第五向量的接合顺序为先第三向量后第四向量;SVM中训练样本的接合顺序为先第四向量后第三向量时,第五向量的接合顺序为先第四向量后第三向量。

综上所述,本公开提供的图像分类装置,通过确定图像中每个对象的类别信息和每两个对象之间的位置信息,根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景,从而按照图像的场景对图像进行分类,可以从全局的角度对图像进行分类,解决了根据图像的局部纹理特征对图像进行分类,导致对图像的分类不准确的问题,达到了提高图像的分类准确性的效果。

通过筛选满足预设条件的每个第一向量所对应的对象,得到p个对象,该预设条件是第一向量中存在至少一个概率值大于预设阈值;计算p个对象中每个对象所在的滑动窗口的调整坐标,使得终端可以删除不完整的对象,保留完整的对象,并只计算完整的对象之间的调整坐标,以节省计算不完整的多个对象之间的调整坐标所占用的资源。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开一示例性实施例提供了一种图像分类装置,能够实现本公开提供的图像分类方法,该图像分类装置包括:处理器、用于存储处理器可执行指令的存储器;

其中,处理器被配置为:

获取待分类的图像;

确定图像中每个对象的类别信息和每两个对象之间的位置信息;

根据每个对象的类别信息和每两个对象之间的位置信息确定图像的场景;

按照图像的场景对图像进行分类。

图5是根据一示例性实施例示出的一种用于图像分类的装置500的框图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。

处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器518来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。

存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。

多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。

I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到装置500的打开/关闭状态,组件的相对定位,例如所述组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,装置500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器518执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1