本发明涉及图像分类领域,具体地,涉及图像分类模型训练方法及系统及装置及介质及分类方法。
背景技术:
图像分类任务属于深度学习领域中的经典问题,在训练和预测设计好的网络模型时,一般会将整幅图像经过预处理后输入网络。
现有的基于深度学习分类的技术一般是对一张图像进行参数提取,并利用损失函数进行反向传播,从而优化模型参数,现有的分类方法容易出现过拟合的现象。
技术实现要素:
为解决上述问题,本发明提供了图像分类模型训练方法及系统及装置及介质及分类方法。
为实现上述目的,本发明提供了图像分类模型训练方法,所述方法包括:
构建第一图像分类模型;
构建数据集,所述数据集中包括n类图像,每类图像对应的编号依次为0、1、…、n-1,n为大于或等于2的整数;
从所述数据集中的每类图像中随机抽取一张图像作为该类图像的训练样本,获得第0类至第n-1类图像的训练样本;
从所述数据集中的每类图像中分别随机抽取一张图像组合获得参考样本;
基于第0类图像的训练样本和所述参考样本得到第一输入数据,基于第1类图像的训练样本和所述参考样本得到第二输入数据,…,基于第n-1类图像的训练样本和所述参考样本得到第n输入数据;
将所述第一输入数据至所述第n输入数据依次输入所述第一图像分类模型中对所述第一图像分类模型进行迭代训练,迭代训练完成后得到第二图像分类模型;
其中,所述第一图像分类模型的单次训练过程为:将第p输入数据输入所述第一图像分类模型进行特征提取,获得所述第p输入数据中的训练样本的第一特征以及获得所述第p输入数据中的参考样本的第二特征,p大于或等于1且小于或等于n;将所述第二特征与所述第一特征的进行差分运算获得差分特征;将所述差分特征对应的标签编码得到标签l,将所述差分特征输入所述第一图像分类模型中的全连接层得到输出向量o;利用损失函数计算所述输出向量o与所述标签l的损失值,基于所述损失值调整所述第一图像分类模型的参数。
优选的,迭代训练过程中所述第一图像分类模型参数共享。在迭代训练过程中模型参数共享可以使得每次训练学习得到的优化参数均能够被模型利用。
其中,本发明的原理为:
本发明针对预设类型的图像进行分类,所设计的第一图像分类模型采用特征图差分的方式实现,同时根据所设计第一图像分类模型的特点,给出与之对应的预测值解码方法。如果预测样本来自第i个类,那么其对应的特征必然与第i类中样本特征的差异最小,而与其他类中的样本特征差异较大。本发明提取一张训练图像特征的同时,也对从n个分类中分别提取的一张参考图像提取特征,并计算训练图像特征与各参考图像特征之间的差异,找出训练图像与哪张参考图像的特征最接近。同时,根据所设计网络的特点给出与之相适应的预测分类的解码方法(即:所给图像到底属于哪个分类的转换方法)。
其中,将差分特征对应的标签编码得到标签l,编码的目的为:根据输入训练样本的方式,构造出对应的one-hot向量。因为每次迭代构造训练样本时首先从类i中抽取一张图像i,且按照类别标签从0-n-1个类中依次随机抽取一张图像构成参考样本集合,这里n个参考样本的第i张样本与i的标签相同,所以得到的编码l的第i个分量为1,其余n-1个分量都为0。将l与网络输出o进行差异比较,得到网络的损失值,用于后续网络参数的调整。
优选的,本方法中所述第一图像分类模型的单次训练过程包括:第k类图像的训练样本为
所述第k类图像的参考样本为
将
将所述第二特征与所述第一特征的进行差分运算获得所述差分特征;
将所述差分特征对应的标签编码得到所述标签l;
所述差分特征对应的标签为
将所述差分特征输入所述第一图像分类模型中的全连接层得到输出向量o,
优选的,所述差分特征
其中,通过对所提取的特征进行差分运算,找到参考样本集中的特征与训练样本特征之间的差异。
优选的,本方法中所述损失函数为smooth-l1损失函数。
优选的,本方法采用one-hot编码方式编码所述差分特征对应的标签。
优选的,本方法中所述第一图像分类模型为卷积神经网络模型。
本发明还提供了一种图像分类方法,所述方法包括:采用所述图像分类模型训练方法获得所述第二图像分类模型;
将待分类图像输入所述第二图像分类模型,所述第二图像分类模型输出所述将待分类图像的分类结果。
优选的,上述图像分类方法中,所述待分类图像为
将
对所述第二图像分类模型的输出向量o解码,获得所述待分类图像的分类结果表示为:
本发明还提供了一种图像分类模型训练系统,所述系统包括:
模型构建单元,用于构建第一图像分类模型;
数据集构建单元,用于构建数据集,所述数据集中包括n类图像,每类图像对应的编号依次为0、1、…、n-1,n为大于或等于2的整数;
训练样本获得单元,用于从所述数据集中的每类图像中随机抽取一张图像作为该类图像的训练样本,获得第0类至第n-1类图像的训练样本;
参考样本获得单元,用于从所述数据集中的每类图像中分别随机抽取一张图像组合获得参考样本;
模型输入数据获得单元,用于基于第0类图像的训练样本和所述参考样本得到第一输入数据,基于第1类图像的训练样本和所述参考样本得到第二输入数据,…,基于第n-1类图像的训练样本和所述参考样本得到第n输入数据;
训练单元,用于将所述第一输入数据至所述第n输入数据依次输入所述第一图像分类模型中对所述第一图像分类模型进行迭代训练,迭代训练完成后得到第二图像分类模型;
其中,所述第一图像分类模型的单次训练过程为:将第p输入数据输入所述第一图像分类模型进行特征提取,获得所述第p输入数据中的训练样本的第一特征以及获得所述第p输入数据中的参考样本的第二特征,p大于或等于1且小于或等于n;将所述第二特征与所述第一特征的进行差分运算获得差分特征;将所述差分特征对应的标签编码得到标签l,将所述差分特征输入所述第一图像分类模型中的全连接层得到输出向量o;利用损失函数计算所述输出向量o与所述标签l的损失值,基于所述损失值调整所述第一图像分类模型的参数。
本发明还提供了一种图像分类模型训练装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述图像分类模型训练方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述图像分类模型训练方法的步骤。
本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明通过所设计的图像分类模型能够达到对图像分类的效果。
本发明根据所设计的图像分类模型采用的预测值解码方法能够正确解码出类别信息。
本发明在迭代训练过程中可以使图像分类模型参数更快速的收敛。
本发明在图像分类模型参数收敛的过程中,训练图像分类模型的过拟合程度降低。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;
图1为图像分类模型训练方法的流程示意图;
图2为模型的结构示意图;
图3为模型在迭代训练过程中的效果示意图;
图4为基于深度特征差分的图像分类系统的组成示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书使用流程图说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
实施例一
请参考图1,图1为图像分类模型训练方法的流程示意图,本发明提供了一种图像分类模型训练方法,所述方法包括:
构建第一图像分类模型;
构建数据集,所述数据集中包括n类图像,每类图像对应的编号依次为0、1、…、n-1,n为大于或等于2的整数;
从所述数据集中的每类图像中随机抽取一张图像作为该类图像的训练样本,获得第0类至第n-1类图像的训练样本;
从所述数据集中的每类图像中分别随机抽取一张图像组合获得参考样本;
基于第0类图像的训练样本和所述参考样本得到第一输入数据,基于第1类图像的训练样本和所述参考样本得到第二输入数据,…,基于第n-1类图像的训练样本和所述参考样本得到第n输入数据;
将所述第一输入数据至所述第n输入数据依次输入所述第一图像分类模型中对所述第一图像分类模型进行迭代训练,迭代训练完成后得到第二图像分类模型;
其中,所述第一图像分类模型的单次训练过程为:将第p输入数据输入所述第一图像分类模型进行特征提取,获得所述第p输入数据中的训练样本的第一特征以及获得所述第p输入数据中的参考样本的第二特征,p大于或等于1且小于或等于n;将所述第二特征与所述第一特征的进行差分运算获得差分特征;将所述差分特征对应的标签编码得到标签l,将所述差分特征输入所述第一图像分类模型中的全连接层得到输出向量o;利用损失函数计算所述输出向量o与所述标签l的损失值,基于所述损失值调整所述第一图像分类模型的参数。
其中,在本发明实施例中对所要分类的样本类别进行数字编号,假设数据集包含n个分类,则每个类对应的数字编号依次为0、1、…、n-1,n为大于或等于2的整数;在实际应用中图像的类别个数可以根据实际需要进行调整,本发明不进行具体的限定。
设计网络模型即第一图像分类模型,第一图像分类模型的结构示意图如图2所示,图2中从左到右为模型对图像的处理过程,将图像输入模型中后,使用模型中的卷积层(conv)、激活层(relu)和池化层(pooling)依次进行处理,处理后将输出输入全连接层(fc),然后全连接层的输出输入损失函数计算获得分类结果,本实施例中的方法并采用网络参数共享的方式分别对从n个类别中随机采样的训练数据提取特征,具体过程如下:
构造第0类的训练样本和与之对应的参考样本集,并分别提取特征。
从第0类中随机选择一张训练样本,记作
从n个类中分别随机选择一张图像作为参考样本,记作
将
对所提取的特征进行差分运算,找到参考样本集中的特征与训练样本特征之间的差异。所采用的计算公式为:
将差分特征对应的标签进行one-hot编码,其中,本发明实施例中也可以采用其他编码方式进行编码,本发明不对编码方式进行具体的限定,由于以上是以第0类中的样本为参考进行差分,所以与之对应的标签可表示为
将每个差分特征输入全连接层,即将每个
使用smooth-l1损失函数计算o与l的损失值,并作为调整参数模型的依据,其中,本发明实施例中损失函数可以采用其他类型的损失函数进行计算,本发明不对损失函数的具体类型进行限定。
以同样的方式构造第1、2、…、n-1类的训练样本和与之对应的参考样本集,并进行特征提取、差分运算和模型的参数训练。
使用训练好的模型进行预测,具体过程如下:
假设要分类的预测样本为
依次将
对输出向量o进行解码,预测的类表示为:
即:
本发明中的图像可以为多个领域中的图像,每种领域中的图像可以分为多种类别,本发明对图像的领域以及图像分类的种类不进行具体的限定,本发明实施例针对获取的市场主体准入和许可相关的证照图像进行分类举例介绍,所设计的网络模型采用特征图差分的方式实现,同时根据所设计网络模型的特点,给出与之对应的预测值解码方法。
以获取的市场主体准入和许可相关的证照图像为实施例进行说明,使用的证照图像的种类共计6类,包括:营业执照、食品经营许可证、餐饮服务许可证、小餐饮经营许可证、药品经营许可证和其他类证件。
对所要分类的样本类别进行数字编号,数据集包含6个分类,则每个类对应的数字编号依次为0、1、…、5。
设计网络模型,并采用网络参数共享的方式分别对从6个类别中随机采样的训练数据进行特征提取,具体过程如下:
构造第0类的训练样本和与之对应的参考样本集,并分别进行特征提取。
从第0类中随机选择一张训练样本,记作
从6个类中分别随机选择一张参考样本,记作
将
将所得特征进行差分运算,得到相对变化特征,所采用的计算公式为:
将差分特征对应的标签进行one-hot编码,由于以上是以第0类中的样本为参考进行差分,所以与之对应的标签可表示为
将每个差分特征输入全连接层,将每个
使用smooth-l1损失函数计算o与l的损失值,并作为调整参数模型的依据。
以同样的方式构造第1、2、…、5类的训练样本和与之对应的参考样本集,并进行特征提取、差分运算和模型的参数训练。
使用训练好的模型进行预测,具体过程如下:
假设要分类的预测样本为
依次将
对输出向量o进行解码,预测的类表示为:
即:
本发明的效果请参考图3,图3中给出了模型在迭代训练过程中的效果,实线表示不同迭代次数下的准确率变化情况;点实线和点虚线分别表示训练平均损失值和测试平均损失值随着迭代次数的变化情况。从曲线的变化情况不难发现,网络参数随着迭代的进行而不断收敛。
实施例二
请参考图4,图4为图像分类模型训练系统的组成示意图,本发明实施例二提供了一种图像分类模型训练系统,所述系统包括:
模型构建单元,用于构建第一图像分类模型;
数据集构建单元,用于构建数据集,所述数据集中包括n类图像,每类图像对应的编号依次为0、1、…、n-1,n为大于或等于2的整数;
训练样本获得单元,用于从所述数据集中的每类图像中随机抽取一张图像作为该类图像的训练样本,获得第0类至第n-1类图像的训练样本;
参考样本获得单元,用于从所述数据集中的每类图像中分别随机抽取一张图像组合获得参考样本;
模型输入数据获得单元,用于基于第0类图像的训练样本和所述参考样本得到第一输入数据,基于第1类图像的训练样本和所述参考样本得到第二输入数据,…,基于第n-1类图像的训练样本和所述参考样本得到第n输入数据;
训练单元,用于将所述第一输入数据至所述第n输入数据依次输入所述第一图像分类模型中对所述第一图像分类模型进行迭代训练,迭代训练完成后得到第二图像分类模型;
其中,所述第一图像分类模型的单次训练过程为:将第p输入数据输入所述第一图像分类模型进行特征提取,获得所述第p输入数据中的训练样本的第一特征以及获得所述第p输入数据中的参考样本的第二特征,p大于或等于1且小于或等于n;将所述第二特征与所述第一特征的进行差分运算获得差分特征;将所述差分特征对应的标签编码得到标签l,将所述差分特征输入所述第一图像分类模型中的全连接层得到输出向量o;利用损失函数计算所述输出向量o与所述标签l的损失值,基于所述损失值调整所述第一图像分类模型的参数。
实施例三
本发明实施例三提供了一种图像分类模型训练装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述图像分类模型训练方法的步骤。
其中,所述处理器可以是中央处理器(cpu,centralprocessingunit),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor)、专用集成电路(applicationspecificintegratedcircuit)、现成可编程门阵列(fieldprogrammablegatearray)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的数据,实现发明中图像分类模型训练装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。此外,存储器可以包括高速随机存取存储器、还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡,安全数字卡,闪存卡、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例四
本发明实施例四提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述图像分类模型训练方法的步骤。
所述图像分类模型训练装置如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序可存储于一计算机可读存介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码、对象代码形式、可执行文件或某些中间形式等。所述计算机可读取介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存储器、点载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
本发明已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c 、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
