网络结构以及客户端的制作方法

文档序号:16000941发布日期:2018-11-20 19:26阅读:246来源:国知局

本申请涉及图像识别领域,具体而言,涉及一种网络结构以及客户端。



背景技术:

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

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

发明人发现,目前的网络模型计算速度较慢,同时网络模型大小较大。

针对相关技术中网络模型大小较大的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种网络结构,以解决网络模型大小较大的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种网络结构,用于卷积神经网络。

根据本申请的网络结构包括:一分组卷积层,所述分组卷积层包括:多个分组卷积模块,每个所述分组卷积模块包括:一深度可分离卷积单元,以及一预设卷积核大小的卷积单元。

进一步地,所述预设卷积核大小的卷积单元为:卷积核大小为1*1的卷积单元。

进一步地,网络结构还包括:批归一化层,在所述批归一化层包括:对任一层输入的特征图(B x H x W x C);其中,B为图片的数目,C为通道数目,H为特征图的长,W为特征图的宽;按照通道维度为单位分成G组;在每组中计算平局值和方差;其中,G为组的个数。

进一步地,网络结构还包括:激活函数层,在所述激活函数层采用:smooth_L1_Loss损失函数或A-Softmax损失函数。

进一步地,所述分组卷积层中卷积核与对应通道的输入特征图进行卷积后输出特征图。

为了实现上述目的,根据本申请的另一方面,提供了一种客户端,部署有用于识别图像的网络结构。

根据本申请的客户端包括:用于获得输入图片特征图的分组卷积模块,所述分组卷积模块至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。

进一步地,客户端还包括:批归一化模块,用于对任一层输入的特征图(B x H x W x C),其中,B为图片的数目,C为通道数目,H为特征图的长,W为特征图的宽;按照通道维度为单位分成G组;在每组中计算平局值和方差;其中,G为组的个数。

进一步地,客户端还包括:激活函模块,用于在所述激活函数层采用:smooth_L1_Loss损失函数或A-Softmax损失函数。

进一步地,在所述激活函数层之后还包括:池化层模块、全连接层模块。

为了实现上述目的,根据本申请的另一方面,提供了一种客户端,用于安装在无人车、无人机或者嵌入式设备中实时地检测识别出图像。

在本申请实施例中,采用多个分组卷积模块作为分组卷积层的方式,通过每个所述分组卷积模块配置深度可分离卷积单元和预设卷积核大小的卷积单元,达到了减少模型大小的目的,从而实现了提高卷积申请网络的计算速度的技术效果,进而解决了网络模型大小较大的技术问题。区别于现有很多深度学习的技术方案运行速度慢,通过本申请中的网络结构解决了在多种平台运行速度慢的问题,可以用于无人车,安防等对实时性要求高的领域。

附图说明

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

图1是根据本申请一实施例的网络结构示意图;

图2是根据本申请另一实施例的网络结构示意图;以及

图3是根据本申请实施例的客户端示意图。

具体实施方式

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

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

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

如图1所示,本申请实施例中公开了一种网络结构,用于卷积神经网络,所述结构中至少还包括:一分组卷积层,所述分组卷积层包括:多个分组卷积模块,每个所述分组卷积模块包括:一深度可分离卷积单元,以及一预设卷积核大小的卷积单元。每个分组卷积层中至少包括:一深度可分离卷积单元和一预设卷积核大小的卷积单元。由于在一个标准的CNN网络中按顺序可包括:卷积层、批归一化层(Group Batch Normalization),激活函数层(Sigmoid),在本实施例中提出的分组卷积模块可以替换现有CNN网络中的卷积层。

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

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

如图2所示,作为本实施例中的优选,网络结构中还包括:批归一化层,在所述批归一化层包括:对任一层输入的特征图(B x H x W x C);其中,B为图片的数目,C为通道数目,H为特征图的长,W为特征图的宽;按照通道维度为单位分成G组;在每组中计算平局值和方差;其中,G为组的个数。

结合了组归一化(Group Normalization)和批归一化(Batch Normalization)的优点,针对第n次迭代,任一层输入的特征图(B x H x W x C),B代表Batch Size,指的是图片的数目;G代表组的个数,C代表通道数目,H,W代表特征图的尺寸(长宽)。

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

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

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

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

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

如图2所示,作为本实施例中的优选,网络结果中还包括:激活函数层,在所述激活函数层采用:smooth_L1_Loss损失函数或A-Softmax损失函数。针对不同问题,损失函数有所不同,目前可以分为分类问题和回归问题,对于回归问题,在本申请中使用的是Smooth_L1_Loss。

