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

文档序号:18167841发布日期:2019-07-13 09:43阅读:124来源:国知局
一种图像分类方法及装置与流程

本发明涉及图像分类领域,尤其涉及一种图像分类方法及装置。



背景技术:

图像分类在字符识别、图像检索、行人检测等方面都有着广泛的应用。现有技术中图像分类的方法常常是:先采用已经进行分类标记的图像样本对网络模型进行训练学习,然后,将待分类的图像输入到训练完成的网络模型,得到该待分类的图像的类别。

但是这种方法存在一定的局限性,比如因为训练完成的网络模型是采用已经进行分类标记的图像样本进行训练学习的,而该图像样本的分类标记有可能存在错误或者不够全面,从而导致该训练完成的网络模型对内容较为复杂的待分类的图像的分类分析不够准确,所以将该待分类的图像输入到训练完成的网络模型后,得到的该图像对应的类别很大可能是错误的,进而使得图像分类准确率低等。



技术实现要素:

本发明实施例提供了一种图像分类方法及装置,用以解决现有技术中图像分类准确率低的问题。

本发明实施例提供了一种图像分类方法,所述方法包括:

将待分类的第一图像输入到预先训练完成的网络模型中,得到所述第一图像对应的第一向量,其中所述第一向量为设定维度,每一维为数值的向量;

根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别,其中所述第一向量与每个第二向量的维度相同。

进一步地,所述网络模型的训练过程为:

获取训练样本集中的每个第二图像;

针对每个第二图像,将该第二图像输入到网络模型中,获取所述网络模型输出的第三向量;将所述第三向量输入到所述网络模型的反向网络模型中,获取第三图像,根据第二图像和第三图像的相似度,对所述网络模型进行训练。

进一步地,根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别包括:

分别确定所述第一向量和每个第二向量对应的距离;

将距离最小的第二向量对应的类别确定为所述第一图像归属的类别。

进一步地,根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别包括:

分别确定所述第一向量和每个第二向量对应的夹角;

将夹角最小的第二向量对应的类别确定为所述第一图像归属的类别。

进一步地,所述分别确定所述第一向量和每个第二向量对应的夹角包括:

将所述第一向量和每个第二向量进行归一化处理,得到归一化处理后的第一向量和每个归一化处理后的第二向量;

针对每个第二向量,根据归一化处理后的第一向量和该归一化处理后的第二向量的点积,确定所述第一向量和该第二向量对应的夹角。

本发明实施例提供了一种图像分类装置,所述装置包括:

得到模块,用于将待分类的第一图像输入到预先训练完成的网络模型中,得到所述第一图像对应的第一向量,其中所述第一向量为设定维度,每一维为数值的向量;

确定模块,用于根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别,其中所述第一向量与每个第二向量的维度相同。

进一步地,所述装置还包括:

训练模块,用于获取训练样本集中的每个第二图像;针对每个第二图像,将该第二图像输入到网络模型中,获取所述网络模型输出的第三向量;将所述第三向量输入到所述网络模型的反向网络模型中,获取第三图像,根据第二图像和第三图像的相似度,对所述网络模型进行训练。

进一步地,所述确定模块,具体用于分别确定所述第一向量和每个第二向量对应的距离;将距离最小的第二向量对应的类别确定为所述第一图像归属的类别。

进一步地,所述确定模块,具体用于分别确定所述第一向量和每个第二向量对应的夹角;将夹角最小的第二向量对应的类别确定为所述第一图像归属的类别。

进一步地,所述确定模块,具体用于将所述第一向量和每个第二向量进行归一化处理,得到归一化处理后的第一向量和每个归一化处理后的第二向量;针对每个第二向量,根据归一化处理后的第一向量和该归一化处理后的第二向量的点积,确定所述第一向量和该第二向量对应的夹角。

本发明实施例提供了一种图像分类方法及装置,该方法包括:将待分类的第一图像输入到预先训练完成的网络模型中,得到所述第一图像对应的第一向量,其中所述第一向量为设定维度,每一维为数值的向量;根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别,其中所述第一向量与每个第二向量的维度相同。

由于本发明实施例中待分类的第一图像输入到预先训练完成的网络模型后,得到该第一图像对应的第一向量,从而避免网络模型对内容较为复杂的待分类图像的分类判断失误,并且根据该第一向量分别与每个设定类别的第二向量的相似度,确定该第一图像归属的类别,进而提高图像分类的准确率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的一种图像分类方法的流程图;

