归一化处理方法及装置、客户端与流程

文档序号:16210757发布日期:2018-12-08 07:42阅读:388来源:国知局
归一化处理方法及装置、客户端与流程

本申请涉及计算机视觉领域,具体而言,涉及一种归一化处理方法及装置、客户端。

背景技术

随着计算机视觉的快速发展,人脸识别,物体检测等领域已经有了很大的进展,尤其在准确率上有了很大的提升,很多深层次网络的出现更是加快了人脸识别,物体检测等领域的进展,在很多计算机视觉的公开数据集上,都有了很大的飞跃。

比如,人脸识别lfw数据集,准确率已经达到99.83%,远超人眼准确度,如pascalvoc数据集,物体检测也将近90%的准确率,再如coco数据集,物体检测达到50%以上的准确率,由此可见很多准确率高的方法都是基于很大的网络。然而上述方法中也有着运行速度慢的弊端,同时训练时间长。

发明人发现,加快训练速度和准确率无法达到均衡。进一步地,无法在移动端,服务器端等多种平台上流畅运行。

针对相关技术中加快训练速度和准确率无法达到均衡的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种归一化处理方法,以解决加快训练速度和准确率无法达到均衡的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种归一化处理方法。

根据本申请的归一化处理方法包括:

根据卷积层得到图片的特征图;对任一层输入的所述特征图(bxhxwxc)按照通道维度为单位分成g组;在每组中计算平局值和方差;其中,b为图片的数目,c为通道数目,h为特征图的长,w为特征图的宽,g为组的个数。

进一步地,在每组中计算平局值和方差包括:根据图片的数目将每个图片的数目内的均值和方差相加并取均值作为最后的均值和方差。

进一步地,在每组中计算平局值和方差包括:结合前后图片的数目的信息将多次迭代的信息结合;对于第n-1次迭代的结果,通过加权平均法将迭代结果结合并计算最终的平均值。

进一步地,在每组中计算平局值和方差包括:将组归一化处理操作和批量归一化处理操作结合。

进一步地,根据卷积层得到图片的特征图包括:在输入层输入待识别图片;建立多个分组卷积模块;通过多个所述分组卷积模块输出所述待识别图片的特征图;以及根据所述特征图在输出层输出图像识别结果;其中,所述分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。

为了实现上述目的,根据本申请的另一方面,提供了一种归一化处理装置。

根据本申请的归一化处理装置包括:特征图输入模块,用于根据卷积层得到图片的特征图;分组模块,用于对任一层输入的所述特征图(bxhxwxc)按照通道维度为单位分成g组;计算模块,用于在每组中计算平局值和方差;其中,b为图片的数目,c为通道数目,h为特征图的长,w为特征图的宽,g为组的个数。

进一步地,计算模块包括:第一计算单元,所述第一计算单元,用于根据图片的数目将每个图片的数目内的均值和方差相加并取均值作为最后的均值和方差。

进一步地,计算模块包括:第二计算单元,所述第二计算单元,用于结合前后图片的数目的信息将多次迭代的信息结合;以及对于第n-1次迭代的结果,通过加权平均法将迭代结果结合并计算最终的平均值。

进一步地,所述特征图输入模块包括:输入单元,用于在输入层输入待识别图片;建立单元,用于建立多个分组卷积模块;第一输出单元,用于通过多个所述分组卷积模块输出所述待识别图片的特征图;以及第二输出单元,用于根据所述特征图在输出层输出图像识别结果;其中,所述分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。

在本申请实施例中,采用对任一层输入的所述特征图(bxhxwxc)按照通道维度为单位分成g组的方式,通过在每组中计算平局值和方差,达到了减少了训练网络时所需要批量大小的目的,从而实现了准确率相比大批量的同样网络不会下降的技术效果,进而解决了加快训练速度和准确率无法达到均衡的技术问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请第一实施例的归一化处理方法示意图;

图2是根据本申请第二实施例的归一化处理方法示意图;

图3是根据本申请第三实施例的归一化处理方法示意图;

图4是根据本申请第一实施例的归一化处理装置示意图;

图5是根据本申请第二实施例的归一化处理装置示意图;以及

图6是根据本申请第三实施例的归一化处理装置示意图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

