第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 一种图像匹配方法 装置 电子设备和存储介质与流程

一种图像匹配方法 装置 电子设备和存储介质与流程

时间:2020-12-15 18:18:48

相关推荐

一种图像匹配方法 装置 电子设备和存储介质与流程

本申请涉及计算机技术领域,具体涉及一种图像匹配方法、装置、电子设备和存储介质。

背景技术:

随着人工智能技术的研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、无人驾驶、自动驾驶、无人机、机器人、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

因此,使用人工智能技术对搜索相似图像有着巨大的实际需求,相似图像的搜索技术可以针对用户从终端输入的图像,基于相似度匹配网络,从数据库中搜索与之相似的相似图像,然后反馈给终端供用户使用。但是在目前的相关技术中,相似图像的搜索技术提取到的图像特征的表征能力较弱,使搜索到的相似图像的相似度不高,图像匹配的准确性较低。

技术实现要素:

本申请实施例提供一种图像匹配方法、装置、电子设备和存储介质,可以得到强表征力的图像特征,提高图片匹配的准确性。

本申请实施例提供一种图像匹配方法,包括:

获取待匹配图像;

对所述待匹配图像提取多个尺度下的特征图;

对所述多个尺度下的特征图进行处理,得到所述待匹配图像的特征向量;

对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,所述匹配特征向量中的元素满足预设要求;

获取候选图像的匹配特征向量;

基于所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量,确定所述候选图像中,与所述待匹配图像相似的相似图像。

相应的,本申请实施例提供一种图像匹配装置,包括:

第一获取单元,用于获取待匹配图像;

提取单元,用于对所述待匹配图像提取多个尺度下的特征图;

处理单元,用于对所述多个尺度下的特征图进行处理,得到所述待匹配图像的特征向量;

编码单元,用于对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,所述匹配特征向量中的元素满足预设要求;

第二获取单元,用于获取候选图像的匹配特征向量;

确定单元,用于基于所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量,确定所述候选图像中,与所述待匹配图像相似的相似图像。

可选的,在本申请的一些实施例中,所述提取单元可以包括预处理子单元和提取子单元,如下:

所述预处理子单元,用于对待匹配图像进行预处理;

提取子单元,用于通过神经网络中的多个特征提取块,分别提取预处理后的待匹配图像的不同尺度下的特征图。

可选的,在本申请的一些实施例中,所述处理单元可以包括降维子单元和融合子单元,如下:

所述降维子单元,用于对所述多个尺度下的特征图,分别进行降维操作。

融合子单元,用于对降维后的所有特征图进行融合,得到所述待匹配图像的特征向量。

可选的,在本申请的一些实施例中,所述降维子单元,具体可以将各尺度下的特征图的通道维度,分别降低到相同的预设维度,所述通道维度为特征图的各通道的维度。

可选的,在本申请的一些实施例中,所述编码单元具体可以用于对特征向量进行编码,将所述特征向量转换为由0和1两种元素构成的匹配特征向量。

可选的,在本申请的一些实施例中,所述编码单元具体可以用于基于迭代量化算法,学习所述特征向量的旋转矩阵;通过旋转矩阵对所述特征向量进行哈希编码,得到由0和1两种元素构成的匹配特征向量。

可选的,在本申请的一些实施例中,所述编码单元可以包括白化子单元和编码子单元,具体如下:

所述白化子单元,用于使用白化算法对所述特征向量进行降维,其中,降维后的特征向量的维度数量低于预设数值。

编码子单元,用于对降维后的所述特征向量进行编码,将所述特征向量转换为由0和1两种元素构成的匹配特征向量。

可选的,在本申请的一些实施例中,所述白化子单元,具体可以先对所述特征向量进行归一化,通过投影白化算法对归一化后的特征向量进行降维,对降维后的特征向量进行归一化。其中,所述通过投影白化算法对归一化后的特征向量进行降维,包括:

获取特征向量的监督信息,基于所述监督信息计算得到特征向量的映射矩阵,将所述映射矩阵与归一化后的特征向量相乘,以对特征向量进行降维。

可选的,在本申请的一些实施例中,所述第二获取单元,具体在获取候选图像的匹配特征向量之前,可以先确定所述待匹配图像承载的对象的类别,然后,确定候选图像,其中,候选图像承载的对象的类别,与所述待匹配图像承载的对象的类别相同;最后,获取候选图像的匹配特征向量。

可选的,在本申请的一些实施例中,所述确定单元,具体可以包括:计算所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量的汉明距离;将所述候选图像中,所述汉明距离满足预设条件的候选图像,确定为与所述待匹配图像相似的相似图像。

可选的,在本申请的一些实施例中,所述图像匹配装置还可以包括第三获取单元和训练单元,如下:

所述第三获取单元,可以用于获取训练数据,所述训练数据包括多个训练图像,其中,所述训练图像承载的对象的类别为多个。

所述训练单元,具体用于基于所述训练数据对神经网络进行对象的分类训练;通过训练后的所述神经网络中的特征提取块,对所述训练图像提取多个尺度下的特征图;对所述训练图像的特征图进行处理,得到所述训练图像的特征向量;基于各类对象的训练图像的特征向量,优化所述神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求。

本申请实施例提供的一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令,以执行本申请实施例提供的图像匹配方法中的步骤。

此外,本申请实施例还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本申请实施例提供的图像匹配方法中的步骤。

本申请实施例提供了一种图像匹配方法、装置、电子设备和存储介质,可以在获取了待匹配图像后,对该待匹配图像提取多个尺度下的特征图,对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量,对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求,接着,获取候选图像的匹配特征向量,基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像;由于本申请实施例提取的是多个尺度下的特征图,因此,特征向量中包含了待匹配图像在多个尺度下的特征信息,特征向量的表征力较强,在进行图像相似度匹配时,能够大大提高图像匹配的准确性,使得匹配效果更好。

附图说明

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

图1是本申请实施例提供的图像匹配方法的场景示意图;

图2是本申请实施例提供的图像匹配方法的流程图;

图3是本申请实施例提供的图像匹配方法中的获取待匹配图像的特征向量的过程示意图;

图4是本申请实施例提供的图像匹配方法中的神经网络训练过程示意图;

图5是本申请实施例提供的图像匹配方法中的编码过程示意图;

图6是本申请实施例提供的图像匹配方法中的白化降维的过程示意图;

图7是本申请实施例提供的图像匹配方法的另一流程图;

图8是本申请实施例提供的图像匹配方法的匹配网络的整体流程图;

图9a是本申请实施例提供的图像匹配装置的结构示意图;

图9b是本申请实施例提供的图像匹配装置的另一结构示意图;

图9c是本申请实施例提供的图像匹配装置的另一结构示意图;

图9d是本申请实施例提供的图像匹配装置的另一结构示意图;

图10是本申请实施例提供的图像匹配装置的另一结构示意图;

图11是本申请实施例提供的电子设备的结构示意图;

图12是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图;