图2为本发明实施例2提供的一种网络模型输出第三向量的过程示意图;

图3为本发明实施例2提供的深度残差网络模型训练过程的示意图;

图4为本发明实施例4提供的一种图像分类装置的结构示意图。

具体实施方式

下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的一种图像分类方法的流程图,所述方法包括:

s101:将待分类的第一图像输入到预先训练完成的网络模型中,得到所述第一图像对应的第一向量,其中所述第一向量为设定维度,每一维为数值的向量。

为了提高图像分类的准确率,本发明实施例采用预先训练完成的网络模型,对待分类的图像进行处理。

将待分类的第一图像输入到预先训练完成的网络模型,即可获得该第一图像对应的第一向量,为了便于后续对该第一向量进行相应的数值计算,该第一向量是设定维度,且每一维为数值的向量;设定的维度不做限制,较佳的可以是128维、256维或512维,其中,网络模型获取该第一图像的第一向量的过程属于现有技术,在此不再赘述。

其中,该网络模型可以是神经网络模型中的任一种网络模型,为了提高网络模型对该第一图像处理的速度和准确率,本发明实施例中优选深度残差神经网络模型。

s102:根据所述第一向量与每个设定类别的第二向量的相似度,确定所述第一图像归属的类别,其中所述第一向量与每个第二向量的维度相同。

为了更加精准地对待分类的第一图像进行分类,在本发明实施例中可以获得多个预先设定类别的第二向量,其中,为了便于后续对上述第一向量和每个第二向量进行相应的数值计算,每个第二向量与上述第一向量的维度相同。

当得到上述第一向量后,为了确定上述待分类的第一图像归属的类别,本发明实施例中可以根据该第一向量和每个第二向量的相似度,来确定该第一图像归属的类别,具体地,可以将与该第一向量的相似度最大的第二向量对应的类别确定为该第一图像归属的类别。针对每种类别,该类别对应的第二向量中哪些维度可以更好的体现该类别的特征,则在计算第一向量和该第二向量相似度时,则可以根据这两个向量中这些维度确定的距离,进而确定这两个向量的相似度。

由于本发明实施例中待分类的第一图像输入到预先训练完成的网络模型后,得到该第一图像对应的第一向量,从而避免网络模型对内容较为复杂的待分类图像的分类判断失误,并且根据该第一向量分别与每个设定类别的第二向量的相似度,确定该第一图像归属的类别,进而提高图像分类的准确率。

实施例2:

为了进一步提高图像分类的准确率,基于上述实施例,所述网络模型的训练过程为:

获取训练样本集中的每个第二图像;

针对每个第二图像,将该第二图像输入到网络模型中,获取所述网络模型输出的第三向量;将所述第三向量输入到所述网络模型的反向网络模型中,获取第三图像,根据第二图像和第三图像的相似度,对所述网络模型进行训练。

训练样本集中的每个第二图像的内容、类型等不做限制,但是,为了便于网络模型的训练,在本发明实施例中,训练样本集中的每个第二图像的大小一致,并待分类的第一图像的大小与每个第二图像的大小相同。

为了对网络模型进行训练,在本发明实施例中,可以针对每个第二图像,将该第二图像输入到网络模型中,网络模型会输出该第二图像对应的第三向量,该第三向量的维度与第一向量的维度相同,且第三向量中每一维为数值,也就是由数值构成的一个数学向量。

本发明实施例提供的该网络模型的训练过程为无监督学习方法,为了实现网络模型的训练,在本发明实施例中当得到了每个第二图像对应的第三向量后,将该第三向量输入到该网络模型的反向网络模型中,该反向网络模型基于该第三向量得到第三图像,其中该反向网络模型中包含的层的类型和对应的层的数量与该网络模型中包含的层的类型和对应的层的数量相同,只是该反向网络模型与该网络模型的结构正好相反。

图2为在本发明实施例的网络模型输出第三向量的过程示意图,也就是网络模型输出第一向量的过程示意图,如图2所示,针对训练样本集中的每个第二图像,将该第二图像输入到网络模型中的卷积层,得到该第二图像对应的特征向量;将该特征向量依次输入到批次正则化层和激活层进行正则化处理并激活,然后将正则化处理并激活的特征向量输入到池化层进行降维处理,得到降维处理后的特征向量,并将该降维处理后的特征向量输入到第一残差模块中进行多次循环处理,其中该第一残差模块包含三个相同的层,每层包括卷积层、批次正则化层和激活层。

