一种图像识别方法及装置、计算机设备和存储介质与流程

文档序号:16037036发布日期:2018-11-24 10:09阅读:224来源:国知局

本发明涉及深度学习领域,尤其涉及一种图像识别方法及装置、计算机设备和存储介质。

背景技术

卷积神经网络(convolutionalneuralnetworks,cnn)已经成为计算机视觉领域的主流方法。对于图像理解任务例如图像分类,物体检测和语义分割,现有的主流卷积神经网络例如是牛津大学计算机视觉组(visualgeometrygroup,vgg),残差网络(residualnetwork,resnet),密集连接卷积网络(denseconvolutionalnetwork,densenet)等均采用批归一化(batchnormalization,bn)来加速训练。然而,这些卷积神经网络对于图像外观的变化有较差的鲁棒性。例如,当图像的颜色、对比度、风格、场景等发生变化时,这些卷积神经网络的性能会显著下降。

此外,在图像外观转换领域,实例归一化(instancenormalization,in)被用于卷积神经网络中来提升其对不同外观图像的适应能力。然而,实例归一化并未被成功用于图像理解任务中,而且在现有技术中无论是在cnn中采用bn还是in都没有很好的提升卷积神经网络的性能。



技术实现要素:

有鉴于此,本发明实施例提供一种图像识别方法及装置、计算机设备和存储介质,解决了现有技术方案中,当图像外观发生变化时,在神经网络中单独采用bn或in进行处理之后,图像识别正确率较低的问题,通过将in和bn结合后应用在神经网络中,有效的提高了图像识别的正确率。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种图像识别方法,所述方法包括:

获取待识别图像;

将所述待识别图像输入,经过训练得到的神经网络模型,得到所述待识别图像的识别结果,其中,所述神经网络模型是对所述神经网络中卷积层输出的特征图进行in和bn处理后得到的;

输出所述待识别图像的识别结果。

在本发明实施例中,所述神经网络模型的训练过程,包括:

从所述神经网络的卷积层中确定第一卷积层集合和所述第二卷积层集合;

对所述第一卷积层集合中的每一卷积层输出的特征图进行in处理;

对所述第二卷积层集合中的每一卷积层输出的特征图进行bn处理。

在本发明实施例中,所述第一卷积层集合和所述第二卷积层集合组成的集合为所述神经网络的所有卷积层中的全部或部分。

在本发明实施例中,所述第一卷积层集合与所述第二卷积层集合不具有交集,或者,所述第一卷积层集合与所述第二卷积层集合具有交集;或者,所述第二卷积层集合为所述第一卷积层集合的子集合。

在本发明实施例中,所述对所述第一卷积层集合中的每一卷积层输出的特征图进行in处理,包括:

从所述第一卷积层集合中的每一所述卷积层输出的特征图对应的通道中确定第一通道集合;

对所述第一通道集合进行in处理。

在本发明实施例中,所述对所述第二卷积层集合中的每一卷积层输出的特征图进行bn处理,包括:

从每一所述卷积层输出的特征图对应的通道中确定第二通道集合;

对所述第二通道集合进行bn处理。

在本发明实施例中,所述第一通道集合为所述第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分;所述第二通道集合为所述第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分。

在本发明实施例中,所述第一卷积层集合中不包括所述神经网络中的最后一层卷积层。

在本发明实施例中,所述方法还包括:

对所述神经网络的两个块对应的特征图进行求和,得到输出结果,对所述输出结果进行in处理;其中,所述神经网络至少包括两个块,且每一块的最后一层输出的特征图对应的通道数与上一块的最后一层输出的特征图对应的通道数相同。

本发明实施例提供一种图像识别装置,所述装置包括:第一获取模块、第一处理模块和第一输出模块,其中:

第一获取模块,用于获取待识别图像;

第一处理模块,用于将所述待识别图像输入,经过训练得到的神经网络模型,得到所述待识别图像的识别结果,其中,所述神经网络模型是对神经网络进行in和bn处理得到的。

第一输出模块,用于输出所述待识别图像的识别结果。

在本发明实施例中,所述装置还包括:

第二处理模块,用于对所述神经网络中卷积层输出的特征图进行in和bn处理,到所述神经网络模型。

在本发明实施例中,所述第二处理模块,包括:

第一确定模块,用于从所述神经网络的卷积层中确定第一卷积层集合和所述第二卷积层集合;

第一子处理模块,用于对所述第一卷积层集合中的每一卷积层输出的特征图进行in处理;

第二子处理模块,用于对所述第二卷积层集合中的每一卷积层输出的特征图进行bn处理。

在本发明实施例中,所述第一卷积层集合和所述第二卷积层集合组成的集合为所述神经网络的所有卷积层中的全部或部分。

在本发明实施例中,所述第一卷积层集合与所述第二卷积层集合不具有交集,或者,所述第一卷积层集合与所述第二卷积层集合具有交集;或者,所述第二卷积层集合为所述第一卷积层集合的子集合。

在本发明实施例中,所述第一子处理模块包括:

第一子确定模块,用于从所述第一卷积层集合中的每一所述卷积层输出的特征图对应的通道中确定第一通道集合;

第三子处理模块,用于对所述第一通道集合进行in处理。

在本发明实施例中,所述第二子处理模块,包括:

第二子确定单元,用于从每一所述卷积层输出的特征图对应的通道中确定第二通道集合;

第四子处理模块,用于对所述第二通道集合进行bn处理。

在本发明实施例中,所述第一通道集合为所述第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分;所述第二通道集合为所述第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分。