图13是本申请实施例提供的区块结构的一个可选的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供一种图像匹配方法、装置、电子设备和存储介质。该图像匹配装置具体可以集成在电子设备中,该电子设备可以是终端或服务器等设备。

可以理解的是,本实施例的图像匹配方法可以是在终端上执行的,也可以是在服务器上执行的,还可以是由终端和服务器共同执行的。

以终端和服务器共同执行图像匹配方法为例。

如图1所示,终端10,可以通过输入模块获取待匹配图像,将该待匹配图像发送给服务器,以便于服务器在候选图像中搜索与待匹配图像相似的相似图像,并返回相似图像给终端进行展示。

服务器11,可以用于:获取待匹配图像;对所述待匹配图像提取多个尺度下的特征图;对所述多个尺度下的特征图进行处理,得到所述待匹配图像的特征向量;对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,所述匹配特征向量中的元素满足预设要求;获取候选图像的匹配特征向量;基于所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量,确定所述候选图像中,与所述待匹配图像相似的相似图像。

本申请实施例提供的图像匹配方法涉及人工智能(ai,artificialintellegence)领域中的计算机视觉(cv,computervision),具体涉及计算机视觉中的图像识别(ir,imagerecognition)领域下的相似图检测/去重方向。本申请实施例可以通过提取图像的特征图,并对特征图进行处理,得到用于图像匹配的匹配特征向量,通过图像之间匹配特征向量的相似度计算,确定相似图像。