如图1所示,该方法包括如下的步骤s102至步骤s106:

步骤s102,根据卷积层得到图片的特征图;

假设输入特征图大小为sfxsfxin,经过一次卷积,输出的特征图大小为sfxsfxout,

按照传统的卷积操作,卷积核k的大小为:skxskxinxout,

其中,sf是特征图的尺寸,sk是卷积核的尺寸,in是输入特征图的通道数,out是输出特征图的通道数,一次卷积操作的过程如下:

in个skxsk个卷积核与in个输入特征图做卷积,得到的结果相加,得到一张输出特征图,同理,一共out次操作,得到out个输出特征图,用公式表示这个过程如下:

根据公式,可以计算出传统卷积层的计算量为:

skxskxinxoutxsfxsf

参数量为:

skxskxinxout。

步骤s104,对任一层输入的所述特征图(bxhxwxc)按照通道维度为单位分成g组;

其中,b为图片的数目,c为通道数目,h为特征图的长,w为特征图的宽,g为组的个数。

步骤s106,在每组中计算平局值和方差;

结合了组归一化(groupnormalization)和批归一化(batchnormalization)的优点,针对第n次迭代,任一层输入的特征图(bxhxwxc),b代表batchsize,指的是图片的数目;g代表组的个数,c代表通道数目,h,w代表特征图的尺寸(长宽)。

在本申请中以通道维度为单位,分成g组。

对于g组中的每组计算平局值和方差。

其中,公式一中μi是计算的平均值,i的取值范围是[0,c/g],公式二中σi是计算的方差,si是用来计算均值和方差的像素集合,m指的是集合si的大小,e是一个很小的常量(本申请实施例中取值为1e-6),ic指的是通道方向的下标,kc指的是像素的下标,所以公式三是指所有在一个组内的像素的下标的集合。

具体地,针对第n次迭代,任一层输入的特征图(bxhxwxc),在本申请中以通道维度为单位,分成g组,每组计算平局值和方差。优选地,作为本实施例中的优选,结合批量的信息,将每个批量内的均值和方差相加并取均值作为最后的均值和方差,对于批量大小batchsize为1的情况,则本申请中退化成组归一化。

优选地,作为本实施例中的优选,本申请中结合前后批量的信息,将多次迭代的信息结合在一起,对于第n-1次迭代的结果,本申请通过加权平均法将其结合,权重参数为wn-1和wn,所以最终的平均值mean等于wn-1xmeann-1+wnxmeann,其中wn-1+wn=1,通常设置wn-1为0.99,wn为0.01。

在本申请中提出的组批归一化方法,结合了组归一化和批归一化的优点,一方面减少了训练网络时所需要的批量大小batchsize的大小,另一方面,结合了批量维度和时间维度的信息,保证了在小批量的情况下,准确率相比大批量的同样网络不会下降。

为了解决基于大网络如等网络训练速度慢的问题,本申请提出了全新的网络gbcnn,全称groupbatchconvolutionnetwork,可以用于人脸识别,物体检测等深度学习领域,本申请一方面提出组批归一化groupbatchnormalization的方法(在每组中计算平局值和方差包括:将组归一化处理操作和批量归一化处理操作结合),加速训练速度,另一方面使用分组卷积groupconvolution的策略,实现了网络的加速。

通过具体实验,本网络可以用于多项基于深度学习的任务中,在批数量等于1的情况下,本申请提出的组批归一化实现了与批数量等于32情况下,batchnormalization相近的准确度。同时,优选地在移动端,服务器端等多种平台都可以流畅运行,对应网络运行速度可以提高将近20倍。

从以上的描述中,可以看出,本申请实现了如下技术效果:

在本申请实施例中,采用对任一层输入的所述特征图(bxhxwxc)按照通道维度为单位分成g组的方式,通过在每组中计算平局值和方差,达到了减少了训练网络时所需要批量大小的目的,从而实现了准确率相比大批量的同样网络不会下降的技术效果,进而解决了加快训练速度和准确率无法达到均衡的技术问题。

根据本申请实施例,作为本申请实施例的优选,如图2所示,在每组中计算平局值和方差包括:根据图片的数目将每个图片的数目内的均值和方差相加并取均值作为最后的均值和方差。优选地,作为本实施例中的优选,结合批量的信息,将每个批量内的均值和方差相加并取均值作为最后的均值和方差,对于批量大小batchsize为1的情况,则本申请中退化成组归一化。

