人工智能与未来 课件 8.3人脸识别原理_第1页
人工智能与未来 课件 8.3人脸识别原理_第2页
人工智能与未来 课件 8.3人脸识别原理_第3页
人工智能与未来 课件 8.3人脸识别原理_第4页
人工智能与未来 课件 8.3人脸识别原理_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ComputerVision第8章

计算机视觉2035主讲:王红梅目录CONTENTS8.18.28.38.4计算机视觉那些事计算机视觉概述人脸识别原理*人脸识别实现8.506扩展:空间智能讨论:在众多的生物识别技术中如:指纹、声纹、掌纹、虹膜、人脸识别、DNA等生物识别技术中,为什么人脸识别最受待见?人脸识别由于其方便、友好、符合人类传统识别方式(人与人之间就是通过观察面孔信息来识别对方身份的)、非接触、成本较低、稳定性高等优点,在众多生物识别技术中脱颖而出。讨论:人如何分辨面孔?大脑中有个梭状回的特殊脑区,负责面孔辨识如果人的梭状回区天生较弱,或受过脑损伤,有可能分辨不出人脸,俗称“脸盲症”。

要完成人脸识别,一般的处理过程可分为图像采集、人脸定位、特征提取和特征对比等过程。8.3.1人脸识别基本流程是什么?1.图像采集是指通过传感器如摄像头等把客观世界中的信息采集到计算机上。8.3.1人脸识别基本流程是什么?2.人脸定位是指检测到人脸并确定人脸的位置。8.3.1人脸识别基本流程是什么?3.特征提取是从图像中提出特征,如人脸的轮廓、嘴、眼、鼻的位置等,好方便下一步的分类或识别。8.3.1人脸识别基本流程是什么?4.特征对比就是根据已经训练的特征模型,从特征库中找出和提供的人脸相似的人脸,当相似度到达一直阈值,就认为是相同的脸。8.3.1人脸识别基本流程是什么?

不同的应用场景对相似度的要求也不尽相同。如家里的门锁、手机支付相似度要求就很高,而普通的签到对人脸识别可能就会要求低一些。8.3.1人脸识别基本流程是什么?用专业术语叫什么?阈值

实际上在人脸识别前,还有个模型训练的过程,模型训练的过程和人脸识别过程很像,也有图像采集、预处理,特征提取过程,不同的是在特征提取时:数据集不同。模型训练的特征提取一般会用专门的训练数据集,而人脸识别的特征提取用的是测试数据集,这个测试数据集也可以理解为就是要识别的对象。8.3.1人脸识别基本流程是什么?8.3.1人脸识别基本流程是什么?人脸识别要提取特征,你觉得应该提取什么特征呢?怎么提取呢?我们会发现关于图像特征的提取无非是颜色特征、形状特征、纹理特征、空间关系特征等等,每一种特征都有相应的检测和提取方法。

实际上提取什么特征决定于要识别什么,假如要进行人脸识别则需要提取人脸的轮廓,眼、嘴、鼻等的特征。而在提取特征之前,必须先检测到人脸;在特征提取之后,又需要根据提取的特征进行识别。我们把整个过程通常成为检测方法。

下面将详细介绍人脸检测方法中的Haar级联检测器方法(HaarFeature-basedCascadeClassifier,简称Haar级联检测器)8.3.1人脸识别基本流程是什么?8.3.2

Haar级联检测器人脸检测方法基于知识的检测方法基于统计的检测方法基于深度学习的检测方法检测器官特征和器官之间的几何关系检测的是像素之间的相似度,根据相似度量来判断人脸是否存在通过对大量的脸部样品集和非脸部样品集的学习产生分类器8.3.2

Haar级联检测器

目前,检测技术(目标检测)已经进入深度学习时代,但传统的方法还有必要了解,一方面由于深度学习也是基于传统方法,如级联CNN,就基于VJ检测器(ViolaJonesDetector,简称VJ检测器)中的级联结构,另一方面,传统方法由于不需要复杂软、硬件环境支持,有一定的应用场景。8.3.2

Haar级联检测器在VJ检测器基础上,发展出了OpenCV中的Haar级联检测器,Haar级联检测器是广泛使用的检测器之一。Haar级联检测器是基于统计的方法,将人脸看作一个整体,也就是二维像素矩阵,从统计的观点通过大量人脸图像样本来构造人脸模式空间,从而根据相似度来判断人脸是否存在。如通过分析5000张人脸照片,发现“眼睛比脸颊暗”、“鼻梁比两侧亮”、“嘴巴比周围暗”这样的规律。8.3.2