对于分类问题,本申请中并没有使用传统的Softmax,而是使用A-Softmax方法,提高了分类的准确率。通过使用A-Softmax作为损失函数,保证了网络参数大量减少的情况下,准确率不会下降太多。

作为本实施例中的优选,所述分组卷积层中卷积核与对应通道的输入特征图进行卷积后输出特征图。

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

假设输入特征图大小为Sf x Sf x IN,经过一次卷积,输出的特征图大小为Sf x Sf x OUT,

按照传统的卷积操作,卷积核K的大小为:Sk x Sk x IN x OUT,

其中,Sf是特征图的尺寸,Sk是卷积核的尺寸,IN是输入特征图的通道数,OUT是输出特征图的通道数,一次卷积操作的过程如下:

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

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

Sk x Sk x IN x OUT x Sf x Sf

参数量为:

Sk x Sk x IN x OUT。

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

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

Sk x Sk x IN x Sf x Sf

参数量为:

Sk x Sk x IN。

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

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

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

Sk x Sk x IN x Sf x Sf+1x 1x IN x OUT x Sf x Sf=(Sk x Sk+OUT)x IN x Sf x Sf,

参数量:Sk x Sk x IN+1x 1x IN x OUT=(Sk x Sk+OUT)x IN,

相比传统卷积,

计算量:(Sk x Sk+OUT)/Sk x Sk x OUT=1/OUT+1/(Sk x Sk),

参数量:(Sk x Sk+OUT)/Sk x Sk x OUT=1/OUT+1/(Sk x Sk),

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

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

在本申请实施例中,采用多个分组卷积模块作为分组卷积层的方式,通过每个所述分组卷积模块配置深度可分离卷积单元和预设卷积核大小的卷积单元,达到了减少模型大小的目的,从而实现了提高卷积申请网络的计算速度的技术效果,进而解决了网络模型大小较大的技术问题。

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

根据本申请实施例,还提供了一种用于实施上述网络结构的客户端,如图3所示,所述客户端包括:用于获得输入图片特征图的分组卷积模块10,所述分组卷积模块10至少包括:一深度可分离卷积单元12和一预设卷积核大小的卷积单元11。

本申请实施例的分组卷积模块10包括:多个分组卷积模块,每个所述分组卷积模块包括:一深度可分离卷积单元12,以及一预设卷积核大小的卷积单元11。每个分组卷积层中至少包括:一深度可分离卷积单元12和一预设卷积核大小的卷积单元11。由于在一个标准的CNN网络中按顺序可包括:卷积层、批归一化层(Group Batch Normalization),激活函数层(Sigmoid),在本实施例中提出的分组卷积模块可以替换现有CNN网络中的卷积层。

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

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

优选地,客户端还包括:批归一化模块20,用于对任一层输入的特征图(B x H x W x C),其中,B为图片的数目,C为通道数目,H为特征图的长,W为特征图的宽;按照通道维度为单位分成G组;在每组中计算平局值和方差;其中,G为组的个数。

结合了组归一化(Group Normalization)和批归一化(Batch Normalization)的优点,针对第n次迭代,任一层输入的特征图(B x H x W x C),B代表Batch SIze,指的是图片的数目;G代表组的个数,C代表通道数目,H,W代表特征图的尺寸(长宽)。

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

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

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

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

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

优选地,客户端还包括:激活函模块30,用于在所述激活函数层采用:smooth_L1_Loss损失函数或A-Softmax损失函数。

在所述激活函数层采用:smooth_L1_Loss损失函数或A-Softmax损失函数。针对不同问题,损失函数有所不同,目前可以分为分类问题和回归问题,对于回归问题,在本申请中使用的是Smooth_L1_Loss。

对于分类问题,本申请中并没有使用传统的Softmax,而是使用A-Softmax方法,提高了分类的准确率。通过使用A-Softmax作为损失函数,保证了网络参数大量减少的情况下,准确率不会下降太多。

优选地,在所述激活函数层之后还包括:池化层模块、全连接层模块。

根据本申请实施例,还提供了客户端,用于安装在无人车、无人机或者嵌入式设备中实时地检测识别出图像。使用分组卷积层结构替代主干网络传统的卷积层,模型大小减少原来的1/10,同时在CPU上运行速度有10倍提高。

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

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

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