其中,人工智能(ai,artificialintelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。其中,人工智能软件技术主要包括计算机视觉技术、机器学习/深度学习等方向。

其中,计算机视觉技术(cv,computervision)是一门研究如何使机器“看”的科学,更进一步的说,就是指通过计算机代替人眼对目标进行识别、测量等的机器视觉,并进一步进行图像处理,使图像经过计算机处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别等技术,还包括常见的人脸识别、人体姿态识别等生物特征识别技术。

其中,相似图检测/去重技术是通过提取图像特征,并基于提取到的图像特征,计算图像之间的相似度,进而得到相似图像,来对相似图像进行检测/去重的。

以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。

实施例一、

本实施例将从图像匹配装置的角度进行描述,该图像匹配装置具体可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备;其中,该终端可以包括平板电脑、笔记本电脑、以及个人计算机(pc,personalcomputer)等。

本申请实施例的图像匹配方法可以应用于在各种类型的推荐场景下,对相似图像进行搜索,推荐场景包括但不限于:信息流推荐场景和商品推荐场景等等,其中,商品推荐场景可以是服饰商品推荐场景。

如图2所示,该图像匹配方法的具体流程可以如下:

101、获取待匹配图像。

本实施例中,获取待匹配图像的方式有多种。

例如,可以由电子设备上的图像获取设备来获取待匹配图像,比如,在接收到拍摄指令时,开启图像获取设备拍摄图像,将拍摄的图像作为待匹配图像,其中,图像获取设备可以是摄像头等等。

例如,也可以从电子设备本地的图库来获取待匹配图像,比如,待匹配图像存储在电子设备本地的图库中,则在接收到获取待匹配图像的指令时,可以直接从该电子设备本地的图库获取待匹配图像,其中,本地即指该电子设备。

例如,也可以通过互联网来获取待匹配图像,进而提供给该图像匹配装置,比如,通过互联网下载得到该待匹配图像。

例如,还可以通过其他设备来获取待匹配图像,进而提供给该图像匹配装置,即,图像匹配装置具体可以接收其他设备如其他终端发送的待匹配图像。

对于电子设备为服务器的场景,获取待匹配图像,可以包括:接收终端发送的待匹配图像。

本实施例中的待匹配图像,可以是静态图,也可以是动态图,可以是表情、商品图像、以及人物肖像等等类型的图像,其中商品图像包括:服饰类图像。

102、对该待匹配图像提取多个尺度下的特征图。

本实施例中,可以先对待匹配图像进行预处理,然后通过神经网络中的多个特征提取块,分别提取待匹配图像的不同尺度下的特征图。

其中,该预处理可以包括对待匹配图像进行图像大小的调整、图像数据增强或/和图像的旋转等。图像数据增强可以包括直方图均衡、锐化和平滑等。另外,该神经网络可以是16层的视觉几何组网络(vggnet,visualgeometrygroupnetwork)、残差网络(resnet,residualnetwork)和密集连接卷积网络(densenet,denseconvolutionalnetwork)等等,但是应当理解的是,本实施例的神经网络并不仅限于上述列举的几种类型。

比如,参考图3,当该神经网络为16层的vggnet时,先对待匹配图像进行图像大小的调整,如将待匹配图像的分辨率调整为224*224,由于16层的vggnet可分为五个卷积组,即五个特征提取块,所以本实施例通过五个卷积组提取到五个特征图,对于不同的卷积组,提取到的特征图的尺度不一样,即得到多尺度的特征,对于不同的卷积组,提取到的特征图的维度也是不一样的。例如,第一个特征提取块提取到的特征图有64个通道,每个通道的维度是224*224,第二个特征提取块提取到的特征图有128个通道,每个通道的维度是112*112。在此处,提取到的特征为图像的基础特征,如图像的形状特征等。例如,当该图像为服饰商品图像时,提取到的特征可以为衣服的形状轮廓。

其中,该神经网络可以通过深度学习得到,深度学习为通过建立具有阶层结构的神经网络,在计算系统中实现人工智能的机器学习。由于具有阶层结构的神经网络能够对输入信息进行逐层提取和筛选,因此深度学习具有表征学习能力,可以实现端到端的监督学习和非监督学习。

其中,机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。

103、对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量;

其中,步骤“对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量”,可以包括步骤a和b:

步骤a:对所述多个尺度下的特征图,分别进行降维操作。

本实施例中,可以将各尺度下的特征图的通道维度,分别降低到相同的预设维度,其中,通道维度为特征图的各通道的维度,该预设维度可以根据实际应用的需求进行设置,在此不作赘述。

比如,通过池化对各尺度下的特征图进行降维,该池化可以包括最大池化(max-pooling,maximumpooling)、平均池化(avg-pooling,averagepooling)和广义均值池化(gem-pooling,generalized-meanpooling)等。

其中,若通过广义均值池化算法来进行降维,其过程如下,通过广义均值池化算法的表达式:

来计算出池化后的特征图。其中,x为该池化操作的输入,向量f为该池化操作的输出,g为该特征提取块的通道总数,k表示第k个通道,pk为特征图的每个通道的参数,该参数能够考虑到通道间的相关性。先对每个通道的特征图进行计算,得到该特征提取块各通道的特征图fk(g),然后根据各通道的特征图fk(g)得到该特征提取块的输出f(g)。通过以上计算,得到降维后的各尺度下的特征图。其中,降维后通道的维数是预设的,比如预设为1*1,则降维后的特征图1的维度为1*64*1*1,同理,降维后的特征图2的维度为1*128*1*1,如图3所示。

步骤b:对降维后的所有特征图进行融合,得到所述待匹配图像的特征向量。

其中,融合指的是特征融合,融合不同尺度的特征能够提高特征的表征能力。低层特征的分辨率比较高,包含更多的细节信息,但由于经过的卷积少,其噪声较多,语义性低;高层特征则具有较强的语义信息,但是其分辨率低,细节丢失比较多。融合多层的特征,即融合多尺度的特征,能够提升图像匹配的准确性。

本实施例中,步骤“对降维后的所有特征图进行融合,得到所述待匹配图像的特征向量”,可以包括:

对降维后的所有特征图进行拼接,得到待匹配图像的特征向量。

比如,对降维后的所有特征图按特征图的尺度大小,从大到小进行拼接,得到待匹配图像的特征向量。

需说明的是,该神经网络由多个带有标签的训练数据训练而成,本实施例的训练数据包括多个训练图像,该标签是指图像承载对象的类型;该神经网络具体可以由其他设备进行训练后,提供给该图像匹配装置,或者,也可以由该图像匹配装置自行进行训练。

若由该图像匹配装置自行进行训练,则在步骤“获取待匹配图像”之前,该图像匹配方法还可以包括:

获取训练数据,所述训练数据包括多个训练图像,其中,所述训练图像承载的对象的类别为多个;基于所述训练数据对神经网络进行对象的分类训练;通过训练后的所述神经网络中的特征提取块,对所述训练图像提取多个尺度下的特征图;对所述训练图像的特征图进行处理,得到所述训练图像的特征向量;基于各类对象的训练图像的特征向量,优化所述神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求。

其中,分类训练是为了让相同类别的训练数据的特征向量在空间中分布在同一个区域,而不属于同一个类别的训练数据的特征向量不会高度相似。

可选的,本实施例中,至少有两个或两个以上训练图像承载的对象为同一对象,同一对象的不同训练图像展示的对象信息不完全相同。例如,对于训练图像为商品照片的例子,同一件商品对应有至少两张从不同角度拍摄的商品照片。

比如,在具体的服饰商品推荐场景下,需要使用商品库中的图像对该神经网络进行训练。训练数据来自商品库中的图像,该商品库提供很多分类的服饰图像,例如,该商品库可以有30万张服饰图像,包含15个服饰类别,其中,图像承载对象类别为“t恤”的服饰图像有5万张,对于每件“t恤”对应有至少两张服饰图像,这两张服饰图像所拍摄的角度不同。

本实施例中,对于每一类训练图像,都可以通过以下过程来使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求,具体过程如下:

从各类训练图像中抽取三个图像组成三元组,得到多个三元组,其中,三元组中两个图像承载的内容属于同一对象,称为锚示例和正示例,另一个图像为相同类别的不同对象的样本,称为负示例;计算锚示例特征向量与正示例特征向量的距离,和锚示例特征向量与负示例特征向量的距离,得到三元组的损失;通过三元组的损失,优化神经网络的参数,来对特征向量进行更新,不断重复这个优化过程,直到收敛或者训练到预设的迭代次数,得到训练后的神经网络。

其中,锚示例是随机选取的一个训练图像,锚示例和正示例所承载的内容属于同一对象,比如,具体可以是锚示例和正示例是属于同一对象的在不同角度所拍摄得到的训练数据。上述的优化过程,可以用如下式子来表示:

l=max(d(a,p)-d(a,n)+margin,0)

其中,a表示锚示例的特征向量,p表示正示例的特质向量,n表示负示例的特征向量,l为收敛标志,则d(a,p)表示锚示例与正示例的距离,d(a,n)表示锚示例与负示例的距离,参数margin是用来限定d(a,p)和d(a,n)的阈值。优化的目标是缩小d(a,p)的距离,并且增大d(a,n)的距离。即,在训练过程中,神经网络学习到的特征向量会让正示例特征向量和锚示例特征向量越来越相似,而让负示例特征向量与锚示例特征向量的差异越来越大。

首先,要计算出各三元组特征向量的d(a,p)和d(a,n),接着计算三元组的损失:d(a,p)-d(a,n)+margin,根据三元组的损失,计算l的值,只要d(a,n)大于d(a,p)+margin,则输出l的值等于0。当l的值没有收敛或者训练的迭代次数少于预设次数时,需要根据三元组的损失不断优化神经网络的参数,再对特征向量进行更新,使用更新后的特征向量重新计算三元组的损失,不断重复这个过程以优化神经网络的参数,参见图4。

104、对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求。

本实施例中,可以对该特征向量进行编码,将该特征向量转换为由0和1两种元素构成的匹配特征向量。比如,使用哈希编码算法对该特征向量进行编码,将浮点数向量转换为二进制哈希码,如图5所示,具体过程如下:

基于迭代量化算法,学习该特征向量的旋转矩阵;通过旋转矩阵对该特征向量进行哈希编码,得到由0和1两种元素构成的匹配特征向量。

其中,旋转矩阵是通过迭代量化算法(itq,iterativequantization)来学习得到的,迭代量化算法如下所示:

其中,r为旋转矩阵,b为量化编码,x为浮点数特征,即特征向量。可参考现有技术进行迭代,例如,生成随机矩阵,并对随机矩阵进行奇异值分解(svd,singularvaluedecomposition),得到对应的正交矩阵,将其作为旋转矩阵的初始值,然后,固定旋转矩阵r的值以求解量化编码b,求解出b后,再对量化编码b与浮点数特征x右乘的结果进行奇异值分解以更新旋转矩阵,以此对旋转矩阵进行多次迭代,得到量化误差满足预设条件的旋转矩阵,一般经过50次左右的迭代,即可学习到旋转矩阵。

可选的,迭代量化算法也可以通过约束神经元的输出来得到哈希的映射矩阵,比如让神经元的输出限制在0和1两种元素中,可以通过数据学习到哈希的映射矩阵。

在“对该特征向量进行编码,得到用于图像匹配的匹配特征向量”之前,还可以包括:

使用白化算法对该特征向量进行降维,其中,降维后的特征向量的维度数量低于预设数值。或者也可以使用其他非白化的方法。

本实施例中,可以先对该特征向量进行归一化,通过白化算法对归一化后的该特征向量进行降维,对降维后的该特征向量进行归一化。其中,该白化算法可以是主成分分析白化(principalcomponentanalysiswhitening),或者投影白化(projectionswhitening)等,归一化可以使用l2范数归一化等方法。

若通过投影白化算法来对特征向量进行降维,其过程如下:

其中,f(i)、f(j)分别表示两个图像的特征向量,y(i,j)=1代表f(i)和f(j)是两个承载内容属于同一个对象的图像的特征向量,y(i,j)=0代表f(i)和f(j)是两个承载内容属于同一类别下不同对象的图像的特征向量,eig函数表示求特征值和特征向量,p为映射矩阵,cs、cd分别为y(i,j)=1和y(i,j)=0两种情况下的协方差矩阵。比如,y(i,j)=1代表f(i)和f(j)是属于同一件“t恤”的图像的特征向量,y(i,j)=0代表f(i)和f(j)是不同件“t恤”的图像的特征向量。

在获取到特征向量的监督信息后,可以通过上述公式,基于该监督信息求出映射矩阵p,然后,将归一化后的特征向量与映射矩阵p相乘,把高维的特征向量降到较低维的特征向量。比如,具体降维过程可以为:归一化后的特征向量维度是1*n,映射矩阵p维度是n*m,其中n>m,归一化后的特征向量左乘以映射矩阵p,则得到矩阵的维度为1*m,维度从n降为m,如图6所示。

可选的,投影白化还可以转化成神经网络的全连接层,并在神经网络中学习。

105、获取候选图像的匹配特征向量。

本实施例中,可以从存储候选图像的匹配特征向量的电子设备中获取候选图像的匹配特征向量,其中,候选图像的匹配特征向量是先计算好后存储在电子设备里的。

可选的,为了提高图像匹配的效率,在“获取候选图像的匹配特征向量”之前,还可以包括:确定该待匹配图像承载的对象的类别。

对应地,步骤“获取候选图像的匹配特征向量”,可以包括:

确定候选图像,其中,候选图像承载的对象的类别,与该待匹配图像承载的对象的类别相同;

获取候选图像的匹配特征向量。

其中,可以通过实时计算候选图像的匹配特征向量,来实现对候选图像的匹配特征向量的获取。本实施例中还可以预先计算候选图像的匹配特征向量,将其存储在数据库中,例如存储在区块链的共享账本中,在需要获取候选图像的匹配特征向量时,从数据库中获取候选图像的匹配特征向量。例如,从区块链的共享账本中获取候选图像的匹配特征向量。

可选的,本实施例中,对候选图像的匹配特征向量的计算方案与步骤102-104中对待匹配图像的匹配特征向量的计算方案相似。即通过神经网络对候选图像提取多个尺度下的特征图;对所述多个尺度下的特征图进行处理,得到候选图像的特征向量;对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,所述匹配特征向量中的元素满足预设要求。在计算完成后,可以将候选图像的匹配特征向量与候选图像对应存储在数据库中。

106、基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像。

本实施例中,可以通过度量匹配特征向量间的距离来确定,例如度量匹配特征向量间的汉明距离,但是可以理解的是,该距离并不仅限于汉明距离。

可选的,步骤“基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像”,可以包括:

计算该待匹配图像的匹配特征向量和该候选图像的匹配特征向量的汉明距离;将候选图像中,汉明距离满足预设条件的候选图像,确定为与该待匹配图像相似的相似图像。

其中,汉明距离是指对两个字符串进行异或运算后,结果为1的位数的个数。通过汉明距离的大小,可以得知匹配特征向量之间的差异,匹配特征向量之间的差异则反映了图像之间的相似度,因此可以确定与该待匹配图像相似的相似图像。

本实施例中的预设条件可以为汉明距离不高于预设阈值,该预设阈值可以根据实际需要设置,例如根据匹配特征向量的位数具体设置,本实施例对此没有限定。例如,汉明距离满足预设条件的候选图像,为汉明距离不高于3的候选图像。

可选的,在步骤“基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像”之后,还可以包括:输出该相似图像。

其中,输出该相似图像的方式有多种。

例如,可以将该相似图像保存至电子设备本地的文件夹里,或者,也可以在电子设备的显示器上显示该相似图像,或者,还可以将该相似图像发送至其他设备,由其他设备如其他终端接收该相似图像。

在本实施例中,相似图像的数量为至少一个,当相似图像的数量为多个时,可以根据上述步骤106中的计算,确定相似图像和待匹配图像的相似度,基于该相似度对相似图像进行排序,得到由排序后的相似图像组成的相似图像集合,步骤“输出该相似图像”,可以包括:输出由排序后的相似图像组成的相似图像集合。

其中,可以基于相似图像和待匹配图像的汉明距离确定相似图像和待匹配图像的相似度;汉明距离的值越小,相似度越高;汉明距离的值越大,相似度越低。

例如,具体在服饰商品推荐场景下,通过该神经网络得到服饰图像的匹配特征向量,同时,获取服饰商品库中图像的匹配特征向量,通过计算服饰图像的匹配特征向量和服饰商品库中图像的匹配特征向量之间的汉明距离,确定服饰商品库中,与该服饰图像相似的图像,然后,将与该服饰图像相似的图像推荐给用户。通过这种方式,能够对服饰进行高效和精确的检索,可以提高服饰商品广告和内容推荐的相关性,以此来提高用户对该服饰商品的推荐的广告和内容的点击率。

由上可知,本实施例在获取了待匹配图像后,对该待匹配图像提取多个尺度下的特征图,对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量,对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求;接着,获取候选图像的匹配特征向量,基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像;本申请实施例可以通过人工智能的机器学习得到的神经网络,来提取多个尺度下的特征图,因此,特征向量中包含了待匹配图像在多个尺度下的特征信息,特征向量的表征力较强,在进行图像相似度匹配时,能够大大提高图像匹配的准确性,使得匹配效果更好。

实施例二、

根据前面实施例所描述的方法,以下将以该图像匹配装置具体集成在服务器举例作进一步详细说明。

本申请实施例提供的图像匹配方法涉及人工智能的计算机视觉等技术,具体通过如下实施例进行说明:

(一)神经网络的训练,具体可以如下:

(1)分类模型的训练。

首先,可以获取训练数据,该训练数据包括多个训练图像,其中,训练图像承载的对象的类别为多个,同一对象的训练图像的数量为至少两个。需要说明的是,训练图像带有标签,该标签是指图像承载对象的类型。譬如,以训练数据为服饰图像为例,该训练数据包括多个服饰类别,提供多个承载的对象类别为“t恤”的图像,每件“t恤”的训练图像包含2个,这2个训练数据属于同一件服饰,但拍摄的角度不同。

其次,基于该训练数据对神经网络进行对象的分类训练,让相同类别服饰的特征向量在空间中分布在同一个区域,而不属于同一个类别的服饰的特征向量不会高度相似。比如,“裙子”的特征向量只能和另一件“裙子”的特征向量相似,不会和“长裤”的特征向量高度相似。

(2)使用三重损失(tripletloss)训练神经网络。

如图4所示,可以通过上述训练后的神经网络中的特征提取块,对训练图像提取多个尺度下的特征图,再对该训练图像的特征图进行处理,比如通过广义均值池化进行降维,对降维后的特征图再进行特征融合,得到所述训练图像的特征向量;接着,基于各类对象的训练图像的特征向量,优化所述神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求。

本实施例中,对于每一类训练图像,都可以通过以下过程来使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求,具体过程如下:

从各类训练数据中抽取三个训练数据组成三元组,其中,三元组中的两个图像承载的内容属于同一对象,称为锚示例和正示例,另一个图像为相同类别的不同对象的样本,称为负示例,接着,使用三重损失进行训练。三重损失的公式如下:

l=max(d(a,p)-d(a,n)+margin,0)

其中,a表示锚示例的特征向量,p表示正示例的特质向量,n表示负示例的特征向量,l为收敛标志,则d(a,p)表示锚示例与正示例的距离,d(a,n)表示锚示例与负示例的距离,参数margin是用来限定d(a,p)和d(a,n)的阈值。比如,在具体场景中,a和p是图像承载对象属于同一件服饰但不同拍摄角度的两个图像,n和a承载的对象则属于同类服饰下的不同服饰,即,a和p承载的对象是属于同一件t恤,而n和a承载的对象是属于不同件t恤。

三重损失训练过程是要先计算出d(a,p)和d(a,n),接着计算三元组的损失:d(a,p)-d(a,n)+margin,在训练过程中,参数margin可以设置为0.1,通过计算三元组的损失得到l的值。当l的值没有收敛或者训练的迭代次数少于预设次数时,则需要优化神经网络的参数,再对特征向量进行更新,使用更新后的特征向量重新计算三元组的损失,不断重复这个过程以优化神经网络的参数,得到训练后的神经网络。

(二)通过训练后的神经网络,便可对待匹配图像进行匹配。

如图7和图8所示,一种图像匹配方法,具体流程可以如下:

201、服务器接收终端发送的待匹配图像。

本实施例中,服务器可以接收从终端的数据库中所获取待匹配图像,比如,待匹配图像存储在终端的数据库中,则服务器在接收到获取待匹配图像的指令时,可以直接从终端的数据库中获取待匹配图像。

可选的,本实施例中,服务器还可以接收从终端的图像获取设备发送的待匹配图像,比如,服务器在接收到拍摄指令时,开启终端的图像获取设备拍摄图像,将拍摄的图像作为待匹配图像,其中,终端的图像获取设备可以是终端摄像头等等。

本实施例中的待匹配图像,可以是静态图,也可以是动态图,可以是表情、商品图像、以及人物肖像等等类型的图像,其中商品图像包括:服饰类图像。

202、服务器通过神经网络对该待匹配图像提取多个尺度下的特征图。

本实施例中,可以先对待匹配图像进行预处理,如对其进行图像大小的调整,将待匹配图像的分辨率调整为224*224。以16层的vggnet为例进行说明,如图3所示。由于16层的vggnet可分为五个卷积组,即五个特征提取块,通过五个卷积组提取到五个特征图,对于不同的卷积组,提取到的特征图的尺度不一样,即得到多尺度的特征,对于不同的卷积组,提取到的特征图的维度也是不一样的。比如,其中第一个卷积组提取到的特征图有64个通道,每个通道的维度是224*224,第二个卷积组提取到的特征图有128个通道,每个通道的维度是112*112,第三个卷积组提取到的特征图有256个通道,每个通道的维度是56*56,第四个卷积组提取到的特征图有512个通道,每个通道的维度是28*28,第五个卷积组提取到的特征图有512个通道,每个通道的维度是14*14。

203、服务器对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量。

本实施例中,采用广义均值池化算法对提取到的多个尺度下的特征图进行降维操作,然后,对降维后的所有特征图进行融合,比如将所有特征图进行拼接,得到待匹配向量的特征向量。

其中,广义均值池化算法的表达式如下:

其中,x为该池化操作的输入,向量f为该池化操作的输出,g为该特征提取块的通道总数,k表示第k个通道,pk为特征图的每个通道的参数,该参数能够考虑到通道间的相关性。先对每个通道的特征图进行计算,得到该特征提取块各通道的特征图fk(g),然后根据各通道的特征图fk(g)得到该特征提取块的输出f(g)。通过以上计算,得到降维后的各尺度下的特征图。其中,降维后通道的维数是预设的,比如预设为1*1,则降维后的特征图1的维度为1*64*1*1,同理,降维后的特征图2的维度为1*128*1*1,降维后的特征图3的维度为1*256*1*1,降维后的特征图4的维度为1*512*1*1,降维后的特征图5的维度为1*512*1*1,如图3所示。

经过广义均值池化算法降维后,将降维后的特征图全部拼接起来,得到待匹配图像的特征向量,该特征向量为1472维的浮点数特征向量。

204、服务器使用白化算法对该特征向量进行降维。

本实施例中,使用投影白化算法来对特征向量进行降维,其过程如下:

其中,f(i)、f(j)分别表示两个图像的特征向量,y(i,j)=1代表f(i)和f(j)是同一件t恤的特征向量,y(i,j)=0代表f(i)和f(j)是属于不同t恤的特征向量,eig函数表示求特征值和特征向量,p为映射矩阵,cs、cd分别为y(i,j)=1和y(i,j)=0两种情况下的协方差矩阵。在获取到特征向量的监督信息后,可以通过上述公式,基于该监督信息求出映射矩阵p,然后,将归一化后的特征向量与映射矩阵p相乘,把高维的特征向量降到较低维的特征向量。比如,具体降维过程可以为:归一化后的特征向量维度是1*n,映射矩阵p维度是n*m,其中n>m,归一化后的特征向量左乘以映射矩阵p,则得到矩阵的维度为1*m,维度从n降为m,如图6所示。

可选的,投影白化还可以转化成神经网络的全连接层,并在神经网络中学习。

205、服务器对经过白化后的特征向量进行编码,将降维后的特征向量转换为由0和1两种元素构成的匹配特征向量。

本实施例中,可以使用哈希编码算法对经过白化后的浮点数特征向量进行编码,将浮点数特征向量转换为由0和1两种元素构成的匹配特征向量,如图5所示,具体过程如下:

基于迭代量化算法,学习该特征向量的旋转矩阵;通过旋转矩阵对该特征向量进行哈希编码,得到由0和1两种元素构成的匹配特征向量。

其中,旋转矩阵是通过迭代量化算法(itq,iterativequantization)来学习得到的,迭代量化算法如下所示:

其中,r为旋转矩阵,b为量化编码,x为浮点数特征,即特征向量。可参考现有技术进行迭代,例如,生成随机矩阵,并对随机矩阵进行奇异值分解(svd,singularvaluedecomposition),得到对应的正交矩阵,将其作为旋转矩阵的初始值,然后,固定旋转矩阵r的值以求解量化编码b,求解出b后,再对量化编码b与浮点数特征x右乘的结果进行奇异值分解以更新旋转矩阵,以此对旋转矩阵进行多次迭代,得到量化误差满足预设条件的旋转矩阵,一般经过50次左右的迭代,即可学习到旋转矩阵。

可选的,迭代量化算法也可以通过约束神经元的输出来得到哈希的映射矩阵,比如让神经元的输出限制在0和1两种元素中,可以通过数据学习到哈希的映射矩阵。

206、服务器获取候选图像的匹配特征向量。

可选的,在“服务器获取候选图像的匹配特征向量”之前,可以确定该待匹配图像承载对象的类别。

对应地,步骤“服务器获取候选图像的匹配特征向量”,可以包括:

确定候选图像,其中,候选图像承载对象的类别,与该待匹配图像承载对象的类别相同;

服务器获取候选图像的匹配特征向量。

其中,可以通过实时计算候选图像的匹配特征向量,来实现对候选图像的匹配特征向量的获取。本实施例中还可以预先计算候选图像的匹配特征向量,将其存储在数据库中,例如存储在区块链的共享账本中,在需要获取候选图像的匹配特征向量时,从数据库中获取候选图像的匹配特征向量。例如,从区块链的共享账本中获取候选图像的匹配特征向量。

可选的,本实施例中,对候选图像的匹配特征向量的计算方案与步骤202-205中对待匹配图像的匹配特征向量的计算方案相似。即服务器通过神经网络对候选图像提取多个尺度下的特征图;对所述多个尺度下的特征图进行处理,得到候选图像的特征向量;使用白化算法对该候选图像的特征向量进行降维;对经过白化后的特征向量进行编码,将降维后的特征向量转换为由0和1两种元素构成的匹配特征向量。在计算完成后,可以将候选图像的匹配特征向量与候选图像对应存储在数据库中。

207、服务器基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像。

本实施例中,可以通过度量匹配特征向量间的距离来确定,例如度量匹配特征向量间的汉明距离,但是可以理解的是,该距离并不仅限于汉明距离。

可选的,步骤“基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像”,可以包括:

计算该待匹配图像的匹配特征向量和该候选图像的匹配特征向量的汉明距离;将候选图像中,汉明距离满足预设条件的候选图像,确定为与该待匹配图像相似的相似图像。

本实施例中的预设条件可以为汉明距离不高于预设阈值,该预设阈值可以根据实际需要设置,例如根据匹配特征向量的位数具体设置,本实施例对此没有限定。例如,汉明距离满足预设条件的候选图像,为汉明距离不高于3的候选图像。

208、服务器向终端发送该相似图像。

本实施例中,服务器可以将该相似图像保存至终端的数据库中,其中,相似图像的数量为至少一个。

209、终端接收相似图像并显示该相似图像。

本实施例中,终端接收到服务器所发送的相似图像,并将该相似图像在终端的显示器上显示。其中,相似图像的数量为至少一个,当相似图像的数量为多个时,在步骤209之前,可以根据步骤207中的计算,确定相似图像和待匹配图像的相似度,基于该相似度对相似图像进行排序,得到由排序后的相似图像组成的相似图像集合,步骤“终端接收相似图像并显示该相似图像”,可以包括:终端接收到服务器所发送的相似图像集合,该相似图像集合中的相似图像是按照相似度的大小由大到小进行排序的,终端基于排序顺序在显示器上显示相似图像。

其中,可以基于相似图像和待匹配图像的汉明距离确定相似图像和待匹配图像的相似度;汉明距离的值越小,相似度越高,汉明距离的值越大,相似度越低。

由上可知,本实施例在获取了待匹配图像后,对该待匹配图像提取多个尺度下的特征图,对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量,对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求;接着,获取候选图像的匹配特征向量,基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像;由于本申请实施例提取的是多个尺度下的特征图,因此,特征向量中包含了待匹配图像在多个尺度下的特征信息,特征向量的表征力较强,在进行图像相似度匹配时,能够大大提高图像匹配的准确性,使得匹配效果更好。

实施例三、

为了更好地实施以上方法,本申请实施例还提供一种图像匹配装置,如图9a所示。该图像匹配装置可以包括第一获取单元901、提取单元902、处理单元903、编码单元904、第二获取单元905、确定单元906,如下:

(1)第一获取单元901;

第一获取单元901,用于获取待匹配图像。

本实施例中,第一获取单元901,获取待匹配图像的方式有多种。

例如,该第一获取单元901在接收到拍摄指令时,开启第一获取单元的图像获取设备拍摄图像,将拍摄的图像作为待匹配图像,其中,图像获取设备可以是摄像头等等。

例如,该第一获取单元901也可以从图像匹配装置本地的数据库来获取待匹配图像,比如,待匹配图像存储在图像匹配装置本地的数据库中,则该第一获取单元901在接收到获取待匹配图像的指令时,可以直接从该图像匹配装置本地的数据库获取待匹配图像,其中,本地即指该图像匹配装置。

(2)提取单元902;

提取单元902,用于对该待匹配图像提取多个尺度下的特征图。

本实施例中,该提取单元902可以包括预处理子单元9021和提取子单元9022,参见图9b,其中:

该预处理子单元9021,用于对待匹配图像进行预处理。

例如,该预处理子单元9021,具体可以用于对待匹配图像进行图像大小的调整、图像数据增强或/和图像的旋转等。

该提取子单元9022,用于通过神经网络中的多个特征提取块,分别提取预处理后待匹配图像的不同尺度下的特征图。

(3)处理单元903;

处理单元903,用于对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量。

本实施例中,该处理单元903可以包括降维子单元9031和融合子单元9032,参见图9c,其中:

该降维子单元9031,用于对所述多个尺度下的特征图,分别进行降维操作。

该融合子单元9032,用于对降维后的所有特征图进行融合,得到所述待匹配图像的特征向量。

本实施例中,该降维子单元9031,具体可以将各尺度下的特征图的通道维度,分别降低到相同的预设维度,其中,通道维度为特征图的各通道的维度,该预设维度可以根据实际应用的需求进行设置,在此不作赘述。比如,可以使用广义均值池化算法对各尺度下的特征图进行降维。

本实施例中,该融合子单元9032,具体可以对降维后的所有特征图进行拼接,得到待匹配图像的特征向量。比如,对降维后的所有特征图按特征图的尺度大小,从大到小进行拼接,得到待匹配图像的特征向量。

(4)编码单元904;

编码单元904,用于对该特征向量进行编码,得到用于图像匹配的匹配特征向量,该匹配特征向量中的元素满足预设要求。

本实施例中,该编码单元904,具体可以对该特征向量进行编码,将该特征向量转换为由0和1两种元素构成的匹配特征向量。比如,使用哈希编码算法对该特征向量进行编码,将浮点数向量转换为二进制哈希码。

其中,“使用哈希编码算法对该特征向量进行编码”的过程具体包括:基于迭代量化算法,学习该特征向量的旋转矩阵;通过旋转矩阵对该特征向量进行哈希编码,得到由0和1两种元素构成的匹配特征向量。

在对特征向量进行编码之前,还可以包括:使用白化算法对该特征向量进行降维,其中,降维后的特征向量的维度数量低于预设数值。即可选的,该编码单元904可以包括白化子单元9041和编码子单元9042,如图9d所示。

其中,该白化子单元9041,具体可以先对该特征向量进行归一化,通过白化算法对归一化后的特征向量进行降维,对降维后的特征向量进行归一化。

其中,该白化算法具体可以是投影白化算法,通过投影白化算法对归一化后的特征向量进行降维,具体过程如下:获取特征向量的监督信息,基于该监督信息计算得到特征向量的映射矩阵,将该映射矩阵与归一化后的特征向量相乘,以对特征向量进行降维。

(5)第二获取单元905;

第二获取单元905,用于获取候选图像的匹配特征向量。

本实施例中,该第二获取单元905,具体可以包括:在“获取候选图像的匹配特征向量”之前,确定该待匹配图像承载的对象的类别;然后,获取候选图像的匹配特征向量。

对应地,步骤“获取候选图像的匹配特征向量”,可以包括:

确定候选图像,其中,候选图像承载的对象的类别,与该待匹配图像承载的对象的类别相同;

获取候选图像的匹配特征向量。

其中,可以通过实时计算候选图像的匹配特征向量,来实现对候选图像的匹配特征向量的获取。本实施例中还可以预先计算候选图像的匹配特征向量,将其存储在数据库中,例如存储在区块链的共享账本中,在需要获取候选图像的匹配特征向量时,第二获取单元905从数据库中获取候选图像的匹配特征向量。例如,从区块链的共享账本中获取候选图像的匹配特征向量。

(6)确定单元906;

确定单元906,用于基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像。

本实施例中,该确定单元906,可以通过度量匹配特征向量间的距离来确定候选图像中,与该待匹配图像相似的相似图像。例如,具体可以计算该待匹配图像的匹配特征向量和该候选图像的匹配特征向量的汉明距离;将候选图像中,汉明距离满足预设条件的候选图像,确定为与该待匹配图像相似的相似图像。

可选的,本实施例中,该图像匹配装置还可以包括输出单元,如下:

输出单元,用于输出该相似图像。

在本实施例中,输出该相似图像的方式有多种。例如,可以将该相似图像保存至该图像匹配装置本地,或者,也可以在该图像匹配装置的显示单元上显示该相似图像。

其中,本实施例中的相似图像的数量为至少一个,当相似图像的数量为多个时,可以根据确定单元906中的计算,确定相似图像和待匹配图像的相似度,基于该相似度对相似图像进行排序,得到由排序后的相似图像组成的相似图像集合。然后,输出单元,输出由排序后的相似图像组成的相似图像集合。

其中,该神经网络具体可以由其他设备进行训练后,提供给该图像匹配装置,或者,也可以由该图像匹配装置自行进行训练,即可选的,如图10所示,该图像匹配装置还可以包括第三获取单元907和训练单元908,如下:

第三获取单元907,用于获取训练数据,该训练数据包括多个训练图像,其中,所述训练图像承载的对象的类别为多个。

该训练单元908,具体用于基于所述训练数据对神经网络进行对象的分类训练;通过训练后的所述神经网络中的特征提取块,对所述训练图像提取多个尺度下的特征图;对所述训练图像的特征图进行处理,得到所述训练图像的特征向量;基于各类对象的训练图像的特征向量,优化所述神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求。

其中,分类训练是为了让相同类别的训练数据的特征向量在空间中分布在同一个区域,而不属于同一个类别的训练数据的特征向量不会高度相似。

可选的,本实施例中,至少有两个或两个以上训练图像承载的对象为同一对象,同一对象的不同训练图像展示的对象信息不完全相同。例如,对于训练图像为商品照片的例子,同一件商品对应有至少两张从不同角度拍摄的商品照片。

本实施例中,对于每一类训练图像,都可以通过以下过程来使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求,具体过程如下:

从各类训练图像中抽取三个图像组成三元组,得到多个三元组,其中,三元组中两个图像承载的内容属于同一对象,称为锚示例和正示例,另一个图像为相同类别的不同对象的样本,称为负示例;计算锚示例特征向量与正示例特征向量的距离,和锚示例特征向量与负示例特征向量的距离,得到三元组的损失;通过三元组的损失,优化神经网络的参数,来对特征向量进行更新,不断重复这个优化过程,直到收敛或者训练到预设的迭代次数,得到训练后的神经网络。

由上可知,本实施例在获取了待匹配图像后,可以通过提取单元902对该待匹配图像提取多个尺度下的特征图,由处理单元903对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量,通过编码单元904对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求;接着,由第二获取单元905获取候选图像的匹配特征向量,基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,由确定单元906确定候选图像中,与该待匹配图像相似的相似图像;由于本申请实施例提取的是多个尺度下的特征图,因此,特征向量中包含了待匹配图像在多个尺度下的特征信息,特征向量的表征力较强,在进行图像相似度匹配时,能够大大提高图像匹配的准确性,使得匹配效果更好。

实施例四、

本申请实施例还提供一种电子设备,如图11所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:

该电子设备可以包括一个或者一个以上处理核心的处理器1101、一个或一个以上计算机可读存储介质的存储器1102、电源1103和输入单元1104等部件。本领域技术人员可以理解,图11中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器1101是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器1102内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器1101可包括一个或多个处理核心;优选的,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。

存储器1102可用于存储软件程序以及模块,处理器1101通过运行存储在存储器1102的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1102还可以包括存储器控制器,以提供处理器1101对存储器1102的访问。

电子设备还包括给各个部件供电的电源1103,优选的,电源1103可以通过电源管理系统与处理器1101逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1103还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该电子设备还可包括输入单元1104,该输入单元1104可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器1101会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1102中,并由处理器1101来运行存储在存储器1102中的应用程序,从而实现各种功能,如下:

获取待匹配图像;对该待匹配图像提取多个尺度下的特征图;对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量;对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求;获取候选图像的匹配特征向量;基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像。

其中,该神经网络具体可以由其他设备进行训练后,提供给该图像匹配装置,或者,也可以由该图像匹配装置自行进行训练,具体训练方式可以参见前面的实施例,在此不再赘述。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

由上可知,本实施例在获取了待匹配图像后,对该待匹配图像提取多个尺度下的特征图,对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量,然后,对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求;接着,获取候选图像的匹配特征向量,基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像;由于本申请实施例提取的是多个尺度下的特征图,因此,特征向量中包含了待匹配图像在多个尺度下的特征信息,特征向量的表征力较强,在进行图像相似度匹配时,能够大大提高图像匹配的准确性,使得匹配效果更好。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的图像匹配方法中的步骤。例如,该指令可以执行如下步骤:

获取待匹配图像;对该待匹配图像提取多个尺度下的特征图;对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量;对该特征向量进行编码,得到用于图像匹配的匹配特征向量,其中,匹配特征向量中的元素满足预设要求;获取候选图像的匹配特征向量;基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像。

其中,该神经网络具体可以由其他设备进行训练后,提供给该图像匹配装置,或者,也可以由该图像匹配装置自行进行训练,即该指令还可以执行如下步骤:

获取训练数据,该训练数据包括多个训练图像,其中,训练图像承载的对象的类别为多个;基于该训练数据对神经网络进行对象的分类训练;通过训练后的神经网络中的特征提取块,对训练图像提取多个尺度下的特征图;对该训练图像的特征图进行处理,得到该训练图像的特征向量;基于各类对象的训练图像的特征向量,优化该神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求。

其中,“基于各类对象的训练图像的特征向量,优化该神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求”这一步骤具体可以包括:

从各类训练图像中抽取三个图像组成三元组,得到多个三元组,其中,三元组中两个图像承载的内容属于同一对象,称为锚示例和正示例,另一个图像为相同类别的不同对象的样本,称为负示例;计算锚示例特征向量与正示例特征向量的距离,和锚示例特征向量与负示例特征向量的距离,得到三元组的损失;通过三元组的损失,优化神经网络的参数,来对特征向量进行更新,不断重复这个优化过程,直到收敛或者训练到预设的迭代次数,得到训练后的神经网络。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本申请实施例所提供的图像匹配方法中的步骤,因此,可以实现本申请实施例所提供的图像匹配方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的电子设备,如服务器、终端)通过网络通信的形式连接形成的分布式系统。