在本发明实施例中,所述装置还包括:

第二处理模块,用于对所述神经网络的两个块对应的特征图进行求和,得到输出结果,对所述输出结果进行in处理;其中,所述神经网络至少包括两个块,且每一块的最后一层输出的特征图对应的通道数与上一块的最后一层输出的特征图对应的通道数相同。

在本发明实施例中,所述装置还包括:

所述第一卷积层集合中不包括所述神经网络中的最后一层卷积层。

本发明实施例提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现本发明实施例提供的图像识别方法中的步骤。

本发明实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现本发明实施例提供的图像识别方法中的步骤。

本发明实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现本发明实施例提供的图像识别方法中的步骤。

本发明实施例提供一种图像识别方法及装置、计算机设备和存储介质,其中,首先,获取待识别图像;然后,将所述待识别图像输入,经过训练得到的神经网络模型,得到所述待识别图像的识别结果,其中,所述神经网络模型是对所述神经网络中卷积层输出的特征图进行in和bn处理后得到的;最后,输出所述待识别图像的识别结果;如此,通过将in和bn结合后应用在神经网络中,有效的提高了图像识别的正确率。

附图说明

图1a为本发明实施例网络架构的组成结构示意图

图1b为本发明实施例图像识别方法的实现流程示意图;

图1c为本发明实施例实现图像识别方法的网络架构图;

图1d为本发明实施例又一实现图像识别方法的网络架构图;

图2为本发明实施例图像识别方法的又一实现流程示意图;

图3为本发明实施例基于残差网络的组成结构图;

图4为本发明实施例又一基于残差网络的组成结构图;

图5为本发明实施例图像识别装置的组成结构示意图;

图6为本发明实施例计算机设备的组成结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

本实施例先提供一种网络架构,图1a为本发明实施例网络架构的组成结构示意图,如图1a所示,该网络架构包括两个或多个计算机设备11至1n和服务器31,其中计算机设备11至1n与服务器31之间通过网络21进行交互。计算机设备在实现的过程中可以为各种类型的具有信息处理能力的计算设备,例如所述计算机设备可以包括手机、平板电脑、台式机、个人数字助理、导航仪、数字电话、电视机等。

本实施例提出一种图像识别方法,能够有效解决输出图像的结构信息与输入图像相比发生变化的问题,该方法应用于计算机设备,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。

为了更好的理解本实施例,这里对神经网络相关的专业术语加以解释,通道(channel),该词语有两种不同的含义,第一种是对于样本图像(图像作为训练样本),通道是指颜色通道,下面将用颜色通道来表示样本图像的通道;第二种是输出空间的维数,例如卷积操作中输出通道的个数,或者说每个卷积层中卷积核的数量。

颜色通道,把图像分解成一个或多个颜色成分或颜色分量。

单颜色通道,一个像素点只需一个数值表示,只能表示灰度,0为黑色。

三颜色通道,如果采用红绿蓝(redgreenblue,rgb)色彩模式,把图像分为红绿蓝三个颜色通道,可以表示彩色,全0表示黑色。

四颜色通道,在rgb色彩模式的基础上加上alpha通道,表示透明度,alpha=0表示全透明。

卷积神经网络,是一种多层的监督学习神经网络,隐含层的卷积层和池采样层是实现卷积神经网络特征提取功能的核心模块。卷积神经网络的低隐层是由卷积层和最大池采样层交替组成,高层是全连接层对应传统多层感知器的隐含层和逻辑回归分类器。第一个全连接层的输入是由卷积层和子采样层进行特征提取得到的特征图像。最后一层输出层是一个分类器,可以采用逻辑回归,softmax回归甚至是支持向量机对输入图像进行分类。cnn中每一层的由多个图(map)组成,每个map由多个神经单元组成,同一个map的所有神经单元共用一个卷积核(即权重),卷积核往往代表一个特征,比如某个卷积核代表一段弧,那么把这个卷积核在整个图像上卷积一遍,卷积值较大的区域就很有可能是一段弧。cnn一般采用卷积层与采样层交替设置,即一层卷积层接一层采样层,采样层后接一层卷积;当然也可以多个卷积层接一个采样层,这样卷积层提取出特征,再进行组合形成更抽象的特征,最后形成对图像对象的描述特征,cnn后面还可以跟全连接层。

relu函数,其公式即为个relu(x)=max(0,x),从relu函数的图形可以看出relu与其他激活函数例如sigmoid函数相比,主要变化有三点:①单侧抑制;②相对宽阔的激活边界;③稀疏激活性。

vgg模型,vgg模型结构简单有效,前几层仅使用3×3卷积核来增加网络深度,通过最大池化(maxpooling)依次减少每层的神经元数量,最后三层分别是2个有4096个神经元的全连接层和一个softmax层。“16”和“19”表示网络中的需要更新权重(即weight,要学习的参数)的卷积层和全连接层的层数,vgg16模型和vgg19模型的权重都由imagenet训练而来。

本实施例提供一种图像识别方法,图1b为本发明实施例图像识别方法的实现流程示意图,如图1b所示,所述方法包括以下步骤:

步骤s101,获取待识别图像。

这里,所述步骤s101可以是由计算机设备实现的,进一步地,所述计算机设备可以是智能终端,例如可以是移动电话(比如,手机)、平板电脑、笔记本电脑等具有无线通信能力的移动终端设备,还可以是台式计算机等不便移动的智能终端设备。所述计算机设备用于进行图像识别或处理。

