掌桥专利:专业的专利平台
掌桥专利
首页

一种用于图像检索的模型训练方法及装置

文献发布时间:2024-04-18 19:59:31


一种用于图像检索的模型训练方法及装置

技术领域

本文件涉及图像检索技术领域,尤其涉及一种用于图像检索的模型训练方法及装置。

背景技术

当前,随着互联网和数字媒体技术的发展,人们需要快速、准确地检索大量的图像数据,以图搜图成为互联网中常见的应用。图像检索系统可以实现以图搜图,帮助用户快速地查询到所需的图像,而图像检索系统的关键在于对图像进行表征提取,从而基于所提取的表征进行相似性搜索和分类等操作。

传统的图像检索系统所采用的特征提取方法包括SIFT(Scale InvariantFeature Transform,尺度不变特征变换)、HOG(Histogram of Oriented Gradient,方向梯度直方图)、SURF(Speeded Up Robust Features,快速特征变换)等算法和深度学习模型,然而上述算法用于图像检索时,需要手动选择特征点和特征描述子等,上述深度学习模型用于图像检索时通常需要分别训练多个模型。因此,亟需提供一种有较高的泛化能力、能够将多个模型融合从而实现整体调优的图像检索模型的训练方法。

发明内容

一方面,本说明书一个或多个实施例提供一种用于图像检索的模型训练方法,包括:获取携带有标签信息的图像对构成的训练样本;将所述训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将所述训练样本中的另一个图像输入所述图像表征模型的第二编码器中,得到第二表征信息,所述第一编码器和第二编码器结构相同,参数更新方式不同;将所述第一表征信息和第二表征信息输入图像精排模型中,得到所述训练样本中图像对的匹配度结果,所述图像精排模型是通过比对所述第一表征信息和第二表征信息,对所述训练样本中图像对的匹配度进行打分,并根据打分结果对所述训练样本中图像对的相似度进行精确排序的模型;基于所述第一表征信息、第二表征信息、所述训练样本、所述匹配度结果和预设的损失函数对所述图像表征模型和所述图像精排模型进行联合训练,直到所述损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

另一方面,本说明书一个或多个实施例提供一种用于图像检索的模型训练装置,包括:训练样本确定模块,获取携带有标签信息的图像对构成的训练样本;表征信息确定模块,将所述训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将所述训练样本中的另一个图像输入所述图像表征模型的第二编码器中,得到第二表征信息,所述第一编码器和第二编码器结构相同,参数更新方式不同;匹配度确定模块,将所述第一表征信息和第二表征信息输入图像精排模型中,得到所述训练样本中图像对的匹配度结果,所述图像精排模型通过比对所述第一表征信息和第二表征信息,对所述训练样本中图像对的匹配度进行打分,并根据打分结果对所述训练样本中图像对的相似度进行精确排序;联合训练模块,基于所述第一表征信息、第二表征信息、所述训练样本、所述匹配度结果和预设的损失函数对所述图像表征模型和所述图像精排模型进行联合训练,直到所述损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

再一方面,本说明书一个或多个实施例提供一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,在所述可执行指令被执行时,能够使得所述处理器:获取携带有标签信息的图像对构成的训练样本;将所述训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将所述训练样本中的另一个图像输入所述图像表征模型的第二编码器中,得到第二表征信息,所述第一编码器和第二编码器结构相同,参数更新方式不同;将所述第一表征信息和第二表征信息输入图像精排模型中,得到所述训练样本中图像对的匹配度结果,所述图像精排模型是通过比对所述第一表征信息和第二表征信息,对所述训练样本中图像对的匹配度进行打分,并根据打分结果对所述训练样本中图像对的相似度进行精确排序的模型;基于所述第一表征信息、第二表征信息、所述训练样本、所述匹配度结果和预设的损失函数对所述图像表征模型和所述图像精排模型进行联合训练,直到所述损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

