CN109635141B - 用于检索图像的方法、电子设备和计算机可读存储介质 - Google Patents
用于检索图像的方法、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109635141B CN109635141B CN201910089288.7A CN201910089288A CN109635141B CN 109635141 B CN109635141 B CN 109635141B CN 201910089288 A CN201910089288 A CN 201910089288A CN 109635141 B CN109635141 B CN 109635141B
- Authority
- CN
- China
- Prior art keywords
- image
- neural network
- layer
- convolution
- dimension
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/806—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Image Analysis (AREA)
Abstract
根据本公开的实施例,提供了用于检索图像的方法、电子设备和计算机可读存储介质。该方法包括:使用第一神经网络来处理待检索图像,以确定所述待检索图像的局部特征向量;使用第二神经网络来处理所述待检索图像,以确定所述待检索图像的全局特征向量;以及基于所述局部特征向量和所述全局特征向量,确定与所述待检索图像的相似度高于预定阈值的图像。
Description
技术领域
本公开涉及图像处理领域,且更具体地涉及用于检索图像的方法、电子设备和计算机可读存储介质。
背景技术
深度学习是近十年来人工智能领域取得的最重要的突破之一。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域都取得了巨大成功。例如,在传统的图像检索技术中,通常可利用图像的底层可视化特征来进行检索。但是由于底层特征与高层语义之间存在“语义鸿沟”问题,导致图像检索效果不满意。
相对地,在基于深度学习的图像检索技术中,可以使用卷积神经网络(CNN)来进行图像检索,其具有强大的学习能力、高效的特征表达能力,能够从像素级原始数据到抽象的语义概念逐层提取信息。这使得它在提取图像的全局特征和上下文信息方面具有突出的优势,可以通过组合低级的特征形成更加抽象的高层表示属性类别或者特征,在图像检索中获得好的效果。
发明内容
然而,由于视角、距离、光照等因素的变化而经常导致图像检索的结果并不能令人十分满意,因此需要一种能够提高图像检索准确度的方案。
为了至少部分解决或减轻上述问题,提供了根据本公开实施例的用于检索图像的方法、设备和计算机可读存储介质。
根据本公开的第一方面,提供了一种用于检索图像的方法。该方法包括:使用第一神经网络来处理待检索图像,以确定所述待检索图像的局部特征向量;使用第二神经网络来处理所述待检索图像,以确定所述待检索图像的全局特征向量;以及基于所述局部特征向量和所述全局特征向量,确定与所述待检索图像的相似度高于预定阈值的图像。
在一些实施例中,所述第一神经网络是使用图像的具有不同分辨率的多个图像数据来训练和/或使用的。在一些实施例中,具有不同分辨率的多个图像数据的最短边的像素数目包括以下各项中的至少两项:256、384、512、640和768。在一些实施例中,所述第一神经网络包括以下各层:具有维度为11*11*3的96个卷积核的第一卷积层;具有维度为5*5*96的256个卷积核的第二卷积层;具有维度为3*3*256的384个卷积核的第三卷积层;具有维度为3*3*384的384个卷积核的第四卷积层;具有维度为3*3*384的256个卷积核的第五卷积层;具有维度为1*1*256的4096个卷积核的第六卷积层;以及具有维度为13*13*4096的4096个卷积核的第七卷积层。在一些实施例中,所述第一神经网络还包括在所述第七卷积层之后的空间变换网络。在一些实施例中,所述第一神经网络还包括在所述第七卷积层之后的最大池化层和求和池化层。在一些实施例中,所述第一神经网络是通过使用以下损失函数来训练的:其中,Lt表示针对所述第一神经网络的损失函数,ya是标准图像的特征向量,yp是正样本的特征向量,yn是负样本的特征向量,表示向量的2范数的平方,max()表示取最大值函数,以及α为余量值。在一些实施例中,α具有如下定义:在一些实施例中,使用第一神经网络来处理待检索图像,以确定所述待检索图像的局部特征向量的步骤包括:使用所述第一神经网络中的各个卷积层来处理所述待检索图像的具有不同分辨率的多个待检索图像数据,并确定作为输出的针对各个分辨率的多个特征图中相应具有最大激活值的多个感受野;以及使用所述第一神经网络中的求和池化层来处理所述多个感受野,以确定所述局部特征向量。在一些实施例中,所述第二神经网络包括以下各层:具有维度为11*11*3的96个卷积核的第一卷积层;具有维度为5*5*96的256个卷积核的第二卷积层;具有维度为3*3*256的384个卷积核的第三卷积层;具有维度为3*3*384的384个卷积核的第四卷积层;具有维度为3*3*384的256个卷积核的第五卷积层;维度为1*4096的第一全连接层;以及维度为1*4096的第二全连接层。在一些实施例中,所述第二神经网络在所述第五卷积层和所述第一全连接层之间还具有空间变换网络。在一些实施例中,在训练所述第二神经网络时使用的损失函数是以下损失函数: 其中,Ls表示针对所述第二神经网络的损失函数,y1、y2分别是两个样本图像的特征向量,y是指示所述两个样本图像是否相似的正确标注,表示向量的2范数的平方,max()表示取最大值函数,以及m为超参数。在一些实施例中,在同时训练所述第一神经网络和所述第二神经网络时使用的损失函数是以下损失函数:
L=Lt+λLs
其中,L是总损失函数,Lt表示针对所述第一神经网络的损失函数,以及Ls表示针对所述第二神经网络的损失函数,其中,ya是标准图像的特征向量,yp是正样本的特征向量,yn是负样本的特征向量,表示向量的2范数的平方,max()表示取最大值函数,α为余量值,y1、y2分别是两个样本图像的特征向量,y是指示所述两个输入图像是否相似的正确标注,表示向量的2范数的平方,以及m为超参数。
根据本公开的第二方面,提供了一种用于检索图像的电子设备,包括:处理器;存储器,其上存储有指令,所述指令在由所述处理器执行时,使得所述处理器执行前述任一方法。
根据本公开的第三方面,提供了一种存储指令的计算机可读存储介质。所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行前述方法。
通过使用根据本公开实施例的用于检索图像的方法、电子设备和计算机可读存储介质,可以更加准确、高效地进行图像检索,并提高神经网络训练效率。
附图说明
通过下面结合附图说明本公开的优选实施例,将使本公开的上述及其它目的、特征和优点更加清楚,其中:
图1是示出了根据本公开实施例的用于检索图像的示例方案的示意图。
图2是示出了根据本公开实施例的第一神经网络的示例示意图。
图3是示出了根据本公开实施例的第二神经网络的示例示意图。
图4是示出了根据本公开实施例的用于检索图像的示例方法的流程图。
图5是示出了根据本公开实施例的用于检索图像的电子设备的示例硬件布置的框图。
具体实施方式
下面参照附图对本公开的优选实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同的附图标记用于相同或相似的功能和操作。
随着互联网的普及,图像检索已经成为了人们学习和生活中所使用的重要应用之一。例如,当用户通过网络进行购物时,可以通过向搜索引擎提交想要购买的物品的照片来进行搜索。又例如,在安保领域,当安保人员想要查找监控视频中出现的某个人时,也可以通过图像检索在数据库中进行查找。因此,图像检索的应用领域非常广泛。
如前所述,随着近来对神经网络的研究的推进,已经发现可以使用例如卷积神经网络(CNN)对图像的特征进行学习并提取,从而可以实现高效的图像检索功能。
以下将简要介绍卷积神经网络。Hubel和Wiesel等人在1950年和1960年的研究表明:猫和猴子的视觉皮层中包含单独对视野中的小区域进行响应的神经元。如果眼睛不移动的话,视觉空间中的由视觉刺激影响单个神经元的区域被称为该神经元的感受野或感受域(receptive field)。相邻神经元具有相似和重叠的感受野。感受野的大小和位置在皮层上系统性改变,以形成完整的视觉空间映射。
受到该研究的启发,在机器学习领域中,提出了卷积神经网络(简称为CNN或ConvNet),其是一类前馈(feed-forward)人工神经网络。具体地,该神经网络的神经元之间的连接模式受到了动物视觉皮层的启发。单个神经元对于空间的有限区域中的刺激加以响应,该有限区域即为前述感受野。不同神经元的各自感受野彼此部分重叠,使得它们排列形成了整个视野。单个神经元对其感受野内刺激的响应可以用卷积运算的方式来数学近似。因此,卷积神经网络在图像和视频识别领域、推荐领域(例如,购物网站的商品推荐等)、以及自然语言处理领域中都具有广泛的应用。
然而,由于视角、距离、光照等因素的变化而经常导致同一个物体的图像实际上呈现出不同的特征,进而使得经过训练的CNN不能准确地识别出该物体,或者由于过拟合(overfitting)现象导致识别错误,因此需要一种能够提高图像检索准确度的方案。
以下,将结合图1来大体上描述根据本公开实施例的用于图像检索的示例方案。
图1是示出了根据本公开实施例的用于检索图像的示例方案的示意图。如图1所示,该方案大体上是将输入图像分别通过局部模型和全局模型来进行处理,并分别得到输入图像的局部特征向量和全局特征向量,并根据该局部特征向量和全局特征向量在图像数据库中进行检索,以最终得到高度相似的图像。在局部模型中,可以仅考虑激活函数的响应比较高的区域,从而抓住原输入图像中的局部特征,而无需考虑全局特征。此外,在全局模型中,可以捕捉原输入图像中的全局特征,从而与局部特征一起,能够更好地对输入图像的各个级别的特征加以表达。
参见图1,可以看到输入图像首先可以经过可选的“数据增强”处理。该数据增强处理的目的是提高样本的多样性,使得后续训练的神经网络能够全面捕捉各种特征,从而尽量避免输入图像中的特征无法被有效捕捉。数据增强处理具体可以涉及例如:颜色抖动和/或左右翻转等。需要注意的是:在一些实施例中(例如,图1所示实施例),数据增强处理并不涉及数据的尺度(或分辨率)的变化。
经过可选的数据增强处理的图像数据接下来可以分别经过用于局部特征提取的第一神经网络(或局部特征提取神经网络)和用于全局特征提取的第二神经网络(或全局特征提取神经网络)的处理。
具体地,在一些实施例中,在经过第一神经网络的处理之前,可以对经过数据增强处理的数据进行多尺度处理,以得到同一个输入图像的具有不同尺度(或分辨率)的多个图像数据。进行该多尺度处理的原因在于目标对象的大小在不同尺度的图像中会有不同,从而导致图像检索准确率不够高,因此可以引入多尺度处理来解决或至少减轻这一问题。
在多尺度处理中,以尺度256为例,可以将输入图像的较短边调整为256(像素),同时保持纵横比不变,从而使得图像的较长边随之更改。在一些实施例中,多尺度处理可以有多种尺度变换,包括(但不限于)256、384、512、640和768等中的至少两项。然而需要注意的是:尺度不限于上述几种,而是可以采用任何合适的尺度。在例如图1所示的实施例中,采用了全部五种尺度,从而可得到输入图像的具有不同尺度的五个图像数据。然而,需要注意的是:该多尺度处理不是必须执行的,换言之,第一神经网络也可以处理具有各种尺度或分辨率的输入图像。此外,尽管在图2中以维度为227*227*3的输入图像为例来加以说明,但实际上第一神经网络的输入图像可以是具有任何恰当维度的输入图像,例如上述较短边维度为256、384、512、640和768中任意一项或多项的输入图像。
在获得五个(或更一般地,多个)不同尺度的图像数据之后,可以针对这些图像数据应用第一神经网络来提取输入图像的局部特征向量。接下来,在参考图1的情况下,结合图2来详细描述根据本公开实施例的第一神经网络的具体示例结构。
如图2所示,第一神经网络通常可以包含多个卷积层(例如,图2所示的第一卷积层21~第七卷积层27),这些卷积层一般是由彼此部分重叠的小型神经元(其在数学的意义上也被称为卷积核,以下如无特别声明,这两个术语可以互换使用)的集合。此外,在本公开的上下文中,除非另有明确声明,否则对于神经网络中的任何两层而言,更接近输入数据(或输入层,例如图2的最左侧)的层被称为“在前”或“在下”的层,而另一个更接近输出数据(或输出层,例如图2的最右侧)的层被称为“在后”或“在上”的层。此外,在训练、验证和/或使用期间,从输入层到输出层的方向被称为前向或正向(forward),而从输出层到输入层的方向被称为后向或反向(backward)。
以图2所示的第一卷积层21为例,这些小型神经元可以对输入图像的各个局部(例如,输入图像中的标有高度和宽度均为“11”的局部)进行处理。然后这些小型神经元的输出被合并排列为一个输出(称为特征映射,例如第一卷积层21上方的长方体的标有高度和宽度均为“55”的截面),以获得对原始图像中某些特征进行更好表示的输出图像。同时,相邻神经元之间部分重叠的排列也使得第一神经网络对于原始图像中的特征具备一定程度的平移容忍度。换言之,即使原始图像中的特征在某个容忍度内以平移方式改变了其位置,该第一神经网络也可以正确地识别出该特征。关于卷积层的详细描述将在后文中给出,此处不再详细讨论。
接下来的第二卷积层22同样是一个卷积层,其可以对于第一卷积层21所产生的(并经由可能存在的池化层进行过下采样的)输出数据进行进一步的特征采样。从直观上看,其所学习到的特征在全局性上大于第一卷积层21所学习到的特征。同样地,后续的卷积层都是对前一卷积层的特征的全局化。
作为一个直观的示例,不妨认为第一卷积层21学习到的特征可以是例如眼睛颜色、眼睛轮廓、睫毛、鼻子轮廓、鼻子阴影、嘴部轮廓、嘴部颜色等等细微(或非常局部)的特征,而第二卷积层22针对第一卷积层21的输出学习到的可以是眼睛(根据例如眼睛颜色、眼睛轮廓、睫毛等来识别)、鼻子(根据例如鼻子轮廓、鼻子阴影等来确定)、嘴(根据例如嘴部轮廓、嘴部颜色等来确定)等略大一些的面部器官的特征,这些特征在全局性上大于第一卷积层21所学习到的特征。而图2所示的第三卷积层23~第七卷积层27等可以根据第二卷积层22的输出学习到人脸(根据例如眼睛、鼻子、嘴等来确定)等更为全局的特征,并最终判定图像中存在人脸或者人脸的特征点的位置。当然,本公开不限于此。
然而,尽管上述示例是以人类能够理解的方式给出的,但实际上第一神经网络学习到的特征通常不是人类所理解的语义特征,而是一种抽象特征,这种特征对于人类来说通常是完全无法理解的。但是通过将这些特征组合在一起,计算机就可以判定这是一个或一类特定物体。为了便于理解,可以认为一个人判断人脸的标准可能是看看图像中有没有人类的眼睛、鼻子、嘴巴;但是另一个人选取的特征就可能是图像中有没有人类的眉毛、下巴;还有的人可能更加奇怪,会去通过这张图像里是不是有眼镜、口罩、耳环等去判断是否存在人脸。而第一神经网络,则可能是最奇怪的一个“人”,它可能会使用人类完全无法用语言形容的一系列特征去判断是否是人脸以及人脸的各个部位,例如,某些特定的像素组合。
接下来将详细描述第一神经网络中可能包含的各种基本构造单元。
如图2所示,其中每个长方体实际上是作为某个卷积层的输入或输出的特征图集合。换言之,每个卷积层实际上是从前一个长方体到后一个长方体的映射关系。如图2所示,第一神经网络可以由多个层21~27(以及图2中未示出的其它辅助层)来堆叠而成,它们可以将输入数据变换为输出数据。在图2中,最初的输入数据可以是高度、宽度、深度分别为227、227、3的图像数据,其可表示分辨率为227*227的三通道(例如,红白蓝)的图像数据。因此,第一卷积层21实际上是将高度、宽度、深度分别为227、227、3的长方体变换为高度、宽度、深度分别为55、55、48的2个长方体的映射(或如下面详细描述的卷积核集合,即卷积层)。以下将详细描述神经网络中的卷积层。
卷积层(例如,第一卷积层21~第七卷积层27)是卷积神经网络的核心构造单元。该层的参数由可学习卷积核(或简称为卷积核)的集合来构成,每个卷积核具有很小的感受野,但是在输入数据的整个深度上延伸(例如,如图2中标有高度和宽度11、5、3之类的较小的长方体)。在前向过程中,将每个卷积核沿输入数据的宽度和高度进行卷积,计算卷积核的元素与输入数据之间的点积,并产生该卷积核的二维激活映射。作为结果,网络能够学习到在输入的某个空间位置上看到某个具体类型的特征时才可以激活的卷积核。
将所有卷积核的激活映射沿深度方向进行堆叠,形成了卷积层的全输出数据。因此,输出数据中的每个元素可以被解释为看到输入中的小区域并与相同激活映射中的其他卷积核共享参数的卷积核的输出。
如前所述,在处理诸如图像之类的大尺寸输入时,将本层中的卷积核连接到前一层中的所有卷积核是不实际的,因为这种网络架构并未考虑到数据的空间结构。卷积网络通过对相邻层的卷积核之间强制采用局部连接模式,利用了该空间局部相关性;即,每个卷积核仅连接到输入数据的小区域。该连接性的程度就是被称为该卷积核的感受野的参数。该连接在空间中是局部的(沿宽度和高度),但是始终沿输入数据的整个深度延伸。这种架构确保了学习到的卷积核产生了对空间局部输入图案的最强响应。
如前所述,除了输入数据的大小(例如,二维情况下,图像的宽度和高度)之外,多个参数也可以控制卷积层的输出数据的大小:深度、步幅和零填充。
输出数据的深度控制了层中连接到输入数据的相同区域的卷积核的数量。例如,如图2所示,第一卷积层21的深度为96,第二卷积层22的深度为256。所有这些卷积核将学习到针对输入中的不同特征来激活。例如,如果第一卷积层21以原始图像为输入,则沿着深度维度的不同卷积核(即,图2中的第一卷积层21上方的长方体的不同截面)可以在输入数据中出现各种定向的边或色块时激活。
步幅控制了如何分配空间维度(宽度和高度)的深度列。例如,在图2中,当步幅为4时,第一卷积层21中的每个长方体的截面中的两个相邻卷积核的输入数据相差4个空间单位。在卷积核为11x11x3的情况下这导致在各列之间重叠的感受野。又例如,如果使用较小的步幅,例如1,则感受野将高度重叠,且作为结果的输出数据将具有较大的空间尺寸。
此外,为了方便图像边缘处的卷积运算,有时可在输入数据的边界上用0来填充输入数据,或者在另一些实施例中,该零填充可以变为用对侧的数据来填充,或者在又一些实施例中,干脆没有零填充,使得输入数据比输出数据的大小略大。该零填充的大小是第三个参数。零填充提供了对输出数据空间大小的控制。具体地,有时需要对输入数据的空间大小进行严格地保持,从而必须使用零填充来保持该空间大小。
如前所述,在卷积层中使用参数共享方案以控制自由参数的数量。其依赖于以下合理的假设:如果一个特征对于在某个空间位置处计算是有用的,则其也应当对于在不同位置上计算是有用的。更通俗的,如果一个特征可以出现在图像一个位置上,则它也应该有可能出现在其它任何位置上。换言之,如果将深度的单个二维切片定义为深度切片(即,仅有宽度和高度,例如图2所示的前述截面),则将每个深度切片中的卷积核约束为使用相同的权重和偏置。
由于单个深度切片中的所有卷积核可以共享相同的参数,则卷积层中每个深度切片的前向过程可以被计算为卷积核的权重与输入数据的卷积(然后可选地加上偏置)。例如,假设输入数据和共享权值的卷积核分别为如下4x 4和2x 2的矩阵,则在无零填充、步幅为1、无偏置的情况下卷积计算结果如下式(1):
应当注意:有时候参数共享假设并不一定必然需要。这在第一神经网络的输入图像具有特定的结构化特征时是尤为明显的,其中,我们期望在不同的空间位置上学习到完全不同的特征。在例如人脸特征识别的场景中,可以预期在不同的位置上应当学习到不同的面部特征,例如眼睛、头发、眉毛、鼻子、嘴、耳朵等等。在该情况下,可以不要求参数共享,并代之以将该层称为局部连接层或局部连接卷积层。在这些层中,同一个深度切片中的各卷积核并不共享参数,这样的非共享卷积层将比同样设置的共享卷积层消耗更多的内存、更多的训练时间等。然而,如前所述,在图像中存在较强的结构化构造时(例如,人脸),在第一神经网络中在前的各层中采用这样的非共享卷积层将是更为优选的。
例如,针对式(1)中的4x 4输入数据的每个2x 2局部或感受野来说,可以采用不共享权值的多个(本示例中,最多9个)卷积核来进行卷积运算,并同样得到1个3x 3的输出数据。然而,由于采用了不同的卷积核,该输出数据的每个元素与式(1)中的输出数据的相应元素通常是不同的。但在一些特别情况下,取决于非共享权值的卷积核的训练过程,这些非共享权值的卷积核可能全部或部分相同,从而使得输出数据与式(1)中的输出数据也有可能全部或部分相同。
回到图2,在一些实施例中,第一神经网络可以具有如下各层:具有维度为11*11*3的96个卷积核的第一卷积层21、具有维度为5*5*96的256个卷积核的第二卷积层22、具有维度为3*3*256的384个卷积核的第三卷积层23、具有维度为3*3*384的384个卷积核的第四卷积层24、具有维度为3*3*384的256个卷积核的第五卷积层25、具有维度为1*1*256的4096个卷积核的第六卷积层26、以及具有维度为13*13*4096的4096个卷积核的第七卷积层27。
以第一卷积层21为例,在无零填充、步幅为4的情况下,其使用高度、宽度、深度分别为11、11、3的96个卷积核(分别为第一卷积层21中上面的长方体48个卷积核以及下面的长方体48个卷积核),将例如高度、宽度、深度分别为227、227、3的长方体变换为高度、宽度、深度分别为55、55、48的2个长方体。
这里需要注意的是:将第一卷积层21分为两组以形成上面的长方体和下面的长方体,这主要是为了将其计算并行化,可以使得其计算量能够例如分散在两个不同的GPU上。因此,本公开不限于此。在另一些实施例中,可以不将第一卷积层21分为两组,而是仅有一组,或者在又一些实施例中,将第一卷积层21分为两组以上,这可以完全取决于所使用的硬件。此外,对于其它卷积层或其它层来说,也是类似的。此外,在采用恰当分组的情况下,还可以有效地降低过拟合现象的出现,从而提升图像检索的准确度。
此外,在第一卷积层21和第二卷积层22之间可以存在图2中未示出的池化(pooling)层,其主要用于在保持特征的情况下对前一卷积层(例如,第一卷积层21)的输出数据进行下采样,减少计算量并防止过拟合。
作为卷积神经网络中的另一个重要的概念就是池化(pooling),其具有非线性下采样的形式。存在若干种用于实现池化的非线性函数,其中至少包括常用的最大池化(maxpooling)、平均池化(average pooling)、以及求和池化(sum pooling)。在一些实施例中,最大池化将输入图像分为不重叠的矩形的集合,并且针对这样的每个子区域来输出最大值。例如,如果池化层的输入为如下左侧表1所示的4x4的二维数组(或矩阵),则最大池化层的输出可以为如下右侧表2所示的2x2的二维数组(或矩阵):
类似地,求和池化是将表1中每个子区域的所有元素的数据求和,例如可以得到如下表3所示的二维数组(或矩阵):
表3
类似地,平均池化将表1中每个子区域的所有元素的数据求平均。
此外,尽管上面将表1中的数据以不重叠的方式进行划分并处理,然而本公开不限于此。在另一些实施例中,例如在图2所示实施例中,可以采用重叠池化。例如,假定每个子区域包括3x3的数据且每个子区域移动步幅为2,则两个相邻子区域之间就可具有重叠的元素。
直观上这意味着:一旦找到一个特征,则其精确位置就不如其相对于其他特征的大致位置那么重要了。池化层的功能是逐渐降低数据的空间大小,以减少网络中的参数量和计算量,且因此还可以防止过拟合。在卷积神经网络架构中的连续卷积层之间可以周期性地或以其它模式来插入池化层。例如,在图2所示示例中,可以在第一卷积层21和第二卷积层22之间、第二卷积层22和第三卷积层23之间、第五卷积层25和第六卷积层26之间、以及第七卷积层27之后分别设置有最大池化层,以及可以在第七卷积层27之后设置求和池化层。池化运算提供了一定程度的平移不变性。
池化层针对输入数据的每个深度切片进行独立运算,并在空间上对其大小进行调整。最常见的形式是具有大小2x2的卷积核的池化层,其以输入中的每个深度切片的2个下采样为步幅沿着宽度和高度来应用,放弃75%的激活。每个最大值(MAX)运算或平均值(AVG)运算将取四个数中的最大值或这四个数的平均值。此外,深度方向的大小并不改变。此外,还可以采用L2范数池化等其它池化函数。此外,池化层并不是必须的,而是可选的。
经过以上例如具有3x3大小的子区域的步幅为2的最大池化层的处理之后,第一卷积层21的输出变为维度为27*27*48的两个长方体(或特征图)。接下来,第二卷积层22在例如零填充为2、步幅为1的情况下,使用高度、宽度、深度分别为5、5、48的256个卷积核(分别为第二卷积层22上方的上面的长方体128个卷积核以及下面的长方体128个卷积核),将例如高度、宽度、深度分别为27、27、48的两个长方体分别变换为高度、宽度、深度分别为27、27、128的2个长方体,如图2所示。以此类推,可以最终得到第七卷积层27的输出,即针对单尺度输入图像的维度为1x1x4096的特征图,此时可将其视为具有4096个元素的特征向量。需要注意的是:为了附图的清晰和简洁,省略了第二卷积层22之后的映射虚线,以避免附图过于复杂并误导读者。
此外,尽管如图2所示,第一卷积层21~第五卷积层25的运算可以分散在两个物理处理器上,然而本公开不限于此。事实上第一神经网络中的各个层(例如,卷积层、池化层等)的计算都可以分散在一个或多个不同的物理处理器上。换言之,图2中的第六卷积层26和第七卷积层27的计算也可以分散在多个物理处理器上,以实现并行化高速计算。此外,在一些实施例中,在图2中的第三卷积层23中计算时,一个物理处理器上的卷积核可以访问另一个物理处理器上的处理的特征图。然而本公开不限于此,其他各层也可以进行类似处理,或者第三卷积层23电可以仅访问同一物理处理器上的特征图。
此外,第一神经网络还可以包括图2中未示出的ReLU层(更一般地,激活层(Activation Layer,有时也被称为激励层))。ReLU是纠正线性单元的简写。这是应用非饱和激活函数f(x)=max(0,x)的神经元层。其增加了判定函数和整个网络的非线性特性,而不影响卷积层的感受野。
当然,在另一些实施例中,也可以使用其它函数来增加非线性度,例如双曲正切(hyperbolic tangent)函数f(x)=tanh(x)和S型函数(Sigmoid)f(x)=(1+e-x)-1。与其它函数相比,ReLU函数更为常用,因为其使得神经网络训练速度快了几倍,而不对准确度产生显著的影响。
尽管在图2中并未明确示出ReLU层(或激活层),然而在一些实施例中,每个卷积层后都可以紧跟一个ReLU层,使得每个卷积层的输出的非线性度增加,且防止在训练阶段中过早出现饱和状态。
此外,一般的神经网络中通常会包括全连接层。例如,在卷积层、池化层和/或激活层之后,可以经由全连接层来实现神经网络中的全局特征捕捉。全连接层中的卷积核具有针对前一层中所有激活的全连接,这与常规神经网络是一样的。因此,可以使用矩阵乘法然后是偏置来计算其激活。此外,全连接层的输出可以是一个一维数组,其中每个元素代表该图像被分类到某一类别的可能性指标。在人脸特征识别的上下文中,该输出可以用来例如确定图像中是否存在人脸、图像中是否存在面部器官(例如,眼睛、鼻子、嘴、眉毛、下巴、头发、舌头甚至睫毛等)、以及(如果存在)这些器官的位置等等。
然而,如前所述,在图2所示实施例中,为了捕捉图像的局部特征,第一神经网络中可以不包括全连接层。
尽管图2中以输入图像维度为227*227*3为例来说明,然而如前所述,可以输入具有不同尺度的多个图像数据。则针对不同尺度的多个图像数据,每层的输出特征图的维度以及输出的特征向量的维度可以不同。例如,假定特征向量的维度为m x n x 4096,则可对其采用最大池化处理,产生代表激活值最大的感受野的1x 1x 4096的特征向量。然后针对不同尺度的多个图像数据的多个特征向量执行求和池化处理,进而得到局部特征向量。换言之,在第七卷积层27之后,还可以存在附加的最大池化层,以及针对同一个输入图像的多个不同尺度图像数据的求和池化层。此外,可以对经过求和池化层得到的局部特征向量进行可选的归一化处理,以方便后续处理。
回到图1,可如上所述通过使用第一神经网络对输入图像的多个不同尺度的图像数据进行处理,从而得到输入图像的局部特征向量。然而同样如上所述,为了兼顾输入图像的全局特征,还需要对输入图像进行全局特征捕捉处理,因此需要使用第二神经网络对输入图像进行处理。由于进行全局处理的神经网络通常需要使用全连接层,因此需要对输入图像的尺度进行统一。例如,可以将所有输入图像调整为具有指定尺度或分辨率的图像数据。例如,可以将其调整为使用227*227*3的输入图像。经过大小调整的图像可以由第二神经网络来处理,以得到输入图像的全局特征向量。
接下来,在参考图1的情况下,结合图3来详细描述根据本公开实施例的第二神经网络的具体示例结构。
如图3所示,第二神经网络也可包含多个卷积层(例如,图3所示的第一卷积层21~第五卷积层25),这与图2所示的第一神经网络类似。然而,其与第一神经网络的不同之处在于:其不具有第六卷积层和第七卷积层,相反其包含第一全连接层36和第二全连接层37。因此,第二神经网络可包括以下各层:具有维度为11*11*3的96个卷积核的第一卷积层31、具有维度为5*5*96的256个卷积核的第二卷积层32、具有维度为3*3*256的384个卷积核的第三卷积层33、具有维度为3*3*384的384个卷积核的第四卷积层34、具有维度为3*3*384的256个卷积核的第五卷积层35、维度为1*4096的第一全连接层36、以及维度为1*4096的第二全连接层37。
鉴于前五个卷积层31~35与第一神经网络中的第一卷积层21~第五卷积层25分别类似,这里就不再对其进行详细描述。以下,将主要介绍两个全连接层36和37。
如前所述,在例如卷积层、池化层和/或激活层之后,可以经由全连接层来实现神经网络中的全局特征捕捉。全连接层中的卷积核具有针对前一层中所有激活的全连接。因此,可以使用矩阵乘法然后是偏置来计算其激活。如图3所示,在经过第五卷积层35之后,得到维度为13x13x256的两个特征图集合,通过第一全连接层36的处理,得到1x1x4096的特征图,再经过第二全连接层37的处理,得到1x1x4096的特征图,也可将其视为1x4096的特征向量。
回到图1,通过第二神经网络的处理,可以得到输入图像的全局特征向量。然而,可以基于输入图像的局部特征向量和全局特征向量,确定与该输入图像的相似度高于预定阈值的图像。例如,如图1所示,可以计算输入图像的局部特征向量和全局特征向量与图像数据库中各图像的局部特征向量和全局特征向量之间分别的相似度,且对计算出的两个相似度求加权和,以得到最终的相似度度量。相似度计算可以通过例如余弦相似性、最大紧邻法等方式来计算。此外,在一些实施例中,在确定了输入图像与各图像之间的最终相似度度量之后,可以按相似度顺序来返回或输出这些图像,从而使得用户能够看到有序的检索结果。在另一些实施例中,可以仅返回相似度高于特定阈值的那些检索结果,或者仅返回完全匹配的检索结果。
此外,第一神经网络和第二神经网络在训练时可以使用不同的损失函数(lossfunction)。例如,第一神经网络可以是使用以下三元损失函数(triplet loss function)来训练的:
其中,Lt表示用于第一神经网络的损失函数,ya是标准图像的特征向量,yp是正样本的特征向量,yn是负样本的特征向量,表示向量的2范数的平方,max()表示取最大值函数,以及α为余量(margin)值。三元组损失函数通常用于比较细致差异,其可以使得第一神经网络能够区分具有微小差距的正样本ya和负样本yp,或换言之使得ya与yp之间的距离尽可能小,而ya与yn之间距离尽可能大。
此外,三元组损失函数可以对ya、yp、yn分别求导,其可以很好地描述标准图像与正样本和负样本的相似性差异。此外,上式中α的值很关键,当它越小时,损失也就较容易趋近0。这样训练得到的结果不能够很好的区分相似图像。当它越大时,很可能损失保持一个较大的值,难以趋近于0。因此可以将其设计为自适应,以根据每次正负样本的差异进行计算。因此,在一些实施例中,α可具有如下定义:
此外,在一些实施例中,在训练第二神经网络时使用的损失函数可以是以下损失函数:
其中,Ls表示用于第二神经网络的损失函数,y1、y2分别是两个样本图像的特征向量,y是指示两个样本图像是否相似的正确标注(ground truth),表示向量的2范数的平方,max()表示取最大值函数,以及m为超参数。
在一些实施例中,当两个样本图像相似时y为1,不相似则为0。可以使用梯度下降法分别对y1、y2进行求导,其反向传播过程和卷积神经网络一致。需要注意的是:由于局部模型使用的是三元组损失函数,因此最后的全局模型是anchor图像与正样本和负样本的损失加权和。
此外,上面是针对第一神经网络和第二神经网络分别训练时所使用的各自的损失函数。然而在一些实施例中,可以针对第一神经网络和第二神经网络进行联合训练或同时训练。此时所使用的损失函数可以是以下损失函数:
L=Lt+λLs
其中,L是总损失函数,Lt表示用于第一神经网络的损失函数(例如,如上定义的Lt),以及Ls表示用于第二神经网络的损失函数(例如,如上定义的Ls)。
此外,在另一些实施例中,还可以通过使用空间变换网络(Spatial TransformerNetwork或简称为STN)来提高分类准确率。STN让神经网络能够明确地利用数据的空间信息,该网络不需要关键点的标定,能够根据分类或者其它任务自适应地将数据进行空间变换和对齐(包括平移、缩放、旋转以及其它几何变换等)。在一些实施例中,这个网络可以加在其它卷积网络中,以提高分类的准确性。在一些实施例中,STN通常与特征图的大小有关,这里特征图大小为13*13*256,有3个卷积层和一层全连接层。更具体地,在一些实施例中,STN可以包括具有50个5*5卷积核的第一层卷积层、具有30个5*5卷积核的第二卷积层、具有20个5*5卷积核的第三卷积层、以及一个全连接层。该STN具有6个输出,即仿射参数。
一般而言,STN在训练阶段学习如何对输入数据进行变换更有益于模型的分类,然后在测试阶段应用已经训练好的网络对输入数据执行相应的变换,从而提高模型的识别率。针对第一神经网络,可以将STN放置在最后的卷积层(例如,第七卷积层27)输出后,使得最终输出是经过空间变换后的特征,减少因为空间变换造成检索结果不好的影响。针对第二神经网络,可以将STN也放置在最后的卷积层(例如,第五卷积层35)输出后,使得最终输出是经过空间变换后的特征,减少因为空间变换造成检索结果不好的影响。
此外,尽管图2所示的第一神经网络的前五个卷积层和图3所示的第二神经网络所采用的卷积层类似于AlexNet中所使用的卷积层,但是本公开不限于此,而是可使用具有其它配置的卷积层,例如VGG、Inceptio_v3、ResNet等网络的卷积层。此外,在另一些实施例中,是否采用池化层/激活层/归一化层和/或采用什么样的池化层/激活层/归一化层也是可选的,而不限于上面描述的具体实施方式。此外,在另一些实施例中,使用什么样的训练数据/验证数据等也是可选的,而不限于上面描述的具体数据。
以上,结合了图1~图3详细描述了根据本公开实施例的用于图像检索的方案。通过使用前述第一神经网络和第二神经网络来分别提取局部特征向量和全局特征向量,并结合具有针对性的损失函数设计(包括其中的自适应余量值α)以及空间变换网络的使用,可以显著提高图像检索的准确度、并提高神经网络的训练效率。
图4是示出了根据本公开实施例的在电子设备(例如,图5中的设备500)中执行的用于检索图像的方法400的流程图。如图4所示,方法400可以包括步骤S410、S420和S430。根据本公开,方法400的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图4所示的具体操作顺序。
方法400开始于步骤S410,在步骤S410中,可以使用第一神经网络来处理待检索图像,以确定待检索图像的局部特征向量。
在步骤S420中,可以使用第二神经网络来处理待检索图像,以确定待检索图像的全局特征向量。
在步骤S430中,可以基于局部特征向量和全局特征向量,确定与待检索图像的相似度高于预定阈值的图像。
在一些实施例中,第一神经网络可以是使用图像的具有不同分辨率的多个图像数据来训练和/或使用的。在一些实施例中,具有不同分辨率的多个图像数据的最短边的像素数目可以包括以下各项中的至少两项:256、384、512、640和768。在一些实施例中,第一神经网络可以包括以下各层:具有维度为11*11*3的96个卷积核的第一卷积层;具有维度为5*5*96的256个卷积核的第二卷积层;具有维度为3*3*256的384个卷积核的第三卷积层;具有维度为3*3*384的384个卷积核的第四卷积层;具有维度为3*3*384的256个卷积核的第五卷积层;具有维度为1*1*256的4096个卷积核的第六卷积层;以及具有维度为13*13*4096的4096个卷积核的第七卷积层。在一些实施例中,第一神经网络还可以包括在第七卷积层之后的空间变换网络。在一些实施例中,第一神经网络还可以包括在第七卷积层之后的最大池化层和求和池化层。在一些实施例中,第一神经网络可以是通过使用以下损失函数来训练的:其中,Lt表示针对第一神经网络的损失函数,ya是标准图像的特征向量,yp是正样本的特征向量,yn是负样本的特征向量,表示向量的2范数的平方,max()表示取最大值函数,以及α为余量值。在一些实施例中,α可以具有如下定义:在一些实施例中,步骤S410可以包括:使用第一神经网络中的各个卷积层来处理待检索图像的具有不同分辨率的多个待检索图像数据,并确定作为输出的针对各个分辨率的多个特征图中相应具有最大激活值的多个感受野;以及使用第一神经网络中的求和池化层来处理多个感受野,以确定局部特征向量。在一些实施例中,第二神经网络可以包括以下各层:具有维度为11*11*3的96个卷积核的第一卷积层;具有维度为5*5*96的256个卷积核的第二卷积层;具有维度为3*3*256的384个卷积核的第三卷积层;具有维度为3*3*384的384个卷积核的第四卷积层;具有维度为3*3*384的256个卷积核的第五卷积层;维度为1*4096的第一全连接层;以及维度为1*4096的第二全连接层。在一些实施例中,第二神经网络可以在第五卷积层和第一全连接层之间还具有空间变换网络。在一些实施例中,在训练第二神经网络时使用的损失函数可以是以下损失函数:其中,Ls表示针对第二神经网络的损失函数,y1、y2分别是两个样本图像的特征向量,y是指示两个样本图像是否相似的正确标注,表示向量的2范数的平方,max()表示取最大值函数,以及m为超参数。在一些实施例中,在同时训练第一神经网络和第二神经网络时使用的损失函数可以是以下损失函数:
L=Lt+λLs
其中,L是总损失函数,Lt表示针对第一神经网络的损失函数,以及Ls表示针对第二神经网络的损失函数,其中,ya是标准图像的特征向量,yp是正样本的特征向量,yn是负样本的特征向量,表示向量的2范数的平方,max()表示取最大值函数,α为余量值,y1、y2分别是两个样本图像的特征向量,y是指示两个输入图像是否相似的正确标注,表示向量的2范数的平方,以及m为超参数。
图5是示出了根据本公开实施例的用于检索图像的电子设备的示例硬件布置500的框图。硬件布置500包括处理器506(例如,数字信号处理器(DSP))。处理器506可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。布置500还可以包括用于从其他实体接收信号的输入单元502、以及用于向其他实体提供信号的输出单元504。输入单元502和输出单元504可以被布置为单一实体或者是分离的实体。
此外,布置500可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质508,例如是电可擦除可编程只读存储器(EEPROM)、闪存、和/或硬盘驱动器。可读存储介质508包括计算机程序510,该计算机程序510包括代码/计算机可读指令,其在由布置500中的处理器506执行时使得硬件布置500和/或包括硬件布置500在内的电子设备可以执行例如上面结合图1~4所描述的流程及其任何变形。
计算机程序510可被配置为具有例如计算机程序模块510A~510C架构的计算机程序代码。因此,在例如电子设备中使用硬件布置500时的示例实施例中,布置500的计算机程序中的代码包括:模块510A,用于使用第一神经网络来处理待检索图像,以确定待检索图像的局部特征向量。计算机程序中的代码还包括:模块510B,用于使用第二神经网络来处理待检索图像,以确定待检索图像的全局特征向量。计算机程序中的代码还包括:模块510C,用于基于局部特征向量和全局特征向量,确定与待检索图像的相似度高于预定阈值的图像。
计算机程序模块实质上可以执行图1~4中所示出的流程中的各个动作,以模拟电子设备。换言之,当在处理器506中执行不同计算机程序模块时,它们可以对应于电子设备中的不同功能单元。
尽管上面结合图5所公开的实施例中的代码手段被实现为计算机程序模块,其在处理器506中执行时使得硬件布置500执行上面结合图1~4所描述的动作,然而在备选实施例中,该代码手段中的至少一项可以至少被部分地实现为硬件电路。
处理器可以是单个CPU(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器还可以包括用于缓存用途的板载存储器。计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器(RAM)、只读存储器(ROM)、EEPROM,且上述计算机程序模块在备选实施例中可以用UE内的存储器的形式被分布到不同计算机程序产品中。
至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开的范围不局限于上述特定实施例,而应由所附权利要求所限定。
此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)来实现的功能,可以由通用硬件(例如,中央处理单元(CPU)、数字信号处理器(DSP))与软件的结合的方式来实现,反之亦然。
Claims (13)
2.根据权利要求1所述的方法,其中,所述第一神经网络是使用图像的具有不同分辨率的多个图像数据来训练和/或使用的。
3.根据权利要求2所述的方法,其中,具有不同分辨率的多个图像数据的最短边的像素数目包括以下各项中的至少两项:256、384、512、640和768。
4.根据权利要求1所述的方法,其中,所述第一神经网络包括以下各层:
具有维度为11*11*3的96个卷积核的第一卷积层;
具有维度为5*5*96的256个卷积核的第二卷积层;
具有维度为3*3*256的384个卷积核的第三卷积层;
具有维度为3*3*384的384个卷积核的第四卷积层;
具有维度为3*3*384的256个卷积核的第五卷积层;
具有维度为1*1*256的4096个卷积核的第六卷积层;以及
具有维度为13*13*4096的4096个卷积核的第七卷积层。
5.根据权利要求4所述的方法,其中,所述第一神经网络还包括在所述第七卷积层之后的最大池化层和求和池化层。
7.根据权利要求1所述的方法,其中,使用第一神经网络来处理待检索图像,以确定所述待检索图像的局部特征向量的步骤包括:
使用所述第一神经网络中的各个卷积层来处理所述待检索图像的具有不同分辨率的多个待检索图像数据,并确定作为输出的针对各个分辨率的多个特征图中相应具有最大激活值的多个感受野;以及
使用所述第一神经网络中的求和池化层来处理所述多个感受野,以确定所述局部特征向量。
8.根据权利要求1所述的方法,其中,所述第二神经网络包括以下各层:
具有维度为11*11*3的96个卷积核的第一卷积层;
具有维度为5*5*96的256个卷积核的第二卷积层;
具有维度为3*3*256的384个卷积核的第三卷积层;
具有维度为3*3*384的384个卷积核的第四卷积层;
具有维度为3*3*384的256个卷积核的第五卷积层;
维度为1*4096的第一全连接层;以及
维度为1*4096的第二全连接层。
9.根据权利要求8所述的方法,其中,所述第二神经网络在所述第五卷积层和所述第一全连接层之间还具有空间变换网络。
12.一种用于检索图像的电子设备,包括:
处理器;
存储器,其上存储有指令,所述指令在由所述处理器执行时,使得所述处理器执行根据权利要求1~11任一项 所述的方法。
13.一种存储指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~11任一项 所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910089288.7A CN109635141B (zh) | 2019-01-29 | 2019-01-29 | 用于检索图像的方法、电子设备和计算机可读存储介质 |
US16/531,644 US11113586B2 (en) | 2019-01-29 | 2019-08-05 | Method and electronic device for retrieving an image and computer readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910089288.7A CN109635141B (zh) | 2019-01-29 | 2019-01-29 | 用于检索图像的方法、电子设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635141A CN109635141A (zh) | 2019-04-16 |
CN109635141B true CN109635141B (zh) | 2021-04-27 |
Family
ID=66062706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910089288.7A Active CN109635141B (zh) | 2019-01-29 | 2019-01-29 | 用于检索图像的方法、电子设备和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11113586B2 (zh) |
CN (1) | CN109635141B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162657B (zh) * | 2019-05-28 | 2021-04-02 | 山东师范大学 | 一种基于高层语义特征和颜色特征的图像检索方法及系统 |
CN112446834A (zh) * | 2019-09-04 | 2021-03-05 | 华为技术有限公司 | 图像增强方法和装置 |
CN110825899B (zh) * | 2019-09-18 | 2023-06-20 | 武汉纺织大学 | 融合颜色特征和残差网络深度特征的服装图像检索方法 |
WO2021098585A1 (en) * | 2019-11-22 | 2021-05-27 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image search based on combined local and global information |
CN110996123B (zh) * | 2019-12-18 | 2022-01-11 | 广州市百果园信息技术有限公司 | 一种视频处理方法、装置、设备及介质 |
CN111522986B (zh) * | 2020-04-23 | 2023-10-10 | 北京百度网讯科技有限公司 | 图像检索方法、装置、设备和介质 |
CN112001403B (zh) * | 2020-08-11 | 2023-12-15 | 北京化工大学 | 一种图像轮廓检测方法及系统 |
CN112115290B (zh) * | 2020-08-12 | 2023-11-10 | 南京止善智能科技研究院有限公司 | 一种基于图像智能检索的vr全景方案匹配方法 |
KR20220028928A (ko) * | 2020-08-31 | 2022-03-08 | 삼성전자주식회사 | 부분 영상 기반의 영상 처리 방법 및 장치 |
CN112199532B (zh) * | 2020-09-01 | 2022-10-14 | 中国科学院信息工程研究所 | 一种基于哈希编码和图注意力机制的零样本图像检索方法及装置 |
WO2022054124A1 (ja) * | 2020-09-08 | 2022-03-17 | 楽天グループ株式会社 | 画像判定装置、画像判定方法及びプログラム |
CN112287136A (zh) * | 2020-09-25 | 2021-01-29 | 北京沃东天骏信息技术有限公司 | 图像特征索引库建立方法、相似图像确定方法 |
CN112100429B (zh) * | 2020-09-27 | 2022-09-13 | 安徽大学 | 一种足迹压力图像检索方法 |
CN112446322B (zh) * | 2020-11-24 | 2024-01-23 | 杭州网易云音乐科技有限公司 | 眼球特征检测方法、装置、设备及计算机可读存储介质 |
CN112329889A (zh) * | 2020-11-26 | 2021-02-05 | Oppo广东移动通信有限公司 | 图像处理方法、装置以及电子设备 |
CN113837986A (zh) * | 2020-12-15 | 2021-12-24 | 京东科技控股股份有限公司 | 用于识别舌象的方法、装置、电子设备和介质 |
WO2022133874A1 (zh) * | 2020-12-24 | 2022-06-30 | 京东方科技集团股份有限公司 | 图像处理方法及设备、计算机可读存储介质 |
CN112766458A (zh) * | 2021-01-06 | 2021-05-07 | 南京瑞易智能科技有限公司 | 一种联合分类损失的双流有监督深度哈希图像检索方法 |
CN113139653B (zh) * | 2021-03-18 | 2024-06-14 | 有米科技股份有限公司 | 用于图像哈希求解的神经网络训练方法及装置 |
CN113486884A (zh) * | 2021-06-15 | 2021-10-08 | 上海电力大学 | 一种基于稠密网络和多相似损失的服饰检索方法 |
CN113377981B (zh) * | 2021-06-29 | 2022-05-27 | 山东建筑大学 | 基于多任务深度哈希学习的大规模物流商品图像检索方法 |
CN114022522A (zh) * | 2021-08-30 | 2022-02-08 | 北京邮电大学 | 基于多尺度感受野的多时相遥感图像配准方法及系统 |
CN114119593B (zh) * | 2021-12-03 | 2024-04-02 | 深圳大学 | 基于浅层与深度结构纹理特征的超分图像质量评价方法 |
CN114595352A (zh) * | 2022-02-25 | 2022-06-07 | 北京爱奇艺科技有限公司 | 一种图像识别方法、装置、电子设备及可读存储介质 |
CN114898343A (zh) * | 2022-04-20 | 2022-08-12 | 苏州科技大学 | 基于图像识别处理的土体压实度检测方法、系统及介质 |
WO2023220867A1 (en) * | 2022-05-16 | 2023-11-23 | Intel Corporation | Neural network with point grid convolutional layer |
CN115017021B (zh) * | 2022-05-26 | 2024-05-14 | 杭州电子科技大学 | 一种视觉功能块执行时间预测方法及系统 |
CN114782797B (zh) * | 2022-06-21 | 2022-09-20 | 深圳市万物云科技有限公司 | 房屋场景分类方法、装置、设备及可读存储介质 |
CN116597163A (zh) * | 2023-05-18 | 2023-08-15 | 广东省旭晟半导体股份有限公司 | 红外光学透镜及其制备方法 |
CN116310425B (zh) * | 2023-05-24 | 2023-09-26 | 山东大学 | 一种细粒度图像检索方法、系统、设备及存储介质 |
CN117524340A (zh) * | 2024-01-04 | 2024-02-06 | 南京信息工程大学 | 基于多层一维cnn深度网络的纺织品成份定量表征方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537393A (zh) * | 2015-01-04 | 2015-04-22 | 大连理工大学 | 一种基于多分辨率卷积神经网络的交通标志识别方法 |
CN106096654A (zh) * | 2016-06-13 | 2016-11-09 | 南京信息工程大学 | 一种基于深度学习和结合策略的细胞异型性自动分级方法 |
CN106682233A (zh) * | 2017-01-16 | 2017-05-17 | 华侨大学 | 一种基于深度学习与局部特征融合的哈希图像检索方法 |
CN108229344A (zh) * | 2017-12-19 | 2018-06-29 | 深圳市商汤科技有限公司 | 图像处理方法和装置、电子设备、计算机程序和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170193335A1 (en) * | 2015-11-13 | 2017-07-06 | Wise Athena Inc. | Method for data encoding and accurate predictions through convolutional networks for actual enterprise challenges |
US10643120B2 (en) * | 2016-11-15 | 2020-05-05 | International Business Machines Corporation | Joint learning of local and global features for entity linking via neural networks |
CN106778527B (zh) * | 2016-11-28 | 2019-11-12 | 中通服公众信息产业股份有限公司 | 一种基于三重损失的改进的神经网络行人再识别方法 |
CN108460649A (zh) * | 2017-02-22 | 2018-08-28 | 阿里巴巴集团控股有限公司 | 一种图像识别方法及装置 |
CN109284749A (zh) * | 2017-07-19 | 2019-01-29 | 微软技术许可有限责任公司 | 精细化图像识别 |
CN108052861A (zh) * | 2017-11-08 | 2018-05-18 | 北京卓视智通科技有限责任公司 | 一种神经网络系统及基于该神经网络系统的车型识别方法 |
CN108229302A (zh) * | 2017-11-10 | 2018-06-29 | 深圳市商汤科技有限公司 | 特征提取方法、装置、计算机程序、存储介质和电子设备 |
CN108764316B (zh) * | 2018-05-18 | 2022-08-26 | 河海大学 | 基于深度卷积神经网络和多核学习的遥感图像场景分类方法 |
CN108960127B (zh) * | 2018-06-29 | 2021-11-05 | 厦门大学 | 基于自适应深度度量学习的遮挡行人重识别方法 |
CN109190687A (zh) * | 2018-08-16 | 2019-01-11 | 新智数字科技有限公司 | 一种神经网络系统及其识别车辆属性的方法 |
-
2019
- 2019-01-29 CN CN201910089288.7A patent/CN109635141B/zh active Active
- 2019-08-05 US US16/531,644 patent/US11113586B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104537393A (zh) * | 2015-01-04 | 2015-04-22 | 大连理工大学 | 一种基于多分辨率卷积神经网络的交通标志识别方法 |
CN106096654A (zh) * | 2016-06-13 | 2016-11-09 | 南京信息工程大学 | 一种基于深度学习和结合策略的细胞异型性自动分级方法 |
CN106682233A (zh) * | 2017-01-16 | 2017-05-17 | 华侨大学 | 一种基于深度学习与局部特征融合的哈希图像检索方法 |
CN108229344A (zh) * | 2017-12-19 | 2018-06-29 | 深圳市商汤科技有限公司 | 图像处理方法和装置、电子设备、计算机程序和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109635141A (zh) | 2019-04-16 |
US11113586B2 (en) | 2021-09-07 |
US20200242422A1 (en) | 2020-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635141B (zh) | 用于检索图像的方法、电子设备和计算机可读存储介质 | |
CN108268885B (zh) | 特征点检测方法、设备和计算机可读存储介质 | |
He et al. | Supercnn: A superpixelwise convolutional neural network for salient object detection | |
Karasawa et al. | Deep 3d convolutional neural network architectures for alzheimer’s disease diagnosis | |
US9418458B2 (en) | Graph image representation from convolutional neural networks | |
Ganin et al. | -fields: Neural network nearest neighbor fields for image transforms | |
EP3923233A1 (en) | Image denoising method and apparatus | |
Uchida et al. | Coupled convolution layer for convolutional neural network | |
Hasan et al. | Comparative analysis of skin cancer (benign vs. malignant) detection using convolutional neural networks | |
JP2020513637A (ja) | データ管理のためのシステム及び方法 | |
Okafor et al. | An analysis of rotation matrix and colour constancy data augmentation in classifying images of animals | |
KR20210028185A (ko) | 사람 자세 분석 시스템 및 방법 | |
Millstein | Convolutional neural networks in Python: beginner's guide to convolutional neural networks in Python | |
Hong et al. | Capturing correlations of local features for image representation | |
Khanday et al. | Deep insight: Convolutional neural network and its applications for COVID-19 prognosis | |
CN115439325A (zh) | 低分辨率高光谱图像处理方法、装置、计算机程序产品 | |
Pattanayak | Convolutional neural networks | |
Shi et al. | Region contrast and supervised locality-preserving projection-based saliency detection | |
Zhang et al. | A novel biologically inspired local feature descriptor | |
Zhang et al. | A mixed depthwise separation residual network for image feature extraction | |
Tarasiuk et al. | Novel convolutional neural networks for efficient classification of rotated and scaled images | |
Dutta et al. | 3D face recognition using a fusion of PCA and ICA convolution descriptors | |
Engoor et al. | Effective emotion recognition from partially occluded facial images using deep learning | |
Loos | Identification of great apes using gabor features and locality preserving projections | |
Valero | Automatic Facial Expression Recognition |
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 | ||
GR01 | Patent grant |