在本实施例中,所述待处理图像可以是外观复杂的图像,还可以是外观简单的图像。

步骤s102,将所述待识别图像输入,经过训练得到的神经网络模型,得到所述待识别图像的识别结果。

这里,所述步骤s102可以是由计算机设备实现的。所述神经网络模型是对所述神经网络中卷积层输出的特征图进行in和bn处理后得到的。在本实施例中,对所述神经网络中卷积层输出的特征图进行in和bn处理,得到所述神经网络模型,即ibn-net。所述识别结果可以是图像的类别、图像的名称等。所述神经网络可以是卷积神经网络,比如,resnet50、vgg和densenet等。

由于所述神经网络模型中同时采用了in和bn,这样in引入了外观不变性并改进了泛化,而bn保留了内容信息的区分特征。所以,在采用in和bn相结合的神经网络模型中,不仅能够提升神经网络的泛化能力,还能够提高该神经网络识别图像的正确率。

步骤s103,输出所述待识别图像的识别结果。

这里,所述步骤s103可以是由计算机设备实现的。

在实际实现过程中,所述计算机设备输出所述待识别图像的分析结果可以是在自身显示屏上输出所述待识别图像,还可以是所述计算机设备将所述分析结果输出至其他设备,也就是发送给其他设备,例如所述其他设备可以是用户的智能终端上。

在本发明实施例提供的一种图像识别方法中,首先,获取待识别图像;然后,将所述待识别图像输入,经过训练得到的神经网络模型,得到所述待识别图像的识别结果,其中,所述神经网络模型是对所述神经网络中卷积层输出的特征图进行in和bn处理后得到的;最后,输出所述待识别图像的识别结果;如此,通过将in和bn结合后应用在神经网络中,然后在经过in和bn处理后的神经网络模型中对待识别的图像进行分析,有效的提高了图像识别的正确率。

在实现的过程中,经过训练的神经网络模型可以在计算机设备的本地,也可以是在服务器端。

当经过训练的神经网络模型在计算机设备本地时,可以是计算机设备安装客户端的时候,即安装了经过训练的神经网络模型,这样,参见图1c所示,计算机设备通过步骤s101获取待识别图像,然后通过步骤s102获得待识别图像的识别结果,最后通过步骤s103输出识别结果。从以上过程可以看出,计算机设备在安装完客户端之后,上述的步骤s101至步骤s103都在计算机设备本地执行,最后,计算机设备将得到识别结果输出给用户。

在其他实施例中,经过训练的神经网络模型也可以位于服务器端,参见图1d所示,这样计算机设备将输入图像发送给服务器,这样服务器接收计算机设备发送的输入图像,这样服务器实现了步骤s101,换句话说,如果上述的方法是在服务器端实现,那么步骤s101,包括:服务器接收计算机设备发送的输入图像,即服务器确定待识别的图像,然后服务器通过步骤s102获得所述待识别图像的输出结果,最后通过步骤s103获得输出的识别结果;从以上过程可以看出,上述的步骤s101至步骤s103都在服务器端执行,最后服务器还可以将识别结果发送给计算机设备,这样计算机设备接收到识别结果后,输出识别结果给用户。本实施例中,计算机设备在安装完客户端之后,用户上传用户的待识别图像,以及接收服务器发送的待识别图像,并将识别结果输出给用户。

本实施例提供一种图像识别方法,图2为本发明实施例图像识别方法的又一实现流程示意图,如图2所示,所述方法包括以下步骤:

步骤s201,从所述神经网络的卷积层中确定第一卷积层集合和所述第二卷积层集合。

这里,所述第一卷积层集合和所述第二卷积层集合组成的集合为所述神经网络的所有卷积层中的全部或部分。所述第一卷积层集合和所述第二卷积层集合组成的集合为所述神经网络的所有卷积层中的全部,可以理解为,该神经网络中所有的卷积层都经过了in和/或bn处理。第一卷积层集合和所述第二卷积层集合组成的集合为所述神经网络的所有卷积层中的部分,可以理解为,该神经网络中的部分卷积层没有进行in或in结合bn的处理。

步骤s202,从所述第一卷积层集合中的每一所述卷积层输出的特征图对应的通道中确定第一通道集合。

这里,所述第一通道集合为所述第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分。所述第一卷积层集合中不包括所述神经网络中的最后一层卷积层,即对神经网络的最后一层(深层)不进行in处理,这样就不减少内容在深层特征中的区分度,还能够降低由于图像外观变换引起的特征变化,如此,提升该神经网络模型图像识别的正确率。在实际使用过程中,一般选择特征图对应的所有通道的一半进行in处理,另一半进行bn处理,显然,进行in处理的通道的比例是可以调整的。在本实施例中,为使神经网络的恒等路径较为清洁,因此,不在神经网络的恒等路径进行in处理。

步骤s203,对所述第一通道集合进行in处理。

这里,当第一通道集合为所述第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部时,对第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道进行in处理;当第一通道集合为所述第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的部分时,对所述部分通道in处理,然后对剩余的通道进行bn处理,或者不做任何处理。

步骤s204,从第二卷积层集合中的每一卷积层输出的特征图对应的通道中确定第二通道集合。

这里,所述第二通道集合为所述第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分。

步骤s205,对所述第二通道集合进行bn处理。

这里,当第二通道集合为所述第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部时,对第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道进行bn处理;当第二通道集合为所述第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的部分时,对所述部分通道bn处理,然后对剩余的通道进行in处理。