再一方面,本说明书一个或多个实施例提供存储介质,用于存储计算机程序,所属计算机程序能够被处理器执行以实现以下流程:获取携带有标签信息的图像对构成的训练样本;将所述训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将所述训练样本中的另一个图像输入所述图像表征模型的第二编码器中,得到第二表征信息,所述第一编码器和第二编码器结构相同,参数更新方式不同;将所述第一表征信息和第二表征信息输入图像精排模型中,得到所述训练样本中图像对的匹配度结果,所述图像精排模型是通过比对所述第一表征信息和第二表征信息,对所述训练样本中图像对的匹配度进行打分,并根据打分结果对所述训练样本中图像对的相似度进行精确排序的模型;基于所述第一表征信息、第二表征信息、所述训练样本、所述匹配度结果和预设的损失函数对所述图像表征模型和所述图像精排模型进行联合训练,直到所述损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

附图说明

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

图1是根据本说明书一实施例的一种用于图像检索的模型训练方法的示意性流程图;

图2是利用本说明书实施例中图像表征模型和图像精排模型进行模型推理的原理示意图;

图3是根据本说明书另一实施例的一种用于图像检索的模型训练方法的示意性流程图;

图4是本说明书实施例中图像表征模型和图像精排模型的工作原理示意图;

图5是根据本说明书一实施例的一种用于图像检索的模型训练装置的结构示意图;

图6是根据本说明书一实施例的一种电子设备的示意性框图。

具体实施方式

本说明书一个或多个实施例提供一种用于图像检索的模型训练方法及装置。

为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件保护的范围。

如图1所示,本说明书实施例提供一种用于图像检索的模型训练方法,该方法的执行主体可以为终端设备或服务器,其中,该终端设备可以如手机、平板电脑等一定终端设备,还可以如笔记本电脑或台式电脑等计算机设备,或者,也可以为IoT设备(具体如智能手表、车载设备等)等。该服务器可以是独立的一个服务器,还可以是由多个服务器构成的服务器集群等,该服务器可以是如金融业务或网络购物业务等的后台服务器,也可以是某应用程序的后台服务器等。本实施例中以服务器为例进行详细说明,对于终端设备的执行过程可以参见下述相关内容,在此不再赘述。该方法具体可以包括以下步骤:

在步骤S102中,获取携带有标签信息的图像对构成的训练样本。

本说明书实施例中的单个训练样本是由两个图像构成的图像对,且图像对携带有标签信息,此处的标签信息为:是否对应同一个目标对象,即:当前训练样本中的两个图像只有两种标签信息:属于同一个目标对象的两个图像,不属于同一个目标对象的两个图像,从而能够实现后续的图像相似性检索和分类处理。需要注意的是:本说明书实施例中的标签信息并不包含图像的标注信息,例如:小狗、小猫、小鸟等。

在实施中,图像对中的两个图像可以来自互联网上开源的图像库,例如:imagenet,也可以来自对自然场景中的目标对象所拍摄的图像,还可以是任意一个大规模的图像库。既可以是来自同一个目标对象的两张不同图像,也可以是来自不同目标对象的两张图像。在大规模的图像库构成的数据集中,可以针对不同的目标对象构建不同的图像文件夹,作为单个训练样本的图像对中的两个图像可以来自同一个图像文件夹,也可以来自不同的图像文件夹。进行模型训练时,可以一次输入包含有多个训练样本(例如:30个图像对)的一批输入数据,也可以一次只输入包含一个训练样本的输入数据。

在步骤S104中,将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,第一编码器和第二编码器结构相同,参数更新方式不同。

本说明书实施例中图像表征模型采用端到端的神经网络模型,通过该图像表征模型将两个图像分别转化为高维特征向量,利用深度神经网络实现图像特征的提取和分类,无需手动设置特征提取、特征融合以及分类操作等处理过程,模型泛化能力较强,可以应用于商家风控识别产品中,例如:KYC(Know your customer,实名认证)产品、流程类产品、算法类产品等。

