本发明涉及图片识别处理领域,尤其是涉及一种基于文字查找匹配图片的方法。
背景技术:
现有的通过给定的查询语句查找最匹配的图片的方案,一般是着力于研究如何建模从而学习语句与图片之间的联系,但是现有的模型都没有考虑到准确率和实际场景中应用的集合,适用性较差。
技术实现要素:
本发明主要是解决现有技术所存在的缺乏考虑实际场景导致准确率不高的技术问题,提供一种具有较高准确率的基于文字查找匹配图片的方法。
本发明针对上述技术问题主要是通过下述技术方案得以解决的:一种基于文字查找匹配图片的方法,包括以下步骤:
s1、对查询语句进行编码;
s2、计算出编码后的查询语句与图片库中每张图像的匹配分数;
s3、将每张图片的匹配分数转换为带权重的倒排索引形式,即以词为单位,记录含有每个词的图片id,并且记录这个词在这个图片的权重,输出检索结果。
作为优选,步骤s1具体为:
在预训练模型中检索查询语句中的每一个字段相对应的词向量,作为该字段的初始特征,
wi为查询语句中的第i个字段,
查询语句表示为
作为优选,步骤s1具体为:
对于查询语句q=[w1,w2,…,ws],提取所有1-2的n-gram组合,包含n=[w1,w2,…,ws,w12,w23,…,w(s-1)s],用bertembedding对n进行向量化编码:
wi=bertembedding(wi)
wij=avg(bertembedding([wi,wj])
得到编码后的查询语句。
对于所有1-gram来说,我们通过bertembedding直接进行词向量编码。对于2-gram来说,我们通过bertembedding对其两个单词进行编码,然后用平均数的方式取得两个词的向量表示方式。通过这种方式,既能保证可以提前建立关于一个图片库的索引,又可以一定程度上保留查询q里的词序信息,最终性能高于仅仅依靠1-gram的算法,达到了保持后期查询的高效率且一定程度上保留查询语句中的词序关系的目的。
作为优选,每张图片通过以下步骤进入图片库:
a1、将图片放入faster-rcnn网络(faster-rcnn可以直接使用开源版本),取得其中的n个区域特征,以及区域特征所对应的位置特征,区域特征表示为:
式中,vi为图片的第i个区域的区域特征,1≤i≤n,
a2、获取每个区域的位置特征li,表示为归一化后的区域左上角和右下角的坐标以及区域的长度和宽度:
li=[li-xmin,li-xmax,li-ymin,li-ymax,li-width,li-height]
li-xmin为第i个区域的左上角x坐标,li-xmax为第i个区域的右下角x坐标,li-ymin为第i个区域的左上角y坐标,li-ymax为第i个区域的右下角y坐标,li-width为第i个区域的宽度,li-height为第i个区域的长度;
a3、将第i个区域的区域特征和位置特征结合得到
ei=[vi;li]
从而得到单张图片的特征表达为:
a4、通过fasfer-rcnn网络预测图片的物体标签,表示为:
其中oi表示[o1,…,ok]中的一个物品标签,[o1,…,ok]为物体的文字标签合集,eword(oi)代表词向量,epos(oi)代表位置向量,eseg(oi)表示字段种类向量;
a5、将单张图片的特征和物品标签的结合得到图片的最终表示a:
a=[(eimagew b);elabel]
式中,
a6、将集合a传入bert编码器(即bertembedding),得到最终的图片特征:
hanswer=bertencoder(a)
式中,
作为优选,模型训练方法如下:
查询语句的特征合集为w,图片的特征合集为v,对第i个字段wi和图片的每个区域信息,通过点乘获得相似度分数,并选择最大值作为代表其匹配程度的分数yi,然后通过反向传播算法修正模型,具体公式如下:
模型以oscarbase为初始值,s为查询语句中词向量的个数。对于分数yi,加入了relu函数从而去除负值对于字段分数的影响。
作为优选,步骤s2中,计算查询语句与图片库中每张图片的匹配分数的方法与模型训练方法中计算匹配程度的方法相同。
本发明带来的实质性效果是:可以学习查询语句字段与图片区域的精确联系,从而获得高召回率的表现;得益于独立学习查询语语句字段的特征以及图片区域的特征,预先将图片编入索引,并把整个检索操作归纳为倒排索引,从而保证了跨模态检索的效率。
附图说明
图1是本发明的一种流程图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例1:本实施例的一种基于文字查找匹配图片的方法,如图1所示,包括以下步骤:
s1、在预训练模型中检索查询语句中的每一个字段相对应的词向量,作为该字段的初始特征,
wi为查询语句中的第i个字段,
查询语句表示为
s2、计算出查询语句与图片库中每张图像的匹配分数;
s3、将每张图片的匹配分数转换为带权重的倒排索引形式,即以词为单位,记录含有每个词的图片id,并且记录这个词在这个图片的权重,输出检索结果。
每张图片通过以下步骤进入图片库:
a1、将图片放入faster-rcnn网络(faster-rcnn可以直接使用开源版本),取得其中的n个区域特征,以及区域特征所对应的位置特征,区域特征表示为:
式中,vi为图片的第i个区域的区域特征,1≤i≤n,
a2、获取每个区域的位置特征li,表示为归一化后的区域左上角和右下角的坐标以及区域的长度和宽度:
li=[li-xmin,li-xmax,li-ymin,li-ymax,li-width,li-height]
li-xmin为第i个区域的左上角x坐标,li-xmax为第i个区域的右下角x坐标,li-ymin为第i个区域的左上角y坐标,li-ymax为第i个区域的右下角y坐标,li-width为第i个区域的宽度,li-height为第i个区域的长度;
a3、将第i个区域的区域特征和位置特征结合得到
ei=[vi;li]
从而得到单张图片的特征表达为:
a4、通过fasfer-rcnn网络预测图片的物体标签,表示为:
其中oi表示[o1,…,ok]中的一个物品标签,[o1,…,ok]为物体的文字标签合集,eword(oi)代表词向量,epos(oi)代表位置向量,eseg(oi)表示字段种类向量;
a5、将单张图片的特征和物品标签的结合得到图片的最终表示a:
a=[(eimagew b);elabel]
式中,
a6、将集合a传入bert编码器(即bertembedding),得到最终的图片特征:
hanswer=bertencoder(a)
式中,
模型训练方法如下:
查询语句的特征合集为w,图片的特征合集为v,对第i个字段wi和图片的每个区域信息,通过点乘获得相似度分数,并选择最大值作为代表其匹配程度的分数yi,然后通过反向传播算法修正模型,具体公式如下:
模型以oscarbase为初始值,s为查询语句中词向量的个数。对于分数yi,加入了relu函数从而去除负值对于字段分数的影响。
步骤s2中,计算查询语句与图片库中每张图片的匹配分数的方法与模型训练方法中计算匹配程度的方法相同。
实施例2:本实施例的一种基于文字查找匹配图片的方法,包括以下步骤:
s1、对于查询语句q=[w1,w2,…,ws],提取所有1-2的n-gram组合,包含n=[w1,w2,…,ws,w12,w23,…,w(s-1)s],用bertembedding对n进行向量化编码:
wi=bertembedding(wi)
wij=avg(bertembedding([wi,wj])
s2、计算出查询语句与图片库中每张图像的匹配分数;
s3、将每张图片的匹配分数转换为带权重的倒排索引形式,即以词为单位,记录含有每个词的图片id,并且记录这个词在这个图片的权重,输出检索结果。
对于所有1-gram来说,我们通过bertembedding直接进行词向量编码。对于2-gram来说,我们通过bertembedding对其两个单词进行编码,然后用平均数的方式取得两个词的向量表示方式。通过这种方式,既能保证可以提前建立关于一个图片库的索引,又可以一定程度上保留查询q里的词序信息,最终性能高于仅仅依靠1-gram的算法,达到了保持后期查询的高效率且一定程度上保留查询语句中的词序关系的目的。
其余步骤与实施例1相同。
本方案在mscoco和flickr30k数据集上进行测试,检索速度都大幅超越了之前最好的双塔模型(cvse)和基于transformer结构的模型(oscar)。在113k数据集上,本方案的检索速度为cvse的9.1倍,为oscar的9960.7倍;在1m数据集上,本方案的检索速度是cvse的102倍,是oscar的51000倍。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了查询语句、特征、向量维度等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
1.一种基于文字查找匹配图片的方法,其特征在于,包括以下步骤:
s1、对查询语句进行编码;
s2、计算出编码后的查询语句与图片库中每张图像的匹配分数;
s3、将每张图片的匹配分数转换为带权重的倒排索引形式,即以词为单位,记录含有每个词的图片id,并且记录这个词在这个图片的权重,输出检索结果。
2.根据权利要求1所述的一种基于文字查找匹配图片的方法,其特征在于,步骤s1具体为:
在预训练模型中检索查询语句中的每一个字段相对应的词向量,作为该字段的初始特征,
wi为查询语句中的第i个字段,
查询语句表示为
3.根据权利要求1所述的一种基于文字查找匹配图片的方法,其特征在于,步骤s1具体为:
对于查询语句q=[w1,w2,…,ws],提取所有1-2的n-gram组合,包含n=[w1,w2,…,ws,w12,w23,…,w(s-1)s],用bertembedding对n进行向量化编码:
wi=bertembedding(wi)
wij=avg(bertembedding([wi,wj])
得到编码后的查询语句。
4.根据权利要求2或3所述的一种基于文字查找匹配图片的方法,其特征在于,每张图片通过以下步骤进入图片库:
a1、将图片放入faster-rcnn网络,取得其中的n个区域特征,以及区域特征所对应的位置特征,区域特征表示为:
式中,vi为图片的第i个区域的区域特征,1≤i≤n,
a2、获取每个区域的位置特征li,表示为归一化后的区域左上角和右下角的坐标以及区域的长度和宽度:
li=[li-xmin,li-xmax,li-ymin,li-ymax,li-width,li-height]
li-xmin为第i个区域的左上角x坐标,li-xmax为第i个区域的右下角x坐标,li-ymin为第i个区域的左上角y坐标,li-ymax为第i个区域的右下角y坐标,li-width为第i个区域的宽度,li-height为第i个区域的长度;
a3、将第i个区域的区域特征和位置特征结合得到
ei=[vi;li]
从而得到单张图片的特征表达为:
a4、通过fasfer-rcnn网络预测图片的物体标签elabel,表示为:
其中oi表示[o1,...,ok]中的一个物品标签,[o1,...,ok]为物体的文字标签合集,eword(oi)代表词向量,epos(oi)代表位置向量,eseg(oi)表示字段种类向量;
a5、将单张图片的特征和物品标签的结合得到图片的最终表示a:
a=[(eimagew b);elabel]
式中,
a6、将集合a传入bert编码器,得到最终的图片特征:
hanswer=bertencoder(a)
式中,
5.根据权利要求4所述的一种基于文字查找匹配图片的方法,其特征在于,模型训练方法如下:
查询语句的特征合集为w,图片的特征合集为v,对第i个字段wi和图片的每个区域信息,通过点乘获得相似度分数,并选择最大值作为代表其匹配程度的分数yi,然后通过反向传播算法修正模型,具体公式如下:
模型以oscarbase为初始值,s为查询语句中词向量的个数。
6.根据权利要求5所述的一种基于文字查找匹配图片的方法,其特征在于,步骤s2中,计算查询语句与图片库中每张图片的匹配分数的方法与模型训练方法中计算匹配程度的方法相同。
技术总结