在其他实施例中,所述第一卷积层集合与所述第二卷积层集合之间的关系包括以下三种情况:

情况一:所述第一卷积层集合与所述第二卷积层集合不具有交集,即第一卷积集合与第二卷积集合分别进行不同的归一化处理,即对所述第一卷积层集合中的每一卷积层输出的特征图进行in处理;对所述第二卷积层集合中的每一卷积层输出的特征图进行bn处理,如图4(b)所示,只对求和操作之后得到的输出结果的一部分进行in处理,而对其余卷积层输出的特征图进行bn处理。

情况二:所述第一卷积层集合与所述第二卷积层集合具有交集,即对第一卷积层集合进行了in、in结合bn的处理;对第二卷积层集合进行了bn、in结合bn的处理;即,如步骤202和步骤203所述的,当第一通道为第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的部分时,对所述部分进行in处理,对其余部分进行bn处理。或者,步骤204和步骤205所述的,当第二通道为第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的部分时,对所述部分进行bn处理,对其余部分进行in处理;如图4(d)所示,对卷积层输出的特征图进行bn、in结合bn的处理。

情况三:所述第二卷积层集合为所述第一卷积层集合的子集合,当所述第二卷积层集合为所述第一卷积层集合的真子集时,对第一卷积集合进行in、in结合bn的处理,对第二卷积集合进行in结合bn的处理。当所述第二卷积层集合和所述第一卷积层集合相同时,即是对第二卷积层集合和第一卷积层集合均进行in结合bn的处理。即,第一通道第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的部分,对所述部分进行in处理,对其余部分进行bn处理,或者不处理(即第一卷积层集合层中包括了两种处理方式:in、in结合bn)。

在其他实施例中,所述方法还包括:对所述神经网络的两个块对应的特征图进行求和,得到输出结果,对所述输出结果进行in处理;如图3(c)所示,首先,对图3(c)所呈现的残差块经过三层卷积得到的特征图和上一个残差块经过多层卷积得到的特征图求和,得到求和结果(即输出结果);然后对求和结果进行in处理。由于在本实施例中,外观信息既可以保留在残留路径中,也可以保存在恒等路径中,为了更加有效的提升神经网络的泛化能力,在残差路径(即图3中的路径1)和恒等路径(即图3中的路径2)汇聚后,再进行in处理,从而有效的提高了图像识别的正确率。

与相关技术中单独采用in和bn的cnn结构不同,本实施例提供的图像识别方法中,通过深入研究in和bn的学习能力来实现将in和bn结合使用在同一个cnn中。例如,在许多先进的深度架构采用bn作为提高其高级视觉任务的学习能力的关键组件,而in通常与cnn结合以消除低级视觉任务的图像的方差,如,图像风格变换等。但in和bn的学习特征的不同特点及其组合的影响尚未在相关技术中得出结论。相反,本发明实施例提供的ibn-net表明,以适当的方式组合in和bn会提高cnn的学习和泛化能力。

在ibn-net中将in和bn组合的特征保留在cnn的浅层,bn特征保留在cnn的高层,以符合网络不同深度下的统计特征。由于在cnn中,图像外观相关的信息(比如,颜色,对比度,风格等)主要存在于浅层的特征中,而图像中物体类别相关的信息主要存在于深层的特征中,并且在浅层的特征中仍然存在。基于此,按照两条规则向cnn引入in层:一是,为了减少在浅层由外观引起的特征变化,同时不干扰深层内容区分,因此只在cnn中低层的那一半添加in层。二是,为了在浅层不损失图像内容信息,将原始的bn层中一半的特征替换为in层,将剩下另一半仍然采用bn;基于此,本实施例提供的在卷积神经网路中采用bn和in的结合进行处理,形成ibn-net。

在卷积神经网路中采用本发明实施例提供的ibn-net,具有以下优点:

第一,本发明实施例提出的ibn-net,提高了卷积神经网络的性能和泛化能力。例如,ibn-net50和resnet50有相似数量的参数和计算成本时,ibn-net50在图像网络数据库(imagenet)的原始验证集上的精度分别达到第五和第一的正确率为93.7%和77.4%,分别比resnet50的验证率高出0.8%和1.7%。ibn-net50在imagenet的风格转换后的新验证集上的精度分别达到第五和第一的正确率为72.9%和48.9%,分别比resnet50的验证率高出2.2%和2.9%。

第二,在本发明实施例提出的ibn-net中,in提供视觉和外观不变性,同时bn能够加速训练并保留区分性的特征。这个特征有助于设计ibn-net的体系结构,其中将in设置在浅层中以消除外观变化,而为了保持区分性,应该减小in在深层中的强度。ibn-net的模块可以用来重新开发许多最近正在研究的深度架构,以提高该深度结构的学习和泛化能力,但保持该深度结构的计算成本不变。例如,通过在vgg16,resnet101,resnext101和挤压-激励网络(squeeze-and-excitationresidualnetwork,se-resnet101)中使用ibn-net,它们在imagenet验证集上精度达到第一的正确率分别优于各自的原始版本的0.8%,1.1%,0.6%和0.7%。

第三,ibn-net显著提高了跨域的性能。例如,基于交通场景的真实数据集和虚拟数据集属于两种图像域,其中,真实数据集可以是城市景观(cityscapes),虚拟数据集可以是侠盗猎车手(cityscapesgrandtheftauto,gta);当在gta上训练,在cityscapes上测试的情况下,ibn-net集成的resnet50性能提高了7.6%。当使用gta预训练的模型在cityscapes上微调时,还显著降低了需要的样本量。例如,使用cityscapes只有30%的训练数据进行微调时,本实施例提供的ibn-net模型的分割准确率达到65.5%,而使用所有训练数据来调整的resnet50则只有63.8%。