图像表征模型包括第一编码器和第二编码器两部分,在模型训练过程中,分别将两个图像输入第一编码器和第二编码器,得到对应的第一表征信息和第二表征信息。第一编码器和第二编码器采用相同的结构,同时两个编码器的参数更新方式不同,此处的参数更新方式主要指的是梯度更新方式。具体地,第一编码器的梯度可以基于损失函数而更新,第二编码器的梯度不是基于损失函数进行更新,可以基于第一编码器的梯度而更新,第一编码器和第二编码器类似教师网络和学生网络的关系,第二编码器的梯度采用延迟更新的方式。

在步骤S106中,将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,图像精排模型是通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序的模型。

图像表征模型的输出结果是第一表征信息和第二表征信息,图像精排模型的输出结果是图像对的匹配度,通过将图像对依次输入到图像表征模型和图像精排模型中,获取到该图像对是否匹配,如果匹配,则表示所输入的图像对是相同图像,如果不匹配,则表示所输入的图像对不是相同图像,从而实现以图搜图的目的。

图像表征模型能够提取出待匹配图像(或者称为原始图像)的表征信息,从而在大规模训练集中确定与待匹配图像的表征信息相似的多个召回图像(或者称为目标图像),然后,再通过图像精排模型对待匹配图像与每个召回图像的匹配度进行打分,并根据打分结果对匹配度进行精确排序,从而能够确定符合预设的匹配度的所有图像。上述过程中,图像表征模型的处理过程相当于对图像的粗筛,例如:为了在一个大规模数据集中找到小鸟的图像,通过图像表征模型进行提取,可能检索出100张小鸟图像,其中实际有90张是正确的(确实是小鸟图像),其余10张不是小鸟图像,则图像表征模型的检索正确率为90%,下一次检索中,通过图像表征模型进行提取,可能检索出1000张相关图像,其中实际有800张是正确的,其余200张不是正确图像,则图像表征模型的检索正确率为80%,可见,通过图像表征模型进行粗筛的正确率不够稳定。而图像精排模型的处理过程相当于对图像的细筛,通过图像精排模型能够在粗筛的基础上进一步确认图像表征模型输出的召回图像与待匹配图像的匹配度,并针对该匹配对进行打分,从而实现对粗筛后的召回图像与待匹配图像的匹配度的精确排序。

在步骤S108中,基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

本说明书实施例采用联合训练的方式对图像表征模型和图像精排模型进行模型训练,通过一次全量的数据训练即可得到两个模型。其中,对应于图像表征模型部分,预设的损失函数基于最小化不同类别的图像的相似度以及最大化相同类别的图像的相似度而确定,即:通过预设的损失函数使得属于同一个目标对象的两个图像的相似度值更大,属于不同目标对象的两个图像的相似度值更小。对应于图像精排模型部分,预设的损失函数基于对同一个训练样本中的两个图像的匹配度进行分类而确定,即:通过预设的损失函数将两个图像的匹配度结果以匹配(匹配结果为是,可以表示为1)和不匹配(匹配结果为否,可以表示为0)分为两类。

图2是利用本说明书实施例中图像表征模型和图像精排模型进行模型推理的原理示意图,由图2可知,通过本说明书实施例中的模型训练方法得到的图像表征模型和图像精排模型,在实际的以图搜图应用中,首先将待匹配的输入图像传输至图像表征模型和图像精排模型中,通过图像表征模型提取出输入图像的第一表征信息(对应于图中的向量),并从大规模数据库对应的向量数据库中进行搜索得到向量匹配结果,该向量匹配结果以ID+向量距离的方式表示,将ID+向量距离的表示方式转换成相应的ID+对应图像的表示方式,最后经由图像精排模型基于ID+对应图像的表示方式对所有召回图像的匹配度通过打分等方式进行精确排序,从而确定最终匹配结果,用户即可基于该最终匹配结果进行后续操作,例如选择最终匹配结果中排序前几个的图像或者选择最终匹配结果中的全部图像等。