将该特征向量输入到第一残差模块中进行多次循环处理,例如经过3次循环处理,将处理后的第一特征向量输入第二残差网络模块中进行多次循环处理,得到循环处理后的第二特征向量,例如经过4次循环处理,第二残差网络模块包含四个相同的层,每层包括卷积层、批次正则化层和激活层。

将该第二特征向量输入第三残差网络模块中进行多次循环处理,得到循环处理后的第三特征向量,例如经过6次循环处理,第三残差网络模块包含六个相同的层,每层包括卷积层、批次正则化层和激活层。

将该第三特征向量输入第四残差网络模块中进行多次循环处理,得到循环处理后的第四特征向量,例如经过3次循环处理,第四残差网络模块包含三个相同的层,每层包括卷积层、批次正则化层和激活层。

将该第四特征向量输入到池化层进行降维处理,得到该第二图像对应的第三向量。

如图2所示,该第一残差网络模块包括卷积层、批次正则化层、激活层,具体的各个层之间的连接方式、数量和构造可以与图2所示的不同,为了减少网络模型的训练时间,本发明实施例优先图2所示的第一残差网络模块,并且第二残差网络模块、第三残差网络模块、第四残差网络模块与第一残差网络模块结构相同。

如图2所示的该网络模型的连接结构为卷积层、批次正则化层、激活层、池化层、第一残差网络模块、激活层、第二残差网络模块、激活层、第三残差网络模块、激活层、第四残差网络模块、池化层依次连接而成,则该网络模型的反向网络模型的连接结构为池化层、第四残差网络模块、激活层、第三残差网络模块、激活层、第二残差网络模块、激活层、第一残差网络模块、池化层、激活层、批次正则化层、卷积层依次连接而成。

因为反向网络模型是基于网络模型的,因此当网络模型得到每个第三向量后,将每个第三向量输入到反向网络模型中将会得到每个第三图像,可以根据该第三图像与对应的第二图像的相似度,对网络模型进行训练,具体地,可以是比较该第三图像与该第二图像的相似度,并结合比较的结果,采用反向传播算法和梯度下降法优化网络模型和反向网络模型,使该第三图像尽可能与该第二图像的相似度达到设定的相似度阈值,其中该网络模型中每一层的参数,和反向网络模型中对应的每一层的参数相同。

本发明实施例中的网络模型可以是神经网络模型中的任意一种,较佳地,可以是深度残差网络模型。

下面以该网络模型为深度残差网络模型为例进行说明。图3为本发明实施例提供的该深度残差网络模型的训练过程示意图,该深度残差网络模型的训练过程包括:

针对训练样本集中的每个第二图像x,将该第二图像输入到深度残差网络模型n中,得到该第二图像x对应的向量,其中可以将该向量称为通用语义向量v,将该通用语义向量v输入到反向深度残差网络模型n’中,得到该通用语义向量v对应的第三图像x’,然后,比较第二图像x和第三图像x’的相似度,并结合比较的结果,采用反向传播算法和梯度下降法不断优化网络模型和反向网络模型,直到反向网络模型输出的第三图像x’与第二图像x的相似度达到设定的相似度阈值。

由于本发明实施例中获取训练样本集中的每个第二图像;针对每个第二图像,将该第二图像输入到网络模型中,获取该网络模型输出的第三向量;将该第三向量输入到该网络模型的反向网络模型中,获取第三图像,根据第二图像和第三图像的相似度,对该网络模型进行训练,进而提高图像分类的准确率。

实施例3:

为了进一步提高图像分类的准确率,在上述各个实施例的基础上,根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别包括:

分别确定所述第一向量和每个第二向量对应的距离;

将距离最小的第二向量对应的类别确定为所述第一图像归属的类别。

由于确定待分类的第一图像的第一向量和每个设定类别的第二向量的相似度的方法有多种,为了进一步提高图像分类的准确率,在本发明实施例中,优选根据该第一向量与每个第二向量的距离来判断它们之间的相似度,第一向量与第二向量的距离越小,它们之间的相似度越高;然后,将相似度最大的第二向量对应的类别确定为该第一图像的类别。