为了更好的理解本实施例,这里提供与ibn-net相关的四个方面:cnn的不变性,cnn网络体系结构,域适配方法和场景理解的方法。

cnn中的不变性:在相关技术中提出的模块通常是为了提高cnn的建模能力,或者减少过拟合来增强其在单个域上的泛化能力。这些方法通常通过在cnn的体系结构中引入特定的不变性来达到上述目的。例如,最大池化和可变形卷积将空间不变性引入到cnn中,从而增加了卷积神经网络对空间变化(例如仿射,失真和视角变换)的鲁棒性。丢弃(dropout)层和bn在训练中的作用可以被视为正则化来减少样本噪音的影响。对于图像外观,简单的外观变化例如颜色和亮度偏移可以通过用平均值和标准偏差对图像的每个rgb通道进行归一化来消除。对于更复杂的外观变化,如风格变换,最近的研究发现这些信息可以被编码在特征图的均值和方差中。因此,实例归一化层就显示出了消除这种外观差异的潜力。

cnn网络体系结构:自从cnn显示出比传统方法更强的性能,cnn的架构已经经历了许多发展。其中,使用最广泛的是resnet,resnet使用捷径来缓解非常深的网络的训练难度。此后,resnet的多种变体被相继提出。与resnet相比,resnext通过增加resnet的“基数”来提高模型性能这是通过使用组卷积来实现的。在实践中,增加基数会增加深度学习框架的运行时间。此外,挤压-激励网络(squeeze-and-excitationnetwork,senet)将通道维度的注意力机制引入resnet。与resnet相比,senet在imagenet上实现了更好的性能,但也增加了网络参数和计算量。最近提出的密集连接网络(denselyconnectednetworks,densenet)使用堆叠操作来取代resnet的捷径。densenet被证明比resnet更有效率。但是,上述cnn体系结构有两个限制。首先,有限的基本模块阻止cnn获得更具吸引力的属性。例如,所有这些体系结构都是由卷积,bn、激励层(rectifiedlinearunit,relu)和共享池组成的,不同cnn唯一的区别是这些模块是如何组织的。然而,这些层的组成天然地易受外观变化的影响。其次,这些模型的设计目标是在一个单一领域的单一任务中实现强大的性能,但是这些模型推广到新的领域的能力仍然有限。在图像风格变换的领域,一些方法采用in来帮助消除图像对比度。但是,图像外观的不变性还没有成功地引入到cnn中,特别是在图像分类或语义分割等高级任务中。这是因为in丢失了特征中有用的内容信息,影响了模型的性能。

域适配方法:缓解由不同域之间的偏差引起的性能衰落是一个重要问题。一种自然的方法是使用迁移学习,例如,在目标域上微调模型。但是,这需要目标域有人工标注结果,并且当网络模型应用于源域时,微调后的模型的性能会下降。有许多领域适应方法使用目标域的统计数据来促进自适应。一般需要通过精心设计的损失函数,如最大平均差异(maximummeandiscrepancy,mmd),相关性对齐(correlationalignment,coral)和对抗损失(adversarialloss,al),通过减少两个域的偏差引起的特征差异来缓解性能衰落的问题。迁移学习和领域适应有两个主要限制:首先,在实际应用中很难获得目标域的统计信息。收集涵盖目标域中所有可能场景的数据也非常困难。其次,大多数最先进的方法对源域和目标域采用不同的模型以提高性能。但理想的情况是,一个模型可以适应所有领域。

针对这个问题的另一个范式是域推广,其目标是从许多相关的源域获取知识并将其应用于训练期间统计数据未知的新目标域。相关技术中通常设计算法来捕捉不同域中共有的因素。但是,对于实际应用,通常很难收集多个相关的源域的数据,并且最终的性能高度依赖于所收集的一系列源域。在这项工作中,本发明实施例通过设计新的具有外观不变性的cnn体系结构ibn-net增加了模型性能和泛化能力。与域适应和域推广不同,本发明不需要目标域数据或相关源域。本实施例对于无法得到目标域数据的情况非常有用,这是相关技术不能达到的。

本实施例中,对于基于bn的cnn,图像外观相关的信息(颜色,对比度,风格等)主要存在于浅层的特征中,而图像中物体类别相关的信息主要存在于深层的特征中,并且在浅层特征中仍然存在。因此,本实施例按照两条规则引入in。首先,为了不减少深层特征对图片内容信息的区分度,不会在cnn的最后一层或几层添加in。其次,为了在浅层中依然保存内容信息,我们保留了在浅层中对一部分特征进行bn处理。

本实施例将ibn-net应用于resnet中,图3为本发明实施例基于残差网络的组成结构图。resnet主要由4组残差块组成,如图3(a)为原始的resnet中一个残差块的结构图,图3(b)和图3(c)分别为对resnet中不同的卷积层输出的特征图进行in结合bn处理的结构图;其中,在图3(a)中,路径1为残差路径,路径2为恒等路径;30中(x,256d)中x表示输入的特征,256d表示输入的特征是256个通道,31表示卷积核为1*1,64个通道的卷积层,32、34和36表示激励层(relu);33表示卷积核为3*3,64个通道的卷积层;35表示卷积核为1*1,256个通道的卷积层;311表示对64个通道进行批归一化(bn);312对64个通道进行批归一化(bn);313对256个通道进行批归一化(bn);在图3(b)中,321表示对卷积层输出的特征图对应的通道的一半(即32个通道)进行in处理,另一半(即另外32个通道)进行bn处理;在图3(c)中,331表示对进行求和操作之后的结果,进行in处理,所述求和操作是在resnet中图3(c)所呈现的残差块经过三层卷积得到的特征图和上一个残差块经过多层卷积得到的特征图(即输入的特征x)求和。