和/或在每组中计算平局值和方差包括:

步骤s202,结合前后图片的数目的信息将多次迭代的信息结合;

步骤s204,对于第n-1次迭代的结果,通过加权平均法将迭代结果结合并计算最终的平均值。

优选地,作为本实施例中的优选,本申请中结合前后批量的信息,将多次迭代的信息结合在一起,对于第n-1次迭代的结果,本申请通过加权平均法将其结合,权重参数为wn-1和wn,所以最终的平均值mean等于wn-1xmeann-1+wnxmeann,其中wn-1+wn=1,通常设置wn-1为0.99,wn为0.01。

优选地,将在上述每组中计算平局值和方差包括:将组归一化处理操作和批量归一化处理操作结合。

根据本申请实施例,作为本申请实施例的优选,如图3所示,根据卷积层得到图片的特征图包括:

步骤s302,在输入层输入待识别图片;

待识别图片可以用于人脸识别或者物体检测。

特别地,在输入层输入待识别图片可以使用于无人车,安防等实时检测和识别。

步骤s304,建立多个分组卷积模块;

其中,所述分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。

在本步骤中提供了分组卷积模块,每个分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。由于在一个标准的cnn网络中按顺序可包括:卷积层、批归一化层(groupbatchnormalization),激活函数层(sigmoid),在本实施例中提出的分组卷积模块可以替换现有cnn网络中的卷积层。

优选地,每个所述分组卷积模块中至少包括:一深度可分离卷积单元和一卷积核大小为1*1的卷积单元。可以理解,上述的深度可分离卷积单元为本领域技术人员公知的一种卷积单元结构,由于能够有效利用参数,因此深度可分离卷积单元也可以用于移动设备中。此外,采用卷积核大小为1*1的卷积单元,可减少模型参数。

每个组模块指的是深度分离卷积单元+1*1的卷积单元,1*1的卷积单元接在深度分离单元之后,可建立通道间的相关性。

步骤s306,通过多个所述分组卷积模块输出所述待识别图片的特征图;

本申请中的分组卷积模块与传统的卷积层相比,具有如下的特点:

假设输入特征图大小为sfxsfxin,经过一次卷积,输出的特征图大小为sfxsfxout,

按照传统的卷积操作,卷积核k的大小为:skxskxinxout,

其中,sf是特征图的尺寸,sk是卷积核的尺寸,in是输入特征图的通道数,out是输出特征图的通道数,一次卷积操作的过程如下:

in个skxsk个卷积核与in个输入特征图做卷积,得到的结果相加,得到一张输出特征图,同理,一共out次操作,得到out个输出特征图,用公式表示这个过程如下:

根据公式,可以计算出传统卷积层的计算量为:

skxskxinxoutxsfxsf

参数量为:

skxskxinxout。

对应一次传统卷积的是个分组卷积模块(即深度可分离卷积单元+卷积核大小为1*1的卷积单元)。其中,深度可分离卷积单元的具体实现如下:其卷积核k的大小为:skxskxin,卷积核只跟对应通道的输入特征图做卷积,得到输出特征图,所以输出的特征图大小为sfxsfxin,用公式表示这个过程如下:

根据公式,可以计算出深度分离卷积的计算量为:

skxskxinxsfxsf

参数量为:

skxskxin。

深度分离卷积之后,进入一层传统的批归一化层和激活层,然后是1x1卷积层,1x1卷积层的卷积核大小为1x1xinxout,操作跟传统卷积一致,计算量为1x1xinxoutxsfxsf,参数量为1x1xinxout。

优选地,通过多个所述分组卷积模块输出所述待识别图片的特征图之后还依次通过:批归一化层和激活函数层。

步骤s308,根据所述特征图在输出层输出图像识别结果;

具体地,分组卷积模块总的计算量为:

skxskxinxsfxsf+1x1xinxoutxsfxsf=(skxsk+out)xinxsfxsf,

参数量:skxskxin+1x1xinxout=(skxsk+out)xin,

相比传统卷积,

