发明内容
有鉴于此,本发明实施例的目的是提供一种图像的检索类别确定方法、系统以及图像检索方法,用以解决现有技术中检索结果准确度低的问题。
为实现上述目的,本发明实施例示出了一种图像的检索类别确定方法,包括:
将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率;
计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别;及
基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别。
进一步地,所述基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别包括:
基于每一张目标图像的第二相似度值与预设的概率算法计算出所述待查询图像的检索分类概率;
从多个第一图像类别的第一概率中按概率值从大到小选取出第二预设数量的模型分类概率,所述第二预设数量为所述第一预设数量的目标图像对应的图像类别中所包含的不同种类的图像类别的个数;
获取所述第二预设数量的模型分类概率对应的第三图像类别;及
根据所述模型分类概率、所述检索分类概率及预设的概率融合算法从所述第二图像类别与所述第三图像类别中确定所述待查询图像的最终检索类别。
进一步地,所述方法还包括训练所述图像分类网络模型的步骤:
获取训练样本集,所述训练样本集包括多张样本图像,每张样本图像都具有图像类别标签;
将所述训练样本集中的样本图像输入至预设的初始分类网络模型中,并通过所述初始分类网络模型输出每一张样本图像对应的属于多个第一图像类别的预测概率,所述初始分类网络模型包括有用于输出图像特征编码的图像特征编码输出层以及用于输出多个概率值的图像类别概率输出层;所述图像特征编码层用于输出所述样本图像的图像特征编码,所述图像类别输出层用于输出所述样本图像所属的多个第一图像类别的预测概率;
根据每个图像对应的属于多个第一图像类别的预测概率与每个样本图像对应的图像类别标签计算所述分类网络模型的训练误差;
判断所述训练误差是否符合预设条件;及
若所述训练误差不符合所述预设条件,则根据所述训练误差对所述分类网络模型的模型参数进行更新,并重新对所述分类网络模型进行训练,直至所述训练误差满足所述预设条件,得到训练好的图像分类网络模型。
进一步地,所述方法还包括:
获取多个入库图像;
将所述多个入库图像输入至所述图像分类网络模型,以通过所述图像特征编码输出层输出每个入库图像对应的第二图像特征编码以及通过所述图像类别概率输出层输出每个入库图像对应的属于多个第一图像类别的入库概率;
将每个入库图像对应的属于多个第一图像类别的入库概率值中,选取最大的入库概率对应的第一图像类别作为每个入库图像的第四图像类别;及
将所述每个入库图像、每个入库图像对应的第二图像特征编码以及每个样本图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
进一步地,所述将所述每个入库图像、每个入库图像对应的第二图像特征编码以及每个样本图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库包括:
通过预设的采样算法对所述每个样本图像对应的第二图像特征编码进行降维处理,得到第三图像特征编码;
将所述每个入库图像、每个入库图像对应的第三图像特征编码以及每个入库图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库;
所述计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像包括:
通过所述采样算法对所述第一图像特征编码进行降维处理,得到第四图像特征编码;及
计算所述第四图像特征编码与所述图像库中的每个入库图像的第四图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像。
进一步地,所述基于每一张目标图像的第二相似度值及第二图像类别计算出所述待查询图像的检索分类概率,包括:
获取预设的检索分类概率计算算法;
根据所述检索分类概率计算算法、每一张目标图像的第二相似度值及第二图像类别计算出所述待查询图像的检索分类概率;
其中,所述预设的检索分类概率计算算法具体为:
ci∈C,1≤i≤N
si∈S,1≤i≤N
其中,C表示第一预设数量N的目标图像对应的图像类别,j表示第一预设数量N的目标图像中的任意一张图像;对于第i张图像,其图像类别为ci或者,第二相似度值为si;N为大于0的自然数;irpb表示待查询图像的图像类别为b的检索分类概率;类别b∈C,i与j为自然数。
进一步地,所述预设的概率融合算法具体为:
其中,pb表示待查询图像的图像类别为b的概率,Mb表示待查询图像的图像类别为b的模型分类概率,irpb表示待查询图像的图像类别为b的检索分类概率,C表示第一预设数量N的目标图像对应的图像类别,D表示第二预设数量的模型分类概率对应的图像类别;α表示预设的加权权重。
为实现上述目的,本发明实施例还示出了一种图像检索方法,包括:
将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率;
计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别;
基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别;
计算所述第一图像特征编码与所述图像库中属于所述最终检索类别的目标入库图像的第二图像特征编码的第三相似度值;及
根据计算得到的各个第三相似度值从所述目标入库图像中选出符合预设条件的目标入库图像作为所述待查询图像的检索图像。
为实现上述目的,本发明实施例还示出了一种图像的检索类别确定系统,包括:
处理模块,用于将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率;
第一计算模块,用于计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别;及
确定模块,用于基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别。
为实现上述目的,本发明实施例还示出了一种计算机设备,所述计算机设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述的图像的检索类别确定方法的步骤。
为实现上述目的,本发明实施例还示出了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述的图像的检索类别确定方法的步骤。
本发明实施例提供的图像的检索类别确定方法、系统以及图像检索方法,通过预先训练好的图像分类网络模型,可以输出待查询图像对应的第一图像特征编码及待查询图像属于多个第一图像类别的第一概率,再经过图像库对第一图像编码特征进行第一次筛选,得到第一预设数量的目标图像,再基于第一概率、每一张目标图像的第二相似度值及第二图像类别进行第二次筛选,以确定出待查询图像的最终检索类别,提高了检索图像类别的准确性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
与本发明主题最相关的术语解释:
轻量级神经网络:指需要参数数量较少和计算代价较小的神经网络模型。由于轻量级神经网络计算开销小,轻量级神经网络模型可以部署在计算资源有限的设备上,如智能手机、平板电脑或其他嵌入式设备。常见的轻量级神经网络有MobileNet、ShuffleNet等,其中,MobileNet为一个使用深度可分离卷积构建的轻量级神经网络;ShuffleNet为一个使用分组卷积构建的轻量级神经网络。
图像特征:主要有图像的颜色特征、纹理特征、形状特征和空间关系特征。其中,颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质;纹理特征也是一种全局特征,也描述了图像或图像区域所对应景物的表面性质;形状特征有两类表示方法,一类是图像的轮廓特征,另一类是图像的区域特征,图像的轮廓特征主要针对物体的外边界,图像的区域特征则关系到整个形状区域;空间关系特征,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系。
图像特征编码:表示图像特征的向量。
本发明所解决的技术问题包括:
(1)、现有技术待检索图像的检索结果的质量很大程度上依赖图像分类结果,当分类结果不正确,或图像库中不存在待检索图像的类别时,检索结果将出现较大的偏差,准确度低。
(2)、当图像发生几何变化或亮度变化(如平移、旋转、光照等)时,模板匹配方法缺乏鲁棒性,并且使用模板匹配方法处理图像的高维特性,数据计算量大。
(3)、现有技术采用一系列特征描述子来表示图像的颜色、纹理、形状、梯度等视觉外观内容,将对应图像的特征向量之间的相似度视为图像之间的相似度。然而,特征描述子是人工设计的,不能准确地代表图像特征。
(4)、现有特征提取方法大多使用深层网络,提取图像的高维特征,导致图像检索方法计算量大,效率低。
(5)、在实际应用中,为了降低存储成本、提高检索效率,会选用128或256等较低维度的图像特征编码。而低维图形特征编码对图像的表征能力较弱,难以达到较好的检索效果,使得检索精确度低。
(6)、基于深度学习的图像检索方法一般都有应用范围的限制,如商品类、花鸟类、艺术品类等,在全类图像的检索上很难达到较好的效果。
(7)、申请号为CN201710818218.1的发明公开的一种基于深度学习的图像检索方法提出了先通过深度学习网络模型获得待检索图像的类别,以缩小图像检索的范围,再使用该深度学习网络模型进行相似度概率计算,增加了该深度学习网络模型的计算成本。
实施例一
参阅图1,示意性示出了根据本申请实施例的概率相关功能模块的测试方法的应用环境示意图。在示例性的实施例中,该应用环境的系统包括计算机设备10和后台测试服务器20。其中,计算机设备10与后台测试服务器20形成无线或有线连接,且计算机设备10具有相应的客户端或网页客户端。其中,计算机设备10可以为PC、手机、平板电脑、笔记本电脑、个人数字助理、机架式服务器、刀片式服务器等。后台测试服务器20可以为机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。
实施例二
参阅图2,示出了本发明实施例二之图像的检索类别确定方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备20为执行主体进行示例性描述。具体如下。
步骤S200,将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率。
为了提高输出待查询图像属于多个第一图像类别的第一概率的准确度,预先训练图像分类网络模型。本实施例的图像分类网络模型由轻量级分类网络模型MobileNetV3-Large训练得到,将轻量级分类网络模型训练出:可以根据输入的图像输出其与多个第一图像类别相关的第一概率的能力,并且在此基础上,对轻量级分类网络模型进行了优化:在轻量级分类网络模型的最后一个平均池化层前添加特征编码分支,即将最后一个平均池化层前的卷积输出结果(960维向量)视为图像特征编码,960维的特征向量的图形特征编码作为输入图像的图像信息的表征。
为了更好的理解训练好的图像分类网络模型,请参阅图2-1,当待查询图像输入至MobileNetV3-Large轻量级分类网络模型后,提取MobileNetV3-Large的最后一个卷积层中的960维特征向量,输出一个结果为:960维特征向量的第一图像特征编码;再将960维特征向量经过平均池化层以及卷积层,得到1280维的特征向量,最后再经过卷积层,输出另外一个结果为:1000个第一图像类别的第一概率。其中,1X1Conv表示卷积核为1X1的卷积层。本实施例中,多个第一图像类别设置为1000个第一图像类别。
为了更好的理解轻量级分类网络模型,如下表1所示,表中展示了轻量级分类网络模型中的各层级网络,表中下划线区域表示输出960维的图像特征编码:
表1 轻量级分类网络模型的网络层级表
因此,采用轻量级分类网络MobileNetV3-Large训练的图像分类网络模型,在对图像进行分类的同时提取图像特征编码,既保证了图像特征的表征能力,又保证了特征提取速度。与具有13个卷积层和3个全链接层的VGG-16卷积神经网络相比,MobileNetV3-Large的特征提取时间缩短了60%。
在示例性地实施例中,参阅图3,所述方法还包括训练所述图像分类网络模型的步骤:
步骤S300,获取训练样本集,所述训练样本集包括多张样本图像,每张样本图像都具有图像类别标签。步骤S302,将所述训练样本集中的样本图像输入至预设的初始分类网络模型中,并通过所述初始分类网络模型输出每一张样本图像对应的属于多个第一图像类别的预测概率,所述初始分类网络模型包括有用于输出图像特征编码的图像特征编码输出层以及用于输出多个概率值的图像类别概率输出层;所述图像特征编码层用于输出所述样本图像的图像特征编码,所述图像类别输出层用于输出所述样本图像所属的多个第一图像类别的预测概率。步骤S304,根据每个图像对应的属于多个第一图像类别的预测概率与每个样本图像对应的图像类别标签计算所述分类网络模型的训练误差。步骤S306,判断所述训练误差是否符合预设条件。步骤S308,若所述训练误差不符合所述预设条件,则根据所述训练误差对所述分类网络模型的模型参数进行更新,并重新对所述分类网络模型进行训练,直至所述训练误差满足所述预设条件,得到训练好的图像分类网络模型。
为了提高图像库的构建效率,可以在训练好的图像分类网络模型上进行优化改造:在轻量级分类网络模型的最后一个平均池化层前添加特征编码分支,即将最后一个平均池化层前的卷积输出结果(960维向量)视为图像特征编码,960维的特征向量的图形特征编码作为输入的样本图像的图像信息的表征。
为了提高模型训练的全面性,本实施例以ILSVRC2012全类数据集作为样本集训练轻量级分类网络模型,同时本实施例还可以用其他图像分类数据集,以扩大图像检索的检索范围。ILSVRC2012全类数据集中包括了1431167张样本图像,其中训练集包括了1281167张,验证集中包括了50000张样本图像,测试集中包括了100000张样本图像,数据集中的每张样本图像都关联了对应的图像类别标签,共有1000个不同类别。
具体地,以下对图像分类网络模型训练流程进行示例性地描述:
(1)将训练数据集批量输入到预设的分类网络模型中,得到该批训练数据集的预测结果,预设的分类网络为轻量级分类网络,预测结果包括了每张样本图像对应的1000个类别的预测概率;
(2)计算模型预测结果与真实结果之间的训练误差,其中,计算训练误差使用交叉熵损失函数;
(3)若训练误差满足预设条件,表示分类网络模型预测结果正确,则停止训练,得到图像分类网络模型,预设条件可以为训练误差小于预设阈值;
(4)若训练误差不满足预设条件,则更新分类网络模型的模型参数,再重复执行步骤(1)至(3),直至训练误差满足预设条件。
图像分类网络模型训练成功后,可以通过验证集与测试集对该图像分类网络模型进行验证与测试,判断该图像分类网络模型是否稳定,以进一步优化优化该图像分类网络模型。
步骤S202,计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别。
为了提高图像检索的精确度,将第一图像特征编码与图像库中的第二图像特征编码进行相似度计算,将相似度值按从大到小进行排序,以选取相似度值靠前的第一预设数量N张的目标图像及对应的第二图像类别C和第二相似度值S。本实施例中,相似度计算采用了余弦相似度的计算方法。
余弦相似度(similarity)计算方法如下:
其中,A为待查询图像的960维的第一图像特征编码,即一个960维向量;B为图像库中任意一个样本图像的第二图像特征编码,即一个960维向量;Ai和Bi分别代表向量A和向量B的各分量。
在示例性地实施例中,参阅图4,所述方法还包括构建图像库的流程图。
步骤S400,获取多个入库图像。步骤S402,将所述多个入库图像输入至所述图像分类网络模型,以通过所述图像特征编码输出层输出每个入库图像对应的第二图像特征编码以及通过所述图像类别概率输出层输出每个入库图像对应的属于多个第一图像类别的入库概率。步骤S404,将每个入库图像对应的属于多个第一图像类别的入库概率值中,选取最大的入库概率对应的第一图像类别作为每个入库图像的第四图像类别。步骤S406,将所述每个入库图像、每个入库图像对应的第二图像特征编码以及每个样本图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
为了增加图像库中包含的图像的全面性,本实施例中以ILSVRC2012全类数据集为例构建图像库,将ILSVRC2012全类数据集中的入库图像输入到图像分类网络模型中,通过特征编码分支输出对应的第二图像特征编码,通过类别分支输出多个图像类别,选取多个图像类别中的最大概率对应的图像类别作为第三图像类别,再将第二图像特征编码、第三图像类别与对应的入库图像进行关联后,存储于预先构建的空数据库中,得到图像库。该空数据库可以为关系型数据库,以key-value的形式存储入库图像、其对应的第二图像特征编码以及其对应的第三图像类别。
在示例性地实施例中,参阅图5,所述方法还包括构建图像库的另一实施例的步骤流程图。
步骤S500,通过预设的采样算法对所述每个入库图像对应的第二图像特征编码进行降维处理,得到第三图像特征编码。步骤S502,将所述每个入库图像、每个入库图像对应的第三图像特征编码以及每个样本图像对应的第三图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
为了降低存储成本,提高检索效率,本实施例对图像分类网络模型输出的第二图像特征编码进行降维处理,再存入图像库中。采用的采样算法为基于区域的重采样法方式,对第二图像特征编码进行降维处理,使用降维得到的低维特征编码(即,第三图像特征编码)代替网络输出的960特征编码(即,第二图像特征编码)存入图像库中。
基于区域的重采样法,即将第二图像特征向量按照降维倍数均匀的分为几个区域,将每个区域的均值作为降维后的特征值。具体降维方法如下:
(1)假设需要将图形特征维度从M降低至N(M>N),其中维度为M的向量为H=[h0,h1,...,hM-1],维度为N的向量为L=[l0,l1,...,lN-1]。
(2)计算每个重采样区域的大小area=H/L;
(3)对于第n个区域,起始下标为a=area×(n-1),终止下标为b=area×n,则
l
n为第三图像特征编码。
与其他降维方法相比,基于区域的重采样法能够尽可能地减少图像信息的损失,尽可能保留图像特征。
在本实施例中,若将直接在图像分类网络模型中将提取的图像特征编码的维度降为256或128,图像分类网络模型的分类准确率下降,检索效果大打折扣。本是实施例采用对图像分类网络模型输出的第二特征编码进行特征降维的方式,不影响图像分类网络模型的分类效果,并且可以降维至任意指定特征维度且不需要重新训练图像分类网络模型。
在示例性地实施例中,当采用如上图5所构建的图像库时,参阅图6,所述步骤S202还可以包括:
步骤S600,通过所述采样算法对所述第一图像特征编码进行降维处理,得到第四图像特征编码。步骤S602,计算所述第四图像特征编码与所述图像库中的每个入库图像的第三图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像。
为了提高图像检索的精确度,将第四图像特征编码与图像库中的第三图像特征编码进行相似度计算,以第四图像特征编码与图像库中的每个入库图像的第三图像特征编码的第一相似度值。再根据相似度从大到小排序,挑选出相似度值靠前的第一预设数量的目标图像。在本实施例中,相似度计算采用了余弦相似度的计算方法。并且降维后的第三图像特征编码与第四图像特征编码进行相似度计算时,减少了计算资源和计算时间,从而提高了图像检索的效率。
步骤S204,基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别。
在示例性地实施例中,参阅图7,所述步骤S204还可以包括步骤S700~步骤S706:
步骤S700,基于每一张目标图像的第二相似度值与预设的概率算法计算出所述待查询图像的检索分类概率。
示例性地,检索分类概率由待查询图像在图像库中最相似的第一预设数量N张的目标图像的第二图像类别和第二相似度计算得到,可以反映出待查询图像可能归属类别的概率。第二相似度越高且该类别在第一预设数量的第二图像类别中出现次数越多,其检索分类概率越大,可以通过检索分类概率提高类别检索的准确度。
在示例性地实施例中,参阅图8,所述步骤S700具体包括:
步骤S800,获取预设的检索分类概率计算算法。步骤S802,根据所述检索分类概率计算算法、每一张目标图像的第二相似度值及第二图像类别计算出所述待查询图像的检索分类概率。
其中,所述预设的检索分类概率计算算法具体为:
ci∈C,1≤i≤N
si∈S,1≤i≤N
其中,C表示第一预设数量N的目标图像对应的图像类别,j表示第一预设数量N的目标图像中的任意一张图像;对于第i张图像,其图像类别为ci,第二相似度值为si;N为大于0的自然数;irpb表示待查询图像的图像类别为b的检索分类概率;类别b∈C,i与j为自然数。
表示N个目标图像的第二相似度值之和,即总相似度值。
步骤S702,从多个第一图像类别的第一概率中按概率值从大到小选取出第二预设数量的模型分类概率,所述第二预设数量为所述第一预设数量的目标图像对应的图像类别中所包含的不同种类的图像类别的个数。
为了进一步提高类别检索的准确度,对第一概率进行了选取,选取的规则为:将第一预设数量的类别中的不相同的类别种类的个数,作为第二预设数量。例如,第一预设数量N为10,第二图像类别C中包括(1,1,1,2,2,2,3,3,3,4)十个类别,其中不相同的类别种类为(1,2,3,4)4个,则第二预设数量为4。从多个第一图像类别的第一概率中,选取排名靠前的4个第一概率作为模型分类概率,模型分类概率相应的第一图像类别种类与模型分类概率一起选取出来。
步骤S704,获取所述第二预设数量的模型分类概率对应的第三图像类别。步骤S706,根据所述模型分类概率、所述检索分类概率及预设的概率融合算法从所述第二图像类别与所述第三图像类别中确定所述待查询图像的最终检索类别。
为了不增加图像分类模型的计算量,提高待查询图像的类别预测结果的鲁棒性,所述方法可以加入检索分类概率对图像类别进行预测,进一步采用概率融合算法计算出融合分类概率,取最大的融合分类概率对应的图像检索类别作为最终检索类别。融合分类概率综合考虑了图像分类网络模型输出的分类概率和检索得到的检索分类概率,当图像分类网络模型输出的分类结果不够准确时,可以通过检索分类概率可对其进行校正。
在示例性地实施例中,所述预设的概率融合算法具体为:
其中,pb表示待查询图像的图像类别为b的概率,Mb表示待查询图像的图像类别为b的模型分类概率,irpb表示待查询图像的图像类别为b的检索分类概率,C表示第一预设数量N的目标图像对应的图像类别,D表示第二预设数量的模型分类概率对应的图像类别;α表示预设的加权权重。
当类别b属于C不属于D时,通过公式α*Mb计算出pb。当类别b不属于C属于D时,通过公式(1-α)*irpb计算出pb。当类别既属于C又属于D时,通过公式α*Mb+(1-α)*irpb计算出pb。由此可得到CUD中类别的融合分类概率pb,取融合分类概率最大的图像类别为最终检索类别。
实施例三
参阅图9,示出了本发明实施例三之图像检索方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备2为执行主体进行示例性描述。具体如下。
步骤S900,将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率。
在示例性地实施例中,所述方法还包括训练所述图像分类网络模型的步骤:
获取训练样本集,所述训练样本集包括多张样本图像,每张样本图像都具有图像类别标签。将所述训练样本集中的样本图像输入至预设的初始分类网络模型中,并通过所述初始分类网络模型输出每一张样本图像对应的属于多个第一图像类别的预测概率,所述初始分类网络模型包括有用于输出图像特征编码的图像特征编码输出层以及用于输出多个概率值的图像类别概率输出层;所述图像特征编码层用于输出所述样本图像的图像特征编码,所述图像类别输出层用于输出所述样本图像所属的多个第一图像类别的预测概率。根据每个图像对应的属于多个第一图像类别的预测概率与每个样本图像对应的图像类别标签计算所述分类网络模型的训练误差。判断所述训练误差是否符合预设条件。若所述训练误差不符合所述预设条件,则根据所述训练误差对所述分类网络模型的模型参数进行更新,并重新对所述分类网络模型进行训练,直至所述训练误差满足所述预设条件,得到训练好的图像分类网络模型。
步骤S902,计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别。
在示例性地实施例中,所述方法还包括构建图像库的流程图。
获取多个入库图像。将所述多个入库图像输入至所述图像分类网络模型,以通过所述图像特征编码输出层输出每个入库图像对应的第二图像特征编码以及通过所述图像类别概率输出层输出每个入库图像对应的属于多个第一图像类别的入库概率。将每个入库图像对应的属于多个第一图像类别的入库概率值中,选取最大的入库概率对应的第一图像类别作为每个入库图像的第四图像类别。将所述每个入库图像、每个入库图像对应的第二图像特征编码以及每个样本图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
在示例性地实施例中,所述方法还包括构建图像库的另一实施例的步骤流程:
通过预设的采样算法对所述每个入库图像对应的第二图像特征编码进行降维处理,得到第三图像特征编码。将所述每个入库图像、每个入库图像对应的第三图像特征编码以及每个样本图像对应的第三图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
在示例性地实施例中,所述步骤S902还可以包括:
通过所述采样算法对所述第一图像特征编码进行降维处理,得到第四图像特征编码。计算所述第四图像特征编码与所述图像库中的每个入库图像的第三图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像。
步骤S904,基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别。
在示例性地实施例中,所述步骤S904具体包括:
基于每一张目标图像的第二相似度值与预设的概率算法计算出所述待查询图像的检索分类概率。从多个第一图像类别的第一概率中按概率值从大到小选取出第二预设数量的模型分类概率,所述第二预设数量为所述第一预设数量的目标图像对应的图像类别中所包含的不同种类的图像类别的个数。获取所述第二预设数量的模型分类概率对应的第三图像类别。根据所述模型分类概率、所述检索分类概率及预设的概率融合算法从所述第二图像类别与所述第三图像类别中确定所述待查询图像的最终检索类别。
在示例性地实施例中,所述步骤S904还可以包括:
获取预设的检索分类概率计算算法。根据所述检索分类概率计算算法、每一张目标图像的第二相似度值及第二图像类别计算出所述待查询图像的检索分类概率。
为了不增加图像分类模型的计算量,提高待查询图像的类别预测结果的鲁棒性,采用了概率融合算法计算出融合分类概率。融合分类概率综合考虑了图像分类网络模型输出的分类概率和检索得到的检索分类概率,当图像分类网络模型输出的分类结果不够准确时,检索分类概率可对其进行校正。该最终检索类别为全类类别中的大类,具体的检索图像需进一步确定。例如,最终检索类别为玫瑰花,需要进一步检索待查询图像对应于玫瑰花的哪种图像类别,输出对应的检索图像。
步骤S906,计算所述第一图像特征编码与所述图像库中属于所述最终检索类别的目标入库图像的第二图像特征编码的第三相似度值。
为了提高待查询图像类别检测结果的鲁棒性,计算出图像所属的类别后,抽取图像库中类别为最终检索类别Q的图像作为检索库,计算待查询图像的第一图像特征编码与检索库中每张样本图像的第二图像特征编码之间的第三相似度值,相似度值的计算算法可以采用余弦相似度计算算法。
步骤S908,根据计算得到的各个第三相似度值从所述目标入库图像中选出符合预设条件的目标入库图像作为所述待查询图像的检索图像。
为了进一步得到准确的检索图像,对计算出来的多个第三相似度进行按从大到小进行排序,相似度值越大,排名越靠前。预设条件可以为:输出最相似的R张图像,作为检索图像。预设条件也可以为:取排名靠前的R个样本图像作为检索图像。在本实施例中可设置R=30;同时,可设定阈值T,取相似度值大于T的图像作为检索结果,在本实施例中可设置T=0.6。
实施例四
请继续参阅图10,示出了本发明图像的检索类别确定系统30实施例四的程序模块示意图。在本实施例中,图像的检索类别确定系统30可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述图像的检索类别确定方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述图像的检索类别确定系统30在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
处理模块1000,用于将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率。
第一计算模块1002,用于计算所述第一图像特征编码与所述图像库中的每个样本图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别。
确定模块1004,用于基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别。
在示例性地实施例中,所述系统还包括第一训练模块1006(图中未示出),所述第一训练模块1006用于:
获取训练样本集,所述训练样本集包括多张样本图像,每张样本图像都具有图像类别标签。将所述训练样本集中的样本图像输入至预设的初始分类网络模型中,并通过所述初始分类网络模型输出每一张样本图像对应的属于多个第一图像类别的预测概率,所述初始分类网络模型包括有用于输出图像特征编码的图像特征编码输出层以及用于输出多个概率值的图像类别概率输出层;所述图像特征编码层用于输出所述样本图像的图像特征编码,所述图像类别输出层用于输出所述样本图像所属的多个第一图像类别的预测概率。根据每个图像对应的属于多个第一图像类别的预测概率与每个样本图像对应的图像类别标签计算所述分类网络模型的训练误差。判断所述训练误差是否符合预设条件。若所述训练误差不符合所述预设条件,则根据所述训练误差对所述分类网络模型的模型参数进行更新,并重新对所述分类网络模型进行训练,直至所述训练误差满足所述预设条件,得到训练好的图像分类网络模型。
在示例性地实施例中,所述系统还包括第二训练模块1008(图中未示出),所述第二训练模块1008用于:
获取多个入库图像。将所述多个入库图像输入至所述图像分类网络模型,以通过所述图像特征编码输出层输出每个入库图像对应的第二图像特征编码以及通过所述图像类别概率输出层输出每个入库图像对应的属于多个第一图像类别的入库概率。将每个入库图像对应的属于多个第一图像类别的入库概率值中,选取最大的入库概率对应的第一图像类别作为每个入库图像的第四图像类别。将所述每个入库图像、每个入库图像对应的第二图像特征编码以及每个样本图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
在示例性地实施例中,所述第二训练模块1008还可以用于:
通过预设的采样算法对所述每个入库图像对应的第二图像特征编码进行降维处理,得到第三图像特征编码。将所述每个入库图像、每个入库图像对应的第三图像特征编码以及每个样本图像对应的第三图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
在示例性地实施例中,所述第一计算模块1004还可以用于:
通过所述采样算法对所述第一图像特征编码进行降维处理,得到第四图像特征编码。计算所述第四图像特征编码与所述图像库中的每个入库图像的第三图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像。
实施例五
请继续参阅图11,示出了本发明图像的图像检索系统40实施例五的程序模块示意图。在本实施例中,图像检索系统40可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述图像检索方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述图像检索系统40在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
处理模块1100,用于将待查询图像输入至预先训练好的图像分类网络模型中,并通过所述图像分类网络模型输出所述待查询图像对应的第一图像特征编码及所述待查询图像属于多个第一图像类别的第一概率。
第一计算模块1102,用于计算所述第一图像特征编码与所述图像库中的每个入库图像的第二图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像,其中,每一张目标图像携带有与所述待查询图像相关的第二相似度值及第二图像类别。
确定模块1104,用于基于所述待查询图像属于多个第一图像类别的第一概率、每一张目标图像的第二相似度值及第二图像类别确定所述待查询图像的最终检索类别。
第二计算模块1106,用于计算所述第一图像特征编码与所述图像库中属于所述最终检索类别的目标入库图像的第二图像特征编码的第三相似度值。
选取模块1108,用于根据计算得到的各个第三相似度值从所述目标入库图像中选出符合预设条件的目标入库图像作为所述待查询图像的检索图像。
在示例性地实施例中,所述图像检索系统40还包括第一训练模块1110(图中未示出),所述第一训练模块1110用于:
获取训练样本集,所述训练样本集包括多张样本图像,每张样本图像都具有图像类别标签。将所述训练样本集中的样本图像输入至预设的初始分类网络模型中,并通过所述初始分类网络模型输出每一张样本图像对应的属于多个第一图像类别的预测概率,所述初始分类网络模型包括有用于输出图像特征编码的图像特征编码输出层以及用于输出多个概率值的图像类别概率输出层;所述图像特征编码层用于输出所述样本图像的图像特征编码,所述图像类别输出层用于输出所述样本图像所属的多个第一图像类别的预测概率。根据每个图像对应的属于多个第一图像类别的预测概率与每个样本图像对应的图像类别标签计算所述分类网络模型的训练误差。判断所述训练误差是否符合预设条件。若所述训练误差不符合所述预设条件,则根据所述训练误差对所述分类网络模型的模型参数进行更新,并重新对所述分类网络模型进行训练,直至所述训练误差满足所述预设条件,得到训练好的图像分类网络模型。
在示例性地实施例中,所述图像检索系统40还包括第二训练模块1112(图中未示出),所述第二训练模块1112用于:
获取多个入库图像。将所述多个入库图像输入至所述图像分类网络模型,以通过所述图像特征编码输出层输出每个入库图像对应的第二图像特征编码以及通过所述图像类别概率输出层输出每个入库图像对应的属于多个第一图像类别的入库概率。将每个入库图像对应的属于多个第一图像类别的入库概率值中,选取最大的入库概率对应的第一图像类别作为每个入库图像的第四图像类别。将所述每个入库图像、每个入库图像对应的第二图像特征编码以及每个样本图像对应的第四图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
在示例性地实施例中,所述第二训练模块1112还用于:
通过预设的采样算法对所述每个入库图像对应的第二图像特征编码进行降维处理,得到第三图像特征编码。将所述每个入库图像、每个入库图像对应的第三图像特征编码以及每个样本图像对应的第三图像类别关联后存储于预先构建的数据库中,以得到所述图像库。
在示例性地实施例中,所述第一计算模块1102还用于:
通过所述采样算法对所述第一图像特征编码进行降维处理,得到第四图像特征编码。计算所述第四图像特征编码与所述图像库中的每个入库图像的第三图像特征编码的第一相似度值,并根据计算得到的各个第一相似度值从所述图像库中选取出第一预设数量的目标图像。
实施例六
参阅图12,是本发明实施例六之计算机设备的硬件架构示意图。本实施例中,所述计算机设备20是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图12所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及图像的检索类别确定系统30或者图像检索系统40。其中:
本实施例中,存储器21至少包括一种类别的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例四的图像的检索类别确定系统30或者实施例五的图像检索系统40的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行图像的检索类别确定系统30,以实现实施例二的图像的检索类别确定方法,或者,运行图像检索系统40,以实现实施例三的图像检索方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述服务器2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述服务器2与外部终端相连,在所述服务器2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。需要指出的是,图12仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。在本实施例中,存储于存储器21中的所述图像的检索类别确定系统30或者图像检索系统40还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
实施例七
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于计算机程序,被处理器执行时实现实施例二的图像的检索类别确定方法,或者实现实施例三的图像检索方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。