以分布式系统为区块链系统为例,参见图12,图12是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。本实施例中,候选图像、候选图像的类别、以及匹配特征向量等信息,可以通过节点被存储在区域链系统的共享账本中,电子设备(例如终端或服务器)可以基于共享账本存储的记录数据获取候选图像的匹配特征向量。

参见图12示出的区块链系统中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

例如,应用实现的业务包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;

2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。

2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。

3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。

参见图13,图13是本申请实施例提供的区块结构(blockstructure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

以上对本申请实施例所提供的一种图像匹配方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

技术特征:

1.一种图像匹配方法,其特征在于,包括:

获取待匹配图像;

对所述待匹配图像提取多个尺度下的特征图;

对所述多个尺度下的特征图进行处理,得到所述待匹配图像的特征向量;

对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,所述匹配特征向量中的元素满足预设要求;

获取候选图像的匹配特征向量;

基于所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量,确定所述候选图像中,与所述待匹配图像相似的相似图像。

2.根据权利要求1所述的方法,其特征在于,所述对所述待匹配图像提取多个尺度下的特征图,包括:

通过神经网络中的多个特征提取块,分别提取所述待匹配图像的不同尺度下的特征图。

3.根据权利要求1所述的方法,其特征在于,所述对所述多个尺度下的特征图进行处理,得到所述待匹配图像的特征向量,包括:

对所述多个尺度下的特征图,分别进行降维操作;

对降维后的所有特征图进行融合,得到所述待匹配图像的特征向量。

4.根据权利要求3所述的方法,其特征在于,所述对所述多个尺度下的特征图,分别进行降维操作,包括:

将各尺度下的特征图的通道维度,分别降低到相同的预设维度,所述通道维度为特征图的各通道的维度。

5.根据权利要求1所述的方法,其特征在于,所述获取待匹配图像之前,还包括:

获取训练数据,所述训练数据包括多个训练图像,其中,所述训练图像承载的对象的类别为多个;

基于所述训练数据对神经网络进行对象的分类训练;

通过训练后的所述神经网络中的特征提取块,对所述训练图像提取多个尺度下的特征图;

对所述训练图像的特征图进行处理,得到所述训练图像的特征向量;

基于各类对象的训练图像的特征向量,优化所述神经网络的参数,以使得同类对象中不同对象的训练图像所对应的特征向量差异满足预设要求。

6.根据权利要求1所述的方法,其特征在于,在所述对所述特征向量进行编码,得到用于图像匹配的匹配特征向量前,还包括:

使用白化算法对所述特征向量进行降维,其中,降维后的特征向量的维度数量低于预设数值。

7.根据权利要求1所述的方法,其特征在于,所述对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,包括:

对所述特征向量进行编码,将所述特征向量转换为由0和1两种元素构成的匹配特征向量。

8.根据权利要求6所述的方法,其特征在于,所述使用白化算法对所述特征向量进行降维,包括:

对所述特征向量进行归一化;

通过投影白化算法对归一化后的所述特征向量进行降维,以将所述特征向量的维度数量降至不超过预设数值的范围;

对降维后的所述特征向量进行归一化。

9.根据权利要求8所述的方法,其特征在于,所述通过投影白化算法对归一化后的所述特征向量进行降维,包括:

获取所述特征向量的监督信息;

基于所述监督信息计算得到所述特征向量的映射矩阵;

将所述映射矩阵与归一化后的所述特征向量相乘,以对所述特征向量进行降维。

10.根据权利要求7所述的方法,其特征在于,所述对所述特征向量进行编码,将所述特征向量转换为由0和1两种元素构成的匹配特征向量,包括:

基于迭代量化算法,学习所述特征向量的旋转矩阵;

通过所述旋转矩阵对所述特征向量进行哈希编码,得到由0和1两种元素构成的匹配特征向量。

11.根据权利要求1所述的方法,其特征在于,所述基于所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量,确定所述候选图像中,与所述待匹配图像相似的相似图像,包括:

计算所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量的汉明距离;

将所述候选图像中,所述汉明距离满足预设条件的候选图像,确定为与所述待匹配图像相似的相似图像。

12.根据权利要求1所述的方法,其特征在于,所述获取候选图像的匹配特征向量之前,还包括:

确定所述待匹配图像承载的对象的类别;

所述获取候选图像的匹配特征向量,包括:

确定候选图像,其中,所述候选图像承载的对象的类别,与所述待匹配图像承载的对象的类别相同;

获取所述候选图像的匹配特征向量。

13.一种图像匹配装置,其特征在于,包括:

第一获取单元,用于获取待匹配图像;

提取单元,用于对所述待匹配图像提取多个尺度下的特征图;

处理单元,用于对所述多个尺度下的特征图进行处理,得到所述待匹配图像的特征向量;

编码单元,用于对所述特征向量进行编码,得到用于图像匹配的匹配特征向量,所述匹配特征向量中的元素满足预设要求;

第二获取单元,用于获取候选图像的匹配特征向量;

确定单元,用于基于所述待匹配图像的匹配特征向量和所述候选图像的匹配特征向量,确定所述候选图像中,与所述待匹配图像相似的相似图像。

14.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至12任一项所述的图像匹配方法中的操作。

15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至12任一项所述的图像匹配方法中的步骤。

技术总结

本申请公开了一种图像匹配方法、装置、电子设备和存储介质;该方法涉及人工智能领域中的计算机视觉方向,可以在获取了待匹配图像后,对该待匹配图像提取多个尺度下的特征图,对多个尺度下的特征图进行处理,得到该待匹配图像的特征向量,对该特征向量进行编码,得到用于图像匹配的匹配特征向量,匹配特征向量中的元素满足预设要求,接着,获取候选图像的匹配特征向量,基于该待匹配图像的匹配特征向量和该候选图像的匹配特征向量,确定候选图像中,与该待匹配图像相似的相似图像;本申请实施例提取的是多个尺度下的特征图,因此,特征向量的表征力较强,在进行图像相似度匹配时,大大提高图像匹配的准确性,使得匹配效果更好。

技术研发人员:卢建东

受保护的技术使用者:腾讯科技(深圳)有限公司

技术研发日:.10.24

技术公布日:.02.21

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。