带你一步一步完成深度学习和物体检测的人脸识别识别图片中的人脸3、提取人脸数据4、保存人脸数据5、从图片或视频中检测人脸6、提取人脸数据7,将识别出的人脸与数据库中的数据进行对比,人脸识别上面的人脸识别过程存在一定的问题。当原始人脸数据比较大时,数据库中的人脸数据肯定更多。在进行人脸识别时,将识别出的人脸与数据库中的数据进行比对,必然会消耗大量的时间,对实时人脸识别的速度影响很大。受CNN卷积神经网络的启发,我们使用神经网络来训练人脸数据,label是人脸的名字,data是人脸数据,神经网络是用来训练人脸数据的,这样当数据量比较大,神经网络识别的速度和准确率越高,大大提高了人脸识别的速度和准确率,所以人脸识别的过程就变成了下面的过程:1.人脸图片(原始数据)的采集2.从图片人脸识别3.人脸数据提取和存储4.人脸数据和人脸标签的神经网络训练,保存训练模型5.从图片或视频中检测人脸6.神经网络对识别人脸的预测和人脸识别本期介绍人脸数据的提取1.原始人脸图片的采集要进行人脸识别,需要采集用户的人脸图片。我们从网站上搜集了多位名人的照片,进行本期文章的分享。首先在目录文件下新建一个dataset文件夹,里面放多个文件夹。每个文件夹都是一张明星的照片。文件夹名称是星星的名字。目录类似如下:2.设置人脸检测模型和人脸提取嵌入数据模型人脸检测模型,我们直接使用ResNet-10和SSD算法在caffe上训练模型。人脸数据抽取和嵌入模型使用OpenFace的openface_nn4.small2.v1.t7模型。这个模型是在pytorch上训练的,可以直接使用opencv加载。人脸检测模型和人脸提取嵌入数据模型3.初始化图片地址,初始化人脸数据数组和人脸名称标签数组初始化人脸数据4.遍历整个数据集目录,进行图像处理30行,提取文件夹名称,这个名字就是后面需要保存的label值33-35行,读取图片resize38行计算出图片的blob值43-44行,将图片的blob值放入人脸检测用于处理第47行人脸检测的神经网络。当图片中检测到人脸时,神经网络的len值会大于050行。当检测到人脸时,我们提取人脸的置信度。第53行将人脸的置信度设计为0.555-59行,计算人脸在图片中的位置,提取人脸大小61-62行,当人脸大小小时,我们忽略人脸信息,并选择图片中人脸较大的人脸64OK,当人脸图片尺寸满足要求时,我们在第67-68行计算人脸的blob值,将人脸图片的blob值传递给人脸71-72行embeddingdataneuralnetwork,将人脸数据的标签和人脸保存到数组中5.保存人脸数据遍历完成后,将dataset中的人脸数据全部保存到预先建立的数组中.第77行,新建一个字典数据,并将人脸标签和人脸数据保存到本地,方便后期神经网络的训练。以上5个步骤就完成了整个人脸的数据采集。当然,如果后期想要有更高的人脸识别准确率,就需要采集大量的人脸数据。这部分文章是人脸识别的第一部分,人脸数据的采集和提取,后面会分享人脸识别系统的神经网络训练和人脸识别。
