本公开涉及图像处理技术领域,尤其涉及一种人脸定位方法及装置。
背景技术:
随着图像处理技术的快速发展,终端可以通过获取人脸图像来进行人脸定位。其中,人脸定位是指定位人的脸部器官在人脸图像中的实际位置,该脸部器官包括但不限于眉毛、眼睛、鼻子、嘴巴和脸部外轮廓等。由于在人脸图像中,一般是利用多个关键点描述各个脸部器官,因此,在人脸定位过程中,需要定位人脸图像中的多个关键点,以实现人脸定位。
在传统的人脸定位过程中,通常需要人工操作来定位该多个关键点,也即是,需要人工在人脸图像中标记出该多个关键点,以实现人脸定位。
技术实现要素:
为克服相关技术中存在的问题,本公开提供一种人脸定位方法及装置。
第一方面,提供了一种人脸定位方法,所述方法包括:
获取待定位的人脸图像,并按照预设尺寸大小对所述人脸图像进行缩放处理,得到第一预处理人脸图像;
基于指定卷积神经网络CNN模型,确定所述第一预处理人脸图像中的多个关键点的初始位置;
基于所述多个关键点的初始位置,通过指定神经网络模型,确定所述多个关键点在所述人脸图像中的实际位置,以实现人脸定位。
可选地,所述基于所述多个关键点的初始位置,通过指定神经网络模型,确定所述多个关键点在所述人脸图像中的实际位置,包括:
基于所述多个关键点的初始位置,通过所述指定神经网络模型,确定多个偏差量,各个偏差量是指各个关键点的初始位置与所述初始位置对应的真实位置之间的偏差量;
分别将各个关键点的初始位置与对应的各个偏差量之和,重新确定为各个关键点的初始位置;
统计重新确定次数,并返回至所述基于所述多个关键点的初始位置,通过所述指定神经网络模型,确定多个偏差量的步骤,所述重新确定次数是指分别将各个关键点的初始位置与对应的各个偏差量之和重新确定为各个关键点的初始位置的次数;
当所述重新确定次数达到N次时,将经过N次重新确定后的各个关键点的初始位置确定为所述各个关键点在所述人脸图像中的实际位置,其中,所述N大于或等于1。
可选地,所述基于所述多个关键点的初始位置,通过所述指定神经网络模型,确定多个偏差量,包括:
对于所述多个关键点中的每个关键点,确定以所述关键点的初始位置为中心的预设尺寸窗口内,所有像素点中每个像素点的梯度,并根据所确定的梯度,确定所述关键点的尺度不变特征变换SIFT特征向量;
将所述多个关键点的SIFT特征向量依次进行串联,得到串联特征向量;
基于所述串联特征向量,通过所述指定神经网络模型,确定所述多个偏差量。
可选地,所述基于所述串联特征向量,通过所述指定神经网络模型,确定所述多个偏差量,包括:
将所述串联特征向量输入至所述指定神经网络模型中,通过所述指定神经网络模型回归确定所述多个偏差量。
可选地,所述方法还包括:
对所述第一预处理人脸图像进行归一化处理,得到第二预处理人脸图像;
相应地,所述基于指定卷积神经网络CNN模型,确定所述第一预处理人脸图像中的多个关键点的初始位置,包括:
基于所述指定卷积神经网络CNN模型,确定所述第二预处理人脸图像中的多个关键点的初始位置。
第二方面,提供了一种人脸定位装置,所述装置包括:
获取模块,用于获取待定位的人脸图像,并按照预设尺寸大小对所述人脸图像进行缩放处理,得到第一预处理人脸图像;
第一确定模块,用于基于指定卷积神经网络CNN模型,确定所述第一预处理人脸图像中的多个关键点的初始位置;
第二确定模块,用于基于所述第二确定模块确定的所述多个关键点的初始位置,通过指定神经网络模型,确定所述多个关键点在所述人脸图像中的实际位置,以实现人脸定位。
可选地,所述第二确定模块包括:
第一确定子模块,用于基于所述多个关键点的初始位置,通过所述指定神经网络模型,确定多个偏差量,各个偏差量是指各个关键点的初始位置与所述初始位置对应的真实位置之间的偏差量;
第二确定子模块,用于分别将各个关键点的初始位置与对应的各个偏差量之和,重新确定为各个关键点的初始位置;
统计子模块,用于统计重新确定次数,并返回至所述基于所述多个关键点的初始位置,通过所述指定神经网络模型,确定多个偏差量的步骤,所述重新确定次数是指分别将各个关键点的初始位置与对应的各个偏差量之和重新确定为各个关键点的初始位置的次数;
第三确定子模块,用于当所述重新确定次数达到N次时,将经过N次重新确定后的各个关键点的初始位置确定为所述各个关键点在所述人脸图像中的实际位置,其中,所述N大于或等于1。
可选地,所述第一确定子模块用于:
对于所述多个关键点中的每个关键点,确定以所述关键点的初始位置为中心的预设尺寸窗口内,所有像素点中每个像素点的梯度,并根据所确定的梯度,确定所述关键点的尺度不变特征变换SIFT特征向量;
将所述多个关键点的SIFT特征向量依次进行串联,得到串联特征向量;
基于所述串联特征向量,通过所述指定神经网络模型,确定所述多个偏差量。
可选地,所述第一确定子模块用于:
将所述串联特征向量输入至所述指定神经网络模型中,通过所述指定神经网络模型回归确定所述多个偏差量。
可选地,所述装置还包括:
归一化处理模块,用于对所述第一预处理人脸图像进行归一化处理,得到第二预处理人脸图像;
相应地,所述第一确定模块用于:
基于所述指定卷积神经网络CNN模型,确定所述第二预处理人脸图像中的多个关键点的初始位置。
第三方面,提供了一种人脸定位装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待定位的人脸图像,并按照预设尺寸大小对所述人脸图像进行缩放处理,得到第一预处理人脸图像;
基于指定卷积神经网络CNN模型,确定所述第一预处理人脸图像中的多个关键点的初始位置;
基于所述多个关键点的初始位置,通过指定神经网络模型,确定所述多个关键点在所述人脸图像中的实际位置,以实现人脸定位。
本公开的实施例提供的技术方案可以包括以下有益效果:获取待定位的人脸图像,为了便于后续处理,按照预设尺寸大小对获取的人脸图像进行缩放处理,得到该第一预处理人脸图像,之后,基于指定CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,如此,可以减小多个关键点的初始位置与实际位置之间的差值,从而提高人脸定位的准确性。在通过指定CNN模型确定该多个关键点的初始位置后,根据所确定的初始位置,再通过指定神经网络模型,即可确定该多个关键点在人脸图像中的实际位置,如此,避免需要人工手动操作,提高了人脸定位的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种人脸定位方法的流程图。
图2是根据另一示例性实施例示出的一种人脸定位方法的流程图。
图3A是根据一示例性实施例示出的一种人脸定位装置的框图。
图3B是根据另一示例性实施例示出的一种人脸定位装置的框图。
图4是根据一示例性实施例示出的一种人脸定位装置400的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在对本公开实施例进行详细地解释说明之前,先对本公开实施例的应用场景予以说明。本公开实施例所提供的人脸定位方法可以由终端来执行,该终端可以为诸如平板电脑、计算机等之类的设备,本公开实施例对此不做限定。其中,该终端具有图像处理等功能,以实现下述图1或图2实施例所涉及的人脸定位方法。
图1是根据一示例性实施例示出的一种人脸定位方法的流程图,如图1所述,该人脸定位方法用于终端中,可以包括以下几个步骤。
在步骤101中,获取待定位的人脸图像,并按照预设尺寸大小对该人脸图像进行缩放处理,得到第一预处理人脸图像。
在步骤102中,基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置。
在步骤103中,基于该多个关键点的初始位置,通过指定神经网络模型,确定该多个关键点在该人脸图像中的实际位置,以实现人脸定位。
在本公开实施例中,获取待定位的人脸图像,为了便于后续处理,按照预设尺寸大小对获取的人脸图像进行缩放处理,得到该第一预处理人脸图像,之后,基于指定CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,如此,可以减小多个关键点的初始位置与实际位置之间的差值,从而提高人脸定位的准确性。在通过指定CNN模型确定该多个关键点的初始位置后,根据所确定的初始位置,再通过指定神经网络模型,即可确定该多个关键点在人脸图像中的实际位置,如此,避免需要人工手动操作,提高了人脸定位的效率。
在另一实施例中,基于该多个关键点的初始位置,通过指定神经网络模型,确定该多个关键点在该人脸图像中的实际位置,包括:
基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量,各个偏差量是指各个关键点的初始位置与该初始位置对应的真实位置之间的偏差量;
分别将各个关键点的初始位置与对应的各个偏差量之和,重新确定为各个关键点的初始位置;
统计重新确定次数,并返回至该基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量的步骤,该重新确定次数是指分别将各个关键点的初始位置与对应的各个偏差量之和重新确定为各个关键点的初始位置的次数;
当该重新确定次数达到N次时,将经过N次重新确定后的各个关键点的初始位置确定为该各个关键点在该人脸图像中的实际位置,其中,该N大于或等于1。
上述通过多次迭代方式来确定该多个关键点的实际位置,增加了定位的准确性。
在另一实施例中,基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量,包括:
对于该多个关键点中的每个关键点,确定以该关键点的初始位置为中心的预设尺寸窗口内,所有像素点中每个像素点的梯度,并根据所确定的梯度,确定该关键点的尺度不变特征变换SIFT特征向量;
将该多个关键点的SIFT特征向量依次进行串联,得到串联特征向量;
基于该串联特征向量,通过该指定神经网络模型,确定该多个偏差量。
上述通过确定该多个关键点中每个关键点的SIFT特征向量,将该多个关键点的SIFT特征向量依次进行串联,得到串联特征向量,并基于该串联特征向量,通过该指定神经网络模型,即可以确定该多个偏差量。
在另一实施例中,基于该串联特征向量,通过该指定神经网络模型,确定该多个偏差量,包括:
将该串联特征向量输入至该指定神经网络模型中,通过该指定神经网络模型回归确定该多个偏差量。
上述将串联得到的串联特征向量输入至指定神经网络模型中,通过该指定神经网络模型回归确定该多个偏差量,由于通过诸如多层神经网络训练得到的指定神经网络模型能够拟合任意的非线性函数,比传统采用的线性回归更精准地得到结果,具有较好的表达能力和建模能力,如此,可以进一步地提高定位的准确性,另外,该指定神经网络还对部分遮挡区域的处理具有较好的鲁棒性。
在另一实施例中,该方法还包括:
对该第一预处理人脸图像进行归一化处理,得到第二预处理人脸图像;
相应地,该基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,包括:
基于该指定卷积神经网络CNN模型,确定该第二预处理人脸图像中的多个关键点的初始位置。
上述在基于指定CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置之前,还将该第二预处理人脸图像进行归一化处理,简化了指定CNN模型确定多个关键点的初始位置的处理流程,提高了处理效率。
上述所有可选技术方案,均可按照任意结合形成本公开的可选实施例,本公开实施例对此不再一一赘述。
图2是根据一示例性实施例示出的一种人脸定位方法的流程图,如图2所示,该人脸定位方法用于终端中,可以包括以下几个步骤:
在步骤201中,获取待定位的人脸图像,并按照预设尺寸大小对该人脸图像进行缩放处理,得到第一预处理人脸图像。
在实际生活中,通常需要对人脸进行定位,以便对人脸进行识别等。随着电子设备的快速发展,可以通过终端进行人脸定位,在该过程中,终端获取待定位的人脸图像,其中,在一种可能的实现方式中,终端可以通过拍摄方式来获取待定位的人脸图像。
在获取人脸图像后,由于在后续步骤202中基于指定CNN(Convolutional Neural Networks,卷积神经网络)模型,确定该人脸图像中的多个关键点的初始位置时,需要保证该人脸图像的尺寸大小为固定尺寸大小,而获取的人脸图像可能为不同尺寸规格的图像,因此,在获取到待定位的人脸图像后,终端还需要按照预设尺寸大小对该人脸图像进行缩放处理,以将获取的不同尺寸规格的人脸图像处理成统一尺寸的第一预处理人脸图像。
其中,该预设尺寸大小可以由用户根据实际需求自定义设置,也可以由终端默认设置,本公开实施例对此不做限定。
例如,在一种可能的实现方式中,可以将待定位的人脸图像缩放处理为尺寸大小为64*64的第一预处理人脸图像。
在步骤202中,基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置。
终端得到上述第一预处理人脸图像之后,即可通过指定CNN模型对该第一预处理人脸图像进行回归处理,如此,该终端即可确定该第一预处理人脸图像中的多个关键点的初始位置。通常情况下,该初始位置可以用坐标来表示,同理,下文中所涉及的所有位置也均是指坐标。
其中,上述指定CNN模型通常包括输入层和输出层,假设人脸的关键点的个数为n,在该种情况下,该指定CNN模型的输入层则为上述第一预处理人脸图像,该指定CNN模型的输出层则是长度为2*n的位置向量,该位置向量用于指示人脸的多个关键点的初始位置,例如,得到的位置向量为p1=(x1,y1,x2,y2,...xn,yn)。其中,x1代表关键点1的初始位置的横坐标,y1代表关键点1的初始位置的纵坐标,以此类推,该xn代表关键点n的初始位置的横坐标,yn代表关键点n的初始位置的纵坐标,另外,上述符号“*”代表相乘。
上述基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,如此,可以减小该多个关键点的初始位置与实际位置之间的差值,避免该多个关键点的初始位置与实际位置之间的差值过大引起的算法陷入局部最小值的问题,提高了定位的准确性。
需要说明的是,上述通过该指定CNN模型对该第一预处理人脸图像进行回归处理过程可以参见相关技术,本公开实施例对此不做限定。
在一种可能的实现方式中,为了简化该指定CNN模型对该第一预处理人脸图像进行回归处理的操作,在基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置之前,还可以对该第一预处理人脸图像进行进一步地处理。
也即是,在该步骤202之前,终端还可以对该第一预处理人脸图像进行如下处理:对该第一预处理人脸图像进行归一化处理,得到第二预处理人脸图像。
其中,上述对该第一预处理人脸图像进行归一化处理的实现过程可以包括减均值、除方差等处理过程,也即是,终端可以确定该第一预处理人脸图像中所有像素点的平均像素值和像素方差值,并将该第一预处理人脸图像中的每个像素点的像素值减去所确定的平均像素值后,除以该像素方差值,使得该第一预处理人脸图像中的每个像素点的分布均符合正态分布。
相应地,终端对该第一预处理人脸图像进行归一化处理后,该步骤202的实现过程即包括:基于该指定卷积神经网络CNN模型,确定该第二预处理人脸图像中的多个关键点的初始位置。
其中,上述在对该第一预处理人脸图像进行归一化处理后,再基于该指定CNN模型对处理后的第二预处理人脸图像进行回归处理,简化了处理流程,提高了处理效率。
其中,上述基于该指定卷积神经网络CNN模型,确定该第二预处理人脸图像中的多个关键点的初始位置的实现原理与上述基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置的实现原理类似,这里不再赘述。
另外,需要说明的是,在上述执行过程中,上述指定CNN模型可以预先通过训练确定得到,在一种可能的实现方法中,确定该指定CNN模型的实现过程可以包括:将多个指定人脸图像确定为第一训练样本,其中,该多个指定人脸图像中的每个指定人脸图像包括的多个关键点均通过人工手动标记确定,将该第一训练样本输入至待训练的CNN模型中进行训练,并经过随机梯度下降处理后,得到该指定CNN模型,其具体实现过程可以参见相关技术,本公开实施例对此不做限定。
在步骤203中,基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量,各个偏差量是指各个关键点的初始位置与该初始位置对应的真实位置之间的偏差量。
其中,该多个关键点的初始位置与多个偏差量一一对应。
其中,基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量的实现过程可以包括:对于该多个关键点中的每个关键点,确定以该关键点的初始位置为中心的预设尺寸窗口内所有像素点中每个像素点的梯度,并根据所确定的梯度,确定该关键点的SIFT特征向量,将该多个关键点的SIFT特征向量依次进行串联,得到串联特征向量,基于该串联特征向量,通过该指定神经网络模型,确定该多个偏差量。
其中,该预设尺寸窗口可以由用户根据实际需求自定义设置,也可以由终端默认设置,本公开实施例对此不做限定。
另外,各个关键点的SIFT特征向量的维数也可以由用户根据实际需求自定义设置,也可以由该终端默认设置,本公开实施例对此不做限定。
例如,在一种可能的实现方式中,该SIFT特征向量可以为128维,在该种情况下,将该多个关键点的SIFT特征向量串联处理后,得到的串联特征向量的维度即为128*n。
其中,上述对于该多个关键点中的每个关键点,确定以该关键点的初始位置为中心的预设尺寸窗口内所有像素点中每个像素点的梯度的实现过程可以参见相关技术,本公开实施例对此不做限定。
另外,上述根据所确定的梯度,确定该关键点的SIFT特征向量的具体实现过程也可以参见相关技术,本公开实施例对此也不做限定。
其中,上述基于该串联特征向量,通过指定神经网络模型,确定该各个关键点的初始位置对应的偏差量的实现过程可以包括:将该串联特征向量输入至指定神经网络模型中,通过该指定神经网络模型回归确定多个偏差量。
也即是,将该串联特征向量输入至上述指定神经网络模型,之后,该指定神经网络模型进行回归处理,如此,即可确定该多个偏差量。这里以Δp来表示该多个偏差量,例如,该多个偏差量可以为:Δp=(Δp1x,Δp1y,Δp2x,Δp2y,...Δpnx,Δpny),其中,Δp1x代表关键点1的初始位置的横坐标对应的偏差量,Δp1y代表关键点1的初始位置的纵坐标对应的偏差量,以此类推。
与上述指定CNN模型类似,该指定神经网络模型也可以预先通过训练确定得到,其中,在一种可能的实现方式中,确定该指定神经网络的实现过程可以包括:将上述串联特征向量和通过人工标记确定的多个关键点的实际位置与初始位置之间的偏差量确定为第二训练样本,并将第二训练样本输入至待训练的神经网络中进行训练,并经过随机梯度下降处理后,得到该指定神经网络模型,其中,该待训练的神经网络可以为多层神经网络,也可以为单层神经网络。
在实际应用过程中,由于通过诸如多层神经网络训练得到的指定神经网络模型能够拟合任意的非线性函数,比传统采用的线性回归更精准地得到结果,具有较好的表达能力和建模能力,如此,可以进一步地提高定位的准确性,另外,该指定神经网络还对部分遮挡区域的处理具有较好的鲁棒性。
在步骤204中,分别将各个关键点的初始位置与对应的各个偏差量之和,重新确定为各个关键点的初始位置。
上述在确定各个关键点的初始位置对应的偏差量之后,将各个关键点的初始位置与所确定的偏差量相加,即将p1与Δp进行求和,重新得到该多个关键点的初始位置,即终端将该初始位置重新确定为该多个关键点的初始位置。
在步骤205中,统计重新确定次数,并返回至基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量的步骤,该重新确定次数是指分别将各个关键点的初始位置与对应的各个偏差量之和重新确定为各个关键点的初始位置的次数。
在步骤206中,当重新确定次数达到N次时,将经过N次重新确定后的各个关键点的初始位置确定为该各个关键点在该人脸图像中的实际位置,其中,该N大于或等于1。
在实际实现过程中,由于通过上述指定神经网络模型确定的偏差量可能并不是该多个关键点的初始位置与实际位置之间的偏差量,因此,在实际实现时,需要经过多次迭代处理后,才能确定该多个关键点在该人脸图像中的实际位置,即该多个关键点的实际位置pN=pN-1+Δp,其中,N代表迭代的次数。
其中,该N可以由用户根据实际需求自定义设置,也可以由终端默认设置,本公开实施例对此不做限定。
在实际实现过程中,经过试验得出,该N通常可以设置为3,即在更新过程中,当迭代3次后,通常即可达到收敛效果,即可以准确地确定该多个关键点在该人脸图像中的实际位置。
需要说明的是,上述步骤203至步骤206用于实现:基于该多个关键点的初始位置,通过指定神经网络模型,确定该多个关键点在该人脸图像中的实际位置,以实现人脸定位的步骤。
在本公开实施例中,获取待定位的人脸图像,为了便于后续处理,按照预设尺寸大小对获取的人脸图像进行缩放处理,得到该第一预处理人脸图像,之后,基于指定CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,如此,可以减小多个关键点的初始位置与实际位置之间的差值,从而提高人脸定位的准确性。在通过指定CNN模型确定该多个关键点的初始位置后,根据所确定的初始位置,再通过指定神经网络模型,即可确定该多个关键点在人脸图像中的实际位置,如此,避免需要人工手动操作,提高了人脸定位的效率。
图3A是根据一示例性实施例示出的一种人脸定位装置的框图。参照图3A,该装置包括获取模块310,第一确定模块320和第二确定模块330。
获取模块310,用于获取待定位的人脸图像,并按照预设尺寸大小对该人脸图像进行缩放处理,得到第一预处理人脸图像;
第一确定模块320,用于基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置;
第二确定模块330,用于基于该第二确定模块320确定的该多个关键点的初始位置,通过指定神经网络模型,确定该多个关键点在该人脸图像中的实际位置,以实现人脸定位。
在另一实施例中,第二确定模块330包括:
第一确定子模块,用于基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量,各个偏差量是指各个关键点的初始位置与该初始位置对应的真实位置之间的偏差量;
第二确定子模块,用于分别将各个关键点的初始位置与对应的各个偏差量之和,重新确定为各个关键点的初始位置;
统计子模块,用于统计重新确定次数,并返回至该基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量的步骤,该重新确定次数是指分别将各个关键点的初始位置和各个偏差量之和重新确定为各个关键点的初始位置的次数;
第三确定子模块,用于当该重新确定次数达到N次时,将经过N次重新确定后的各个关键点的初始位置确定为该各个关键点在该人脸图像中的实际位置,其中,该N大于或等于1。
在另一实施例中,该第一确定子模块用于:
对于该多个关键点中的每个关键点,确定以该关键点的初始位置为中心的预设尺寸窗口内,所有像素点中每个像素点的梯度,并根据所确定的梯度,确定该关键点的尺度不变特征变换SIFT特征向量;
将该多个关键点的SIFT特征向量依次进行串联,得到串联特征向量;
基于该串联特征向量,通过该指定神经网络模型,确定该多个偏差量。
在另一实施例中,该第一确定子模块用于:
将该串联特征向量输入至该指定神经网络模型中,通过该指定神经网络模型回归确定该多个偏差量。
在另一实施例中,请参考图3B,该装置还包括:
归一化处理模块340,用于对该第一预处理人脸图像进行归一化处理,得到第二预处理人脸图像;
相应地,该第一确定模块320用于:
基于该指定卷积神经网络CNN模型,确定该第二预处理人脸图像中的多个关键点的初始位置。
在本公开实施例中,获取待定位的人脸图像,为了便于后续处理,按照预设尺寸大小对获取的人脸图像进行缩放处理,得到该第一预处理人脸图像,之后,基于指定CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,如此,可以减小多个关键点的初始位置与实际位置之间的差值,从而提高人脸定位的准确性。在通过指定CNN模型确定该多个关键点的初始位置后,根据所确定的初始位置,再通过指定神经网络模型,即可确定该多个关键点在人脸图像中的实际位置,如此,避免需要人工手动操作,提高了人脸定位的效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种人脸识别装置400的框图。例如,装置400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为装置400的各种组件提供电源。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电源相关联的组件。
多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到装置400的打开/关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由装置400的处理器420执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种人脸定位方法,所述方法包括:
获取待定位的人脸图像,并按照预设尺寸大小对该人脸图像进行缩放处理,得到第一预处理人脸图像;
基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置;
基于该多个关键点的初始位置,通过指定神经网络模型,确定该多个关键点在该人脸图像中的实际位置,以实现人脸定位。
在另一实施例中,基于该多个关键点的初始位置,通过指定神经网络模型,确定该多个关键点在该人脸图像中的实际位置,包括:
基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量,各个偏差量是指各个关键点的初始位置与该初始位置对应的真实位置之间的偏差量;
分别将各个关键点的初始位置与对应的各个偏差量之和,重新确定为各个关键点的初始位置;
统计重新确定次数,并返回至该基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量的步骤,该重新确定次数是指分别将各个关键点的初始位置和各个偏差量之和重新确定为各个关键点的初始位置的次数;
当该重新确定次数达到N次时,将经过N次重新确定后的各个关键点的初始位置确定为该各个关键点在该人脸图像中的实际位置,其中,该N大于或等于1。
在另一实施例中,基于该多个关键点的初始位置,通过该指定神经网络模型,确定多个偏差量,包括:
对于该多个关键点中的每个关键点,确定以该关键点的初始位置为中心的预设尺寸窗口内,所有像素点中每个像素点的梯度,并根据所确定的梯度,确定该关键点的尺度不变特征变换SIFT特征向量;
将该多个关键点的SIFT特征向量依次进行串联,得到串联特征向量;
基于该串联特征向量,通过该指定神经网络模型,确定该多个偏差量。
在另一实施例中,基于该串联特征向量,通过该指定神经网络模型,确定该多个偏差量,包括:
将该串联特征向量输入至该指定神经网络模型中,通过该指定神经网络模型回归确定该多个偏差量。
在另一实施例中,该方法还包括:
对该第一预处理人脸图像进行归一化处理,得到第二预处理人脸图像;
相应地,该基于指定卷积神经网络CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,包括:
基于该指定卷积神经网络CNN模型,确定该第二预处理人脸图像中的多个关键点的初始位置。
在本公开实施例中,获取待定位的人脸图像,为了便于后续处理,按照预设尺寸大小对获取的人脸图像进行缩放处理,得到该第一预处理人脸图像,之后,基于指定CNN模型,确定该第一预处理人脸图像中的多个关键点的初始位置,如此,可以减小多个关键点的初始位置与实际位置之间的差值,从而提高人脸定位的准确性。在通过指定CNN模型确定该多个关键点的初始位置后,根据所确定的初始位置,再通过指定神经网络模型,即可确定该多个关键点在人脸图像中的实际位置,如此,避免需要人工手动操作,提高了人脸定位的效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。