Haar级联检测器Haar级联检测器由Haar特征、积分图、AdaBoost算法和级联分类器组成,可表示为:Haar级联检测器=Haar特征+积分图+AdaBoost算法+级联分类器1.使用Haar特征做检测,提供基础特征;2.使用积分图对Haar特征求值进行加速;3.使用AdaBoost算法,训练区分人脸和非人脸的强分类器;4.使用级联把强分类器联到一起,提高准确率。8.3.2

Haar级联检测器Haar特征想象你是一位侦探,要在茫茫人海中找到目标人物。Haar级联检测器就像一支训练有素的侦探小分队,通过层层筛选快速锁定嫌疑人。积分图AdaBoost算法级联分类器把目标人物画个像Haar级联检测器侦探小分队模板发明家侦探的“速算神器”侦探的“层层安检”“精英侦探团”类比8.3.3使用Haar特征进行检测

1.Haar特征模板Haar是一种特征描述,这种描述用Haar特征模板来实现,这种特征模板用于描述图像局部灰度变化。

X2

Y2

X3

Y3

X2-Y2

边缘特征

边缘特征

线性特征

线性特征

对角特征8.3.3使用Haar特征进行检测

1.Haar特征模板

如我们要检测人脸中的轮廓,就可以用边缘特征,通过计算模板两边白色像素框和黑色像素框的像素的灰度差值,就知道是轮廓(差值大)。8.3.3使用Haar特征进行检测

2.进行检测

怎么检测呢?在实际中,Haar特征模板可以在检测子窗口,通过缩放+平移产生一系列子特征。举个现实中类似套娃找匹配的例子8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(1)首先把原图像按一定尺寸,划分成子窗口(这里划分为9个子窗口),子窗口按一定步长在图像中滑动。8.3.3使用Haar特征进行检测

2.进行检测检测过程

X2

Y2

X3

Y3

X2-Y2

边缘特征

边缘特征

线性特征

线性特征

对角特征X3的不同比例

(2)然后在每一个固定子窗口内,通过该层所有特征模以不同比例进行匹配。(3)在匹配过程中,基本特征模板会尝试检测不同的位置。8.3.3使用Haar特征进行检测

2.进行检测检测过程

(2)然后在每一个固定子窗口内,通过该层所有特征模以不同比例进行匹配。(3)在匹配过程中,基本特征模板会尝试检测不同的位置。

X2

Y2

X3

Y3

X2-Y2

边缘特征

边缘特征

线性特征

线性特征

对角特征X3的不同比例8.3.3使用Haar特征进行检测

2.进行检测检测过程

最后对该层级所有匹配结果进行综合统计。8.3.3使用Haar特征进行检测

2.进行检测模版1倍2倍3倍4倍5倍6倍7倍8倍X2√√√√√√√√Y2√√√√√√√√X3√√√√√

Y3√√√√√

X2-Y2√√√√√√√√缩放倍数的问题:举例:对于16×16子窗口,Haar特征模板以自己小于等于16×16子窗口的任何倍数为基准滑动过一遍。8.3.3使用Haar特征进行检测

2.进行检测对于X3特征模版,原始大小为3×1,在24×24的子图像窗口上进行滑动。水平可滑动22步,垂直可滑动24步,共有22×24个特征值,8.3.3使用Haar特征进行检测

2.进行检测

一个模板可以以不同的比例在不同的位置上进行滑动,每滑动一次会产生一个特征值。这样产生的特征值就会有模版类型(目前有5种类型的模板,实际更多)、大小和位置三个要素来决定。不同子窗口大小内,Haar特征的总数量窗口大小36×3630x3024x2420x2016x16特征数量8162643947251623667846032384检测出这样大量的值,怎么处理呢???8.3.4Haar特征值的计算和积分图

1.Haar特征值Haar子特征值=白色矩形像素灰度值之和-黑色矩形像素灰度值之和如果是X3或Y3模版,黑色要乘以2,以平衡各个部分的比例。特征值的正负和大小反映了矩形区域之间的亮度差异:正值:白色区域比黑色区域更亮。负值:白色区域比黑色区域更暗。绝对值大小:亮度差异的强度。8.3.4Haar特征值的计算和积分图