本说明书实施例提供一种用于图像检索的模型训练方法,首先获取携带有标签信息的图像对构成的训练样本;其次将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,其中第一编码器和第二编码器结构相同,参数更新方式不同;然后将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,其中图像精排模型是通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序的模型;最后基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。这样,通过上述模型训练方法能够实现端到端的模型训练,将图像表征模型和图像精排模型的训练过程进行融合,通过一次全量的联合训练,即可得到两个模型,能够大大提高模型训练的效率。而且,在联合训练中,可以通过预设的损失函数确定图像精排模型的梯度,并基于所确定的梯度调整图像表征模型的模型参数,即:图像精排模型的梯度传导可以优化图像表征模型的表征提取过程,从而实现整体调优,提高模型训练结果的准确性。另外,上述模型训练方法利用端到端的深度神经网络实现图像特征的提取和分类,无需手动设置特征提取、特征融合以及特征分类等处理过程,有利于进一步提高模型训练的效率,且使得上述模型训练方式泛化能力较强,能够适用于各种图像检索任务,具有重要的应用意义和推广价值。

进一步地,上述步骤S102的处理可以多种多样,以下提供一种可选的处理方式,具体可以参见以下步骤S1022-S1026的处理。

在步骤S1022中,基于开源图像库和/或针对目标对象所拍摄的图像构建数据集,数据集按照目标对象的类别进行图像存储。

在实施中,开源图像库可以来自互联网上的图像资源,数据集可以基于开源图像库构建,也可以基于针对目标对象所拍摄的大批量图像而构建,还可以将开源图像库中的图像和针对目标对象所拍摄的图像结合起来构建数据集,实际应用中根据用户需求而定,本说明书实施例对此不做限定。在数据集中,可以按照目标对象的类别建立相应的文件夹,例如:建立文件夹A用于存储针对目标对象A相关的图像,建立文件夹B用于存储针对目标对象B相关的图像等。

在步骤S1024中,从数据集中随机选择两个图像构成图像对,并根据所选择的两个图像对应的目标对象的类别,对图像对生成标签信息。

在实施中,可以从数据集的同一个文件夹中选择两个图像构成图像对,也可以从数据集的两个不同文件夹中分别选择一个图像构成图像对。两个图像对应的目标对象的类别指的是两个图像对应的目标对象是否是相同的目标对象。如果图像对来自同一个文件夹,则该图像对是同一个目标对象的图像,则对该图像对生成表示同一个目标对象的标签信息;如果图像对来自不同文件夹,则该图像对不是同一个目标对象的图像,则对该图像对生成表示不同目标对象的标签信息。

在步骤S1026中,基于携带有标签信息的图像对构建训练样本。

进一步地,上述步骤S102中的第一编码器可以采用Vis ion transformer神经网络结构的编码器,第二编码器是动量编码器。两个编码器均采用Vis ion transformer神经网络结构,只是梯度更新方式不同,第一编码器基于学习率(也就是基于损失函数)进行梯度更新,第二编码器基于动量更新,从而实现第二编码器梯度的延迟更新。通过Vis iontransformer神经网络结构的编码器和动量编码器的结合,能够使图像表征模型所检索的图像特征更加准确。

本说明书实施例中图像表征模型和图像精排模型的工作原理示意图可以参见图4所示。图4中,上方虚线框中是图像精排模型image matching model,下方虚线框中是图像表征模型image embedding model,其中,图像表征模型又包括第一编码器TransformerEncoder和第二编码器Momentum Transformer Encoder。第一编码器的输入图像是x

进一步地,上述步骤S104的第一表征信息中包括多个第一向量,第二表征信息中包括多个第二向量。相应地,上述步骤S106的处理可以多种多样,以下提供一种可选的处理方式,具体可以参见以下步骤S1062的处理。

