一种嵌入式平台的人脸识别方法及系统
【技术领域】
本发明涉及人脸识别技术领域,具体的,涉及一种嵌入式平台的人脸识别方法以及应用于该方法的系统。
【背景技术】
人脸识别技术是跨图像处理、模式识别等多学科的技术,通过利用计算机对人脸图像进行处理和分析,获取有效特征信息,进行身份识别。相比其它生物识别技术,人脸识别具有采集的非接触性、非强制性、操作简单、结果直观、隐蔽性好等特点,更为人们所接受。人脸是一个包含着丰富信息的模式的集合,是人类互相辩证和识别的主要标志之一,也是图像和视频中视觉感兴趣的对象之一。与指纹、虹膜、语音等其他人体生物特征相比,人脸识别更加直接,无需干扰人们的正常行为就能较好的达到识别效果。
早期的人脸识别基于几何特征和统计特征,在实际的应用场景中受到环境的光照、人脸角度等因素影响较大,其准确率和稳定性使其应用场合受到很大限制。目前,随着深度学习在人脸识别中的引入,算法的准确率已经大幅提高,可以支持大部分实际应用。
然而,深度学习的计算量巨大,目前复杂的人脸识别任务主要依赖云计算的支持。人脸识别产品的向着成本更低的嵌入式端发展,而现有的给深度学习的人脸识别算法难以在嵌入式设备中部署。
【发明内容】
本发明的主要目的是提供一种基于深度学习和嵌入式设备的嵌入式平台的人脸识别方法。
本发明的另一目的是提供一种基于深度学习和嵌入式设备的嵌入式平台的人脸识别系统。
为了实现上述的主要目的,本发明提供的嵌入式平台的人脸识别方法包括获取外围设备采集到的人脸图像信息,并对人脸图像信息进行预处理;构建特征融合网络,并建立人脸特征识别模型;将预处理后的人脸图像信息A和人脸图像信息B输入到特征融合网络中,且通过训练好的人脸特征识别模型对人脸图像信息A和人脸图像信息B进行特征向量提取;获取人脸图像信息A的人脸特征向量F1和人脸图像信息B的人脸特征向量F2;计算人脸特征向量F1和人脸特征向量F2之间的余弦距离,并根据余弦距离输出识别结果。
进一步的方案是,将人脸图像信息输入至人脸检测网络中进行人脸检测,检测出人脸图像信息中人脸所在的区域及人脸上包括左眼、右眼、鼻子、左嘴角和右嘴角五个关键点的坐标,并且根据五个关键点坐标进行仿射变换,即可得到校正后的人脸识别切图,其中,人脸检测网络为MTCNN网络。
更进一步的方案是,特征融合网络为MobileNetV2深度网络。
更进一步的方案是,构建MS-Celeb-1M数据集作为人脸训练数据集,将人脸训练数据集输入到softmax损失函数进行训练,并通过ArcFace损失函数进行训练得到预训练模型;将采集到的亚洲人脸数据集对预训练模型通过ArcFace损失函数进行训练,进而获得人脸特征识别模型。
更进一步的方案是,若余弦距离大于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为同一个人,若余弦距离小于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为不同人。
由此可见,本发明可以拍摄所得到的人脸照片通过人脸检测后经过仿射变换调整位置即可输入至深度识别网络中进行识别,使得整个识别系统在更加轻量化的同时又不失精度,具有较高的实用性。
此外,由于人脸识别的公开数据集主要来自欧美国家,本发明为了提升模型面向亚洲人脸的精度,所采用的是亚洲人脸数据来训练。
所以,本发明的人脸识别方法采用适用于嵌入式设备的深度网络,并且通过利用亚洲人脸数据以提升模型精度。
为了实现上述的另一目的,本发明还提供一种嵌入式平台的人脸识别系统,包括预处理模块,获取外围设备采集到的人脸图像信息,并对人脸图像信息进行预处理;模型训练模块,用于构建特征融合网络,并建立人脸特征识别模型;特征提取模块,用于将预处理后的人脸图像信息A和人脸图像信息B输入到特征融合网络中,且通过训练好的人脸特征识别模型对人脸图像信息A和人脸图像信息B进行特征向量提取,特征提取模块还用于获取人脸图像信息A的人脸特征向量F1和人脸图像信息B的人脸特征向量F2;识别结果输出模块,用于计算人脸特征向量F1和人脸特征向量F2之间的余弦距离,并根据余弦距离输出识别结果。
进一步的方案是,将人脸图像信息输入至人脸检测网络中进行人脸检测,检测出人脸图像信息中人脸所在的区域及人脸上包括左眼、右眼、鼻子、左嘴角和右嘴角五个关键点的坐标,并且根据五个关键点坐标进行仿射变换,即可得到校正后的人脸识别切图,其中,人脸检测网络为MTCNN网络。
更进一步的方案是,特征融合网络为MobileNetV2深度网络。
更进一步的方案是,构建MS-Celeb-1M数据集作为人脸训练数据集,将人脸训练数据集输入到softmax损失函数进行训练,并通过ArcFace损失函数进行训练得到预训练模型;将采集到的亚洲人脸数据集对预训练模型通过ArcFace损失函数进行训练,进而获得人脸特征识别模型。
更进一步的方案是,若余弦距离大于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为同一个人,若余弦距离小于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为不同人。
由此可见,本发明提供的人脸识别系统可以实现在深度神经网络下的人脸识别,是一种可以实现面向嵌入式设备的高精度人脸识别系统,拍摄所得到的人脸照片通过人脸检测后经过仿射变换调整位置即可输入至深度识别网络中进行识别,使得整个识别系统在更加轻量化的同时又不失精度,具有较高的实用性。
此外,由于人脸识别的公开数据集主要来自欧美国家,本发明为了提升模型面向亚洲人脸的精度,所采用的是亚洲人脸数据来训练。
所以,本发明的系统采用适用于嵌入式设备的深度网络,而且通过利用亚洲人脸数据以提升模型精度。
【附图说明】
图1是本发明一种嵌入式平台的人脸识别方法实施例的流程框图。
图2是本发明一种嵌入式平台的人脸识别系统实施例的原理框图。
【具体实施方式】
为了使发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限用于本发明。
一种嵌入式平台的人脸识别方法实施例:
参见图1,本实施例的人脸识别方法在对用户脸部进行检测识别时,首先,执行步骤S1,获取外围设备采集到的人脸图像信息,并对人脸图像信息进行预处理,其中,在本发明实施例中,该外围设备可以是手机、摄像头、门禁系统或者其他具有图像获取功能的设备。
具体地,本实施例的人脸识别方法在对人脸图像信息进行预处理时,将人脸图像信息输入至人脸检测网络中进行人脸检测,检测出人脸图像信息中人脸所在的区域及人脸上包括左眼、右眼、鼻子、左嘴角和右嘴角五个关键点的坐标,并且根据五个关键点坐标进行仿射变换,即可得到校正后的人脸识别切图,其中,人脸检测网络为MTCNN网络。
可见,在预处理部分,为了提升人脸检测的速度,使用了级联思想的MTCNN网络,检测人脸图像并得到5个轮廓点,分别是左眼点,右眼点,鼻尖,左嘴角,右嘴角。目标人脸轮廓点采用了固定的模板,通过检测点和目标点的关系求解图像的仿射变换方程,然后通过仿射变换得到矫正后的人脸识别切图。其中,人脸识别切图的大小是112x112。
然后,执行步骤S2,构建特征融合网络,并建立人脸特征识别模型。其中,特征融合网络为MobileNetV2深度网络。其中,在本实施例的人脸特征提取部分,采用了MobileNetV2作为骨干网络,该网络采用了深度可分离卷积和Invertedresiduals模块,在速度和精度上达到了较好的均衡。另外,采用全局平均池化层替换了原MobileNetV2的全连接层,可以减少了模型参数量,提高了计算速度。
本实施例的人脸识别方法在建立人脸特征识别模型时,首先,构建MS-Celeb-1M数据集作为人脸训练数据集,将人脸训练数据集输入到softmax损失函数进行训练,并通过ArcFace损失函数进行训练得到预训练模型;将采集到的亚洲人脸数据集对预训练模型通过ArcFace损失函数进行训练,进而获得人脸特征识别模型。
具体地,本实施例的人脸特征识别模型的训练方法如下:首先,在MS-Celeb-1M数据集上进行网络训练,初始化网络的参数,并使网络不容易在单一的数据集上过拟合。然后,在自行采集的亚洲人脸数据集上微调,使得该模型学得在该数据集上的分布,面向亚洲人脸的场景有更高精度。具体可分为两个阶段,在第一阶段,采用MS-Celeb-1M数据集,为了使网络容易收敛,先用softmax损失函数进行训练,然后用ArcFace损失函数进行训练,使得网络提取的特征获得更小的类内距离与更大的类间距离。在第二阶段,采用自行采集的亚洲人脸数据集,用第一阶段得到模型作为预训练模型,并通过ArcFace损失函数进行训练,使得模型的分布更接近亚洲人脸数据。
接着,执行步骤S3,将预处理后的人脸图像信息A和人脸图像信息B输入到特征融合网络中,且通过训练好的人脸特征识别模型对人脸图像信息A和人脸图像信息B进行特征向量提取。
然后,执行步骤S4,获取人脸图像信息A的人脸特征向量F1和人脸图像信息B的人脸特征向量F2。
可见,在人脸特征提取部分,使用本发明设计并训练的深度网络从人脸识别切图中提取出特征向量,该特征向量长度是128,包含足够的描述人脸属性的信息。
然后,执行步骤S5,计算人脸特征向量F1和人脸特征向量F2之间的余弦距离,并根据余弦距离输出识别结果。
具体地,若余弦距离大于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为同一个人,若余弦距离小于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为不同人。
可见,在特征比对部分,对两张人脸识别切图计算所得的两个特征向量,计算它们的余弦距离,如果距离大于人脸相似度阈值(如0.6),则判断为是同一个人,如果距离小于人脸相似度阈值,则判断为不同人。
由此可见,本发明可以实现在深度神经网络下的人脸识别,是一种可以实现面向嵌入式设备的高精度人脸识别算法,拍摄所得到的人脸照片通过人脸检测后经过仿射变换调整位置即可输入至深度识别网络中进行识别,使得整个识别系统在更加轻量化的同时又不失精度,具有较高的实用性。
此外,由于人脸识别的公开数据集主要来自欧美国家,本发明为了提升模型面向亚洲人脸的精度,所采用的是亚洲人脸数据来训练。
所以,本发明的人脸识别方法采用适用于嵌入式设备的深度网络,并且通过利用亚洲人脸数据以提升模型精度。
一种嵌入式平台的人脸识别系统实施例:
由图2可见,图2是本发明一种嵌入式平台的人脸识别系统实施例的原理框图。该系统包括预处理模块10、模型训练模块20、特征提取模块30以及识别结果输出模块40。其中,人脸识别系统还包括上位机和嵌入式设备端(如瑞芯微RK3399CPU),上位机用于将驱动程序和预先设置好的人脸识别程序移植到嵌入式设备端上,嵌入式设备端用于运行人脸识别程序并将识别的结果显示在显示器上。上述人脸识别程序包括人脸图像信息的获取、人脸图像信息的预处理、人脸特征识别模型的建立、人脸特征向量的提取,人脸识别结果的输出。
预处理模块10用于获取外围设备采集到的人脸图像信息,并对人脸图像信息进行预处理。
模型训练模块20用于构建特征融合网络,并建立人脸特征识别模型。
特征提取模块30用于将预处理后的人脸图像信息A和人脸图像信息B输入到特征融合网络中,且通过训练好的人脸特征识别模型对人脸图像信息A和人脸图像信息B进行特征向量提取。
特征提取模块30还用于获取人脸图像信息A的人脸特征向量F1和人脸图像信息B的人脸特征向量F2。
识别结果输出模块40用于计算人脸特征向量F1和人脸特征向量F2之间的余弦距离,并根据余弦距离输出识别结果。
进一步的,预处理模块10用于对人脸图像信息进行预处理,包括:将人脸图像信息输入至人脸检测网络中进行人脸检测,检测出人脸图像信息中人脸所在的区域及人脸上包括左眼、右眼、鼻子、左嘴角和右嘴角五个关键点的坐标,并且根据五个关键点坐标进行仿射变换,即可得到校正后的人脸识别切图,其中,人脸检测网络为MTCNN网络。
进一步的,特征融合网络为MobileNetV2深度网络。
进一步的,模型训练模块20用于建立人脸特征识别模型,包括:构建MS-Celeb-1M数据集作为人脸训练数据集,将人脸训练数据集输入到softmax损失函数进行训练,并通过ArcFace损失函数进行训练得到预训练模型;将采集到的亚洲人脸数据集对预训练模型通过ArcFace损失函数进行训练,进而获得人脸特征识别模型。
进一步的,识别结果输出模块40用于根据余弦距离输出识别结果,包括:若余弦距离大于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为同一个人,若余弦距离小于人脸相似度阈值,则确定人脸图像信息A和人脸图像信息B为不同人。
具体地,本发明在从实际数据集构建的3000+正人脸对判断和3000+负人脸对判断中达到了97.3%的正确率,在嵌入式设备端瑞芯微RK3399CPU上实测速度达到50ms左右。
由此可见,本发明提供的人脸识别系统可以实现在深度神经网络下的人脸识别,是一种可以实现面向嵌入式设备的高精度人脸识别系统,拍摄所得到的人脸照片通过人脸检测后经过仿射变换调整位置即可输入至深度识别网络中进行识别,使得整个识别系统在更加轻量化的同时又不失精度,具有较高的实用性。
此外,由于人脸识别的公开数据集主要来自欧美国家,本发明为了提升模型面向亚洲人脸的精度,所采用的是亚洲人脸数据来训练。
所以,本发明的系统采用适用于嵌入式设备的深度网络,而且通过利用亚洲人脸数据以提升模型精度。
需要说明的是,以上仅为本发明的优选实施例,但发明的设计构思并不局限于此,凡利用此构思对本发明做出的非实质性修改,也均落入本发明的保护范围之内。