对于一个残差块,为了利用in的泛化潜力,在第一个卷积层之后得到的特征图中,将bn用于该特征图的一半的通道,将in用于其他通道,如图3(b)所示,有三个理由这样做:首先,干净的恒等路径对于优化resnet是至关重要的,因此我们将in添加到残差路径而不是恒等路径。其次,在残差学习函数y=f(x,{wi})+x中残差函数f(x,{wi})在学习过程中是与恒等路径中的x对齐。因此,in应用于第一个归一化层(即第一个卷积层输出的特征图)而不是最后一个,以避免f(x,{wi})以与恒等路径中的x错位。第三,在卷积层输出的特征图中,将一半通道进行bn处理,一半通道进行in处理,满足了将图像内容信息保存在浅层的要求。

这种设计是对模型性能的追求。一方面,in使模型能够学习外观不变特征,从而能够更好地利用一个数据集内具有高外观多样性的图像。另一方面,以适度的方式添加in,以便与内容相关的信息可以得到很好的保留。本实施例中将这个模型表示为ibn-net-a。此外,本发明还提出另一种追求最大范化能力的网络ibn-net-b。由于外观信息既可以保留在残差路径中,也可以保存在恒等路径中,因此,为了保证神经网络的泛化能力,在加法操作之后立即添加in,如图3(c)所示。为了不使resnet的性能出现劣化,本实施例只在第一卷积层和前两个卷积组之后添加三个in层。

如表1.1为原始的resnet50及其对应的两种ibn-net的整体网络结构,从表1.1可以看出,相比较原始的resnet50,在ibn-net50-a中前三组模块(conv2_x-conv4_x)被换成了图3(b)中ibn-a的结构,而在ibn-net50-b中前两组模块(conv2_x-conv3_x)的最后一个残差块被换成了图3(c)中ibn-b的结构,并且第一个卷积层conv1后的bn被替换成了in。在表1a中,conv2_x表示第一组残差块。

表1.1原始的resnet50及其对应的两种ibn-net的整体网络结构

上述两种ibn-net不是唯一的在cnn中使用方法in和bn的方法。在本实施例提供了一些有趣的变体,如图4所示。图4为本发明实施例又一基于残差网络的组成结构图,图4(a)、4(b)、4(c)和4(d)为残差神经网络中同一个块的结构图,如图4(a)、4(b)、4(c)和4(d)分别为,残差神经网络的不同的卷积层输出的特征图(即归一化层)进行in结合bn处理,其中,在图4(a)中,路径3为残差路径,路径4为恒等路径;40中(x,256d)中x表示输入的特征,256d表示输入的特征是256个通道(可以理解为256张图像),41表示卷积核为1*1,64个通道的卷积层,42、44和46表示激励层(relu);43表示卷积核为3*3,64个通道的卷积层;45表示卷积核为1*1,256个通道的卷积层;411表示对64个通道进行批归一化(bn);412对256个通道进行批归一化(bn);431表示对第一个卷积层输出的特征图分别进行in和bn处理;47表示将两种归一化方式处理之后的结果进行堆叠操作,然后,,输出到下一层即激励层;在图4(b)中,413表示对64个通道进行批归一化(bn);431表示表示对进行求和操作之后的结果的一半(即对256个通道中的128个通道进行in处理),进行in处理,所述求和操作是在卷积神经网络中图4(b)所呈现的神经网络的块经过三层卷积得到的特征图和上一个该神经网络的块经过多层卷积得到的特征图求和。在图4(c)中,441表示对第一个卷积层输出的特征图对应的通道的一半(即32个通道)进行in处理,另一半(即另外32个通道)进行bn处理;在图4(d)中,442表示对第二个卷积层输出的特征图对应的通道的一半(即32个通道)进行in处理,另一半(即另外32个通道)进行bn处理。

表1.2原始vgg16及其ibn-net版本的整体结构

从表1.2可以看出,在本实施例通过的ibn-net中,有多种实施方式,其中,部分参数可以在满足以下两个条件变化:一是不在网络的最后一层(根据对训练结果的需要,也可以将模型设置为不在最后两层或3层等不进行in处理)使用in进行处理;二是,在其余的层(除最后一层)将in和bn结合使用或交替使用。例如:观察图4给出的四个方案即图4(a)、4(b)、4(c)和4(d),可以看出,in层的位置、利用in进行处理的通道的数量均可以调整;另外,在同一卷积神经网络的不同模块中,图4给出的四种实施方案可以交替使用。

表1.3使用imagenet验证集的图像外观变化对应的错误率