在步骤S1062中,将第一表征信息中的部分向量与第二表征信息中对应位置的向量进行替换,得到向量替换后的第一表征信息和第二表征信息,并将向量替换后的第一表征信息和第二表征信息输入图像精排模型,通过图像精排模型中的交叉注意力机制分别计算向量替换后的第一表征信息中第一替换向量与多个第一向量之间的匹配度,以及向量替换后的第二表征信息中第二替换向量与多个第二向量之间的匹配度,并根据计算得到的匹配度确定训练样本中图像对的匹配度结果。

参见图4,可以将第一编码器对应的向量00*替换到第二编码器对应的向量00*,这样,向量替换后的第一表征信息中包括有第二编码器的向量00*和第一编码器的01-06向量,向量替换后的第二表征信息中包括有第一编码器的向量00*和第二编码器的01-06向量。然后,将向量替换后的第一表征信息中的第一替换向量(即第二编码器的向量00*)和多个第一向量(即第一编码器的01-06向量)输入基于Cross-Attention算法的神经网络中,计算得出第一替换向量与多个第一向量之间的匹配度。将向量替换后的第二表征信息中的第二替换向量(即第一编码器的向量00*)和多个第二向量(即第二编码器的01-06向量)输入基于Cross-Attent ion算法的神经网络中,计算得出第二替换向量与多个第二向量之间的匹配度,从而基于局部比对的方式实现更加精确的匹配结果。

进一步地,上述步骤S108的处理可以多种多样,以下提供一种可选的处理方式,具体可以参见以下步骤S1082的处理。

在步骤S1082中,基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数,利用反向传播算法对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

在联合训练中,通过反向传播算法实现梯度下降,能够实现预设的损失函数的快速收敛,有利于提高模型训练效率。进一步地,可以采用随机梯度下降算法对图像表征模型和图像精排模型进行联合训练。

在一个实施例中,预设的损失函数包括第一子损失函数和第二子损失函数,第一子损失函数基于最小化不同类别的图像的相似度以及最大化相同类别的图像的相似度而确定,第二子损失函数用于对图像对的匹配度进行分类。通过第二子损失函数确定图像精排模型的梯度,并基于所确定的梯度调整图像表征模型的模型参数。

在实施中,第一子损失函数可以包括:circle loss(圆损失函数)和infoNCE(噪声对比估计损失函数),用于对训练样本中的图像对进行对比学习训练,第二子损失函数可以是交叉熵损失函数或者均方差损失函数。

进一步地,在步骤S102之前,本说明书实施例中用于图像检索的模型训练方法,还包括步骤S110:基于无标签信息的训练样本,对图像表征模型通过对比学习进行预训练,得到预训练后的图像表征模型。

在实施中,可以选择大规模图像库中的所有样本作为训练样本,这些训练样本不进行类别标记,因此为无标签信息的训练样本,根据预设的对比学习损失函数进行预训练,得到预训练后的图像表征模型。模型预训练过程中可以采用编码器将不同的图像映射到低维的特征空间,然后再使用解码器将这些特征映射到度量空间,通过预设的对比学习损失函数优化编码器和解码器,使得在度量空间中,同一个目标对象的不同图像之间的距离尽可能近,直到预设的对比学习损失函数收敛。通过对图像表征模型进行对比学习预训练,能够加快后续联合训练的模型训练效率,还有利于提高模型训练的精度。

进一步地,上述步骤S110的处理可以多种多样,以下提供一种可选的处理方式,具体可以参见以下步骤S1102-S1104的处理。

在步骤S1102中,对无标签信息的训练样本进行图像增强处理,得到图像增强处理后的训练样本。

对训练样本进行图像增强处理的方法可以利用图像变换将一个图像变换成两个不同角度的图像,也可以是调整图像亮度获取两个不同亮度的图像,还可以采用图像裁剪,图像噪声处理等方法获取两个图像。