计算量:(skxsk+out)/skxskxout=1/out+1/(skxsk),

参数量:(skxsk+out)/skxskxout=1/out+1/(skxsk),

可知,根据特征图在输出层输出图像识别结果时采用分组卷积模块,每个分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元,可以将计算量和参数量减少。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本申请实施例,还提供了一种用于实施上述归一化处理方法的装置,如图4所示,该装置包括:特征图输入模块10,用于根据卷积层得到图片的特征图;分组模块20,用于对任一层输入的所述特征图(bxhxwxc)按照通道维度为单位分成g组;计算模块30,用于在每组中计算平局值和方差;其中,b为图片的数目,c为通道数目,h为特征图的长,w为特征图的宽,g为组的个数。

在本申请实施例的特征图输入模块10中假设输入特征图大小为sfxsfxin,经过一次卷积,输出的特征图大小为sfxsfxout,

按照传统的卷积操作,卷积核k的大小为:skxskxinxout,

其中,sf是特征图的尺寸,sk是卷积核的尺寸,in是输入特征图的通道数,out是输出特征图的通道数,一次卷积操作的过程如下:

in个skxsk个卷积核与in个输入特征图做卷积,得到的结果相加,得到一张输出特征图,同理,一共out次操作,得到out个输出特征图,用公式表示这个过程如下:

根据公式,可以计算出传统卷积层的计算量为:

skxskxinxoutxsfxsf

参数量为:

skxskxinxout。

在本申请实施例的分组模块20中其中,b为图片的数目,c为通道数目,h为特征图的长,w为特征图的宽,g为组的个数。

在本申请实施例的计算模块30中结合了组归一化(groupnormalization)和批归一化(batchnormalization)的优点,针对第n次迭代,任一层输入的特征图(bxhxwxc),b代表batchsize,指的是图片的数目;g代表组的个数,c代表通道数目,h,w代表特征图的尺寸(长宽)。

在本申请中以通道维度为单位,分成g组。

对于g组中的每组计算平局值和方差。

其中,公式一中μi是计算的平均值,i的取值范围是[0,c/g],公式二中σi是计算的方差,si是用来计算均值和方差的像素集合,m指的是集合si的大小,e是一个很小的常量(本申请实施例中取值为1e-6),ic指的是通道方向的下标,kc指的是像素的下标,所以公式三是指所有在一个组内的像素的下标的集合。

具体地,针对第n次迭代,任一层输入的特征图(bxhxwxc),在本申请中以通道维度为单位,分成g组,每组计算平局值和方差。优选地,作为本实施例中的优选,结合批量的信息,将每个批量内的均值和方差相加并取均值作为最后的均值和方差,对于批量大小batchsize为1的情况,则本申请中退化成组归一化。

优选地,作为本实施例中的优选,本申请中结合前后批量的信息,将多次迭代的信息结合在一起,对于第n-1次迭代的结果,本申请通过加权平均法将其结合,权重参数为wn-1和wn,所以最终的平均值mean等于wn-1xmeann-1+wnxmeann,其中wn-1+wn=1,通常设置wn-1为0.99,wn为0.01。

在本申请中提出的组批归一化方法,结合了组归一化和批归一化的优点,一方面减少了训练网络时所需要的批量大小batchsize的大小,另一方面,结合了批量维度和时间维度的信息,保证了在小批量的情况下,准确率相比大批量的同样网络不会下降。

根据本申请实施例,作为本申请实施例的优选,如图5所示,计算模块30包括:第一计算单元301,所述第一计算单元301,用于根据图片的数目将每个图片的数目内的均值和方差相加并取均值作为最后的均值和方差。作为本实施例中的优选,结合批量的信息,将每个批量内的均值和方差相加并取均值作为最后的均值和方差,对于批量大小batchsize为1的情况,则本申请中退化成组归一化。

计算模块30包括:第二计算单元302,所述第二计算单元302,用于结合前后图片的数目的信息将多次迭代的信息结合;以及对于第n-1次迭代的结果,通过加权平均法将迭代结果结合并计算最终的平均值。