因此,确定第一图像归属的类别时,可以先确定该第一向量与每个第二向量的距离。由于第一向量和每个第二向量的维度相同,因此,可以将该第一向量和每个第二向量对应维度的数值进行相减后平方,然后将对应维度上的每个相减后平方的值相加后开方,得到的值为该第一向量和每个第二向量对应的距离。然后,比较每个距离的大小,确定距离最小的目标第二向量,该目标第二向量与该第一向量的相似度最大,因此,可以将该目标第二向量对应的类别确定为该第一图像归属的类别。

为了进一步提高图像分类的准确率,在本发明实施例中,还可以根据该第一向量与每个第二向量的夹角来判断它们之间的相似度,第一向量与第二向量的夹角越小,它们之间的相似度越大;然后,将相似度最大的第二向量对应的类别确定为该第一图像的类别。

具体地,根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别包括:

分别确定所述第一向量和每个第二向量对应的夹角;

将夹角最小的第二向量对应的类别确定为所述第一图像归属的类别。

其中,计算第一向量和每个第二向量对应的夹角可以采用现有技术中计算两个向量的夹角的方法,比如可以采用旋转角和旋转轴的方式等。

较佳地,所述分别确定所述第一向量和每个第二向量对应的夹角包括:

将所述第一向量和每个第二向量进行归一化处理,得到归一化处理后的第一向量和每个归一化处理后的第二向量;

针对每个第二向量,根据归一化处理后的第一向量和该归一化处理后的第二向量的点积,确定所述第一向量和该第二向量对应的夹角。

其中,将第一向量和每个第二向量进行归一化处理的方法可以是:先计算出第一向量和每个第二向量与原点对应的向量之间的第一距离,然后,第一向量和每个第二向量中的每个数值分别除以该第一距离,得到归一化处理后的第一向量和每个归一化处理后的第二向量。

然后,针对每个第二向量,计算归一化处理后的第一向量和该归一化处理后的第二向量的点积,该点积就是归一化处理后的第一向量和该归一化处理后的第二向量对应的夹角的余弦值,从而可以根据该余弦值,得到该第一向量和该第二向量对应的夹角。

由于本发明实施例中分别确定该第一向量和每个第二向量对应的距离;将距离最小的第二向量对应的类别确定为该第一图像归属的类别,可以进一步提高图像分类的准确率。

实施例4:

在上述各个实施例的基础上,图4为本发明实施例提供的一种图像分类装置的结构示意图,所述装置包括:

得到模块401,用于将待分类的第一图像输入到预先训练完成的网络模型中,得到所述第一图像对应的第一向量,其中所述第一向量为设定维度,每一维为数值的向量;

确定模块402,用于根据所述第一向量与每个设定类别的第二向量相似度,确定所述第一图像归属的类别,其中所述第一向量与每个第二向量的维度相同。

进一步地,所述装置还包括:

训练模块403,用于获取训练样本集中的每个第二图像;针对每个第二图像,将该第二图像输入到网络模型中,获取所述网络模型输出的第三向量;将所述第三向量输入到所述网络模型的反向网络模型中,获取第三图像,根据第二图像和第三图像的相似度,对所述网络模型进行训练。

进一步地,所述确定模块402,具体用于分别确定所述第一向量和每个第二向量对应的距离;将距离最小的第二向量对应的类别确定为所述第一图像归属的类别。

进一步地,所述确定模块402,具体用于分别确定所述第一向量和每个第二向量对应的夹角;将夹角最小的第二向量对应的类别确定为所述第一图像归属的类别。

进一步地,所述确定模块402,具体用于将所述第一向量和每个第二向量进行归一化处理,得到归一化处理后的第一向量和每个归一化处理后的第二向量;针对每个第二向量,根据归一化处理后的第一向量和该归一化处理后的第二向量的点积,确定所述第一向量和该第二向量对应的夹角。

由于本发明实施例中得到模块401,用于将待分类的第一图像输入到预先训练完成的网络模型中,得到该第一图像对应的第一向量,其中该第一向量为设定维度,每一维为数值的向量;确定模块402,用于根据该第一向量与每个设定类别的第二向量相似度,确定该第一图像归属的类别,其中该第一向量与每个第二向量的维度相同,进而提高图像分类的准确率。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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