在步骤S1104中,利用图像表征模型对图像增强处理后的训练样本通过对比学习进行预训练,得到预训练后的图像表征模型。

本说明书实施例提供一种用于图像检索的模型训练方法,首先获取携带有标签信息的图像对构成的训练样本;其次将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,其中第一编码器和第二编码器结构相同,参数更新方式不同;然后将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,其中图像精排模型是通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序的模型;最后基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。这样,通过上述模型训练方法能够实现端到端的模型训练,将图像表征模型和图像精排模型的训练过程进行融合,通过一次全量的联合训练,即可得到两个模型,能够大大提高模型训练的效率。而且,在联合训练中,可以通过预设的损失函数确定图像精排模型的梯度,并基于所确定的梯度调整图像表征模型的模型参数,即:图像精排模型的梯度传导可以优化图像表征模型的表征提取过程,从而实现整体调优,提高模型训练结果的准确性。另外,上述模型训练方法利用端到端的深度神经网络实现图像特征的提取和分类,无需手动设置特征提取、特征融合以及特征分类等处理过程,有利于进一步提高模型训练的效率,且使得上述模型训练方式泛化能力较强,能够适用于各种图像检索任务,具有重要的应用意义和推广价值。

综上,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

以上为本说明书一个或多个实施例提供的一种用于图像检索的模型训练方法,基于同样的思路,本说明书一个或多个实施例还提供一种用于图像检索的模型训练装置,如图5所示。

该用于图像检索的模型训练装置包括:训练样本确定模块210、表征信息确定模块220、匹配度确定模块230和联合训练模块240,其中:

训练样本确定模块210,获取携带有标签信息的图像对构成的训练样本;

表征信息确定模块220,将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,第一编码器和第二编码器结构相同,参数更新方式不同;

匹配度确定模块230,将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,图像精排模型通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序;

联合训练模块240,基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

本说明书实施例中,训练样本确定模块210包括:

数据集构建单元,基于开源图像库和/或针对目标对象所拍摄的图像构建数据集,数据集按照目标对象的类别进行图像存储;

标签信息生成单元,从数据集中随机选择两个图像构成图像对,并根据所选择的两个图像对应的目标对象的类别,对图像对生成标签信息;

训练样本构建单元,基于携带有标签信息的图像对构建训练样本。

进一步地,该用于图像检索的模型训练装置中还包括:预训练模块,基于无标签信息的训练样本,对图像表征模型通过对比学习进行预训练,得到预训练后的图像表征模型。

在一个实施例中,预训练模块包括:

图像增强单元,对无标签信息的训练样本进行图像增强处理,得到图像增强处理后的训练样本;

对比学习预训练单元,利用图像表征模型对图像增强处理后的训练样本通过对比学习进行预训练,得到预训练后的图像表征模型。

本说明书实施例中,联合训练模块240中的损失函数包括第一子损失函数和第二子损失函数,第一子损失函数基于最小化不同类别的图像的相似度以及最大化相同类别的图像的相似度而确定,第二子损失函数用于对图像对的匹配度进行分类。

本说明书实施例中,联合训练模块240基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数,利用反向传播算法对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

本说明书实施例中,表征信息确定模块220中的第一编码器是Vis iontransformer神经网络结构的编码器,第二编码器是动量编码器。

本说明书实施例中,表征信息确定模块220中的第一表征信息中包括多个第一向量,第二表征信息中包括多个第二向量,相应地,匹配度确定模块230,将第一表征信息中的部分向量与第二表征信息中对应位置的向量进行替换,得到向量替换后的第一表征信息和第二表征信息,并将向量替换后的第一表征信息和第二表征信息输入图像精排模型,通过图像精排模型中的交叉注意力机制分别计算向量替换后的第一表征信息中第一替换向量与多个第一向量之间的匹配度,以及向量替换后的第二表征信息中第二替换向量与多个第二向量之间的匹配度,并根据计算得到的匹配度确定训练样本中图像对的匹配度结果。