优选地,作为本实施例中的优选,本申请中结合前后批量的信息,将多次迭代的信息结合在一起,对于第n-1次迭代的结果,本申请通过加权平均法将其结合,权重参数为wn-1和wn,所以最终的平均值mean等于wn-1xmeann-1+wnxmeann,其中wn-1+wn=1,通常设置wn-1为0.99,wn为0.01。

优选地,将在上述每组中计算平局值和方差包括:将组归一化处理操作和批量归一化处理操作结合。

根据本申请实施例,作为本申请实施例的优选,如图6所示,所述特征图输入模块10包括:输入单元101,用于在输入层输入待识别图片;建立单元102,用于建立多个分组卷积模块;第一输出单元103,用于通过多个所述分组卷积模块输出所述待识别图片的特征图;以及第二输出单元104,用于根据所述特征图在输出层输出图像识别结果;其中,所述分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。

本申请实施例的输入单元101中待识别图片可以用于人脸识别或者物体检测。

特别地,在输入层输入待识别图片可以使用于无人车,安防等实时检测和识别。

本申请实施例的建立单元102中其中,所述分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。

在本步骤中提供了分组卷积模块,每个分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。由于在一个标准的cnn网络中按顺序可包括:卷积层、批归一化层(groupbatchnormalization),激活函数层(sigmoid),在本实施例中提出的分组卷积模块可以替换现有cnn网络中的卷积层。

优选地,每个所述分组卷积模块中至少包括:一深度可分离卷积单元和一卷积核大小为1*1的卷积单元。可以理解,上述的深度可分离卷积单元为本领域技术人员公知的一种卷积单元结构,由于能够有效利用参数,因此深度可分离卷积单元也可以用于移动设备中。此外,采用卷积核大小为1*1的卷积单元,可减少模型参数。

每个组模块指的是深度分离卷积单元+1*1的卷积单元,1*1的卷积单元接在深度分离单元之后,可建立通道间的相关性。

本申请实施例的第一输出单元103中本申请中的分组卷积模块与传统的卷积层相比,具有如下的特点:

假设输入特征图大小为sfxsfxin,经过一次卷积,输出的特征图大小为sfxsfxout,

按照传统的卷积操作,卷积核k的大小为:skxskxinxout,

其中,sf是特征图的尺寸,sk是卷积核的尺寸,in是输入特征图的通道数,out是输出特征图的通道数,一次卷积操作的过程如下:

in个skxsk个卷积核与in个输入特征图做卷积,得到的结果相加,得到一张输出特征图,同理,一共out次操作,得到out个输出特征图,用公式表示这个过程如下:

根据公式,可以计算出传统卷积层的计算量为:

skxskxinxoutxsfxsf

参数量为:

skxskxinxout。

对应一次传统卷积的是个分组卷积模块(即深度可分离卷积单元+卷积核大小为1*1的卷积单元)。其中,深度可分离卷积单元的具体实现如下:其卷积核k的大小为:skxskxin,卷积核只跟对应通道的输入特征图做卷积,得到输出特征图,所以输出的特征图大小为sfxsfxin,用公式表示这个过程如下:

根据公式,可以计算出深度分离卷积的计算量为:

skxskxinxsfxsf

参数量为:

skxskxin。

深度分离卷积之后,进入一层传统的批归一化层和激活层,然后是1x1卷积层,1x1卷积层的卷积核大小为1x1xinxout,操作跟传统卷积一致,计算量为1x1xinxoutxsfxsf,参数量为1x1xinxout。

优选地,通过多个所述分组卷积模块输出所述待识别图片的特征图之后还依次通过:批归一化层和激活函数层。

本申请实施例的第二输出单元104中具体地,分组卷积模块总的计算量为:

skxskxinxsfxsf+1x1xinxoutxsfxsf=(skxsk+out)xinxsfxsf,

参数量:skxskxin+1x1xinxout=(skxsk+out)xin,

相比传统卷积,

计算量:(skxsk+out)/skxskxout=1/out+1/(skxsk),

参数量:(skxsk+out)/skxskxout=1/out+1/(skxsk),

可知,根据特征图在输出层输出图像识别结果时采用分组卷积模块,每个分组卷积模块中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元,可以将计算量和参数量减少。

在本申请另一实施例中还提供了一种客户端,包括所述的归一化处理装置。所述归一化处理装置的实现原理和有益效果如上描述,不再进行赘述。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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