1.Haar特征值Haar特征值反映了图像的灰度值变化情况,如眼睛要比脸颊颜色深,鼻子两侧颜色要比鼻梁颜色深,嘴巴要比周围颜色深等。因此可以把特征模版“蒙”在要识别的图像上,通过水平和垂直滑动的来确定对象的特征轮廓。8.3.4Haar特征值的计算和积分图

1.Haar特征值

类别不同的模版,再改变大小、位置的变化,在子窗口中滑动,每滑动一次就会产生一个特征值,如X3在6*6像素大小的子窗口移动就可以产生24个特征值。25392035100115503865112102050259025603060407040508.3.4Haar特征值的计算和积分图

1.Haar特征值

要是在24*24像素大小的检测窗口内矩形特征值就达16万之多。这么多特征值,计算量(计算是为了得到特征)自然很大,为提高计算速度引入了积分图,为提高选取效率引入了AdaBoost级联分类器。8.3.4Haar特征值的计算和积分图

2.积分图

在上面特征模板的移动过程中,会产生大量的特征值,然后每次都要对这些值进行遍历才能找到对应的特征值。

积分图是提高图像特征值计算效率的方法。8.3.4Haar特征值的计算和积分图

2.积分图

主要的思想是图像某点积分图的值,是某点与起点作为对角点所形成的矩形区域像素之和。(a)原特征值

(b)积分图特征值8.3.4Haar特征值的计算和积分图

2.积分图502=25+3+9+35+100+115+38+65+112287=25+3+9+35+100+115(a)原特征值

(b)积分图特征值8.3.4Haar特征值的计算和积分图

3.计算Haar特征值

积分图一旦计算完成,就可以轻易求出原图像任意区域的像素之和,就是对象的特征值。比如计算I部分的特征值:

I特征值=I(I)+I(E)−I(H)−I(F)。

这里的I特征值指的是对应I位置的积分图值。ABCDEFGHI8.3.4Haar特征值的计算和积分图

3.计算Haar特征值利用这种方法,可以把积分图特征值计算出来,原特征值

积分图特征值

计算出来的最终特征值(边缘特种)100=163+25-60-2810011550-3006511210-225502590-185-218-261-170767这个表的计算位置并不是从第一个开始,因为是子窗口。8.3.4Haar特征值的计算和积分图

4.Haar特征值的含义

在人脸检测中,左侧特征可对应人眼区域,右边则无意义(因为人脸中,眼睛、眉毛、鼻子、嘴巴的特征都没有和右图特征一致的)。8.3.4Haar特征值的计算和积分图

4.Haar特征值的含义

通过这种的方法,我们可以逐步根据各个特征模版在子窗口的滑动进而提取各个部分的特征,从而得到人脸的特征。

上面的方法是通过修改特征模版的比例,来进行滑动产生特征值。其实也可以通过缩放图像,形成不同大小的图像金字塔如图8.3.8所示,让模版不变,在不同大小的图像上同样通过滑动来产生特征。8.3.4Haar特征值的计算和积分图

其实不论是滑动模板,还是滑动图像,其目的都是为了能找到特征。

