CN114329006A - 图像检索方法、装置、设备、计算机可读存储介质 - Google Patents
图像检索方法、装置、设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN114329006A CN114329006A CN202111124020.6A CN202111124020A CN114329006A CN 114329006 A CN114329006 A CN 114329006A CN 202111124020 A CN202111124020 A CN 202111124020A CN 114329006 A CN114329006 A CN 114329006A
- Authority
- CN
- China
- Prior art keywords
- quantization
- vector
- model
- image
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000013139 quantization Methods 0.000 claims abstract description 494
- 239000013598 vector Substances 0.000 claims abstract description 400
- 238000003062 neural network model Methods 0.000 claims description 229
- 230000006870 function Effects 0.000 claims description 157
- 238000013507 mapping Methods 0.000 claims description 118
- 238000012549 training Methods 0.000 claims description 76
- 238000012545 processing Methods 0.000 claims description 38
- 238000000605 extraction Methods 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 17
- 238000013473 artificial intelligence Methods 0.000 abstract description 12
- 230000000694 effects Effects 0.000 description 21
- 238000013135 deep learning Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- JLYXXMFPNIAWKQ-UHFFFAOYSA-N γ Benzene hexachloride Chemical compound ClC1C(Cl)C(Cl)C(Cl)C(Cl)C1Cl JLYXXMFPNIAWKQ-UHFFFAOYSA-N 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 101100481876 Danio rerio pbk gene Proteins 0.000 description 5
- 101100481878 Mus musculus Pbk gene Proteins 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000005065 mining Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 241000282414 Homo sapiens Species 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000013140 knowledge distillation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
Abstract
本申请实施例提供了一种图像检索方法、装置、设备及计算机可读存储介质,涉及人工智能领域,该方法包括:获取待查询图像;确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量;根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像。该方法提升了图像检索的准确率与召回率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,本申请涉及一种图像检索方法、装置、设备及计算机可读存储介质。
背景技术
现有技术中大规模图像检索采用乘积量化检索PQ,但是PQ从特征出发直接做子空间的分割以及每个空间的切分,容易产生相似的样本由于特征相似度不足、被切分到不同量化编码的情况,从而导致图像检索的准确度不高。
发明内容
本申请针对现有的方式的缺点,提出一种图像检索方法、装置、设备、计算机可读存储介质及计算机程序产品,用于解决如何提升图像检索的准确率的问题。
第一方面,本申请提供了一种图像检索方法,包括:
获取待查询图像;
确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征所述第一特征嵌入向量对应的量化特征;
根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;
根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像。
在一个实施例中,确定待查询图像的第一特征嵌入向量和第一量化向量,包括:
将待查询图像对应的三元组样本输入至第一神经网络模型的基础特征及特征嵌入模型,通过特征嵌入处理,得到待查询图像的第一特征嵌入向量,基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型;
将第一特征嵌入向量输入至第一神经网络模型的量化映射模型,通过映射量化处理,得到第一量化向量。
在一个实施例中,根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,包括:
若第一量化向量和预设图像库的索引向量列表中至少一个索引向量之间的距离小于预设第一距离阈值,则将索引向量列表中至少一个索引向量确定为第一量化向量对应的至少一个索引向量。
在一个实施例中,根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像,包括:
若第一特征嵌入向量和多个图像中任一图像的特征嵌入向量之间的第一距离都小于预设第二距离阈值,则将各第一距离按照从小到大进行排序,将排序在前的第一距离对应的多个图像中的图像、作为待查询图像对应的相似图像。
在一个实施例中,在获取待查询图像之前,还包括:
获取图像样本集对应的多个三元组样本,三元组样本包括图像样本、图像样本对应的正样本和图像样本对应的负样本;
将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量;
将多个三元组样本对应的第二特征嵌入向量输入至所述第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;
根据多个三元组样本对应的第二量化向量,确定第二神经网络模型的量化映射模型的第一损失函数值;
基于第一损失函数值更新第二神经网络模型的量化映射模型的参数;
若第一损失函数值小于或等于预设第一损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型。
在一个实施例中,第二神经网络模型的基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型,第二神经网络模型还包括辅助量化模型;
将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量,包括:
将多个三元组样本输入至第二神经网络模型的特征图提取模型,得到多个三元组样本对应的深度特征图;
将深度特征图输入至第二神经网络模型的特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量;
根据多个三元组样本对应的第二量化向量,确定第二神经网络模型的量化映射模型的第一损失函数值;若第一损失函数值大于预设第一损失函数阈值,则根据第一损失函数值进行梯度后向计算,更新第二神经网络模型的量化映射模型的参数;若第一损失函数值小于或等于预设第一损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型,包括:
将多个三元组样本对应的第二特征嵌入向量输入至第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;
将多个三元组样本对应的深度特征图输入至第二神经网络模型的辅助量化模型,得到第三量化向量;
根据第二量化向量和第三量化向量,确定第二神经网络模型的量化映射模型的第一量化映射损失函数值;
根据第三量化向量,确定第二神经网络模型的辅助量化模型的第一旁路量化损失函数值;
根据第一量化映射损失函数值、预设第一参数和第一旁路量化损失函数值,确定第一量化损失函数值;
基于所述第一量化损失函数值,更新所述第二神经网络模型的量化映射模型的参数和辅助量化模型的参数;
若第一量化损失函数值小于或等于预设第一量化损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型。
在一个实施例中,对第二神经网络模型的基础特征及特征嵌入模型进行训练的方式,包括:
根据多个三元组样本对应的第二特征嵌入向量,确定第二神经网络模型的基础特征及特征嵌入模型的三元组损失函数值;
根据三元组损失函数值,更新第二神经网络模型的基础特征及特征嵌入模型的参数;
若三元组损失函数值小于或等于预设三元组损失函数阈值,则结束第二神经网络模型的基础特征及特征嵌入模型的训练,并将训练得到的第二神经网络模型的基础特征及特征嵌入模型作为第一神经网络模型的基础特征及特征嵌入模型。
第二方面,本申请提供了一种图像检索装置,包括:
第一处理模块,用于获取待查询图像;
第二处理模块,用于确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;
第三处理模块,用于根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;
第四处理模块,用于根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像。
第三方面,本申请提供了一种电子设备,包括:处理器、存储器和总线;
总线,用于连接处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请第一方面的图像检索方法。
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被用于执行本申请第一方面的图像检索方法。
第五方面,本申请提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本申请第一方面中图像检索方法的步骤。
本申请实施例提供的技术方案,至少具有如下有益效果:
确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像;如此,提升了图像检索的准确率与召回率,同时避免了直接应用深度学习对特征嵌入embedding模型的输出结果进行量化时出现的量化结果塌缩。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的图像检索***的架构示意图;
图2为本申请实施例提供的一种图像检索方法的流程示意图;
图3-a为本申请实施例提供的一种图像检索的示意图;
图3-b为本申请实施例提供的一种图像检索的示意图;
图4为本申请实施例提供的一种图像检索的示意图;
图5为本申请实施例提供的一种图像检索方法的流程示意图;
图6为本申请实施例提供的一种图像检索装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“A”,或者实现为“A和B”。
传统的乘积量化检索PQ可以使得索引在不占过多内存下,实现更准确的召回。但是发明人研究发现至少存在以下问题:
(1)非端到端训练的量化方法,存在量化后性能下降明显的问题。
(2)存在相似样本在特征空间割裂:PQ量化从特征出发直接做子空间的分割以及每个空间的切分,容易产生相似的样本由于特征相似度不足,被切分到不同量化编码的情况;例如两个相似样本的特征向量分别是[-1,1,0.5,-0.03],[-1,1,0.5,0.01],由特征向量直接做被符号量化则得到[0,1,1,0]和[0,1,1,1]两个编码,而不是量化到相同的编码。
(3)不支持带标签的学习,即对错误样本不能有针对性地进行量化,故实际应用中PQ的召回效果总比原始特征召回率低。
(4)仅学习量化,没有学习embedding,无法支持检索后的其他步骤,如排序等。
基于此,为了解决现有图像检索中存在的问题中的至少一个,更好的满足图像检索的需求,本申请提供了一种图像检索方法,基于该方法可以提升图像检索的准确率与召回率。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例是图像检索***提供的一种图像检索方法,该图像检索方法涉及人工智能领域,例如机器学习、深度学习等。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
深度学习(Deep Learning,DL)是机器学习领域中一个新的研究方向。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。深度学习的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
为了更好的理解及说明本申请实施例的方案,下面对本申请实施例中所涉及到的一些技术用语进行简单说明。
图像识别:类别级别的识别,不考虑对象的特定实例,仅考虑对象的类别(例如人、狗、猫、鸟等)进行的识别并给出对象所属类别。一个典型的例子是大型通用物体识别开源数据集imagenet中的识别任务,识别出某个物体是1000个类别中的哪一个。
二值量化:对于D维特征嵌入embedding向量,向量归一化后取值范围一般为-1~1浮点数,将特征压缩到指定位数(例如48位)取值为0、1的二进制码(称为48bit压缩),该二进制码为向量二值量化或二值编码。
二值量化索引:把D维特征向量通过某个计算过程(模型)得到有限比特位的二值向量,检索时以二值向量作为索引召回图像。
Imagenet:Imagenet为大型通用物体识别开源数据集。
Imagenet预训练模型:基于imagenet训练一个深度学习网络模型,得到该模型的参数权重即为imagenet预训练模型。
汉明距离:汉明距离hamming distance用于衡量二进制特征间的距离,通过统计数值不同的特征位数量作为距离实现,例如(1000)与(0011)的距离为3。
学习率:学习率(Learning rate)作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
K-L散度:K-L散度(Kullback-Leibler Divergence)是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵。
PQ:PQ为乘积量化检索,PQ是首先把一个D维的向量分成M个子空间,每个空间特征维度是D/M,对每个子空间分别做kmeans(聚K类),得到M个空间聚类中心。检索时对query(查询)特征分成M个维度,然后每个维度分别在该维度下的K个中心找到最近的中心,召回该中心下的所有样本;M维度下的所有样本分别与query在各维度下计算距离(共有M个距离),并求和得到query与所有召回样本的距离;对距离排序,取最小的top30样本召回。该方法在分M个子空间后,每个子空间都分别进行量化,一种最简单的量化方法是对子空间中D/M维的特征进行符号量化,即当某一维度特征大于0则量化为1,小于0则量化为0,如对[-1,1,0.5,-0.2]特征向量,量化后得到[0,1,1,0]编码。该方法不在需要与聚类中心的大量距离计算,速度上较优。
知识蒸馏:知识蒸馏是用一个大且复杂的模型(teacher)学习到的知识知道小而紧凑的模型(student),目标是让student的网络输出结果尽量与teacher网络的输出结果一致,这样就达到了用小代价获取大性能的目的。
一代训练epoch:当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个epoch。
本申请实施例提供的方案涉及人工智能,下面以具体的实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例所提供的方案可以适用于人工智能领域中任意需要图像检索的应用场景。
为了更好的理解本申请实施例提供的方案,下面结合具体的一个应用场景对该方案进行说明。
在一个实施例中,图1中示出了本申请实施例所适用的一种图像检索***的架构示意图,可以理解的是,本申请实施例所提供的图像检索方法可以适用于但不限于应用于如图1所示的应用场景中。
本示例中,如图1所示,该示例中的图像检索***的架构可以包括但不限于图像识别平台10和数据库***20,其中,图像识别平台10可以为服务器或终端,数据库***20可以为服务器;图像识别平台10和数据库***20之间可以通过网络进行交互。图像识别平台10中运行第一神经网络模型101,第一神经网络模型101包括基础特征及特征嵌入模型110和量化映射模型120,其中,基础特征及特征嵌入模型110包括特征图提取模型111和特征嵌入模型112。
图像识别平台10获取待查询图像;图像处理平台10将待查询图像输入至特征图提取模型111,得到深度特征图;特征图提取模型111将深度特征图输入至特征嵌入模型112,得到待查询图像的第一特征嵌入向量;特征嵌入模型112将第一特征嵌入向量输入至量化映射模型120,通过映射量化处理,得到第一量化向量。图像识别平台10根据第一量化向量、数据库***20中图像库的索引向量列表和预设第一距离阈值,确定第一量化向量对应的至少一个索引向量;图像识别平台10根据第一特征嵌入向量、至少一个索引向量对应的图像库中多个图像的特征嵌入向量,以及预设第二距离阈值,从多个图像中识别至少一个图像作为待查询图像对应的相似图像。
可理解,上述仅为一种示例,本实施例在此不作限定。
其中,终端可以是智能手机(如Android手机、iOS手机等)、手机模拟器、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile Internet Devices,移动互联网设备)、PDA(个人数字助理)、车载终端(例如车载导航终端)、智能音箱、智能手表等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、Wi-Fi及其他实现无线通信的网络。具体也可基于实际应用场景需求确定,在此不作限定。
参见图2,图2示出了本申请实施例提供的一种图像检索方法的流程示意图,其中,该方法可以由任一电子设备执行,如可以是服务器或终端,作为一可选实施方式,该方法可以由服务器或终端执行,为了描述方便,在下文的一些可选实施例的描述中,将以服务器或终端作为该方法执行主体为例进行说明。如图2所示,本申请实施例提供的图像检索方法包括如下步骤:
S201,获取待查询图像。
具体地,待查询图像可以为人、狗、猫、鸟等图片。针对待查询图像,进行图像检索,得到图像库中与待查询图像对应的相似图像,待查询图像与相似图像属于同一类图像,例如,待查询图像是一只小斑点狗,相似图像是与该小斑点狗相识的斑点狗。
S202,确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征。
具体地,第一特征嵌入向量可以为embedding向量,即特征嵌入向量;将embedding向量输入至量化映射模型(Map模型),通过映射量化处理,得到第一量化向量。
例如,第一特征嵌入向量可以为(-1,1,0.5,-0.03)、(0.1,0.1,0.5,0.03)等。第一量化向量可以为(0,1,0)、(1,0,0)等。
S203,根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征。
具体地,预设图像库的索引向量列表包括多个索引向量,其中,每一个索引向量可以对应多个图像样本的特征嵌入向量,每个图像样本对应一个特征嵌入向量。
在一个实施例中,根据第一量化向量、预设图像库的索引向量列表和预设第一距离阈值,确定第一量化向量对应的多个索引向量。
S204,根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像。
具体地,根据第一特征嵌入向量、多个索引向量对应的特征嵌入向量,以及预设第二距离阈值,可以确定多个图像中的至少两个图像作为待查询图像对应的相似图像。
本申请实施例中,确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像;如此,提升了图像检索的准确率与召回率,同时避免了直接应用深度学习对特征嵌入embedding模型的输出结果进行量化时出现的量化结果塌缩。
在一个实施例中,确定待查询图像的第一特征嵌入向量和第一量化向量,包括步骤A1-A2:
步骤A1,将待查询图像对应的三元组样本输入至预设的第一神经网络模型的基础特征及特征嵌入模型,通过特征嵌入处理,得到待查询图像的第一特征嵌入向量,基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型。
举例说明,如图1所示,将待查询图像对应的三元组样本输入至预设的第一神经网络模型101的基础特征及特征嵌入模型110,通过特征嵌入处理,得到待查询图像的第一特征嵌入向量,基础特征及特征嵌入模型110包括特征图提取模型111和特征嵌入模型112。特征图提取模型111可以为CNN(Convolutional Neural Networks,卷积神经网络),特征图提取模型111可以为ResNet-101,其中,ResNet-101的特征模块结构表如表1所示。
表1 ResNet-101的特征模块结构表
特征嵌入模型112可以为embedding学习层,采用度量学习学习三元组距离信息,特征嵌入模型112如表2所示,表2中64为embeddng维度。
表2特征嵌入模型
步骤A2,将第一特征嵌入向量输入至第一神经网络模型的量化映射模型,通过映射量化处理,得到第一量化向量。
举例说明,如图1所示,将第一特征嵌入向量输入至第一神经网络模型101的量化映射模型120,通过映射量化处理,得到第一量化向量。量化映射模型(Map)120如表3所示。
表3量化映射模型
在一个实施例中,根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,包括:
若第一量化向量和预设图像库的索引向量列表中至少一个索引向量之间的距离小于预设第一距离阈值,则将索引向量列表中至少一个索引向量确定为第一量化向量对应的至少一个索引向量。
在一个实施例中,建立图像库(图像数据库)的索引,生成倒排表LinvertT和正排表T,包括步骤B1-B3:
步骤B1,将图像库中的N个图像i分别输入至第一神经网络模型,得到特征嵌入向量e以及量化向量q_map;其中,e为第一神经网络模型的特征嵌入模型输出的结果;q_map是由量化输出后取sign符号函数得到量化的0、1向量,即q_map为第一神经网络模型的量化映射模型的输出结果。纪录图像与特征嵌入向量的T映射表为T[i:e],其中,i表示图像的序号,e表示该图像的特征嵌入向量。
步骤B2,建立基于q_map的索引***,即将具有qj的图像序号记录到倒排表Linvert中,例如,[q1:[img1,img2,img5],q2:[img3],q3:[img4]],保存索引向量列表Lindex:[q1,q2,q3],其中,q1、q2和q3为索引向量,img1、img2、img3、img4和img5为索引向量对应的图像。
步骤B3,对于新加入的样本x,可以计算该样本x的qx、ex,当qx存在于Lindex列表中,则将ex加入到Lindex下qx对应的列表中,将图像序号x和ex加入到T映射表,即新增一个序号-特征的记录[x:ex]。
在一个实施例中,若第一量化向量q_map和预设图像库的索引向量列表Lindex中至少一个索引向量之间的距离小于预设第一距离阈值,则将索引向量列表中至少一个索引向量确定为第一量化向量对应的至少一个索引向量。例如,根据待查询图像的q_map,从Lindex中确定与待查询图像的q_map之间汉明距离小于预设第一距离阈值Dq_thr的索引向量,索引向量例如Lindex列表中的q2和q3。
在一个实施例中,根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像,包括:
若第一特征嵌入向量和多个图像中任一图像的特征嵌入向量之间的第一距离都小于预设第二距离阈值,则将各第一距离按照从小到大进行排序,将排序在前的第一距离对应的多个图像中的图像、作为待查询图像对应的相似图像。
举例说明,Lindex列表中的索引向量q2和q3,其中,q2:[img3],q3:[img4];q2对应预设图像库中图像img3的特征嵌入向量e3,q3对应预设图像库中图像img4的特征嵌入向量e4。若第一特征嵌入向量e分别和e3、e4之间的第一距离(例如欧式距离)都小于预设第二距离阈值,则将e3的第一距离dist3和e4的第一距离dist4按照从小到大进行排序,从上述排序中选择topK个样本返回,例如topK为2,即选择图像img3和图像img4返回给用户,将图像img3和图像img4作为待查询图像的相识图像,其中,topK可以预先设定。
在一个实施例中,在获取待查询图像之前,还包括:
获取图像样本集对应的多个三元组样本,三元组样本包括图像样本、图像样本对应的正样本和图像样本对应的负样本;
将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量;
将多个三元组样本对应的第二特征嵌入向量输入至第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;
根据多个三元组样本对应的第二量化向量,确定第二神经网络模型的量化映射模型的第一损失函数值;
基于第一损失函数值更新第二神经网络模型的量化映射模型的参数;
若第一损失函数值小于或等于预设第一损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型。
举例说明,将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,通过特征嵌入处理,得到多个三元组样本对应的第二特征嵌入向量,将多个三元组样本对应的第二特征嵌入向量输入至第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;其中,基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型,特征图提取模型可以为CNN,特征图提取模型可以为ResNet-101。
在一个实施例中,对第二神经网络模型进行训练之前,需要进行训练样本准备。常规的相似度embedding训练需要准备相似样本对,本申请实施例所提供的图像检索方法可以基于相似度信息,故也需要准备相似样本对。针对量化的相似样本对与训练相似度embedding模型(第二神经网络模型包括的特征嵌入模型)的样本对一致。
在一个实施例中,图像样本集对应的多个三元组样本的挖掘可以是批量batch中的样本挖掘,采用triplet学习来挖掘样本,以相似样本对作为输出。例如,在每个batch的样本对中进行如下挖掘,得到三元组样本:针对某个样本x,从剩余的bs-1个样本对(每对随机选择一张图像)的样本中分别计算样本对的embedding(第二神经网络模型包括的特征嵌入模型的输出),计算embedding与x的距离,按距离从小到大排序,取前10个样本作为负样本,分别与x中的正样本组成三元组,故每个样本产生10个三元组,整个batch可以得到10×bs个三元组,其中,bs(batch size,批量数)表示一次训练所选取的样本数。
需要说明的是,相似度embedding模型(第二神经网络模型包括的特征嵌入模型)对于相同图像(例如完全一样或极度相似的图像)预测为相同(度量距离尽量小);对于不同图像(例如包括了仅少量相似但不够相似或不相似的图像)需要距离尽量大,同时也需要满足保序效果,即越不相似距离越远。除了例如视频相同镜头下的前后帧、在图像上添加色调变换等攻击手段这些类型的相似图外,其余大部分图片间互为相似图的概率极低,故对每个batch(从全量样本中采样到,可以理解为batch内两个不同样本对相互间是不相同的样本对)的任意一个样本对,剩下的均为有效负样本,选择距离最小的10个负样本(与正样本对最接近的样本)作为负样本。
在一个实施例中,对于已提取到embedding的图像,仅将embedding输入到表3的量化映射模型(Map),即可以提取到图像的量化q_map,可以将图像的embedding和q_map经过后续步骤建立索引和检索。这种用法适用于大量存量业务应用,即已经存在embedding模型,可以采用该方法对PQ或kmeans等存量方法进行索引升级。
在一个实施例中,对第二神经网络模型的基础特征及特征嵌入模型进行训练的方式,包括:
根据多个三元组样本对应的第二特征嵌入向量,确定第二神经网络模型的基础特征及特征嵌入模型的三元组损失函数值;
根据三元组损失函数值,更新第二神经网络模型的基础特征及特征嵌入模型的参数;
若三元组损失函数值小于或等于预设三元组损失函数阈值,则结束第二神经网络模型的基础特征及特征嵌入模型的训练,并将训练得到的第二神经网络模型的基础特征及特征嵌入模型作为第一神经网络模型的基础特征及特征嵌入模型。需要说明的是,对第二神经网络模型的基础特征及特征嵌入模型进行的训练,可以发生在第二神经网络模型的预训练阶段;对第二神经网络模型的基础特征及特征嵌入模型进行的训练,也可以发生在第二神经网络模型的量化阶段或量化阶段之后,量化阶段例如第一量化阶段和第二量化阶段。
在一个实施例中,如图3-a所示,第二神经网络模型210的预训练阶段可以是第二神经网络模型的基础特征及特征嵌入模型220的训练,其中,基础特征及特征嵌入模型包括特征图提取模型221和特征嵌入模型222。预训练阶段包括:
(1)参数初始化。
例如,预训练阶段中Conv1-Conv5采用在ImageNet数据集上预训练的ResNet-101(特征图提取模型)的参数,新添加的层如embedding(特征嵌入模型)采用方差为0.01,均值为0的高斯分布进行初始化。可以学习表1和表2中的参数。
(2)设置学习参数。
例如,对于预训练阶段中embedding学习,需要更新底层基础特征(特征图提取模型),设置的学习参数为表1和表2中所示。
(3)设置学习率。
例如,第二神经网络模型的特征图提取模型和特征嵌入模型均采用lr1=0.005的学习率;每经过10轮迭代后学习率lr变为原来的0.1倍。
(4)进行学习。
例如,学***均epoch loss不再下降。
(5)每轮迭代中的具体操作如下:将每batchsize个样本对作为一批次,并将全量样本对分成N×b个批次,对于每个batch,获取到多个三元组样本,并执行如下步骤C1-C3:
步骤C1,第二神经网络模型的基础特征及特征嵌入模型的前向计算。
具体地,将模型的所有参数都设为需要学习状态,训练时神经网络对输入的一张图片进行前向计算,得到预测结果,即第二神经网络模型的特征嵌入模型输出的第二特征嵌入向量em。
步骤C2,第二神经网络模型的基础特征及特征嵌入模型的损失函数计算。
例如,第二神经网络模型的基础特征及特征嵌入模型的损失函数可以是ltri,即相似度特征损失triplet loss;预训练阶段的损失函数值可以是ltri的值。三元组样本(a,p,n)包括图像样本a、图像样本对应的正样本p和图像样本对应的负样本n。在batch样本中找到三元组样本(a,p,n)后,将三元组样本对应的第二特征嵌入向量em进行L2normalization,即L2归一化,然后计算triplet loss。triplet loss的计算如公式(1)所示,其中alpha(α)为margin,α可以设为4,||Xa-Xp||表示两个embedding的L2距离。tripletloss目的是使得图像样本a(anchor)与负样本n(nagative)之间的距离,比a与正样本p(positive)之间的距离大于4。归一化目的是:使特征空间在0~1范围中,避免空间过大不利于优化学习。
ltri=max(||Xa-Xp||-||Xa-Xn||+α,0) 公式(1)
需要说明的是,ltri在预训练阶段使用,第一量化阶段和第二量化阶段中第二神经网络模型的基础特征及特征嵌入模型可以固定,不再调节。
步骤C3,第二神经网络模型的基础特征及特征嵌入模型的参数更新。
具体地,采用SGD(Stochastic Gradient Descent,随机梯度下降法),将第二神经网络模型的基础特征及特征嵌入模型的三元组损失函数进行梯度后向计算,从而更新第二神经网络模型的基础特征及特征嵌入模型的参数。
在一个实施例中,如图3-b所示,第二神经网络模型210包括基础特征及特征嵌入模型220、量化映射模230和辅助量化模型240,其中,基础特征及特征嵌入模型220包括特征图提取模型221和特征嵌入模型222。
举例说明,特征图提取模型221可以为CNN,特征图提取模型221可以为ResNet-101,其中,ResNet-101的特征模块结构表如表1所示。特征嵌入模型222可以为embedding学习层,特征嵌入模型222如表2所示。量化映射模型(Map)230如表3所示。辅助量化模型240如表4所示。
表4辅助量化模型
需要说明的是,表4所示的辅助量化模型用于辅助分值量化,对表1池化后输出的深度特征进行直接量化,可不受embedding约束获得从图像到量化更直接的量化效果,并作为辅助分支使目标量化与此量化效果接近,以避免目标量化在embedding影响下相似度度量不足。
在一个实施例中,第二神经网络模型的基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型,第二神经网络模型还包括辅助量化模型;
将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量,包括:
将多个三元组样本输入至第二神经网络模型的特征图提取模型,得到多个三元组样本对应的深度特征图;
将深度特征图输入至第二神经网络模型的特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量;
根据多个三元组样本对应的第二量化向量,确定第二神经网络模型的量化映射模型的第一损失函数值;若第一损失函数值大于预设第一损失函数阈值,则根据第一损失函数值进行梯度后向计算,更新第二神经网络模型的量化映射模型的参数;若第一损失函数值小于或等于预设第一损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型,包括:
将多个三元组样本对应的第二特征嵌入向量输入至第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;
将多个三元组样本对应的深度特征图输入至第二神经网络模型的辅助量化模型,得到第三量化向量;
根据第二量化向量和第三量化向量,确定第二神经网络模型的量化映射模型的第一量化映射损失函数值;
根据第三量化向量,确定第二神经网络模型的辅助量化模型的第一旁路量化损失函数值;
根据第一量化映射损失函数值、预设第一参数和第一旁路量化损失函数值,确定第一量化损失函数值;
基于所述第一量化损失函数值,更新所述第二神经网络模型的量化映射模型的参数和辅助量化模型的参数;
若第一量化损失函数值小于或等于预设第一量化损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型。
需要说明的是,本实施例中对第二神经网络模型的训练可以作为第二神经网络模型的整个量化阶段;本实施例对第二神经网络模型的训练也可以作为第二神经网络模型的第一量化阶段。
在一个实施例中,在结束第二神经网络模型的基础特征及特征嵌入模型的训练之后,还包括:
将第二特征嵌入向量输入至第二神经网络模型的量化映射模型中进行训练,得到第二量化向量;
将第二神经网络模型的特征图提取模型输出的深度特征图输入至第二神经网络模型的辅助量化模型中进行训练,得到第三量化向量;
根据第二量化向量和第三量化向量,通过K-L散度算法,确定第二神经网络模型的量化映射模型的第一量化映射损失函数值;
根据第三量化向量,确定第二神经网络模型的辅助量化模型的第一旁路量化损失函数值;
根据第一量化映射损失函数值、预设第一参数和第一旁路量化损失函数值,确定第一量化损失函数值;
若第一量化损失函数值大于预设第一量化损失函数阈值,则根据随机梯度下降算法,将第一量化损失函数值进行梯度后向计算,更新第二神经网络模型的量化映射模型的参数和辅助量化模型的参数;
若第一量化损失函数值小于或等于预设第一量化损失函数值阈值,则结束第二神经网络模型的量化映射模型和辅助量化模型的第一阶段训练。
在一个实施例中,第二神经网络模型的第一量化阶段,即第二神经网络模型的量化映射模型和辅助量化模型的第一阶段训练;第一量化阶段通过优先学习旁路分支(辅助量化模型),可以使得旁路分支(辅助量化模型)具备更好的学习效果。第一量化阶段包括:
(1)参数初始化。
例如,采用预训练阶段学习到的表1和表2的参数,初始化第二神经网络模型的参数,新添加的Map层(量化映射模型)和量化层(辅助量化模型)采用方差为0.01,均值为0的高斯分布进行初始化。
(2)设置学习参数。
例如,对于第一量化阶段的量化学习,需要学习表1、表2、表3和表4中的参数,其中,表1和表2中的参数为需要微调的参数,表3和表4中的参数为新增加参数。
(3)设置学习率。
例如,第二神经网络模型的量化映射模型和辅助量化模型均采用lr1=0.005的学习率;每经过10轮迭代后学习率lr变为原来的0.1倍。
(4)进行学习。
例如,学***均epoch loss不再下降。
(5)每轮迭代中的具体操作如下:将每batchsize个样本对作为一批次,并将全量样本对分成N×b个批次,对于每个batch,获取到多个三元组样本,并执行如下步骤D1-D3:
步骤D1,第二神经网络模型的基础特征及特征嵌入模型的前向计算。
具体地,将模型的所有参数都设为需要学习状态,训练时神经网络对输入的一张图片进行前向计算,得到预测结果,即第二神经网络模型的特征嵌入模型输出的第二特征嵌入向量em、第二神经网络模型的量化映射模型(Map层)输出的特征向量q_map,以及第二神经网络模型的辅助量化模型输出的特征向量q。
步骤D2,第二神经网络模型的第一量化损失函数值的计算。
具体地,根据第一量化映射损失函数值、预设第一参数和第一旁路量化损失函数值,确定第一量化损失函数值。第一量化损失函数值的计算如公式(2)所示。
第一量化阶段的Loss=Lq+M×Lmap 公式(2)
其中,第一量化阶段的Loss为第一量化损失函数,Lq为第一旁路量化损失函数,Lmap为第一量化映射损失函数,M为第一参数,例如,M取值为0.01。
例如,旁路量化损失Lq(第一旁路量化损失函数)可以由符号量化损失Lcoding与量化结果q(第二神经网络模型的辅助量化模块输出的特征向量q)的度量损失triplet loss(Ltriplet)组成。
量化结果q的度量损失的目的是使辅助量化分支(第二神经网络模型的辅助量化模型)输出的量化特征q具备度量三元组的能力,由于检索第一步是找到库存量化特征中与待查询图像最相似的topK个量化特征,故量化特征需要具备度量能力。
符号量化损失的目的是使量化输出足够接近-1或1两个符号量化可能输出的值,从而使得量化结果(由-1和1组成的量化向量)可以满足上述q的度量损失,从而得到满意的二值量化向量。计算中对于量化模块输出,先可以进行Tanh激活,然后根据公式(3)计算旁路量化损失Lq。
Lq=w21Ltriplet+w22Lcoding 公式(3)
其中,度量损失Ltriplet:同样采用三元组样本,由于量化向量128维,每位需要学习到-1或1的值,三元组样本中的a、n样本距离需要足够大,才能保证三元组样本在量化空间可区分,因此,边缘margin设置为100。
符号量化损失Lcoding:对该量化分支输出的向量计算量化效果loss,该层目标为输出(-1,1),由此可进行符号量化,即<0为0,>=0为1,因而量化loss的目的是使的量化编码coding的输出靠近-1或1(若输出处于临界值,即0附近,则容易造成相似特征被量化到不同编码中)。由此,可以采用符号函数产生量化学习任务的目标编码,例如采用sign函数,对coding向量u的每一位ui分别通过符号函数,根据公式(4)计算其目标编码bi,最终u的目标编码为b。采用回归损失regression loss使coding输出向量u与目标编码b的距离变小。根据公式(5)计算Lcoding。
权重:w21为1,w22为0.5,由于regression loss收敛比triplet-loss快,为了保证triplet-loss在整体loss中处于主导地位,从而保证embedding始终具有相似度度量的能力,因此,w22可以设为0.5,或w22可以设为小于1的其他值,可视情况调整。
Tanh激活函数将输出结果映射到-1和1之间,与sign函数的功能相似,不同的是sign函数在0位置是不可导的(+0和-0),即不能进行梯度计算,从而不能用于基于sgd梯度回传的深度学习中;而采用Tanh激活则可导并且可映射到-1到1之间。也可以采用sigmoid激活(到0~1之间),然后把0、1作为量化的目标(而非-1、1)。其中Tanh由于更快能获得-1、1,学习效果更好。其中,Tanh的曲线更陡、更快接近-1、1,而sigmoid更缓,不容易接近两端极值(0和1)。故Tanh模型学习的效果更逼近二值量化的真实效果。辅助量化分支(第二神经网络模型的辅助量化模型)的作用是协助第二神经网络模型的量化映射模型学习用的。
例如,embedding量化映射损失Lmap(第一量化映射损失函数)由映射层输出1x128维结果。由于直接从embedding映射容易使得量化的度量效果不佳(例如PQ量化方式),因此,借助旁路量化的效果作为学习目标,当第二神经网络模型学习到一个较好的旁路量化分支(第二神经网络模型的辅助量化模型)后,目标量化映射的结果仅需要对齐旁路量化的输出结果即可,Lmap计算如公式(6)所示。
Lmap为保持两个预测结果的分布一致性的K_L散度的loss,使得映射后量化结果分布与旁路量化一致。其中p(x)为旁路量化输出结果(表4中输出的1x128);q(x)为经过映射后的量化结果(表3映射层输出的1x128)。
步骤D3,第二神经网络模型的基础特征及特征嵌入模型的参数更新。
具体地,采用SGD(Stochastic Gradient Descent,随机梯度下降法),将第一量化损失函数值进行梯度后向计算,从而更新第二神经网络模型的量化映射模型的参数和辅助量化模型的参数。
在一个实施例中,在结束第二神经网络模型的量化映射模型和辅助量化模型的第一阶段训练之后,还包括:
将第二特征嵌入向量输入至第二神经网络模型的量化映射模型中进行训练,得到第二量化向量;
将第二神经网络模型的特征图提取模型输出的深度特征图输入至第二神经网络模型的辅助量化模型中进行训练,得到第三量化向量;
根据第二量化向量和第三量化向量,通过K-L散度算法,确定第二神经网络模型的量化映射模型的第二量化映射损失函数值;
根据第三量化向量,确定第二神经网络模型的辅助量化模型的第二旁路量化损失函数值;
根据第二量化映射损失函数值、预设第二参数和第二旁路量化损失函数值,确定第二量化损失函数值,第二参数大于第一参数;
若第二量化损失函数值大于预设第二量化损失函数阈值,则根据随机梯度下降算法,将第二量化损失函数值进行梯度后向计算,更新第二神经网络模型的量化映射模型的参数和辅助量化模型的参数;
若第二量化损失函数值小于或等于预设第二量化损失函数值阈值,则结束第二神经网络模型的量化映射模型和辅助量化模型的第二阶段训练,并将第二阶段训练得到的第二神经网络模型的量化映射模型作为第一神经网络模型的量化映射模型。
在一个实施例中,第二神经网络模型的第二量化阶段,即第二神经网络模型的量化映射模型和辅助量化模型的第二阶段训练;第二量化阶段可以量化映射学习以及调整旁路分支效果,具体地,通过联合旁路分支(辅助量化模型)来训练量化映射模型,避免了直接应用深度学习对embedding模型(特征嵌入模型)输出结果进行量化时常出现的量化结果塌缩,具备更好的量化效果。第二量化阶段包括:
(1)参数初始化。
例如,采用预训练阶段学习到的表1和表2的参数,初始化第二神经网络模型的参数,新添加的Map层(量化映射模型)和量化层(辅助量化模型)采用方差为0.01,均值为0的高斯分布进行初始化。
(2)设置学习参数。
例如,对于第二量化阶段的量化学习,需要学习表1、表2、表3和表4中的参数,其中,表1和表2中的参数为需要微调的参数,表3和表4中的参数为新增加参数。
(3)设置学习率。
例如,第二神经网络模型的量化映射模型和辅助量化模型均采用lr1=0.005的学习率;每经过10轮迭代后学习率lr变为原来的0.1倍。
(4)进行学习。
例如,学***均epoch loss不再下降。
(5)每轮迭代中的具体操作如下:将每batchsize个样本对作为一批次,并将全量样本对分成N×b个批次,对于每个batch,获取到多个三元组样本,并执行如下步骤E1-E3:
步骤E1,第二神经网络模型的基础特征及特征嵌入模型的前向计算。
具体地,将模型的所有参数都设为需要学习状态,训练时神经网络对输入的一张图片进行前向计算,得到预测结果,即第二神经网络模型的特征嵌入模型输出的第二特征嵌入向量em、第二神经网络模型的量化映射模型(Map层)输出的特征向量q_map,以及第二神经网络模型的辅助量化模型输出的特征向量q。
步骤E2,第二神经网络模型的第二量化损失函数值的计算。
具体地,根据第二量化映射损失函数值、预设第二参数和第二旁路量化损失函数值,确定第二量化损失函数值。第二量化损失函数值的计算如公式(7)所示。
第二量化阶段的Loss=Lq+N×Lmap 公式(7)
其中,第二量化阶段的Loss为第二量化损失函数,Lq为第二旁路量化损失函数,Lmap为第二量化映射损失函数,N为第二参数,例如,N取值为1.0。
例如,旁路量化损失Lq(第二旁路量化损失函数)可以由符号量化损失Lcoding与量化结果q(第二神经网络模型的辅助量化模块输出的特征向量q)的度量损失triplet loss(Ltriplet)组成。
例如,embedding量化映射损失Lmap(第二量化映射损失函数)由映射层输出1x128维结果。Lmap计算如公式(6)所示。Lmap为保持两个预测结果的分布一致性的K_L散度的loss,使得映射后量化结果分布与旁路量化一致。其中p(x)为旁路量化输出结果(表4中输出的1x128);q(x)为经过映射后的量化结果(表3映射层输出的1x128)。
步骤E3,第二神经网络模型的基础特征及特征嵌入模型的参数更新。
具体地,采用SGD(Stochastic Gradient Descent,随机梯度下降法),将第二量化损失函数值进行梯度后向计算,从而更新第二神经网络模型的量化映射模型的参数和辅助量化模型的参数。
需要说明的是,第二神经网络模型训练中的前5个epoch针对第一量化阶段,后续epoch针对第二量化阶段。
在一个实施例中,当业务上不需要保证微调后embedding特征(第二特征嵌入向量)不变的条件,例如业务上还没有大规模应用该embedding或重新提新embedding的代价不高时,embedding损失Lq-triplet可以在预训练阶段和量化阶段(第一量化阶段和第二量化阶段)均学习,量化阶段同时也学习embedding损失的目的是避免embedding表征的效果难以获得更优的量化效果。即当不需要保证第一量化阶段和第二量化阶段中的embedding与预训练阶段相同时,第一量化损失函数值的计算如公式(8)所示,第二量化损失函数值的计算如公式(9)所示。
第一量化阶段的Loss=Lq+M×Lmap+Lq-triplet 公式(8)
第二量化阶段的Loss=Lq+N×Lmap+Lq-triplet 公式(9)
应用本申请实施例,至少具有如下有益效果:
(1)有效的embedding直接量化的端到端量化模型学习方法:设计了预训练、量化分阶段微调方案保证多个收敛方式不同的任务有效学习;若按常规多任务学习的多任务loss加权学习方法,难以保证双任务都能顺利收敛,并且容易造成embedding的召回变低。
(2)量化结果具备度量能力避免相似样本量化空间割裂:通过度量学习使得相似样本量化距离接近,并可通过hamming距离阈值调整获得满意的召回率。
(3)避免常规级联量化的坍塌:若没有旁路分支,直接从embedding出发学习map量化容易塌缩,即所有量化的度量效果都集中在量化向量的某M个位置(如128位中的10位),而仅10/128比例的量化特征在检索召回中远远不足,然而由于量化效果都集中在M个位,M+1后的量化位不再具备足够的区分性;其中,区分性表示:仅召回相似样本,不相似的不召回;故M位以后量化效果塌缩,最严重的塌缩是全量库存都召回了。
(4)支持存量检索特征的量化优化:对不同的业务应用改造灵活,例如对存量特征,即已经训练好embedding模型(特征嵌入模型),但采用其他量化方法如PQ等,仅进行量化微调阶段即可以支持量化,并且应用中也可以直接输入embedding得到量化向量,提取更快速,效果更优。
(5)提升索引检索的准确率与召回率:基于旁路分支优化的量化度量学习可在不大规模降低准确率的情况下提升召回。避免了直接应用深度学习对embedding模型输出结果进行量化时常出现的量化结果塌缩。
(6)对于存量特征提升了量化编码提取效率:通过仅学习量化模块使得存量特征量化不仅可以保证相似度、避免空间割裂、同时还避免量化提取再次进行CNN模型的时间消耗,仅需要把e输入到量化模型(量化映射模型),即可提取到量化编码。
为了更好的理解本申请实施例所提供的方法,下面结合具体应用场景的示例对本申请实施例的方案进行进一步说明。
本申请实施例所提供的图像检索方法应用于图像识别领域中的图像检索场景。
本申请实施例所提供的图像检索方法应用于图像分桶/量化索引检索中(一个桶对应一个量化编码),图像检索包含以下步骤F1-F7:
步骤F1,训练基于相似度度量学习的图像embedding模型(第二神经网络模型)。
步骤F2,提取库存的量化向量和embedding向量(特征嵌入向量),其中,量化向量与embedding向量是一对多的关系,embedding向量与图像是一对一的关系。
步骤F3,将量化向量作为检索的索引(用于分桶检索),使之与embedding向量关联。
步骤F4,在检索中根据query图像(待查询图像)的量化找到库存中最近的K个量化。
步骤F5,获取这些量化索引的关联图像的embedding向量,得到候选图检索召回。
步骤F6,根据召回图像的embedding向量与query图像的embedding向量,计算两者之间的欧式距离,并从小到大排序。
步骤F7,取排序中topK个样本作为最后的召回结果。
例如,如图4所示,第一神经网络模型包括基础特征及特征嵌入模型和量化映射模型(Map),其中,基础特征及特征嵌入模型包括特征图提取模型(CNN)和特征嵌入模型(embedding)。将查询图像(query图像,也就是待查询图像)输入至第一神经网络模型,得到待查询图像的量化向量(1,0,0)和特征嵌入向量(0.2,0.8,0.3,0.3);在检索中根据待查询图像的量化向量(1,0,0)查询到图像库中最近的量化向量(1,0,0),图像库中量化向量(1,0,0)对应的特征嵌入向量为(0.2,0.7,0.3,0.3)、(0.1,0.5,0.2,0.2)和(0.2,0.4,0.2,0.3);将图像库中量化向量(1,0,0)对应的多个特征嵌入向量与查询图像的特征嵌入向量之间,分别计算欧式距离,并将得到的欧式距离从小到大排序;选取排序中topK个样本作为最后的召回结果。
在一个实施例中,本申请实施例所提供的神经网络模型,可以在模型推理中同时输出特征embedding和量化,从而生成量化更高效。
在一个实施例中,对于已经提取好embedding的图像,可以通过将embedding直接输入到quantization模型(辅助量化模型)即可快速获得量化结果,避免重新进行一次CNN提取的资源消耗。
参见图5,图5示出了本申请实施例提供的一种图像检索方法的流程示意图,其中,该方法可以由任一电子设备执行,如可以是服务器或终端,作为一可选实施方式,该方法可以由服务器或终端执行,为了描述方便,在下文的一些可选实施例的描述中,将以服务器或终端作为该方法执行主体为例进行说明。如图5所示,本申请实施例提供的图像检索方法包括如下步骤:
S501,获取图像样本集对应的多个三元组样本。
S502,基于多个三元组样本,对第二神经网络模型的基础特征及特征嵌入模型进行预训练阶段的训练,并确定预训练阶段的三元组损失函数值;若三元组损失函数值小于或等于预设三元组损失函数阈值,则结束预训练阶段的训练。
S503,对第二神经网络模型的量化映射模型和辅助量化模型进行第一量化阶段训练,并确定第一量化阶段的第一量化损失函数值;若第一量化损失函数值小于或等于预设第一量化损失函数值阈值,则结束第一量化阶段训练。
S504,对第二神经网络模型的量化映射模型和辅助量化模型进行第二量化阶段训练,并确定第二量化阶段的第二量化损失函数值;若第二量化损失函数值小于或等于预设第二量化损失函数值阈值,则结束第二阶段训练。
S505,获取待查询图像。
S506,将待查询图像输入至第一神经网络模型的基础特征及特征嵌入模型,通过特征嵌入处理,得到待查询图像的第一特征嵌入向量。
具体地,第一神经网络模型的基础特征及特征嵌入模型可以为第二神经网络模型的基础特征及特征嵌入模型。
S507,将第一特征嵌入向量输入至第一神经网络模型的量化映射模型,通过映射量化处理,得到第一量化向量。
具体地,第一神经网络模型的量化映射模型可以为第二神经网络模型的量化映射模型。
S508,根据第一量化向量、预设图像库的索引向量列表和预设第一距离阈值,确定第一量化向量对应的至少一个索引向量。
S509,根据第一特征嵌入向量、至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,以及预设第二距离阈值,从多个图像中确定至少一个图像作为待查询图像对应的相似图像。
应用本申请实施例,至少具有如下有益效果:
在第二神经网络模型的量化映射模型之外,设计了第二神经网络模型的辅助量化模型,对底层特征学习具有相似性度量的量化特征;通过第二神经网络模型的量化映射模型,对辅助量化模型的知识蒸馏学习,避免了embedding量化学习崩塌;在训练策略上通过多阶段调节不同任务权重,提升了各分支学习效果以及最终的量化效果,从而实现了更具有相似度表征的端到端的量化模型。
本申请实施例还提供了一种图像检索装置,该图像检索装置的结构示意图如图6所示,图像检索装置60,包括第一处理模块601、第二处理模块602、第三处理模块603和第四处理模块604。
第一处理模块601,用于获取待查询图像;
第二处理模块602,用于确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;
第三处理模块603,用于根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;
第四处理模块604,用于根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像。
在一个实施例中,第二处理模块602,具体用于:
将待查询图像对应的三元组样本输入至第一神经网络模型的基础特征及特征嵌入模型,通过特征嵌入处理,得到待查询图像的第一特征嵌入向量,基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型;
将第一特征嵌入向量输入至第一神经网络模型的量化映射模型,通过映射量化处理,得到第一量化向量。
在一个实施例中,第三处理模块603,具体用于:
若第一量化向量和预设图像库的索引向量列表中至少一个索引向量之间的距离小于预设第一距离阈值,则将索引向量列表中至少一个索引向量确定为第一量化向量对应的至少一个索引向量。
在一个实施例中,第四处理模块604,具体用于:
若第一特征嵌入向量和多个图像中任一图像的特征嵌入向量之间的第一距离都小于预设第二距离阈值,则将各第一距离按照从小到大进行排序,将排序在前的第一距离对应的多个图像中的图像、作为待查询图像对应的相似图像。
在一个实施例中,第一处理模块601,还用于:
获取图像样本集对应的多个三元组样本,三元组样本包括图像样本、图像样本对应的正样本和图像样本对应的负样本;
将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量;
将多个三元组样本对应的第二特征嵌入向量输入至所述第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;
根据多个三元组样本对应的第二量化向量,确定第二神经网络模型的量化映射模型的第一损失函数值;
基于第一损失函数值更新第二神经网络模型的量化映射模型的参数;
若第一损失函数值小于或等于预设第一损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型。
在一个实施例中,第一处理模块601,具体用于:
第二神经网络模型的基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型,第二神经网络模型还包括辅助量化模型;
将多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量,包括:
将多个三元组样本输入至第二神经网络模型的特征图提取模型,得到多个三元组样本对应的深度特征图;
将深度特征图输入至第二神经网络模型的特征嵌入模型,得到多个三元组样本对应的第二特征嵌入向量;
根据多个三元组样本对应的第二量化向量,确定第二神经网络模型的量化映射模型的第一损失函数值;若第一损失函数值大于预设第一损失函数阈值,则根据第一损失函数值进行梯度后向计算,更新第二神经网络模型的量化映射模型的参数;若第一损失函数值小于或等于预设第一损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型,包括:
将多个三元组样本对应的第二特征嵌入向量输入至第二神经网络模型的量化映射模型,得到多个三元组样本对应的第二量化向量;
将多个三元组样本对应的深度特征图输入至第二神经网络模型的辅助量化模型,得到第三量化向量;
根据第二量化向量和第三量化向量,确定第二神经网络模型的量化映射模型的第一量化映射损失函数值;
根据第三量化向量,确定第二神经网络模型的辅助量化模型的第一旁路量化损失函数值;
根据第一量化映射损失函数值、预设第一参数和第一旁路量化损失函数值,确定第一量化损失函数值;
基于所述第一量化损失函数值,更新所述第二神经网络模型的量化映射模型的参数和辅助量化模型的参数;
若第一量化损失函数值小于或等于预设第一量化损失函数值阈值,则结束第二神经网络模型的训练,并将训练得到的第二神经网络模型作为第一神经网络模型。
在一个实施例中,对第二神经网络模型的基础特征及特征嵌入模型进行训练的方式,包括:
根据多个三元组样本对应的第二特征嵌入向量,确定第二神经网络模型的基础特征及特征嵌入模型的三元组损失函数值;
根据三元组损失函数值,更新第二神经网络模型的基础特征及特征嵌入模型的参数;
若三元组损失函数值小于或等于预设三元组损失函数阈值,则结束第二神经网络模型的基础特征及特征嵌入模型的训练,并将训练得到的第二神经网络模型的基础特征及特征嵌入模型作为第一神经网络模型的基础特征及特征嵌入模型。
应用本申请实施例,至少具有如下有益效果:
确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像;如此,提升了图像检索的准确率与召回率,同时避免了直接应用深度学习对特征嵌入embedding模型的输出结果进行量化时出现的量化结果塌缩。
本申请实施例还提供了一种电子设备,该电子设备的结构示意图如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:服务器、终端等。
应用本申请实施例,至少具有如下有益效果:
确定待查询图像的第一特征嵌入向量和第一量化向量,第一量化向量用于表征第一特征嵌入向量对应的量化特征;根据第一量化向量和预设图像库的索引向量列表,确定第一量化向量对应的至少一个索引向量,索引向量用于表征预设图像库中图像样本的特征嵌入向量对应的量化特征;根据第一特征嵌入向量和至少一个索引向量对应的预设图像库中多个图像的特征嵌入向量,从多个图像中确定至少一个图像作为待查询图像对应的相似图像;如此,提升了图像检索的准确率与召回率,同时避免了直接应用深度学习对特征嵌入embedding模型的输出结果进行量化时出现的量化结果塌缩。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
基于与本申请实施例提供的方法相同的原理,本申请实施例还提供了一种本计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述本申请任一可选实施例中提供的方法。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种图像检索方法,其特征在于,包括:
获取待查询图像;
确定所述待查询图像的第一特征嵌入向量和第一量化向量,所述第一量化向量用于表征所述第一特征嵌入向量对应的量化特征;
根据所述第一量化向量和预设图像库的索引向量列表,确定所述第一量化向量对应的至少一个索引向量,索引向量用于表征所述预设图像库中图像样本的特征嵌入向量对应的量化特征;
根据所述第一特征嵌入向量和所述至少一个索引向量对应的所述预设图像库中多个图像的特征嵌入向量,从所述多个图像中确定至少一个图像作为所述待查询图像对应的相似图像。
2.根据权利要求1所述的方法,其特征在于,所述确定所述待查询图像的第一特征嵌入向量和第一量化向量,包括:
将所述待查询图像对应的三元组样本输入至第一神经网络模型的基础特征及特征嵌入模型,通过特征嵌入处理,得到所述待查询图像的第一特征嵌入向量,所述基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型;
将所述第一特征嵌入向量输入至所述第一神经网络模型的量化映射模型,通过映射量化处理,得到第一量化向量。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一量化向量和预设图像库的索引向量列表,确定所述第一量化向量对应的至少一个索引向量,包括:
若所述第一量化向量和预设图像库的索引向量列表中至少一个索引向量之间的距离小于预设第一距离阈值,则将所述索引向量列表中至少一个索引向量确定为所述第一量化向量对应的至少一个索引向量。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一特征嵌入向量和所述至少一个索引向量对应的所述预设图像库中多个图像的特征嵌入向量,从所述多个图像中确定至少一个图像作为所述待查询图像对应的相似图像,包括:
若所述第一特征嵌入向量和所述多个图像中任一图像的特征嵌入向量之间的第一距离都小于预设第二距离阈值,则将各第一距离按照从小到大进行排序,将排序在前的第一距离对应的多个图像中的图像、作为所述待查询图像对应的相似图像。
5.根据权利要求1所述的方法,其特征在于,在所述获取待查询图像之前,还包括:
获取图像样本集对应的多个三元组样本,所述三元组样本包括图像样本、所述图像样本对应的正样本和所述图像样本对应的负样本;
将所述多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到所述多个三元组样本对应的第二特征嵌入向量;
将所述多个三元组样本对应的第二特征嵌入向量输入至所述第二神经网络模型的量化映射模型,得到所述多个三元组样本对应的第二量化向量;
根据所述多个三元组样本对应的第二量化向量,确定所述第二神经网络模型的量化映射模型的第一损失函数值;
基于所述第一损失函数值更新所述第二神经网络模型的量化映射模型的参数;
若所述第一损失函数值小于或等于预设第一损失函数值阈值,则结束所述第二神经网络模型的训练,并将所述训练得到的第二神经网络模型作为所述第一神经网络模型。
6.根据权利要求5所述的方法,其特征在于,所述第二神经网络模型的基础特征及特征嵌入模型包括特征图提取模型和特征嵌入模型,所述第二神经网络模型还包括辅助量化模型;
所述将所述多个三元组样本输入至第二神经网络模型的基础特征及特征嵌入模型,得到所述多个三元组样本对应的第二特征嵌入向量,包括:
将所述多个三元组样本输入至所述第二神经网络模型的特征图提取模型,得到所述多个三元组样本对应的深度特征图;
将所述深度特征图输入至所述第二神经网络模型的特征嵌入模型,得到所述多个三元组样本对应的第二特征嵌入向量;
所述根据所述多个三元组样本对应的第二量化向量,确定所述第二神经网络模型的量化映射模型的第一损失函数值;若所述第一损失函数值大于预设第一损失函数阈值,则根据所述第一损失函数值进行梯度后向计算,更新所述第二神经网络模型的量化映射模型的参数;若所述第一损失函数值小于或等于预设第一损失函数值阈值,则结束所述第二神经网络模型的训练,并将所述训练得到的第二神经网络模型作为所述第一神经网络模型,包括:
将所述多个三元组样本对应的第二特征嵌入向量输入至所述第二神经网络模型的量化映射模型,得到所述多个三元组样本对应的第二量化向量;
将所述多个三元组样本对应的深度特征图输入至所述第二神经网络模型的辅助量化模型,得到第三量化向量;
根据所述第二量化向量和所述第三量化向量,确定所述第二神经网络模型的量化映射模型的第一量化映射损失函数值;
根据所述第三量化向量,确定所述第二神经网络模型的辅助量化模型的第一旁路量化损失函数值;
根据所述第一量化映射损失函数值、预设第一参数和所述第一旁路量化损失函数值,确定第一量化损失函数值;
基于所述第一量化损失函数值,更新所述第二神经网络模型的量化映射模型的参数和辅助量化模型的参数;
若所述第一量化损失函数值小于或等于预设第一量化损失函数值阈值,则结束所述第二神经网络模型的训练,并将所述训练得到的第二神经网络模型作为所述第一神经网络模型。
7.根据权利要求5或6所述的方法,其特征在于,对所述第二神经网络模型的基础特征及特征嵌入模型进行训练的方式,包括:
根据所述多个三元组样本对应的第二特征嵌入向量,确定所述第二神经网络模型的基础特征及特征嵌入模型的三元组损失函数值;
根据所述三元组损失函数值,更新所述第二神经网络模型的基础特征及特征嵌入模型的参数;
若所述三元组损失函数值小于或等于预设三元组损失函数阈值,则结束所述第二神经网络模型的基础特征及特征嵌入模型的训练,并将所述训练得到的第二神经网络模型的基础特征及特征嵌入模型作为所述第一神经网络模型的基础特征及特征嵌入模型。
8.一种图像检索装置,其特征在于,包括:
第一处理模块,用于获取待查询图像;
第二处理模块,用于确定所述待查询图像的第一特征嵌入向量和第一量化向量,所述第一量化向量用于表征所述第一特征嵌入向量对应的量化特征;
第三处理模块,用于根据所述第一量化向量和预设图像库的索引向量列表,确定所述第一量化向量对应的至少一个索引向量,索引向量用于表征所述预设图像库中图像样本的特征嵌入向量对应的量化特征;
第四处理模块,用于根据所述第一特征嵌入向量和所述至少一个索引向量对应的所述预设图像库中多个图像的特征嵌入向量,从所述多个图像中确定至少一个图像作为所述待查询图像对应的相似图像。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124020.6A CN114329006B (zh) | 2021-09-24 | 2021-09-24 | 图像检索方法、装置、设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124020.6A CN114329006B (zh) | 2021-09-24 | 2021-09-24 | 图像检索方法、装置、设备、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114329006A true CN114329006A (zh) | 2022-04-12 |
CN114329006B CN114329006B (zh) | 2024-08-09 |
Family
ID=81045695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111124020.6A Active CN114329006B (zh) | 2021-09-24 | 2021-09-24 | 图像检索方法、装置、设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329006B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180089534A1 (en) * | 2016-09-27 | 2018-03-29 | Canon Kabushiki Kaisha | Cross-modiality image matching method |
CN109906451A (zh) * | 2016-09-07 | 2019-06-18 | 脸谱公司 | 使用多义码的相似性搜索 |
CN110069650A (zh) * | 2017-10-10 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 一种搜索方法和处理设备 |
US20190236167A1 (en) * | 2018-01-31 | 2019-08-01 | Microsoft Technology Licensing, Llc. | Multi-Modal Visual Search Pipeline for Web Scale Images |
CN110413813A (zh) * | 2019-06-25 | 2019-11-05 | 宁波图达信息技术有限公司 | 一种相同或相似图像搜索方法 |
CN112182131A (zh) * | 2020-09-28 | 2021-01-05 | 中国电子科技集团公司第五十四研究所 | 一种基于多属性融合的遥感影像推荐方法 |
CN113127672A (zh) * | 2021-04-21 | 2021-07-16 | 鹏城实验室 | 量化图像检索模型的生成方法、检索方法、介质及终端 |
US20220012297A1 (en) * | 2020-02-28 | 2022-01-13 | Suddha Kalyan Basu | Embedding Based Retrieval for Image Search |
US20220343626A1 (en) * | 2019-08-15 | 2022-10-27 | Vision Semantics Limited | Text Based Image Search |
-
2021
- 2021-09-24 CN CN202111124020.6A patent/CN114329006B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109906451A (zh) * | 2016-09-07 | 2019-06-18 | 脸谱公司 | 使用多义码的相似性搜索 |
US20180089534A1 (en) * | 2016-09-27 | 2018-03-29 | Canon Kabushiki Kaisha | Cross-modiality image matching method |
CN110069650A (zh) * | 2017-10-10 | 2019-07-30 | 阿里巴巴集团控股有限公司 | 一种搜索方法和处理设备 |
US20190236167A1 (en) * | 2018-01-31 | 2019-08-01 | Microsoft Technology Licensing, Llc. | Multi-Modal Visual Search Pipeline for Web Scale Images |
CN110413813A (zh) * | 2019-06-25 | 2019-11-05 | 宁波图达信息技术有限公司 | 一种相同或相似图像搜索方法 |
US20220343626A1 (en) * | 2019-08-15 | 2022-10-27 | Vision Semantics Limited | Text Based Image Search |
US20220012297A1 (en) * | 2020-02-28 | 2022-01-13 | Suddha Kalyan Basu | Embedding Based Retrieval for Image Search |
CN112182131A (zh) * | 2020-09-28 | 2021-01-05 | 中国电子科技集团公司第五十四研究所 | 一种基于多属性融合的遥感影像推荐方法 |
CN113127672A (zh) * | 2021-04-21 | 2021-07-16 | 鹏城实验室 | 量化图像检索模型的生成方法、检索方法、介质及终端 |
Non-Patent Citations (1)
Title |
---|
崔忠立;王嘉祯;: "可泛化的基于DCT域的隐写术算法", 计算机工程与设计, no. 13, 16 July 2006 (2006-07-16) * |
Also Published As
Publication number | Publication date |
---|---|
CN114329006B (zh) | 2024-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382868B (zh) | 神经网络结构搜索方法和神经网络结构搜索装置 | |
CN111523621A (zh) | 图像识别方法、装置、计算机设备和存储介质 | |
CN112116030A (zh) | 一种基于向量标准化和知识蒸馏的图像分类方法 | |
WO2020081867A1 (en) | Semi-supervised person re-identification using multi-view clustering | |
CN113298197B (zh) | 数据聚类方法、装置、设备及可读存储介质 | |
CN114358188A (zh) | 特征提取模型处理、样本检索方法、装置和计算机设备 | |
US9852177B1 (en) | System and method for generating automated response to an input query received from a user in a human-machine interaction environment | |
CN113821670B (zh) | 图像检索方法、装置、设备及计算机可读存储介质 | |
CN111259812B (zh) | 基于迁移学习的内河船舶重识别方法、设备及存储介质 | |
CN113705313A (zh) | 文本识别方法、装置、设备及介质 | |
CN114329029B (zh) | 对象检索方法、装置、设备及计算机存储介质 | |
CN113704522B (zh) | 基于人工智能的目标图像快速检索方法及*** | |
CN113806582B (zh) | 图像检索方法、装置、电子设备和存储介质 | |
CN114283350A (zh) | 视觉模型训练和视频处理方法、装置、设备及存储介质 | |
CN113592041B (zh) | 图像处理方法、装置、设备、存储介质及计算机程序产品 | |
CN114358109A (zh) | 特征提取模型训练、样本检索方法、装置和计算机设备 | |
CN114091594A (zh) | 模型训练方法及装置、设备、存储介质 | |
CN116127060A (zh) | 一种基于提示词的文本分类方法及*** | |
CN111611796A (zh) | 下位词的上位词确定方法、装置、电子设备及存储介质 | |
CN113743593B (zh) | 神经网络量化方法、***、存储介质及终端 | |
CN114329006B (zh) | 图像检索方法、装置、设备、计算机可读存储介质 | |
CN115062769A (zh) | 基于知识蒸馏的模型训练方法、装置、设备及存储介质 | |
CN112749565B (zh) | 基于人工智能的语义识别方法、装置和语义识别设备 | |
CN113704528A (zh) | 聚类中心确定方法、装置和设备及计算机存储介质 | |
CN112417260A (zh) | 本地化推荐方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |