【《眼动追踪算法研究》8700字(论文)】_第1页
【《眼动追踪算法研究》8700字(论文)】_第2页
【《眼动追踪算法研究》8700字(论文)】_第3页
【《眼动追踪算法研究》8700字(论文)】_第4页
【《眼动追踪算法研究》8700字(论文)】_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

眼动追踪算法研究摘要眼睛是我们获取信息最直接的方式。我们需要对人脸检测,对人眼区域进行提取,对瞳孔中心进行定位,对视线方向进行判断等方面进行研究,对一张正脸照进行人脸检测和特征点检测,先了解各种人脸检测和特征点检测方法,最终选中了基于Dlib库的人脸检测算法以及进行人脸特征点检测,根据特征点提取出人眼区域,再使用基于图像梯度的瞳孔定位算法定位瞳孔中心并进行初步的视线方向判断。关键词:眼动追踪,人脸检测,瞳孔定位,视线估计目录TOC\o"1-3"\h\u263581.绪论 634011.1眼动追踪算法的研究背景及意义 6139301.2眼动追踪算法的国内外研究现状 6148221.3眼动追踪算法的可行性分析 7310462.眼动追踪算法基础概念 8190352.1人眼结构和视觉原理 890692.2眼动追踪算法 814032.3眼动追踪算法的发展及应用 8248222.3.1人机交互领域的应用 9115882.3.2交通领域的应用 9166482.3.3商业领域中的应用 973942.3.4医学领域的应用 9862.3.5教育领域的应用 9316482.4眼动追踪技术的各种实现方法 10145252.4.1瞳孔定位技术 10216732.4.2判断视线技术 1198733.人脸检测并获取眼睛区域 1385793.1人脸检测 13311333.1.1Harr-like特征 1314493.1.2HaarCascade级联分类器 1358653.1.3Dlib人脸检测 13111843.2脸部特征点检测 1465783.3眼睛区域提取 14309393.4实验结果 1654444.人眼瞳孔定位算法研究与实现 18128124.1基于图像梯度瞳孔定位算法查漏补缺 18262674.2在已获取特征点基础上的视线方向判断 2017773参考文献 2318002附录 251.绪论1.1眼动追踪算法的研究背景及意义感觉是判断物体与物体之间联系的一种方法,是使人的心与周围建立起相应关系的一种方式,眼睛会接收大量信息,根据接受的信息大脑会发出相应指令。20世纪30年代,眼动追踪算法被定义,但研究进展缓慢,随着科技不断发展,图像处理技术逐渐成熟,更多的人注意到眼动追踪技术:追踪眼睛的运动轨迹,得到人眼运动的特性,根据研究图像还可以获取人对事物最主观的看法,更科学有效的了解人和物之间的关系,人眼是运动的,在不同的情境下人会拥有不同的反应获得不同的信息,通过此研究可以科学有效真实的了解人的心理活动,更能预判人的行为分析人的行为动机。1.2眼动追踪算法的国内外研究现状研究眼动追踪技术手段一直在改变,由硬件渐渐偏向软件。硬件装置容易被人自身影响但识别精度高且反应迅速。以软件为基础的技术更受喜爱,如图1.2.1是以软件为基础的眼动追踪技术流程图。1.2.1眼动追踪技术流程图以前图像处理技术具有较强的静态图像处理特性。1997年,第一个VSAM(视觉监控)校园监控系统由卡内基梅隆大学建立,实现对可使用人员的跟踪实时监控是系统W4,该系统由马里兰大学开发,雷丁大学研究的交通监控系统,可以实现车辆和行人交互检测。1986年起我们主要利用国外技术,后来随着中国的不断发展,跟随世界的脚步,中国科学院研制了一套眼动自动测量系统,该系统应用了角膜和皮革反射原理:用红外光照射眼睛,角膜和巩膜会反射不同量的红外光;西安电子科技大学研究出一种可以精确定位瞳孔中心的基于头盔的眼球牵引器,。北京科技大学研究发现了三维视觉跟踪方法,这是一种针对静态用户头部的眼球跟踪算法。1.3眼动追踪算法的可行性分析眼动追踪技术还要继续深入,对于普通百姓来说眼动追踪技术还很陌生,精度高的眼动仪贵不便,性价比不高;简易的眼动追踪系统在精度和实用性不高。因此虽然国内外对眼动追踪技术的研究已经进行并且有了这方面的了解,但是世界对眼动追踪依旧需要要保持好奇心,继续努力发展眼动追踪技术。另外在研究设计过程中会有一些状况,比如在眨眼时人眼运动导致获取图像不清晰难以定位眼球位置。另外在不同光照的下,对视线方向与注视点估计存在误差。使用者可能会四处张望,不能保证自己精神的集中,这个时候眼球的运动和视线的移动是没有研究意义的,所以,判断使用者是否是有意识的发出指令是比较难的。

眼动追踪算法基础概念2.1人眼结构和视觉原理如图2.1.1描述,这是人眼的生理结构,人眼近似一个球,由屈光系统和感光系统两部分组成,眼球壁、眼内腔和内容物、神经、血管等组织都属于它。图2.1.1人眼生理结构我们把人眼类比为照相机,角膜:镜头前的滤光镜,起着保护的作用。巩膜:照相机的外壳,起保护的作用。瞳孔:照相机的光圈,可以调节景深。晶状体:照变焦镜头,负责把像聚焦,投射到视网膜上。脉络膜:照相机的暗箱。视网膜:照相机内的胶卷,是影像成形的地方。各个位置相辅相成,任何部分出现问题,都会影响清晰影像的形成。2.2眼动追踪算法我们将人的眼睛看作一个球体,眼动可以分为:凝视、跳动、平滑移动以及眨眼。凝视是指眼睛的焦点长时间停留在某个物体上。在此期间其实眼睛也是在运动的,不过比较微小,大体上可以分成三种运动:自颤,慢漂移和微跳动。跳动指注视的目标会从一个地方跳到另一个更感喜好的地方,此时就会发生眼跳运动,这个过程速度是非常快的。3.平滑移动。当观察的物体在运动时,眼睛会随着物体的运动而发生运动。平滑追踪的过程中,人的追踪能力水平高于竖直,下高于上形成闭环。4.眨眼。是一种不自觉的保护动作,可以缓解眼睛的肌肉压力,如果头部保持不动,眼睛转动可以改变视线方向。2.3眼动追踪算法的发展及应用早期眼动追踪的研究主要使用观察法,通过直接观察获取结果,这种方法得到的结果很粗略。后来人们研究出一种自动化的方式:通过橡胶吸盘直接与眼睛接触得到记录数据,这种方法非常不舒服并且不方便。还有一种方法是使用照相机拍摄眼睛运动的连续图像,但眼电电位的记录不是很准确。最早的追踪电子设备电磁巩膜搜索线圈,该方法需要将仪器嵌入隐形眼镜中,会对人造成很大伤害。最终经过人们不断地研究探索,人们发明了非侵入式眼动追踪方法。眼动追踪技术也被逐渐应用到各个领域当中。2.3.1人机交互领域的应用人机交互是指用户通过人机交互界面与系统交流,常用的眼动设备有头戴式眼动仪,开源设备还有远程眼动仪。从早期通过输入输出与计算机交流开始,到现在自然的人机交互,人们的研究越来越注重以人为中心。人的眼睛是接受外界信息的重要渠道,通过对人眼的追踪可以获取人的视觉信息,判断使用者的意图。2.3.2交通领域的应用随着人民生活水平逐渐提高,几乎每家每户都被普及了汽车,汽车的使用者多了,这就会导致交通事故的增多,除去外界的因素,司机本人的状态对是否会发生事故有很大的影响,通过人眼轨迹的追踪,可以科学有效的判断司机的疲劳状态,能有效避免交通事故,也为已发生的交通事故处理提供了方便,这对飞行员也同样适用2.3.3商业领域中的应用眼动追踪技术在商业领域非常实用,是获取客户信息的有效手段,通过对眼睛运动轨迹的追踪获取运动数据根据运动数据了解消费者的喜好并对此做出调整。例如在超市,我们可以借助有关数据帮助超市合理上货摆货,有针对性的改进包装缺陷。在淘宝等手机商店界面可以判断消费者喜好并根据获取信息推荐商品,有效的增加消费量。2.3.4医学领域的应用在医学治疗领域,英国卡迪夫大学地理与规划学院做了相关的研究,该院的研究人员对于利用眼动追踪技术研究控制亚历克斯患者行为做出的反馈具有杰出贡献。美国威视公司开发的VISXSTARS3可以治疗远视和散光。在心理学方面宋杰等发现低焦虑者更关心积极的信息,高焦虑者更关心消极的信息。根据追踪患者的眼睛运动轨迹可以分析他们的心理活动,医生可以根据相关数据科学帮助病人更快更好的治疗。2.3.5教育领域的应用在教育领域,斯洛伐克科技大学专门对此做出了研究,为了研究学生的学习状态以及生活状态键入了眼动追踪技术,老师可以随时关注学生在发现并解决问题中注意力集中程度、得到的学习成果以及在此期间心理变化情况,以此可以确定出学生感兴趣的区域。2.4眼动追踪技术的各种实现方法2.4.1瞳孔定位技术1.眼睛区域求质心法xp=xω(xp)=N(I(其中眼睛区域用Ω表示,灰度图用I表示,N表示均值μ,方差σ2的2.基于Hough变换圆的瞳孔中心定位方法先对清晰图像进行二值化处理然后进行边缘提取,使用Hough变圆,圆心近似瞳孔中心。3.基于主动轮廓线定位方法该算法需要计算很长时间,会影响实验进程,有些难懂,不建议使用。4.基于局部阈值分割法的定位方法我们先用公式取出圆的边缘:max(r,检测出圆形后,使用局部阈值分割对红外图像进行二值化操作,根据几何平均得到瞳孔中心。5.几何法定位技术该方法旨在区域内使用Sobel算子提取瞳孔边缘轮廓线。图2.4.1构造图在轮廓线上任选三点构造三角形并作出外接圆,外接圆的中心近似瞳孔中心,如图2.4.1构造图。6.基于图像梯度法的定位技术图像梯度向量场的向量指向中心,使用下式找到平均值最大的点近似为瞳孔中心:除此之外还有很多对瞳孔定位的相关算法。2.4.2判断视线技术1.模板匹配法假设有一个Img,在Img上叠放一个模板,模板在1≤之间移动。求误差,E,i,j的最小值作为最终值,i32.坐标系变换法该方法使用电磁头动追踪系统检测头部相对地面的方向位置,再使用角膜的偏移等方法得到眼睛的位置。3.最小二乘法设坐标(Xa,Ya)为校准点,Xb,Yb为中心坐标偏移量,映射关系f:Xb,Yb->Xa,Ya最小的均值误差可以是:ε=(xs−Ma)T(其中M:M=1Y其中a,b:a=M−X3.人脸检测并获取眼睛区域人脸检测使用了基于Dlib的人脸识别算法。人脸特征点检测是为我们获取眼睛区域的位置提供方便,我们可以使用已验证的公式计算拿到矩形区域的左拐点坐标,还有矩形的长和高,这样我们可以获取到没有眉毛等其他区域的干净的眼睛部位。3.1人脸检测被研究出的人脸检测方法多种多样,此次我们在人脸检测方面主要使用了基于dlib人脸检测算法,同时我们也测试了简单的Haarcascade级联器条件下的人脸识别方法,在Viola和Jones等人提出的算法的过程为:先要获取一个强分类器,根据特定的物体获取一些正确视图和一些非正确视图将视图调整为相同大小35*35,多个强分类器组成级联分类器,可以加速研究进程。研究过程中我们可以直接通过计算机获取一个完整的Harrcascade级联器然后将该级联器的frontface文件直接复制到研究项目所在文件夹,通过引用直接使用,通过plot-rectangle语句绘制检测到的人脸,利用opencv库获取人脸数据的坐标,绘制矩形框。3.1.1Harr-like特征Harr-like特征分为三类:边缘特征、线性特征和对角线特征,组合成一种由白色和黑色矩形构造的特征模板,该模板的特征值为白色矩形减去黑色矩形像素和。简单来说就是如果以B来判断是否为眼睛,假设眼睛落在黑色区域则两个区值相减为一个特征,如果矩形框落在脸颊部分则差值小。3.1.2HaarCascade级联分类器HaarCascade是一系列用来确定一个对象是否存在在图像中的对比检查,这一过程分为多个阶段,后段以前段为前提,对比检查比较简单,类似检查图像的中心垂直是否比边缘更轻微之类的行为,前期会进行大范围检查,后期则是扣细小区域的问题。3.1.3Dlib人脸检测基于Dlib的人脸检测算法旨在获取特征点然后将特征点转换为特征向量,最后需要计算欧式距离,欧式距离指的是两个向量(点)之间的直线距离,欧氏距离越小,向量距离越接近,差异性越小。设向量x(x1,x2xm)和向量y(y1,y2...ym),则欧氏距离:欧式距离越小两人越相似。上述算法使用Python和OpenCV在Pycharm实现。3.2脸部特征点检测为了定位人眼的位置,我们需要先实现人脸特征点的检测,值得注意的是我们通过dlib.get-frontal-face-detector()来获取人脸检测器,使用dlib.shape-predictor()来预测人脸关键点,使用pycharm创建项目以及新建一个python文件face-landmark-vidio,整理出实现该程序的步骤:首先我们要加入库cv2和dlib,然后我们需要实现打开摄像头步骤,之后我们要获取人脸检测器并获取人脸关键点检测模型,此外我们还要读取视频流并进行灰度转换然后实现接收人脸检测,根据人脸检测绘制每张人脸识别的矩形框确定矩形框的坐标以及使用predictor检测器检测关键点,获取68个关键点,然后需要获取这68个关键点的坐标,可以使用for循环,注意设置点的半径,例如cv2.circle(frame,pt-position,3,(255,0,0),-1),其中关键点大小设置为3,设置-1使得关键点是一个实心圆,最后使用imshow语句将整个效果显示出来。同理,也可使用相似方法实现对图片的人脸关键点检测。但是此次实验我们发现在通过视频获取人脸关键点检测时,如果人脸发生偏移运动则会出现检测不准确的情况,还有待改善。3.3眼睛区域提取通过网络查找学习,我们了解到确定眼睛区域的具体方法是:获取人脸特征点后我们需要定位眼睛区域,定位的结果要尽量排除干扰选项,比如眉毛,每个人的眉毛都不一样,有的弯有的直,有的平有的挑,眉毛左右应各有5个特征点,若无特殊情况是很准确的,左右眼各有6个特征点。这样我们可以判断出不含眉毛的眼睛区域。研究时我们先根据已知特征点找到矩形的左拐点坐标(X,Y),然后确定矩形的宽度W和高度H,最后用这个矩形区域框出眼睛区域图像。我们举个例子,如果我们设左边眉毛的5个特征点从左往右数,每个点的坐标依次为A1(xm1,ym1),A2(xm2,ym2),A3(xm3,ym3),A4(xm4,ym4),A5(xm5,ym5),左眼的以左眼角点为旋转点,以顺时针为旋转顺序的6个特征点坐标依次为B1(xe1,ye1),B2(xe2,ye2),B3(xe3,ye3),B4(xe4,ye4),B5(xe5,ye5),B6(xe6,ye6),则应该如下图3.3.1所示:图3.3.1人脸检测和眼睛区域提取图眉毛眼睛特征点矩形区域的左上角的Y坐标使用下式计算得到:上式中,a,b,c作为设定参数。矩形区域的左上角的X坐标使用公式计算得到:we=xe4XLT=xe1ɑ为0到1的一个小数。然后还要计算矩形的宽度和高度。矩形的高度HH=β宽度WW=λw根据计算得到的做拐点坐标以及矩形的宽和高,这样我们就可以在之前通过实验获取的人脸区域上得到一个矩形,这个矩形只包括了眼睛,不会包含眉毛等其他区域,如图3.3.2人眼区域图3.3.2人眼区域在实际生活中,由于人的运动,人脸的方向发生偏移,对于偏移角度大的图像,如果眉毛的最低点低于眼睛的最高点还使用该方法则会剪出有眉毛的眼睛图像,我们可以在偏移图像旋转纠正后再进行人眼定位,旋转角即为对称眉毛特征点连线与水平线之前的角度。假设两个对称特征点坐标为Al(x1,y1),B2(x2,y2)。那么旋转角应该是:Θ=tan设我们获取的人眼图像中其中一个点的坐标为(x0,y0),经过旋转后,在得到的图像上这个点的对应坐标为(x,y),如果原来的人眼图像中宽W高H,那么旋转之后的人眼图像宽和高可以设为w和h,那么旋转后人眼图像的图像坐标点与原人眼图像中图像坐标点的对应转换如公式在目标图像中对每一个坐标点进行访问进行检查和更新,这样我们就定位了人眼区域,该区域没有眉毛区域,再以上各个公式中类似a,b,c等参数选取需要我们重视,取值不合适会对定位的人眼区域包含不完全或者过多,宽度和高度大致差不多就可以,对最后瞳孔定位的影响不大。

4.人眼瞳孔定位算法研究与实现4.1基于图像梯度瞳孔定位算法查漏补缺之前叙述的基于图像梯度的瞳孔中心定位算法中,定位人眼区域所用图像是同一比例,会因为干扰区域造成实验误差。我们可以探索从三方面优化实验提高准确度:1.使用我们上文中叙述和研究的方法获取眼睛区域的位置,这时我们拿到的是没有眉毛、头发等其他区域的眼睛区域;2.由于我们给眼球的范围值大,但是其它范围的值小,这样就可以有效增大眼球范围,提高定位区域的准确,因此我们引入权值wc;3.在图4.1中,这种情况并不合理,由于位移向量d和梯度向量g方向不同夹角为钝角,这种情况不符合中心点要求,会增加点积的累加数值,从而造成在做定位时的误差,所以我们可以不把这种情况下的点积放入公式4.1中。图4.1可以忽略的位移向量和梯度向量除此之外然后我们要做的就是,借助我们知道的眉毛和眼睛的11个特征点精确的提取出只含有眼睛区域的图像。另外我们发现提取出来的眼睛区域图像中,眼球部分的颜色更深,所以我们萌生了一个想法,可以使用式4.5来对眼睛区域的灰度图像进行取反值操作,对每个像素点都取反值来得到反值图像,此时像眼球等颜色较深的位置会有相对大的值。眼睛原图像和其反值图如图4.2所示。Ii255Ii(公式4.5)图4.2眼睛原图像与其反值图像由于眼球的颜色比较深,眼球区域的反值图像会有较大的值,同时也存在在一些特殊情况下比如在不同的光照下眼角、眼睫毛等也会显得颜色比较深,有较深的颜色值,所以我们需要解决这个隐藏问题,继续改进,我们先要用公式4.6进行操作对反值图像进行二值化,二值化的阈值TD我们定义为图像中亮度最大值乘以0.9。二值化后的图像只保留眼球,眼睫毛等颜色深的区域,不计入其他颜色较浅的区域,在二值化图像中,眼球所在区域的深度颜色最大,相对来说,眼睫毛等区域等深色较小且可以看作棉絮的形状,所以我们要做的是要消除又细小又分散的亮点,对该二值化图像进行先腐蚀操作后膨胀操作,我们称之为开运算,开运算可以去掉细小又分散的区域,接着我们需要规整物体的边线,最好不要改变其面积,然后再进行高斯模糊的操作,这样我们就可以做到消除二值化图像中的眼睫毛等其它不是眼睛的区域,拿到我们想要的权值图。我们得到的权值图大小比例应该与眼睛图像的大小比例一样,并且把描述亮度点的大小看作权值大小。根据我们获取的眼睛矩形区域的精确定位图像,我们发现矩形的高和眼睛的直径数值对等,我们设矩形高度即眼睛的直径为h,那么对于估计点c和梯度点x,只要距离超过h的点积我们可以直接不计入数据。由此我们可得到新的中心定位计算公式4.7:想要改进算法的第三个缺陷,我们需要把图4.6所示的情况,即位移向量和梯度向量不同方向的向量剔除,根据所学知识我们知道如果两个向量形成的夹角为钝角,那么它们的点积会是负值,因此我们把点积不是正数的位移向量和梯度向量放到累加公式中。改进后我们发现眼睛瞳孔中心定位公式应该是:在公式4.2中对于点积数值非正数的位移向量和梯度向量,我们定义它为0来排除它们对定位结果的影响。对眼睛中心的定位我们使用该算法可以得到如图4.3。图4.3瞳孔定位的结果4.2在已获取特征点基础上的视线方向判断在实验过程中人是运动的,所以人眼也在不断进行微运动,眼睛的运动会造成眉毛发生移动,但是眼球移动并不会造成眉毛特征点移动,所以可以以眉毛的特征点作为参考用来估计视线方向。左右上下的实现判断方法是相似的,首先我们得得到一些虽然眼球运动但其位置不发生改变的点的坐标,然后让这个点的坐标与我们实验时得到的瞳孔中心的坐标进行对比操作,用相对位置的变化来判断视线方向,实验过程中可能会出现一个问题就是眼球运动时上下移动范围小,关键值难以确定且不够准确,而眼球在左右运动的空间较大,关键值的确定就简单而准确了。我们以左右视线方向的判断为例子,进行简单的描述:我们知道脸部的中线不会随意发生改变,所以我们可以先获取脸部的中线,假设左右两边眉毛最靠里的两个特征点的坐标为(x1,y1)和(x2,y2),则中线方程式可以为:另外我们再设左右两个瞳孔中心的坐标为(x3,y3)和(x4,y4),那么两个瞳孔中心的连线可以用直线方程表示出来:之后我们要借助公式4.9和公式4.10求得交点,假设交点坐标为(x0,y0),我们就可以根据眼睛的瞳孔中心和交点(x0,y0)之间距离的大小来判断左右视线方向。假设T为最大范围,我们使用视频正脸或其他几帧图像获取一个标准S,然后对我们研究时得到的每一个图像都进行一次计算并对比,再用得出的值与S比较。则判断为向左注视;则判断为向右注视;则为向前注视;同样的我们想研究上下视线判断的方法的话,需要获取一个参照点,即不随便改变位置的点,我们先要获取两边眉毛的中垂线以及瞳孔连线的交点(x0,y0),已知眉毛两特征点的中点为(xz,yz),依据所学知识我们可以知道xz=(x1+x2)/2,yz=(y1+y2)/2。我们设此时T2为最大范围,S2为标准值。利用中点(xz,yz)到眼睛的瞳孔连线的距离和瞳孔之间的距离比较来判断上下视线方向。中点(xz,yz)到瞳孔连线的距离D可以表示为:如果则判断为向上注视;如果则判断为向下注视;如果则判断为向前注视。

参考文献李永强.一种用于智能头显的眼动跟踪系统[J].现代计算机,2019(13):86-91.姚运萍,吴庆娟,高东波.一种低成本基于眼动跟踪人机交互系统的研发[J].新技术新工艺,2008,000(012):86-88.田媚,黄雅平,李清勇,邹琪.基于眼动追踪技术的研究型教学体系建设[J].计算机教育,2015(03):37-40.孟春宁.人眼检测与跟踪的方法及应用研究[D].南开大学,2013.姜婷婷,吴茜,徐亚苹,王瑶璇.眼动追踪技术在国外信息行为研究中的应用[J].情报学报,2020,39(02):217-230.ZhangZhen,YuChuang,WangSa.TheEyeMovementExperimentalStudyontheApplicationofGeometricPatternsinArchitecture——TakeVoronoiasaCase[C].中国环境行为学会、华中科技大学建筑与城市规划学院.城乡环境的差异与融合:第十三届环境行为研究国际学术研讨会论文集.中国环境行为学会、华中科技大学建筑与城市规划学院:华中科技大学出版社有限责任公司,2018:30-35.冯小燕,王志军,吴向文.我国教育技术领域眼动研究的现状与趋势分析[J].中国远程教育,2016(10):22-29.陆柳杏,石宇,李济远,吴丹.人机交互研究中的眼动追踪:主题、作用、动向[J].图书情报工作,2020,64(01):113-119.王晓明,赵歆波.阅读眼动追踪语料库的构建与应用研究综述[J].计算机科学,2020,47(03):174-181.吴荣荣.VR环境下的眼动追踪系统及其应用研究[D].天津财经大学,2019.姚依妮,孙建明,林月华,武志云.眼动追踪技术应用分析[J].轻工科技,2018,34(09):80-82.王浩.眼动跟踪技术的研究与实现[D].吉林大学,2016.冯佳,王克非.探悉翻译过程的新视窗:键盘记录和眼动追踪[J].中国翻译,2016,37(01):12-18.周嘉宾.眼动跟踪系统算法研究与实现[D].西安电子科技大学,2010.安顺钰.基于眼动追踪的手机界面可用性评估研究[D].浙江大学,2008.

附录Harrcascade级联器#1导入库

importcv2

importnumpyasnp

importmatplotlib.pyplotasplt

#2方法:显示图片

defshow_iamge(image,title,pos):

#BGRtoRGB

img_RGB=image[:,:,::-1]

plt.subplot(2,2,pos)

plt.title(title)

plt.imshow(img_RGB)

plt.axis("off")

#3方法:绘制图片中检测到的人脸

defplot_rectangle(image,faces):

#拿到检测到的人脸数据,返回4个值:坐标(x,y),宽高width,height

for(x,y,w,h)infaces:

cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),3)

returnimage

#4主函数

defmain():

#5读取一张图片

image=cv2.imread("wx.jpg")

#6转换成灰度图片

gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

#7通过OpenCV自带的方法cv2.CascadeClassifier()加载级联分类器

face_alt2=cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")

#8通过第7步,对图像中的人脸进行检测

face_alt2_detect=face_alt2.det

温馨提示

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

评论

0/150

提交评论