你可以想象,你有一套俄罗斯套娃和一个球,球的大小比最大的俄罗斯套娃小,比最小的俄罗斯套娃大,为了找到球刚刚好可以放进的那个俄罗斯套娃,你可以从最小的套娃开始,一个一个的试,当最小的不行,就换一个大一点点的,如果不行,继续换一个再大一点点的,总能找到刚刚好能放进去的那个。8.3.4Haar特征值的计算和积分图讨论:这种缩放是随意的吗?如果不是,是否有比例呢?如果有比例,比例一般是多少?你一般解决复杂问题的方法是什么?8.3.5AdaBoost级联分类器要对图像目标进行检测和识别时需要对多个特征(多个条件)进行判断,直接判断过程复杂,分类器很难设计,所以才用级联的方式容易实现。例如,在识别一个图片中的动物是否是狗时,简单而快速的方法是先看是否有四条腿,再进一步看看是否有一个头,最后看看是否长有毛等,每一个判断都很简单,逐步深入,很快就能完成对狗的识别。8.3.5AdaBoost级联分类器1.AdaBoost算法AdaBoost算法是将弱学习算法提升为强学习算法的过程,主要思想是“三个臭皮匠顶个诸葛亮”。8.3.5AdaBoost级联分类器1.AdaBoost算法AdaBoost算法的核心思想是针对不同的训练数据集训练同一弱分类器,再把这些弱分类器集合在一起,构成一个强分类器。8.3.5AdaBoost级联分类器腿头毛AdaBoost算法通过调整训练数据集的权重,使得每个弱分类器专注于之前分类器未能正确分类的样本,从而逐步提高整体的分类性能‌。8.3.5AdaBoost级联分类器----1.AdaBoost算法随意画一条分类线弱分类器1AdaBoost算法通过调整训练数据集的权重,使得每个弱分类器专注于之前分类器未能正确分类的样本,从而逐步提高整体的分类性能‌。8.3.5AdaBoost级联分类器----1.AdaBoost算法加大未能正确分类的样本的权重弱分类器1AdaBoost算法通过调整训练数据集的权重,使得每个弱分类器专注于之前分类器未能正确分类的样本,从而逐步提高整体的分类性能‌。8.3.5AdaBoost级联分类器----1.AdaBoost算法再绘制一条分类线弱分类器1弱分类器2AdaBoost算法通过调整训练数据集的权重,使得每个弱分类器专注于之前分类器未能正确分类的样本,从而逐步提高整体的分类性能‌。8.3.5AdaBoost级联分类器----1.AdaBoost算法弱分类器1弱分类器2加大未能正确分类的样本的权重AdaBoost算法通过调整训练数据集的权重,使得每个弱分类器专注于之前分类器未能正确分类的样本,从而逐步提高整体的分类性能‌。8.3.5AdaBoost级联分类器----1.AdaBoost算法弱分类器1弱分类器2再绘制一条分类线弱分类器3AdaBoost算法通过调整训练数据集的权重,使得每个弱分类器专注于之前分类器未能正确分类的样本,从而逐步提高整体的分类性能‌。8.3.5AdaBoost级联分类器----1.AdaBoost算法弱分类器1弱分类器2弱分类器构成了强分类器弱分类器38.3.5AdaBoost级联分类器----1.AdaBoost算法弱分类器1弱分类器2弱分类器构成了强分类器弱分类器3思考问题,怎么确定实线问题(强分类器)?激活函数(分段函数)????8.3.5AdaBoost级联分类器----1.AdaBoost算法思考问题,怎么确定实线问题?激活函数(分段函数)旋转一下角度,就可以了后一个模型的训练永远是在前一个模型的基础上完成!策略是通过提高前一轮分类器分类错误的样本的权值,降低分类正确的样本权值,对于那些没有分类正确的样本会得到后面分类器更多的关注。然后可以产生很多的弱分类器,通过多数加权投票组合这些弱分类器,加大误差率小的分类器,减少误差率大的分类器,使其在表决中起到较少的作用。8.3.5AdaBoost级联分类器----1.AdaBoost算法8.3.5AdaBoost级联分类器----1.AdaBoost算法练习一下,这个怎么寻找弱分类和强分类器AdaBoost算法的基本步骤:(1)‌初始化权重‌:为每个训练样本分配相等的初始权重。(2)‌训练弱分类器‌:根据当前样本权重训练一个弱分类器,并计算其错误率。(3)‌更新权重‌:增加错分类样本的权重,使后续弱分类器更关注这些样本,减少正确分类样本的权重。(4)‌组合分类器‌:将所有弱分类器的加权结果组合起来,形成最终的强分类器。(5)‌迭代‌:反复执行以上步骤,直到达到所需的迭代次数或满足其他停止条件‌8.3.5AdaBoost级联分类器----1.AdaBoost算法训练数据结合策略强学习器模型1带权重1的训练集弱学习器1基于学习的误差率1更新学习器权重1模型2带权重2的训练集弱学习器2基于学习的误差率2更新学习器权重2模型n带权重n的训练集弱学习器n基于学习的误差率n更新学习器权重n根据权重1更新样本权重2根据权重n-1更新样本权重n8.3.5AdaBoost级联分类器----1.AdaBoost算法

弱分类器对所有区域完整计算,效率低,为提升效率,采用基于决策树的级联分类器。8.3.5A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论