在图4(a)中,对第一个卷积层输出的特征图分别进行in和bn处理,然后,将两种归一化方式处理之后的结果堆叠起来并输出到下一层即激励,保持in和bn的高范化性能和高区分度的特征,但是这会引入更多参数。由于保留两种特征的想法也适用于ibn-b,从而产生了图4(b)。另外,还可以将图4(b)和图4(b)呈现的方案结合起来,如图4(c)和4(d)所示。关于这些变体的讨论将在下文的实验部分中给出。表1.3为采用imagenet数据库作为待识别图像,输入到ibn-net神经网络模型中,得到的基于top1和top5的错误率;其中,top1的意思是预测出来最大概率的分类是正确的概率。top5的意思是预测出来最大概率的5个分类里有正确的概率,top1/top5err,分别表示基于top1和基于top5的错误率。rgb+50表示,在原图的基础上,将图像的r、g和b三个通道各加50;r+50表示红色通道加50,即图像更红;contrast*1.5表示对比度乘以1.5;monet表示使用cyclegan(图像风格转换工具)将图像转换成莫奈风格的图像。因此,从表1.3可以看出,无论是基于哪种外观变化,采用模型ibn-net50-a(即图3(b))得到的基于top1的错误率和基于top5的错误率分别低于未采用ibn-net的原始的resnet50基于top1的错误率和基于top5的错误率;而且采用模型ibn-net50-b(即图3(c))得到的基于top1的错误率和基于top5的错误率分别低于未采用ibn-net的原始的resnet50基于top1的错误率和基于top5的错误率。因此,采用ibn-net模块得到的神经网络的性能优于未采用ibn-net模块(即原始resnet,如图3(a)所示)得到的神经网络的性能。

表2在其他cnn模型中采用ibn-net,通过imagenet验证集的错误率

为了表明比传统cnn更强大的ibn-net模型性能,本实施例将ibn-net的性能与最初流行的原始imagenet验证集中的cnn架构进行比较。如表2所示,ibn-net实现了对这些cnn一致的改进,表明了更强大的模型性能。具体而言,ibn-resnet101优于resnext101和se-resnet101,后两者需要更多的时间消耗或引入额外的参数。但是在本实施例中提供的ibn-net模型中,不会带来额外的参数,而只会在测试阶段添加很少量的计算。实验结果显示,剔除特征中的一些均值和方差统计量有助于模型从具有高度外观多样性的图像中学习。

表3ibn-net的变体基于imagenet验证集和莫奈风格图像的错误率

本实施例进一步研究ibn-net的其他变体。表3显示了方法部分描述的ibn-net变体的结果。在本实施例提供的所有的ibn-net变体都比原始的resnet50显示出更好的性能,并且在外观变换下性能下降更少。具体而言,ibn-net-c实现与ibn-net-a类似的性能,提供了另一种特征组合的方法。ibn-net-d的性能和泛化能力位于ibn-net-a和ibn-net-b之间,这表明在卷积层输出的特征图的部分通道中保留一些bn特性有助于提高性能,但同时会失去一定的泛化能力。ibn-net-a和ibn-net-b的组合基本等同于ibn-net-d,这表明in对resnet主路径的影响将占主导地位。最后,向ibn-net-a添加额外的ibn层不会带来好处,适量的添加in层就足够了。

表4在ibn-net50-a中的残差组中增加不同数量的in层对应的错误率

表5in在ibn层中所占比例的不同对错误率的影响

在本实施例中,研究了添加不同数量in层的ibn网络。表4给出了ibn-net50-a的性能,其中in层添加到不同量的残差组。可以看出,随着更多in层添加到浅层,性能得到改善,但是当将in层添加到最后的残差组时,性能却降低。这表明将in应用在浅层有助于提高模型性能,而在深层需要采用bn以保留重要的内容信息。此外,本实施例还研究了in-bn比率对性能的影响,如表5所示,当in的比例为0.25至0.5时,基于top1的错误率和基于top5的错误率分别为最低,这就证明in和bn在使用的过程中需要折衷进行。

表6基于cityscapes-gta数据集的结果

本实施例中用采用了孔卷积(holeconvolution)的resnet50为基准,ibn-net遵循相同的修改。在每个数据集上训练模型并对ibn-net和resnet50进行评估,评估结果如表6所示。在表6中,miou(%)表示均交并比(meanintersectionoverunion,miou)。

本实施例的实验的结果与imagenet数据集中的结果一致。ibn-net在一个数据集中显示出更强的模型性能,并且在不同域的数据集之间具有更好的泛化能力。具体而言,ibn-net-a显示出更强大的模型性能,在两个数据集上,ibn-net-a的正确率优于resnet504.6%和2.0%。当进行交叉评估时,ibn-net-b的泛化更好,采用ibn-net-b比原始的resnet50,从cityscapes到-侠盗猎车手(grandtheftautov,gta5)的性能提高了8.6%,从gta5到cityscapes的性能提高了7.6%。

值得一提的是,本实施例提供的ibn-net与域适应工作不同。域适应是面向目标领域的,并且在训练期间需要目标领域数据,而本实施例通过的方法则不需要。尽管如此,本实施例的方法的性能增益与域适应方法的性能增益仍然相当,而且本实施例的方法向更通用的模型迈出了重要的一步,因为本实施例向模型引入了内置的外观不变性,而不是强迫该模型适应于特定的数据域。

表7调整不同数据的百分比提升的性能

在新数据域上应用模型的另一个常用方法是使用少量目标域标注对其进行微调。本实施例提供的模型有更强的范化能力,因此网络所需的数据可以显著减少。本实施例使用不同数量的cityscapes数据和标注来微调在gta5数据集上预训练的模型。初始学习速率和周期数分别设为0.003和80。如表7所示,在只使用了30%的cityscapes训练数据的条件下,ibn-net50-a的性能优于使用了所有训练数据的resnet50。

