python opencv 怎么利用csv文件训练人脸识别模型代码
1.1.介绍Introduction
从OpenCV2.4开始,加入了新的类FaceRecognizer,我们可以使用它便捷地进行人脸识别实验。本文既介绍代码使用,又介绍算法原理。(他写的源代码,我们可以在OpenCV的opencvmodulescontribdocfacerecsrc下找到,当然也可以在他的github中找到,如果你想研究源码,自然可以去看看,不复杂)
目前支持的算法有
Eigenfaces特征脸createEigenFaceRecognizer()
Fisherfaces createFisherFaceRecognizer()
LocalBinary Patterns Histograms局部二值直方图 createLBPHFaceRecognizer()
下面所有的例子中的代码在OpenCV安装目录下的samples/cpp下面都能找到,所有的代码商用或者学习都是免费的。
1.2.人脸识别Face Recognition
对人类来说,人脸识别很容易。文献[Tu06]告诉我们,仅仅是才三天的婴儿已经可以区分周围熟悉的人脸了。那么对于计算机来说,到底有多难?其实,迄今为止,我们对于人类自己为何可以区分不同的人所知甚少。是人脸内部特征(眼睛、鼻子、嘴巴)还是外部特征(头型、发际线)对于人类识别更有效?我们怎么分析一张图像,大脑是如何对它编码的?David Hubel和TorstenWiesel向我们展示,我们的大脑针对不同的场景,如线、边、角或者运动这些局部特征有专门的神经细胞作出反应。显然我们没有把世界看成零散的块块,我们的视觉皮层必须以某种方式把不同的信息来源转化成有用的模式。自动人脸识别就是如何从一幅图像中提取有意义的特征,把它们放入一种有用的表示方式,然后对他们进行一些分类。基于几何特征的人脸的人脸识别可能是最直观的方法来识别人脸。第一个自动人脸识别系统在[Kanade73]中又描述:标记点(眼睛、耳朵、鼻子等的位置)用来构造一个特征向量(点与点之间的距离、角度等)。通过计算测试和训练图像的特征向量的欧氏距离来进行识别。这样的方法对于光照变化很稳健,但也有巨大的缺点:标记点的确定是很复杂的,即使是使用最先进的算法。一些几何特征人脸识别近期工作在文献[Bru92]中有描述。一个22维的特征向量被用在一个大数据库上,单靠几何特征不能提供足够的信息用于人脸识别。
特征脸方法在文献[TP91]中有描述,他描述了一个全面的方法来识别人脸:面部图像是一个点,这个点是从高维图像空间找到它在低维空间的表示,这样分类变得很简单。低维子空间低维是使用主元分析(Principal Component Analysis,PCA)找到的,它可以找拥有最大方差的那个轴。虽然这样的转换是从最佳重建角度考虑的,但是他没有把标签问题考虑进去。[gm:读懂这段需要一些机器学习知识]。想象一个情况,如果变化是基于外部来源,比如光照。轴的最大方差不一定包含任何有鉴别性的信息,因此此时的分类是不可能的。因此,一个使用线性鉴别(Linear Discriminant Analysis,LDA)的特定类投影方法被提出来解决人脸识别问题[BHK97]。其中一个基本的想法就是,使类内方差最小的同时,使类外方差最大。
近年来,各种局部特征提取方法出现。为了避免输入的图像的高维数据,仅仅使用的局部特征描述图像的方法被提出,提取的特征(很有希望的)对于局部遮挡、光照变化、小样本等情况更强健。有关局部特征提取的方法有盖伯小波(Gabor Waelets)([Wiskott97]),离散傅立叶变换(DiscreteCosinus Transform,DCT)([Messer06]),局部二值模式(LocalBinary Patterns,LBP)([AHP04])。使用什么方法来提取时域空间的局部特征依旧是一个开放性的研究问题,因为空间信息是潜在有用的信息。
1.3.人脸库Face Database
我们先获取一些数据来进行实验吧。我不想在这里做一个幼稚的例子。我们在研究人脸识别,所以我们需要一个真的人脸图像!你可以自己创建自己的数据集,也可以从这里(http://face-rec.org/databases/)下载一个。
AT&TFacedatabase又称ORL人脸数据库,40个人,每人10张照片。照片在不同时间、不同光照、不同表情(睁眼闭眼、笑或者不笑)、不同人脸细节(戴眼镜或者不戴眼镜)下采集。所有的图像都在一个黑暗均匀的背景下采集的,正面竖直人脸(有些有有轻微旋转)。
求助大神们给个人脸识别的训练样本集
机器习模式识别等领域般需要本独立三部训练集(train set)验证集(validation set ) 测试集(test set)其训练集用估计模型验证集用确定网络结构或者控制模型复杂程度参数测试集则检验终选择优模型性能何典型划训练集占总本50%其各占25%三部都本随机抽取
人脸精确识别的数学模型
技术研发
人脸识别技术是基于深度学习方法,结合海量训练数据集,在CUDA并行计算平台上深度学习并提取人脸特征,实现基于活体人脸对比和检索,高清晰人脸实时标定和抓拍。系统可实现毫秒级检索大规模人脸数据库,迅速给出身份认证。
全家桶方案:
1. 本地服务器方案;
2. 云服务器方案;
3. android单机版;
4. 网络摄像机IPC方案;
5. 防照片攻击;
人脸识别 1:N 与 1:1
无需任何交互操作,“刷脸”即可实现身份识别;
主动采集,自动识别,无需预操作和姿势位置配合;
提升用户体验,引领传统人脸识别走向人工智能和深度学习平台;
人脸跟踪
实时视频流中实现实时人脸跟踪,为应用或设备提供了更多想象空间。创新的人机交互、客户关注度跟踪、门禁防尾随、出入口人员动态识别、陌生人员预警等等,都可以一一实现。
人脸检测
利用深度学习算法,基于大量素材的机器学习,不论是视频还是图片,人脸检测技术都能够快速准确 识别人脸。即使在复杂环境、多人脸、光线不佳、大角度人脸的情况下也能够有优异的表现。
性别与年龄识别
人脸识别系统中的性别与年龄模块,可以从图片或者视频流中精确快速获取到人物的性别与大致年龄。
人脸关键点
动态人脸关键点检测,精准定位视频中人脸关键部位并精准跟随,明确人脸轮廓及眉、眼、鼻、嘴等各关键部位。 即使低头、侧脸等条件下也能够精准检测,可应用于防照片攻击动态识别、活体识别等特定应用场景。
防照片
双目摄像机方案,有效防止照片攻击,在门禁等特定高等级应用场景,杜绝各种照片、头套等非活体进行攻击识别。 适用于各种高等级安防要求场所。 动作识别方案更可以在不增加硬件成本的基础上,有效防止照片攻击,根据提示张嘴或眨眼即可;
活体检测(3D结构光)
3D结构光活体检测,通过主动光发射,在物体上形成光栅,并接受光反射信息进行活体分析。 3D结构光进行活体检测是,不依赖自然光照即可完成。 3D结构光成像稳定,抗攻击能力强,并具备超强的图像噪声抗干扰能力,是当下最前沿的活体检测技术。
人脸识别SDK 人脸识别动态服务器 人脸识别静态服务器 人证通离线版人脸识别
人脸关键点 人脸识别摄像机 单机版人脸识别 人脸识别闸机 静默活体检测
人脸检测
全部评论