具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种人脸认证方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,将目标图像中的目标人脸图像划分为多个分块人脸图像。
在实际应用中,本发明实施例可以应用在人脸识别系统中,如门禁系统、监控系统、支付系统等等,对用户进行人脸认证。
若在人脸识别系统中通过摄像头等方式采集到目标图像,则可以对该目标图像中的目标人脸图像划分为多个分块人脸图像。
在本发明的一个实施例中,步骤101可以包括如下子步骤:
子步骤S11,对目标图像进行人脸检测,确定候选人脸图像;
子步骤S12,在所述候选人脸图像中进行人脸特征点定位,确定眼睛数据的位置;
子步骤S13,将所述眼睛数据的位置与预设模板位置进行对齐;
子步骤S14,对除所述眼睛数据之外的候选人脸图像根据所述眼睛数据的位置进行相似变换,获得归一化的目标人脸图像;
子步骤S15,对所述目标人脸图像进行分割,获得分块人脸图像。
子步骤S16,对至少部分分块人脸图像进行镜像对称变换,获得新的分块人脸图像。
在本发明实施例中,对人脸数据进行预处理,包括人脸检测、人脸定位、人脸对齐和人脸分块等步骤。
具体而言,可以对包含复杂背景的、尺寸大小不一的目标图像使用AdaBoost(自适应提升方法)级联算法等方式进行人脸检测、找到目标人脸图像所在的区域。
在检测到的目标人脸图像上进行SDM(Supervised Descent Method)人脸特征点定位、找到眼睛中心的位置。
人脸对齐的方法是将眼睛中心的位置对齐,如对齐到(30,30)和(30,70),其余部分根据眼睛的位置关系进行相似变换,得到归一化后的目标人脸图像。
对归一化后的目标人脸图像进行分割,分割成多个大小相同的分块人脸图像,例如,如图2所示,可以对目标人脸图像划分为5个大小为70×70的分块人脸数据,其中,标号为1的四个点围成的区域为一个分块人脸数据、标号为2的四个点围成的区域为一个分块人脸数据、标号为3的区域为一个分块人脸数据、标号为4的四个点围成的区域为一个分块人脸数据、标号为5的四个点围成的区域为一个分块人脸数据。
对分块人脸数据进行镜面对称变换,一个分块人脸数据通过镜面对称变换可以得到一个分块人脸数据,例如,对5个大小为70×70的分块人脸数据进行镜面对称变换,则可以得到10个大小为70×70的分块人脸数据。
将这些分块人脸数据通过二次样条差值算法等方式放缩到,如缩放到的大小为100×100的分块人脸图像。
需要说明的是,如果某个分块人脸图像学习的原始人脸特征,在若不用于生成目标人脸特征,则可以不进行镜面对称变换,以减少计算量,此外,在训练过程中,可以对每个分块人脸图像都进行镜面对称变换,此后,为了保持人脸识别系统在离线训练和在线人脸认证的一致性,减少对人脸识别系统的修改,也可以进行镜面对称变换,本发明实施例对此不加以限制。
步骤102,将所述多个分块人脸图像中分别输入预置的神经网络模型中,提取相应的多个原始人脸特征。
在具体实现中,可以将分开人脸图像输入神经网络模型中,自动地从分块人脸图像中学习有利于人脸识别的原始人脸特征,一个分块人脸图像可以学习一个原始人脸特征。
在本发明实施例中,神经网络模型可以包括卷积神经网络(ConvolutionalNeural Network,CNN)、深层神经网络(Deep Neural Networks,DNN)等等。
其中,卷积神经网络在人工神经网络中引入卷积结构,通过局部权重共享的方法,一方面可以减小计算量,另一方面可以抽取更加抽象的特征。
例如,如图3所示,若一个目标人脸图像分割成十个分块人脸数据,即分块人脸数据1、分块人脸数据2、分块人脸数据3、分块人脸数据4、分块人脸数据5、分块人脸数据6、分块人脸数据7、分块人脸数据8、分块人脸数据9、分块人脸数据10,则可以对应地学习到原始人脸特征1、原始人脸特征2、原始人脸特征3、原始人脸特征4、原始人脸特征5、原始人脸特征6、原始人脸特征7、原始人脸特征8、原始人脸特征9、原始人脸特征10。
则在本发明实施例中,步骤102可以包括如下子步骤:
子步骤S21,将每个分块人脸图像输入预置的卷积神经网络;
在具体实现中,卷积神经网络包括输入层、一个或多个卷积层、一个或多个采样层、输出层,上一层输出的图像数据,作为下一层输入的图像数据。
卷积神经网络的每一层一般由多个map组成,每个map由多个神经单元组成,同一个map的所有神经单元共用一个卷积核(即权重),卷积核往往代表一个特征,比如某个卷积和代表一段弧,那么把这个卷积核在整个图片上滚一下,卷积值较大的区域就很有可能是一段弧。
输入层:输入层没有输入值,有一个输出向量,这个向量的大小就是分块人脸图像的大小,如一个100×100的矩阵。
卷积层:卷积层的输入要么来源于输入层,要么来源于采样层,卷积层的每一个map都有一个大小相同的卷积核。
采样层(subsampling,Pooling):采样层是对上一层map的一个采样处理,采样方式是对上一层map的相邻小区域进行聚合统计。
子步骤S22,当所述卷积层属于第一深度范围时,采用指定的单个卷积核进行卷积操作。
在本发明实施例中,在浅层(即第一深度范围)可以直接采用卷积核进行卷积,减少计算量。
需要说明的是,如果第一深度范围的卷积层有多个,每个卷积层的卷积核可以相同,也可以不同,本发明实施例对此不加以限制。
在第一深度范围卷积完成之后,可以通过BN(Batch Normalization)算子、ReLU(Rectified Linear Units)函数等方式进行规范化操作和激活操作。
子步骤S23,当所述卷积层属于第二深度范围时,采用分层线性模型Inception进行卷积操作。
其中,第二深度范围的层数大于第一深度范围的层数。
在本发明实施例中,在深层(即第二深度范围)可以采用Inception进行卷积,一方面,可以在计算量不变的情况下增加卷积神经网络的宽度和深度,从而增进卷积神经网络的性能;另一方面,由于使用不同大小的卷积核(如1×1、3×3、5×5)以可以提取多尺度的人脸特征。
在本发明的一个实施例中,分层线性模型Inception包括并联的第一层、第二层、第三层、第四层,则在本发明实施例中,子步骤S23进一步可以包括如下子步骤:
子步骤S231,在第一层中,采用指定的第一卷积核与第一步长对输入入所述分层线性模型Inception的图像数据进行卷积操作,获得第一特征图像数据;
在第一层中,可以通过BN算子等方式对第一特征图像数据进行规范化操作。
子步骤S232,在第二层中,采用指定的第二卷积核与第二步长对输入所述分层线性模型Inception的图像数据进行卷积操作,获得第二特征图像数据;
在第二层中,可以通过BN算子、ReLU函数等方式对第二特征图像数据进行规范化操作和激活操作。
子步骤S233,采用指定的第三卷积核与第三步长对所述第二特征图像数据进行卷积操作,获得第三特征图像数据;
在具体实现中,可以BN算子等方式对所述第三特征图像数据进行规范化操作。
子步骤S234,在第三层中,采用指定的第四卷积核与第四步长对输入所述分层线性模型Inception的图像数据进行卷积操作,获得第四特征图像数据;
在第三层中,可以通过BN算子、ReLU函数等方式对第四特征图像数据进行规范化操作和激活操作。
子步骤S235,采用指定的第五卷积核与第五步长对所述第四特征图像数据进行卷积操作,获得第五特征图像数据;
在具体实现中,可以通过BN算子等方式对第五特征图像数据进行规范化操作。
子步骤S236,在第四层中,采用指定的第六卷积核与第六步长对所述输入所述分层线性模型Inception的图像数据进行卷积操作,获得第六特征图像数据;
在第四层中,可以通过BN算子等方式对第六特征图像数据进行规范化操作。
子步骤S237,对所述第六特征图像数据进行最大化下采样操作,获得第七特征图像数据。
子步骤S238,连接所述第一特征图像数据、所述第三特征图像数据、所述第五特征图像数据和所述得第七特征图像数据,获得第八特征图像数据。
在本发明实施例中,可以通过ReLU函数等方式对第八特征图像数据激活操作。
需要说明的是,第一卷积核、第二卷积核、第三卷积核、第四卷积核、第五卷积核、第六卷积核的大小可以相同,也可以不同;第一步长、第二步长、第三步长、第四步长、第五步长、第六步长的大小可以相同,也可以不同,本发明实施例对比不加以限制。
此外,在分层线性模型Inception中,第一层的处理(子步骤S231),第二层的处理(子步骤S232与子步骤S233),第三层的处理(子步骤S234与子步骤S235),第四层的处理(子步骤S236与子步骤S237)可以并行执行,不分先后顺序。
为使本领域技术人员更好地理解本发明实施例,以下通过具体的示例来说明本发明实施例中的Inception。
如图4所示,对于输入的图像数据(如分块人脸图像):
在第一层中,可以采用1×1的卷积核,以步长为1进行卷积操作,然后进行BN规范化。
在第二层中,可以采用1×1的卷积核,以步长为1进行卷积操作,然后进行BN规范化和ReLU激活。
再采用使用5×5的卷积核,以步长为1进行卷积操作,然后进行BN规范化。
在第三层中,可以采用1×1的卷积核,以步长为1进行卷积操作,然后进行BN规范化和ReLU激活。
再采用使用3×3的卷积核,以步长为1进行卷积操作,然后进行BN规范化。
在第四层中,可以采用1×1的卷积核,以步长为1进行卷积操作,再进行BN规范化,再进行最大化(Max)下采样。
将第一层至第四层输出的图像数据连接在一起,再进行ReLu激活,得到Inception的输出。
子步骤S24,在所述采样层中,进行最大化下采样。
子步骤S25,根据所述卷积神经网络输出的多个图像数据获得特征向量,作为所述分块人脸图像的原始人脸特征。
为使本领域技术人员更好地理解本发明实施例,以下通过具体的示例来说明本发明实施例中的卷积神经网络。
表1
在本示例中,如表1所示,卷积神经网络的卷积层与采样层共17层,其中,第1、3、4、6、7、9、10、11、12、13、15、16层为卷积层,第1、3、4为浅层、第6、7、9、10、11、12、13、15、16深层;第2、5、8、14、17层为采样层。
卷积层1:
假设输入一帧归一化后100×100的灰度分块人脸图像,首先采用5×5的卷积核,以步长为2对其进行卷积,得到64幅50×50的特征图像,然后对这64幅50×50的特征图像先进行BN规范化,再进行ReLU激活。
采样层1:
对卷积层1输出的64幅50×50的特征图像进行步长为2的3×3最大化下采样,得到64幅14×14的特征图像。
卷积层2:
对采样层1输出的64幅14×14的特征图像采用1×1的卷积核,以步长为1进行卷积操作,得到64幅14×14的特征图像,然后对这64幅14×14的特征图像先进行BN规范化,再进行ReLU激活。
卷积层3
对卷积层2输出的64幅14×14的特征图像采用3×3的卷积核,以步长为1进行卷积操作,得到92幅14×14的特征图像,然后对这92幅14×14的特征图像先进行BN规范化,再进行ReLU激活。
采样层2
对卷积层3输出的92幅14×14的特征图像进行步长为1的3×3最大化下采样,得到92幅14×14的特征图像。
卷积层4
对采样层2输出的92幅14×14的特征图像,应用如图4所示的Inception进行如下操作,得到256幅14×14的特征图像:
步骤1,对采样层2输出的92幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到64幅14×14的特征图像,然后对这64幅14×14的特征图像进行BN规范化。
步骤2,对采样层2输出的92幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到96幅14×14的特征图像,然后对这96幅14×14的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到128幅14×14的特征图像,然后对这128幅14×14的特征图像进行BN规范化。
步骤3,对采样层2输出的92幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到16幅14×14的特征图像,然后对这16幅14×14的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到32幅14×14的特征图像,然后对这32幅14×14的特征图像进行BN规范化。
步骤4,对采样层2输出的92幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到32幅14×14的特征图像,然后对这32幅14×14的特征图像进行BN规范化。
接着对这32幅14×14特征图像采用最大化下采样操作,得到32幅14×14的特征图像。
步骤5,将步骤1-步骤4输出的特征图像连接在一起,得到256幅14×14的特征图像,对连接后的256幅14×14的特征图像进行ReLu激活,得到卷积层4的输出。
卷积层5
对卷积层4输出的256幅14×14的特征图像,应用如图4所示的Inception进行如下操作,得到480幅14×14的特征图像:
步骤1,对卷积层4输出的256幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅14×14的特征图像,然后对这128幅14×14的特征图像进行BN规范化。
步骤2,对卷积层4输出的256幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅14×14的特征图像,然后对这128幅14×14的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到192幅14×14的特征图像,然后对这192幅14×14的特征图像进行BN规范化。
步骤3,对卷积层4输出的256幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到32幅14×14的特征图像,然后对这32幅14×14的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到96幅14×14的特征图像,然后对这96幅14×14的特征图像进行BN规范化。
步骤4,对卷积层4输出的256幅14×14的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到64幅14×14的特征图像,然后对这64幅14×14的特征图像进行BN规范化。
接着对这64幅14×14的特征图像采用最大化下采样操作,得到64幅14×14的特征图像。
步骤5,将步骤1-步骤4的输出特征图像连接在一起,得到480幅为14×14的特征图像,对连接后的480幅14×14的特征图像进行ReLu激活,得到卷积层5的输出。
采样层3
对卷积层5输出的480幅14×14的特征图像以步长为2进行大小为3×3的最大化下采样,得到480幅7×7的特征图像。
卷积层6
对采样层3输出的480幅7×7的特征图像,应用如图4所示的Inception进行如下操作,得到512幅7×7的特征图像:
步骤1,对采样层3输出的480幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到192幅7×7的特征图像,然后对这192幅7×7的特征图像进行BN规范化。
步骤2,对采样层3输出的480幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到96幅7×7的特征图像,然后对这96幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到208幅7×7的特征图像,然后对这208幅7×7的特征图像进行BN规范化。
步骤3,对采样层3输出的480幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到16幅7×7的特征图像,然后对这16幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到48幅7×7的特征图像,然后对这48幅7×7的特征图像进行BN规范化。
步骤4,对采样层3输出的480幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像进行BN规范化。
接着对这64幅7×7的特征图像采用最大化下采样操作,得到64幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出特征图像连接在一起,得到512幅7×7的特征图像,对连接后的512幅7×7的特征图像进行ReLu激活操作,得到卷积层6的输出。
卷积层7
对卷积层6输出的512幅7×7的特征图像,应用如图4所示的Inception进行如下操作,得到512幅7×7的特征图像。
步骤1,对卷积层6输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到160幅7×7的特征图像,然后对这160幅7×7的特征图像进行BN规范化。
步骤2,对卷积层6输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到112幅7×7的特征图像,然后对这112幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到224幅7×7的特征图像,然后对这224幅7×7的特征图像先进行BN规范化。
步骤3,对卷积层6输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到24幅7×7的特征图像,然后对这24幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像进行BN规范化。
步骤4,对卷积层6输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像进行BN规范化。
接着对这64幅7×7的特征图像采用最大化下采样操作,得到64幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出的特征图像连接在一起,得到512幅7×7的特征图像,对连接后的512幅7×7的特征图像进行ReLu激活操作,得到卷积层7的输出。
卷积层8
对卷积层7输出的512幅7×7的特征图像,应用如图4所示的Inception进行如下操作,得到512幅7×7的特征图像:
步骤1,对卷积层7输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像进行BN规范化。
步骤2,对卷积层7输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到256幅7×7的特征图像,然后对这256幅7×7的特征图像进行BN规范化。
步骤3,对卷积层7输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到24幅7×7的特征图像,然后对这24幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像进行BN规范化。
步骤4,对卷积层7输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像进行BN规范化。
接着对这64幅7×7的特征图像采用最大化下采样操作,得到64幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出的特征图像连接在一起,得到512幅7×7的特征图像,对连接后的512幅7×7的特征图像进行ReLu激活操作,得到卷积层8的输出。
卷积层9
对卷积层8输出的512幅7×7的特征图像,应用如图4所示的Inception进行如下操作,得到528幅7×7的特征图像:
步骤1,对卷积层8输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到112幅7×7的特征图像,然后对这112幅7×7的特征图像先进行BN规范化。
步骤2,对卷积层8输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到144幅7×7的特征图像,然后对这144幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到288幅7×7的特征图像,然后对这288幅7×7的特征图像进行BN规范化。
步骤3,对卷积层8输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到24幅7×7的特征图像,然后对这24幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像先进行BN规范化。
步骤4,对卷积层8输出的512幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到64幅7×7的特征图像,然后对这64幅7×7的特征图像先进行BN规范化。
接着对这64幅7×7的特征图像采用最大化下采样操作,得到64幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出的特征图像连接在一起,得到528幅7×7的特征图像,接着对连接后的528幅7×7的特征图像进行ReLu激活操作,得到卷积层9的输出。
卷积层10
对卷积层9输出的528幅7×7的特征图像,应用如图4所示的Inception进行如下操作,得到832幅7×7的特征图像。
步骤1,对卷积层9输出的528幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到256幅7×7的特征图像,然后对这256幅7×7的特征图像先进行BN规范化。
步骤2,对卷积层9输出的528幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到160幅7×7的特征图像,然后对这160幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到320幅7×7的特征图像,然后对这320幅7×7的特征图像进行BN规范化。
步骤3,对卷积层9输出的528幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到32幅7×7的特征图像,然后对这32幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像进行BN规范化。
步骤4,对卷积层9输出的528幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像进行BN规范化。
接着对这128幅7×7的特征图像采用最大化下采样操作,得到128幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出的特征图像连接在一起,得到832幅7×7的特征图像,接着对连接后的832幅7×7的特征图像进行ReLu激活操作,得到卷积层10的输出。
采样层4
对卷积层10输出的832幅7×7的特征图像以步长为1进行大小为3×3的最大化下采样,得到832幅7×7的特征图像。
卷积层11
对采样层4输出的832幅7×7的特征图像,应用如图4所示的Inception进行如下操作,得到832幅7×7的特征图像:
步骤1,对采样层4输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到256幅7×7的特征图像,然后对这256幅7×7的特征图像先进行BN规范化。
步骤2,对采样层4输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到160幅7×7的特征图像,然后对这160幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到320幅7×7的特征图像,然后对这320幅7×7的特征图像进行BN规范化。
步骤3,对采样层4输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到32幅7×7的特征图像,然后对这32幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像先进行BN规范化。
步骤4,对采样层4输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像进行BN规范化。
接着对这128幅7×7的特征图像采用最大化下采样操作,得到128幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出的特征图像连接在一起,得到832幅7×7的特征图像,接着对连接后的832幅7×7的特征图像进行ReLu激活操作,得到卷积层11的输出。
卷积层12
对卷积层11输出的832幅7×7的特征图像进行如下步骤,得到1024幅7×7的特征图像。
步骤1,对卷积层11输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到384幅7×7的特征图像,然后对这384幅7×7的特征图像进行BN规范化。
步骤2,对卷积层11输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到192幅7×7的特征图像,然后对这192幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用3×3的卷积核,以步长为1进行卷积操作,得到384幅7×7的特征图像,然后对这384幅7×7的特征图像进行BN规范化。
步骤3,对卷积层11输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到48幅7×7的特征图像,然后对这48幅7×7的特征图像先进行BN规范化,再进行ReLU激活。
接着使用5×5的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像先进行BN规范化。
步骤4,对卷积层11输出的832幅7×7的特征图像使用1×1的卷积核,以步长为1进行卷积操作,得到128幅7×7的特征图像,然后对这128幅7×7的特征图像进行BN规范化。
接着对这128幅7×7的特征图像采用最大化下采样操作,得到128幅7×7的特征图像。
步骤5,将步骤1-步骤4的输出的特征图像连接在一起,得到1024幅7×7的特征图像,对连接后的1024幅7×7的特征图像进行ReLu激活操作,得到卷积层12的输出。
采样层5
对卷积层12输出的1024幅7×7的特征图像以步长为7进行大小为7×7的最大化下采样,得到1024幅1×1的特征图像。
最后,将这1024幅1×1的特征图像顺序排列,拉成一个维度为1024维的特征向量,该向量即为一帧100×100的分块人脸图像通过该卷积网络运算的到的原始人脸特征。
步骤103,从给所述多个原始人脸特征中选择至少部分原始人脸特征生成目标人脸特征。
在具体实现中,可以将多个原始人脸特征生成最终表达该目标人脸图像的目标人脸特征。
例如,如图3所示,可以采用原始人脸特征1、原始人脸特征2、原始人脸特征3、原始人脸特征4、原始人脸特征5、原始人脸特征6、原始人脸特征7、原始人脸特征8、原始人脸特征9、原始人脸特征10生成目标人脸特征。
在本发明实施例中,步骤103可以包括如下子步骤:
子步骤S31,对至少部分原始人脸特征配置权重;
在本发明的一个实施例中,可以通过AdaBoost算法计算多个原始人脸特征的多个权重,AdaBoost是在PAC可学习理论框架下,减小正确分类样本的权重,增大错误分类样本的权重,通过学习将分类准确率低的弱分类器提升为分类准确率高的强分类器。
则在本发明实施例中,子步骤S31进一步可以包括如下子步骤:
子步骤S311,获取多个分块人脸训练图像;
在具体实现中,分块人脸训练图像与分块人脸图像的分割方式相同。
对于分块人脸训练图像,则可以生成训练集T={(x1 1,y1),...,(x10 N,yN)},其中,xi(i=1,2,…,N)为分块人脸训练图像之间的相似度,yi∈Y={-1,1},yi=-1表示分块人脸训练图像不属于同一个用户,yi=1表示分块人脸训练图像属于同一个用户。
子步骤S312,采用配置多个权重后的多个分块人脸训练图像训练弱分类器。
在具体实现中,分块人脸训练图像具有权重,分布如下:
其中,i=1,2,…,N。
权重的初始值是均等的,即假设具有10个分块人脸训练图像,则每个分块人脸训练图像的权重初始为0.1。
在本发明实施例中,可以使用权值分布为Di的训练集学习得到弱分类器:
ht(x):x→{-1,+1}
其中,弱分类器可以用于合成强分类器。
子步骤S313,计算所述弱分类器的分类误差率;
选择弱分类器,使得加权分类错误最小:
子步骤S314,采用所述分类误差率计算所述弱分类器在所述强分类器中的重要系数;
计算弱分类器的系数:
子步骤S315,以所述重要系数更新所述人脸特征训练样本的权重,当前迭代的次数累加一;
更新权重分布,For j=1,…,N∶
其中,归一化因子Zt为:
因此,归一化因子Zt可以保证Dt+1为概率分部。
子步骤S316,判断当前迭代的次数是否超过预设的迭代阈值;若是,则执行子步骤S317,若否,则返回执行子步骤S312;
子步骤S317,从所述多个分块人脸训练图像的多个权重中提取至少部分权重。
如果迭代完成,则可以提取权重,否则,继续下一轮迭代。
在实际应用中,可以从多个权重中提取至少一个权重进行多种组合,即,在所述多个权重中进行任意权重的组合,将每种组合之后的权重配置给分块人脸训练图像,调用测试集对配置权重的分块人脸训练图像进行测试,计算每种组合之后的权重用于人脸认证的准确率,提取准确率最高的、组合之后的权重。
此外,可以将弱分类器合成强分类器:
需要说明的是,权重的计算可以离线进行,在线进行人脸认证时,直接提取该权重。
子步骤S318,将提取的至少部分权重配置给对应的至少部分原始人脸特征。
子步骤S32,采用配置了权重的原始人脸特征生成目标人脸特征。
例如,如图3所示,若原始人脸特征1、原始人脸特征2、原始人脸特征3、原始人脸特征4、原始人脸特征5、原始人脸特征6、原始人脸特征7、原始人脸特征8、原始人脸特征9、原始人脸特征10应用表1中的卷积神经网络学习对应的原始人脸特征,并经过AdaBoost进行训练,其权重如下:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1.9996 |
0.5553 |
0.2421 |
0.0836 |
0.1078 |
0.3055 |
0.1748 |
0.0956 |
0.4834 |
0.1035 |
若选择1~9号配置权重的原始人脸特征进行融合得到的目标人脸特征的表征准确度最高,则目标人脸特征为:
f=1.9996f1+0.5553f2+0.2421f3+0.0836f4+0.1078f5+0.3055f6+0.1748f7+0.0956f8+0.4834f9
因此,若将目标人脸图像划分为5个大小为70×70的分块人脸数据,对于子步骤S16,则可以对前4个分块人脸数据进行镜面对称变换,而第5个分块人脸数据不进行镜面对称变换。
步骤104,根据所述目标人脸特征对所述目标人脸图像进行认证处理。
在本发明的一个实施例中,步骤104可以包括如下子步骤:
子步骤S41,提取参考人脸数据的参考人脸特征;
参考人脸数据,可以为需要进行认证的用户的人脸数据,该参考人脸数据是指定的,也可以是非指定的,本发明实施例对此不加以限制。
例如,在支付系统中,指定提取账户所属用户的参考人脸数据进行人脸认证。
又例如,在监控系统中,没有指定用户的参考人脸数据,而是广泛地采用诸如不法分子的参考人脸数据进行人脸认证。
参考人脸数据的参考人脸特征与目标人脸特征的生成方式相同,可以预先存储在数据库中,待人脸认证时直接提取即可。
子步骤S42,计算所述参考人脸特征与所述目标人脸特征之间的相似度;
子步骤S43,判断所述相似度是否大于或等于预设的相似度阈值;若是,则执行子步骤S44,若否,则执行子步骤S45;
子步骤S44,确定所述目标人脸图像与所述参考人脸数据属于同一个人;
子步骤S45,确定所述目标人脸图像与所述参考人脸数据不属于同一个人。
在人脸认证时,可以计算参考人脸特征x1与目标人脸特征x2之间的相似度,例如,余弦距离:
将参考人脸特征x1与目标人脸特征x2之间的相似度与预设的相似度阈值T比较:
如果相似度≥T,如cos(x1,x2)≥T,则说明参考人脸数据与目标人脸图像较为相似,较大可能来自于同一个人,人脸认证成功。
如果相似度<T,如cos(x1,x2)<T,则说明参考人脸数据与目标人脸图像相距较远,较大可能来自于不同人,人脸认证失败。
本发明实施例提出的目标人脸特征,采用余弦距离进行人脸认证,采用LFW数据库(lfw image database)中的图像数据进行测试,准确率可达98.77%。
本发明实施例提出一种将目标人脸图像划分为多个分块人脸图像,自主分别学习多个原始人脸特征,根据多个原始人脸特征生成目标人脸特征进行认证处理。
一方面,可以有效地解决人为主观设计特征的主观性导致的不足,自适应学习到的特征对变化具有一定的鲁棒性。此外,采用单网络(如卷积神经网络)、多分块的方法,网络(如卷积神经网络)与分类器(如余弦分类器)分离的训练策略,所以需要训练样本数量较小,减小了在训练过程中出现过拟合的可能性。
另一方面,对获取多个分块人脸图像的原始人脸特征后,没有采用首尾相连构造更高维度的特征,而是使用AdaBoost等方法进行原始人脸特征的选择,构造了与原始人脸特征维度相同、更利于识别和对变化鲁棒性更强的目标人脸特征。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明的一种人脸认证装置实施例的结构框图,具体可以包括如下模块:
目标人脸图像划分模块501,用于将目标图像中的目标人脸图像划分为多个分块人脸图像;
原始人脸特征学习模块502,用于将所述多个分块人脸图像中分别输入预置的神经网络模型中,提取相应的多个原始人脸特征;
目标人脸特征生成模块503,用于从所述多个原始人脸特征中选择至少部分原始人脸特征生成目标人脸特征;
认证处理模块504,用于根据所述目标人脸特征对所述目标人脸图像进行认证处理。
在本发明的一个实施例中,所述目标人脸图像划分模块501包括:
人脸检测子模块,用于对目标图像进行人脸检测,确定候选人脸图像;
人脸定位子模块,用于在所述候选人脸图像中进行人脸特征点定位,确定眼睛数据的位置;
人脸对其子模块,用于将所述眼睛数据的位置与预设模板位置进行对齐;
归一化子模块,用于对除所述眼睛数据之外的候选人脸图像根据所述眼睛数据的位置进行相似变换,获得归一化的目标人脸图像;
人脸分割子模块,用于对所述目标人脸图像进行分割,获得分块人脸图像。
在本发明的一个实施例中,所述目标人脸图像划分模块501还包括:
镜像对称变换子模块,用于对所述分块人脸图像进行镜像对称变换,获得新的分块人脸图像。
在本发明的一个实施例中,所述原始人脸特征学习模块502包括:
分块人脸图像输入子模块,用于将每个分块人脸图像输入预置的卷积神经网络,所述卷积神经网络包括一个或多个卷积层、一个或多个采样层;
浅层卷积子模块,用于在所述卷积层属于第一深度范围时,采用指定的单个卷积核进行卷积操作;
深层卷积子模块,用于在所述卷积层属于第二深度范围时,采用分层线性模型Inception进行卷积操作,其中,所述第二深度范围的层数大于所述第一深度范围的层数;
最大化下采样子模块,用于在所述采样层中,进行最大化下采样;
图像排序子模块,用于根据所述卷积神经网络输出的多个图像数据获得特征向量,作为所述分块人脸图像的原始人脸特征。
在本发明的一个实施例中,所述原始人脸特征学习模块502还包括:
第一卷积辅助子模块,用于在第一深度范围卷积完成之后,进行规范化操作和激活操作。
在本发明的一个实施例中,所述分层线性模型Inception包括第一层、第二层、第三层、第四层;
所述深层卷积子模块包括:
第一卷积单元,用于在第一层中,采用指定的第一卷积核与第一步长对输入所述分层线性模型Inception的图像数据进行卷积操作,获得第一特征图像数据;
第二卷积单元,用于在第二层中,采用指定的第二卷积核与第二步长对输入所述分层线性模型Inception的图像数据进行卷积操作,获得第二特征图像数据;
第三卷积单元,用于采用指定的第三卷积核与第三步长对所述第二特征图像数据进行卷积操作,获得第三特征图像数据;
第四卷积单元,用于在第三层中,采用指定的第四卷积核与第四步长对输入所述分层线性模型Inception的图像数据进行卷积操作,获得第四特征图像数据;
第五卷积单元,用于采用指定的第五卷积核与第五步长对所述第四特征图像数据进行卷积操作,获得第五特征图像数据;
第六卷积单元,用于在第四层中,采用指定的第六卷积核与第六步长对所述输入所述分层线性模型Inception的图像数据进行卷积操作,获得第六特征图像数据;
采样单元,用于对所述第六特征图像数据进行最大化下采样操作,获得第七特征图像数据;
图像连接单元,用于连接所述第一特征图像数据、所述第三特征图像数据、所述第五特征图像数据和所述得第七特征图像数据,获得第八特征图像数据。
在本发明的一个实施例中,所述深层卷积子模块还包括:
第二卷积辅助单元,用于在第一层中,对所述第一特征图像数据进行规范化操作;
第三卷积辅助单元,用于在第二层中,对所述第二特征图像数据进行规范化操作和激活操作;
第四卷积辅助单元,用于对所述第三特征图像数据进行规范化操作;
第五卷积辅助单元,用于在第三层中,对所述第四特征图像数据进行规范化操作和激活操作;
第六卷积辅助单元,用于对所述第五特征图像数据进行规范化操作;
第七卷积辅助单元,用于在第四层中,对所述第六特征图像数据进行规范化操作;
第八卷积辅助单元,用于对所述第八特征图像数据激活操作。
在本发明的一个实施例中,所述目标人脸特征生成模块503包括:
权重配置子模块,用于对至少部分原始人脸特征配置权重;
特征生成子模块,用于采用配置了权重的原始人脸特征生成目标人脸特征。
在本发明的一个实施例中,所述权重配置子模块包括:
分块人脸训练图像获取单元,用于获取多个分块人脸训练图像;
弱分类器训练单元,用于采用配置多个权重后的多个分块人脸训练图像训练弱分类器,所述弱分类器用于合成强分类器;
分类误差率计算单元,用于计算所述弱分类器的分类误差率;
重要系数计算单元,用于采用所述分类误差率计算所述弱分类器在所述强分类器中的重要系数;
权重更新单元,用于以所述重要系数更新所述人脸特征训练样本的权重,当前迭代的次数累加一;
迭代阈值判断单元,用于判断当前迭代的次数是否超过预设的迭代阈值;若是,则调用权重提取单元,若否,则返回所述调用弱分类器训练单元;
权重提取单元,用于从所述多个分块人脸训练图像的多个权重中提取至少部分权重;
配置单元,用于将提取的至少部分权重配置给对应的至少部分原始人脸特征。
在本发明的一个实施例中,所述权重提取单元包括:
权重组合子单元,用于从所述多个权重中提取至少一个权重进行多种组合;
认证准确率计算子单元,用于计算组合之后的权重用于人脸认证的准确率;
提取子单元,用于提取准确率最高的、组合之后的权重。
在本发明的一个实施例中,所述认证处理模块504包括:
参考人脸特征提取子模块,用于提取参考人脸数据的参考人脸特征;
相似度计算子模块,用于计算所述参考人脸特征与所述目标人脸特征之间的相似度;
相似度阈值判断子模块,用于判断所述相似度是否大于或等于预设的相似度阈值;若是,则调用第一确定子模块,若否,则调用第二确定子模块;
第一确定子模块,用于确定所述目标人脸图像与所述参考人脸数据属于同一个人;
第二确定子模块,用于确定所述目标人脸图像与所述参考人脸数据不属于同一个人。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种人脸认证方法和一种人脸认证装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。