为了便于理解本实施例ibn-net如何实现更好的泛化,这里分析域偏置引起的特征散度。特征散度度量如下,对于cnn中某一层的输出特征,将一个通道的平均值表示为f,f基本上描述了这个通道激活了多少,假设f为均值为μ,方差为σ2的高斯分布。则在该通道上域a和域b之间的对称相对熵(symmetrickldivergence),可以表示为:

d(fa||fb)|=kl(fa||fb)+kl(fb||fa)(1);

用d(fia||fib)表示第i个通道的对称相对熵。对该层的特征的所有通道的对称相对熵取平均,就可以得到该层上域a和域b特征差异的一个度量,其表达式为:

在公式(3)中,c是该层中通道的数量,此度量提供了域a和域b的特征分布之间距离的度量标准。

为了捕获实例归一化对外观信息和内容信息的影响,这里考虑三组域。前两组是cityscapes-gta5和原始图像-莫奈风格的图像(photo-monet),这两组域有明显的外观差异。为了构建具有不同内容的两个域,将imagenet-1k验证集分成两部分,第一部分包含图像有500个对象类别,第二个部分包含其余500个类别。然后计算resnet50和ibn-net50主路径上的17个relu层的输出特征的特征散度。

对上述三组图像进行实验,得到的实验结果是,在ibn-net中,由图片外观不同所造成的特征散度明显减小。对于ibn-net-a,散度适度减小,而对于ibn-net-b,在第2、4和8层的in层之后遇到突然下降,而且这种效应持续到深层,这意味着深度特征中的外观造成的差异减少了,因此对分类的干扰减少了。另一方面,由于内容差异导致的特征散度在ibn-net中没有下降,表明特征中的内容信息在bn层中保留得很好。

在本实施例提出的ibn-net中,将in和bn应用在单独的一个深度网络层中,以提高神经网络的性能和泛化能力。本实施例将ibn-net应用在包括vgg,resnet,resnext和senet上,并在imagenet数据集上实现了一致的正确率提升。此外,即使不使用目标域数据,由in引入的内置外观不变性可提升神经网络模型跨图像域的范化能力。因此,in和bn层在cnn中的作用可以总结为:in引入了外观不变性并提升了泛化能力,而bn保留了内容信息的在特征中的区分度。

本发明实施例提供一种图像识别装置,图5为本发明实施例图像识别装置的组成结构示意图,如图5所示,所述装置500包括:第一获取模块501、第一处理模块502和第一输出模块503,其中:

第一获取模块501,用于获取待识别图像;

第一处理模块502,用于将所述待识别图像输入,经过训练得到的神经网络模型,得到所述待识别图像的识别结果,其中,所述神经网络模型是对神经网络进行in和bn处理得到的。

第一输出模块503,用于输出所述待识别图像的识别结果。

在其他实施例中,所述装置500还包括:

第二处理模块,用于对所述神经网络中卷积层输出的特征图进行in和bn处理,到所述神经网络模型。

在其他实施例中,所述第二处理模块,包括:

第一确定模块,用于从所述神经网络的卷积层中确定第一卷积层集合和所述第二卷积层集合;

第一子处理模块,用于对所述第一卷积层集合中的每一卷积层输出的特征图进行in处理;

第二子处理模块,用于对所述第二卷积层集合中的每一卷积层输出的特征图进行bn处理。

在其他实施例中,所述第一卷积层集合和所述第二卷积层集合组成的集合为所述神经网络的所有卷积层中的全部或部分。

在本发明实施例中,所述第一卷积层集合与所述第二卷积层集合不具有交集,或者,所述第一卷积层集合与所述第二卷积层集合具有交集;或者,所述第二卷积层集合为所述第一卷积层集合的子集合。

在其他实施例中,所述第一子处理模块包括:

第一子确定模块,用于从所述第一卷积层集合中的每一所述卷积层输出的特征图对应的通道中确定第一通道集合;

第三子处理模块,用于对所述第一通道集合进行in处理。

在其他实施例中,所述第二子处理模块,包括:

第二子确定单元,用于从每一所述卷积层输出的特征图对应的通道中确定第二通道集合;

第四子处理模块,用于对所述第二通道集合进行bn处理。

在其他实施例中,所述第一通道集合为所述第一卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分;所述第二通道集合为所述第二卷积层集合中的每一所述卷积层输出的特征图对应的所有通道的全部或部分。

在其他实施例中,所述装置还包括:

第二处理模块,用于对所述神经网络的两个块对应的特征图进行求和,得到输出结果,对所述输出结果进行in处理;其中,所述神经网络至少包括两个块,且每一块的最后一层输出的特征图对应的通道数与上一块的最后一层输出的特征图对应的通道数相同。

需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的即时通讯方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台即时通讯设备(可以是终端、服务器等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

应地,本发明实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现本发明实施例提供的图像识别方法中的步骤。

相应地,本发明实施例再提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,所述该计算机可执行指令被处理器执行时实现上述实施例提供的图像识别方法的步骤。

相应地,本发明实施例提供一种计算机设备,图6为本发明实施例计算机设备的组成结构示意图,如图6所示,所述设备600包括:一个处理器601、至少一个通信总线602、用户接口603、至少一个外部通信接口604和存储器605。其中,通信总线602配置为实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏,外部通信接口604可以包括标准的有线接口和无线接口。其中所述处理器601,配置为执行存储器中存储的病理图像识别程序,以实现上述实施例提供的图像识别方法的步骤。

以上即时计算机设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明即时通讯设备和存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1