公开/公告号CN112446266A
专利类型发明专利
公开/公告日2021-03-05
原文格式PDF
申请/专利权人 北京君正集成电路股份有限公司;
申请/专利号CN201910830546.2
发明设计人 田凤彬;
申请日2019-09-04
分类号G06K9/00(20060101);G06K9/62(20060101);G06N3/04(20060101);
代理机构11498 北京智为时代知识产权代理事务所(普通合伙);
代理人王加岭;杨静
地址 100094 北京市海淀区西北旺东路10号院东区14号楼君正大厦
入库时间 2023-06-19 10:06:57
技术领域
本发明涉及人脸图像识别技术领域,特别涉及一种适合前端的人脸识别网络结构。
背景技术
随着科技的不断发展,特别是计算机视觉技术的发展,人脸识别技术广泛应用于信息安全、电子认证等各个领域,图像特征提取方法具有良好的识别性能。人脸识别是指基于已知的人脸样本库,利用图像处理和/或模式识别技术从静态或者动态场景中,识别一个或多个人脸的技术。但是目前的人脸识别技术包括1、应用到人脸识别中的各种网络:Inception、ResNet、VGG、MobileNet、AlexNet、GoogLeNet、Inception-ResNet;2、人脸识别训练的框架结构有facenet和insightface。目前人脸识别技术包括的缺点有:1、当前前端的网络,使用了独立卷积、特征图加法、各种尺寸的卷积核等,不适合很多AI芯片,导致AI芯片无法实现其网络。2、计算量相对较大。3、识别率相对较低。
发明内容
为了解决上述现有技术中存在的问题,本发明的目的在于:
1、使用的算子很少,只有3×3的卷积核、采用特征图拼接(concat)操作、下采样操作和全连接操作。
2、计算量小,计算量不到1G的乘法,模型(参数为浮点)大小只有29M。
3、提高人脸识别率使之达到99.8%。
本发明提供一种适合前端的人脸识别网络结构,所述网络使用下采样直达全连接层的形式,在所述网络中设置网络模块,每个模块的结果的特征图经过下采样处理后,直接与全连接层连接,在每个卷积处理中,使用交叉拼接上面卷积处理的结果,每个模块的输入中都拼接上面各个模块的结果。
所述的卷积处理为所述每个模块使用的卷积都是3×3的卷积核的处理,卷积后进行归一化处理,再进行激励函数的处理。
在每层卷积的设计中,单独设计输出特征图个数。
所述的下采样处理为处理内核大小为2×2、步长为2的下采样处理。
进一步包括首先对输入的图像数据data先进行均衡化处理;对data进行卷积核为3×3、步长为1的卷积处理,生成特征图。
所述的网络模块进一步包括:经历第一种降低特征图长宽处理;所述第一种降低特征图长宽处理包括:
[1.1]将图像数据经过卷积处理生成的特征图进行卷积核为3×3、步长为2的卷积处理,生成特征图的深度为32,生成的特征图为48×48×32;
[1.2]将[1.1]中所述的图像数据经过卷积处理的特征图进行下采样处理,处理内核大小为2×2、步长那个为2的卷积处理,生成特征图的深度为32,生成的特征图为48×48×64。
所述的网络模块进一步包括:经历第二种降低特征图长宽处理;所述的第二种降低特征图长宽处理进一步包括:
输入数据分别in_data1,in_data2,in_data3,N;
[2.1]将in_data1进行卷积核为3×3、步长为2的卷积处理,生成特征图的深度为N,生成的特征图为W×H×N;
[2.2]将in_data2进行下采样处理,处理内核大小为2×2、步长为2的下采样处理,生成特征图与输入特征图的深度一样,这里设为M,生成的特征图为W×H×M;
[2.3]将in_data3进行下采样处理,处理内核大小为2×2、步长为2的下采样处理,生成特征图与输入特征图的深度一样,这里设为M,生成的特征图为W×H×M。
所述的网络模块包括:第一模块,第二模块,第三模块和第四模块。
所述的网络的最后一个模块最终全连接到192个数据上。
本申请的优势在于:
1.网络中使用了下采样直达全连接层的思想,将每个小模块结果的特征图经过下采样后直接与全连接层连接,从而有效的利用了每个小模块提取的特征。在每个卷积中,使用交叉拼接上面卷积的结果,有效避免局部特征的加强和特征的消失。每个模块的输入中都拼接上面各个模块的结果,从而避免梯度的消失。
2.使用单独设计输出特征图个数的方案,可以有效的降低计算量,最大程度的提高卷积提取特征的效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是本发明的网络结构的示意框图。
图2-1至图2-22是本发明涉及的具体实施方式的流程框图。
具体实施方式
在人脸识别领域,目前一些相关的技术领域的术语包括:
1、深度学习:深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
2、卷积核:卷积核是用来做图像处理时的矩阵,与原图像做运算的参数。卷积核通常是一个列矩阵数组成(例如3*3的矩阵),该区域上每个方格都有一个权重值。矩阵形状一般是1×1,3×3,5×5,7×7,1×3,3×1,2×2,1×5,5×1,…。
3、卷积:将卷积核的中心放置在要计算的像素上,一次计算核中每个元素和其覆盖的图像像素值的乘积并求和,得到的结构就是该位置的新像素值,这个过程称为卷积。
4、特征图:输入数据通过卷积计算后得到的结果称之为特征图,数据通过全连接后生成的结果也称为特征图。特征图大小一般表示为长×宽×深度,或1×深度。
5、步长:卷积核中心位置再坐标上移动的长度。
6:两端非对齐处理:图像或数据通过卷积核大小为3且步长为2处理时,会导致两侧数据不够,此时采用丢弃两侧或一侧数据,这种现象叫做两端非对其处理。
7、前端人脸检测:在AI芯片或普通芯片上使用的人脸检测功能称之为前端人脸检测,前端人脸检测的速度和正确率都比云端服务器人脸检测的低。
8、激励函数:神经网络中的每个节点接受输入值,并将输入值传递给下一层,输入节点会将输入属性值直接传递给下一层(隐层或输出层)。在神经网络中,隐层和输出层节点的输入和输出之间具有函数关系,这个函数称为激励函数。常见的激励函数有:线性激励函数、阈值或阶跃激励函数、S形激励函数、双曲正切激励函数和高斯激励函数等。
本申请中,如图1所示,设置的网络结构具体为:
1、网络结构
1)网络的特点。网络中使用了下采样直达全连接层的思想,将每个小模块结果的特征图经过下采样后直接与全连接层连接,从而有效的利用了每个小模块提取的特征。在每个卷积中,使用交叉拼接上面卷积的结果,有效避免局部特征的加强和特征的消失。每个模块的输入中都拼接上面各个模块的结果,从而避免梯度的消失。
2)在具体的每层卷积的设计中,使用单独设计输出特征图个数的方案,可以有效的降低计算量,最大程度的提高卷积提取特征的效率。进行一次每个小模块的特征图。
如图1所示,首先将输入的图像数据data先进行均衡化处理,先进行减128,生成数据data1,再对data1进行除以128,生成数据data2;然后对data1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为96×96×64,命名为conv0;经历第一种降低特征图长宽处理,所述的第一种降低特征图长宽处理如下:
[1.1]将conv0进行卷积核为3×3、步长为2的卷积处理,生成特征图的深度为32。生成的特征图为48×48×32,命名为conv1。
[1.2]将conv0进行下采样处理,处理内核大小为2×2、步长为2的卷积处理,生成特征图的深度为32。生成的特征图为48×48×64,命名为pool1。
再经过层层卷积处理,激励函数处理,使用下采样处理,生成第一、第二、第三和第四模块,期间,经历第二种降低特征图长宽处理。所述的第二种降低特征图长宽处理进一步包括:
输入数据分别in_data1,in_data2,in_data3,N;
[2.1]将in_data1进行卷积核为3×3、步长为2的卷积处理,生成特征图的深度为N,生成的特征图为W×H×N;
[2.2]将in_data2进行下采样处理,处理内核大小为2×2、步长为2的下采样处理,生成特征图与输入特征图的深度一样,这里设为M,生成的特征图为W×H×M;
[2.3]将in_data3进行下采样处理,处理内核大小为2×2、步长为2的下采样处理,生成特征图与输入特征图的深度一样,这里设为M,生成的特征图为W×H×M。
所述的网络的最后一个模块即第四模块最终全连接到192个数据上。
此外,本申请中涉及的具体地设置方法包括如下内容,如图2-1至图2-22所示:
2、网络模块
1)每个模块使用的卷积都是3×3的卷积核的卷积处理,卷积后进行归一化处理,再进行激励函数的处理。这种处理在下面简称为卷积处理。
2)对输入的图像数据data先进行均衡化处理,先进行减128,生成数据data1,再对data1进行除以128,生成数据data2;
3)对data1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为96×96×64,命名为conv0;
4)第一种降低特征图长宽处理。
[1]将conv0进行卷积核为3×3、步长为2的卷积处理,生成特征图的深度为32。生成的特征图为48×48×32,命名为conv1。
[2]将conv0进行下采样处理,处理内核大小为2×2、步长为2的卷积处理,生成特征图的深度为32。生成的特征图为48×48×64,命名为pool1。
5)第一个模块。
[1]将pool1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为32。生成的特征图为48×48×32,命名为block1_conv1。
[2]将block1_conv1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为48×48×32,命名为block1_conv2。
[3]将block1_conv2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为48×48×32,命名为block1_conv3。
[4]将block1_conv3与conv1拼接,生成结果命名为block1_concat1。
6)第二种降低特征图长宽处理。
输入数据分别为in_data1,in_data2,in_data3,N。
[1]将in_data1进行卷积核为3×3、步长为2的卷积处理,生成特征图的深度为N。生成的特征图为W×H×N,命名为out_conv1。
[2]将in_data2进行下采样处理,处理内核大小为2×2、步长为2的下采样处理,生成特征图与输入特征图的深度一样,这里设为M。生成的特征图为W×H×M,命名为out_pool1。
[3]将in_data3进行下采样处理,处理内核大小为2×2、步长为2的下采样处理,生成特征图与输入特征图的深度一样,这里设为M。生成的特征图为W×H×M,命名为out_pool2。
7)第二个模块。
[1]通过6)第二种降低特征图长宽处理,其中in_data1=block1_concat1,in_data2=block1_concat1,N=48。输出结果命名为block2_conv0=out_conv1,block2_pool1=out_pool1。
[2]将block2_conv0进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为24×24×64,命名为block2_conv1。
[3]将block2_conv1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为48。生成的特征图为24×24×48,命名为block2_conv2。
[4]将block2_conv2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为48。生成的特征图为24×24×48,命名为block2_conv3。
[5]将block2_conv3与block2_conv0拼接,生成结果命名为block2_concat1。
[6]将block2_conv2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为24×24×64,命名为block2_conv4。
8)第三个模块。
第一部分:
[1]通过上述6)第二种降低特征图长宽处理,其中in_data1=block2_concat1,in_data2=block2_conv4,in_data3=block2_concat1,N=48。输出结果命名为block31_conv0=out_conv1,block31_pool1=out_pool1,block31_poo2=out_pool2。
[2]将block31_conv0进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为128。生成的特征图为12×12×128,命名为block31_conv1。
[3]将block31_conv1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为80。生成的特征图为12×12×80,命名为block31_conv2。
[4]将block31_conv2与block31_pool1拼接,生成结果命名为block31_concat1。
[5]将block31_concat1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为64。生成的特征图为12×12×64,命名为block31_conv3。
[6]将block31_conv3与block31_pool2拼接,生成结果命名为block31_concat2。
[7]将block31_concat1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为96,生成的特征图为12×12×96,命名为block32_conv1。
第二部分:
[1]将block31_concat2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为48。生成的特征图为12×12×48,命名为block32_conv4。
[2]将block32_conv1与block31_conv4拼接,生成结果命名为block32_concat1。
[3]将block32_concat1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为96。生成的特征图为12×12×96,命名为block32_conv2。
[4]将block32_conv2与block32_conv4拼接,生成结果命名为block32_concat2。
[5]将block32_concat2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为96。生成的特征图为12×12×96,命名为block32_conv3。
[6]将block32_conv3与block31_concat2拼接,生成结果命名为block32_concat3。
第三部分:
[1]将block32_concat3进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为48。生成的特征图为12×12×48,命名为block33_conv1。
[2]将block33_conv1与block32_conv3拼接,生成结果命名为block33_concat1。
[3]将block33_concat1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为96。生成的特征图为12×12×96,命名为block33_conv2。
[4]将block33_conv2与block33_conv1拼接,生成结果命名为block33_concat2。
[5]将block33_concat2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为96。生成的特征图为12×12×96,命名为block33_conv3。
[6]将block33_conv3与block32_concat3拼接,生成结果命名为block33_concat3。
9)第四个模块。
[1]通过6)第二种降低特征图长宽处理,其中in_data1=block33_concat3,in_data2=block33_conv3,in_data3=block33_concat3,N=64。输出结果命名为block4_conv0=out_conv1,block4_pool1=out_pool1,block4_pool2=out_pool2。
[2]将block4_conv0进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为160。生成的特征图为6×6×160,命名为block4_conv1。
[3]将block4_conv1与block4_pool1拼接,生成结果命名为block4_concat1。
[4]将block4_concat1进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为128。生成的特征图为6×6×128,命名为block4_conv2。
[5]将block4_conv2与block4_conv0拼接,生成结果命名为block4_concat2。
[6]将block4_concat2进行卷积核为3×3、步长为1的卷积处理,生成特征图的深度为192。生成的特征图为6×6×192,命名为block4_conv3。
[7]将block4_conv3与block31_pool2拼接,生成结果命名为block4_concat3。
10)全连接
将block4_conv3全连接到192个数据上。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 一种形状,适合于在其前端的至少一部分脚上穿线,或进行防护处理
机译: 一种用于用鸡蛋壳烹饪至少一个鸡蛋的设备,一种适合这种设备的计量单元,一种适合于这种剂量处理单元的容器以及一种用于在一种设备中与鸡蛋最小化蛋的烹饪方法。
机译: (54)标题:拼接纤维玻璃粗纱以及用于拼接纤维玻璃粗纱的方法和系统(57)摘要:本发明涉及拼接游离玻璃粗纱以及用于拼接粗纱的系统和方法。在一个实施例中,一种用于连接玻璃纤维粗纱的方法包括:将第一粗纱的前端与第二粗纱的尾端重叠以形成重叠区域;气动拼接部分重叠区域以形成拼接区域;在一个实施例中,一种拼接的玻璃纤维粗纱包括一个拼接的区域,该拼接的区域包括第一粗纱的前端的多根玻璃纤维与第一根粗纱的尾端的多根玻璃纤维交织在一起。第二粗纱,其中,拼接区域的长度在大约1至20厘米之间,并且具有在拼接之前的第一粗纱的拉伸强度的大约50至150%。