本说明书实施例提供一种用于图像检索的模型训练装置,首先通过训练样本确定模块获取携带有标签信息的图像对构成的训练样本;其次通过表征信息确定模块将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,其中第一编码器和第二编码器结构相同,参数更新方式不同;然后通过匹配度确定模块将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,其中图像精排模型是通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序的模型;最后利用联合训练模块基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。这样,通过上述模型训练方法能够实现端到端的模型训练,将图像表征模型和图像精排模型的训练过程进行融合,通过一次全量的联合训练,即可得到两个模型,能够大大提高模型训练的效率。而且,在联合训练中,可以通过预设的损失函数确定图像精排模型的梯度,并基于所确定的梯度调整图像表征模型的模型参数,即:图像精排模型的梯度传导可以优化图像表征模型的表征提取过程,从而实现整体调优,提高模型训练结果的准确性。另外,上述模型训练方法利用端到端的深度神经网络实现图像特征的提取和分类,无需手动设置特征提取、特征融合以及特征分类等处理过程,有利于进一步提高模型训练的效率,且使得上述模型训练方式泛化能力较强,能够适用于各种图像检索任务,具有重要的应用意义和推广价值。

本领域的技术人员应可理解,上述用于图像检索的模型训练装置能够用来实现前文所述的用于图像检索的模型训练方法,其中的细节描述应与前文方法部分描述类似,为避免繁琐,此处不另赘述。

本领域的技术人员应可理解,上述序列表征提取装置能够用来实现前文所述的序列表征提取方法,其中的细节描述应与前文方法部分描述类似,为避免繁琐,此处不另赘述。

基于同样的思路,本说明书一个或多个实施例还提供一种电子设备,如图6所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器301和存储器302,存储器302中可以存储有一个或一个以上存储应用程序或数据。其中,存储器302可以是短暂存储或持久存储。存储在存储器302的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器301可以设置为与存储器302通信,在电子设备上执行存储器302中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源303,一个或一个以上有线或无线网络接口304,一个或一个以上输入输出接口305,一个或一个以上键盘306。

具体在本实施例中,电子设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对电子设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:

获取携带有标签信息的图像对构成的训练样本;

将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,第一编码器和第二编码器结构相同,参数更新方式不同;

将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,图像精排模型是通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序的模型;

基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

本说明书一个或多个实施例提供一种存储介质,存储介质用于存储计算机可执行指令,可执行指令在被处理器执行时实现以下流程:

获取携带有标签信息的图像对构成的训练样本;

将训练样本中的一个图像输入图像表征模型的第一编码器中,得到第一表征信息,将训练样本中的另一个图像输入图像表征模型的第二编码器中,得到第二表征信息,第一编码器和第二编码器结构相同,参数更新方式不同;

将第一表征信息和第二表征信息输入图像精排模型中,得到训练样本中图像对的匹配度结果,图像精排模型是通过比对第一表征信息和第二表征信息,对训练样本中图像对的匹配度进行打分,并根据打分结果对训练样本中图像对的相似度进行精确排序的模型;

基于第一表征信息、第二表征信息、训练样本、匹配度结果和预设的损失函数对图像表征模型和图像精排模型进行联合训练,直到损失函数收敛,得到训练后的图像表征模型和训练后的图像精排模型。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

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

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

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

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

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(trans itory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书一个或多个实施例而已,并不用于限制本申请。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的权利要求范围之内。

相关技术
  • 表格处理方法、装置、电子设备及可读存储介质
  • 处理模版获取方法、表格处理方法、装置、设备及介质
  • 表格数据处理方法、终端设备及计算机可读存储介质
  • 表格处理流程生成方法、表格处理方法及相关装置
  • 表格处理装置和表格处理方法
技术分类

06120116521352