基于机器学习的人脸识别算法的设计与实现.docx

上传人:b****3 文档编号:3143800 上传时间:2022-11-18 格式:DOCX 页数:10 大小:25.96KB
下载 相关 举报
基于机器学习的人脸识别算法的设计与实现.docx_第1页
第1页 / 共10页
基于机器学习的人脸识别算法的设计与实现.docx_第2页
第2页 / 共10页
基于机器学习的人脸识别算法的设计与实现.docx_第3页
第3页 / 共10页
基于机器学习的人脸识别算法的设计与实现.docx_第4页
第4页 / 共10页
基于机器学习的人脸识别算法的设计与实现.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于机器学习的人脸识别算法的设计与实现.docx

《基于机器学习的人脸识别算法的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于机器学习的人脸识别算法的设计与实现.docx(10页珍藏版)》请在冰豆网上搜索。

基于机器学习的人脸识别算法的设计与实现.docx

基于机器学习的人脸识别算法的设计与实现

—基于机器学习的人脸识别算法的设计与实现

基于机器学习的人脸识别算法的设计与实现承诺人签名:

 日期:

 年月日基于机器学习的人脸识别算法的设计与实现摘要人脸识别技术是一种新型的生物特征认证技术。

人脸识别技术也是一个非常活跃的研究领域,涵盖了许多领域,例如数字图像处理。

随着人们对应用程序需求的增长,面部识别技术趋向于大量使用,使用微芯片和标准化。

人脸检测是快速准确识别人脸的先决条件。

其目的是检测图像背景下的人脸,并将其与数据中的人脸进行比较,以实现人脸识别。

本文以python为开发技术,前端实时检测摄像头人脸,人脸识别主要是使用mtcnn做人脸提取,使用facenet做人脸特征提取,通过余弦相似度分类进行人脸识别。

系统界面简洁、识别迅速、使用方便。

本文首先介绍了人脸识别系统的现状及其发展背景,然后讨论了系统设计目标,系统要求和总体设计计划,并详细讨论了人脸识别系统的详细设计和实现。

系统最后进行面部识别。

并对系统进行特定的测试。

人脸识别,顾名思义就是在图片和视频中检测有没有人脸。

当发现一个人的脸时,会获取其他面部特征(眼睛,嘴巴,鼻子等),并根据此信息将该人与已知人脸的数据库进行比较。

标识一个人的身份。

人脸检测是使用计算机确定输入图像中所有人脸的位置和大小的过程。

面部识别系统是由面部识别系统引入的,该系统可以包括面部图像,输出是面部和面部图像的存在之和,描述了位置,大小,参数化位置Do和方向信息[1]。

假定检测面部的问题始于识别面部的研究。

全自动面部识别系统包括与两项主要技术的链接:

面部检测和提取以及面部识别。

完成自动面部识别的第一个要求是确定一个人的面部。

人脸识别是自动人脸识别过程的第一步,它基于自动人脸识别技术。

自动人脸识别系统的速度和准确性起着重要作用。

人脸识别系统可以应用于考勤、安全、金融等领域,应用广泛,大大提高了工作效率,提高了服务水平,身份认证变得更加科学、规范、系统、简单。

1.2国内外研究现状面部识别的研究始于1960年代末和1970年代初。

第一个研究人员是布莱索,他建立了一个人脸识别系统,但这个系统是半自动的,识别的主要依据是座位识别的主要特征,如人脸特征点的距离和比例。

20世纪90年代,计算机软硬件发展迅速,人们对人脸识别的要求越来越高,对人脸识别的鲁棒性也提出了更高的要求[2]。

许多学者开始研究基于整体的识别方法,并成为当时人脸识别研究的趋势。

最具代表性的特征脸方法和弹性图匹配方法。

在1990年代中期,整体识别和成分分析相结合的面部识别方式开始涌现。

研究人员也开始认识到,他们不仅必须充分利用来自各种面孔的面部识别信息,而且还必须融合诸如形状拓扑特征,局部灰度功能和全局比例分布之类的特征。

当时,许多新的算法开始出现,但都是将一些原有的算法拼接在一起,对算法本身并没有提升和优化。

在1990年代后期,面部识别技术得到发展并开始商业化,许多产品开始投放市场。

但是,由于算法的单一和落后,其识别的误差还是很大,并且运行速度还有待提高。

直到来到2000年,才有所进步,但是与人们的需求相比存在一些差异,这主要是由于外部环境的影响,例如光照,姿势和距离的影响。

识别效果差。

当前,面部识别技术只能在不需要高识别精度的某些情况下使用。

总的来说,这项工作的面部识别涵盖了各个领域,例如计算机视觉,数字图像处理和人工智能,但是根据这项研究,无论实际计算机的类型如何,在现代网络和计算机通信中它都可以满足也需要快速的系统开发。

从一种观点看,研究的价值很高。

随着计算机网络的扩散,诸如计算机信息的图片和视频之类的多媒体信息的比例不断增加,这项研究将不可避免地导致快速,长期的发展。

1.3本课题主要工作本文主要分为五个章节,具体结构如下:

 第一章节为概述部分。

主要分析了该课题的研究背景以及研究意义。

了解了现阶段国内外的人脸识别的发展情况。

提出本文主要的工作内容。

第二章是对开发的环境进行分析,以及对于采用的人脸识别方式进行分析第三章人脸识别开发的可行性分析和对需求分析第四章是对人脸识别系统开发流程的说明。

第五章对人脸识别功能实现的测试总结以及对后续改进的展望。

第二章系统开发环境2.1python技术Python是一种开发语言,一种用于计算机程序设计的开发语言,并且允许面向对象的编程。

Python由GuidovanRoum开发。

Python具有许多功能,例如简洁的语法,免费的源代码和种类很多的数据库和第三方库[5]。

由于这些优点,您可以非常快速地与其他语言结合以实现各种功能模块。

许多人都被昵称为“胶水”。

使用Python快速编程的原型是许多程序员当前使用的一种方法。

在任何有特殊要求的地方固定都很方便。

PyQt是一个工具包,主要可以创建带有图形界面的程序。

Qt库是一个功能强大的库。

PyQt实现了一组Python模块。

PyQt受人青睐的原因是因为其拥有数据庞大的类和功能。

不仅如此,其跨平台开发的特点也是其受青睐的原因,例如UNI某,Microoft,Apple。

此外,PyQt具有双重证书,可提供跨平台性能。

在使用Python安装平台之前,用户必须设置环境变量以加载和运行取决于另一个平台的不同版本运行。

Python特点1.阅读起来简单:

由于Python代码简洁,而且定义也非常清晰,所以阅读起来更加简单。

2.维护起来方便:

Python的维护简单方便。

3.标准库多:

Python自身带有许多免费的,开源的,功能强大的数据库。

4.具有方便的互动模式:

有了互动模式的支持,开发者可以从代码就可以看到结果,这样开发者对程序的测试与调试,变的更方便。

5.可移植性好:

 Python可以跨平台运行。

6.扩展性非常好的:

如果有关键的代码,你可以用特殊的语言进行编写,也能够在系统中调试运行。

7.数据库接口多:

Python可以与市面上大多数的数据库连接。

8.可嵌入性强:

为了提高实用性,Python可以嵌入到多种语言中。

增强程序的适用能力。

2.2图像检测简介图像检测,顾名思义,就是通过某种算法,把图像中的需要处理那部分图像进行定位与获取。

这也是图像识别的最重要的一步。

一般都是采用图形分割技术,图形分割技术又与图形的特征提取和图像处理密不可分[4]。

图像检测的方法有很多种,这里简单介绍以下几种较常用的方式:

 1基于直线检测的方法顾名思义,通过检测图像中的直线(通常是图像周围的所有边缘)来识别直线。

通常使用的检测方法是霍夫变化和其他方法。

原理是按形状查找图像。

但是,在实际应用中,许多因素都会影响定位效果,例如光线不均匀,灰尘和尘埃,图像模糊或曝光过度。

当然,霍夫算法也有其缺点。

它仅检测直线,不考虑图像形状的将来变化。

同样,霍夫的空间不能一次匹配一个原始图像空间。

不能指定霍夫空间中的特征点。

图像轮廓的初始位置不能避免在直线上产生干扰的问题,并且在直线上存在干扰的情况下,无法提取帧[7]。

2基于阈值化的方法这种方法的主要特点是可以对图像应用阈值,以获得具有单个字符和背景的二进制图像。

尽管目前提出了各种关键策略,但是简单算法对二值化的影响很小,但是复杂算法由于计算时间长和计算复杂性而限制了计算时间。

在现实生活中由于上述原因,这类方法没有取得太大的普及。

3基于灰度边缘检测方法此类方法一般使用两种方式,一种方式是利用图像区域局部对比度明显,另一种方式为灰度有规律变化的纹理特征,通过这两种方式相结合来定位。

(1)基于灰度直方图的门限化边缘检测通过灰色直方图检测阈值极限是最常见和最简单的方法。

这种边缘检测方法的原理是搜索对象。

背景图像在被摄体上有很好的边缘。

该图像的灰度直方图为2个峰值。

(2)基于微分的边缘检测①一阶差分边缘检测人像的边缘点将显示像素灰度值急剧变化的特征,具有相对较大的差值。

当差值方向和边界方向相互垂直时,此时差值最大。

因此,只要对f(i,j)的所有方向上的差值进行第二次阈值化,就可以通过处理来检测边缘像素点,从而获得边缘图像。

②二阶差分边缘检测与一阶差分边缘检测一样,人像的边缘点会表现出像素点灰度值急剧变化的特征。

图像的灰度值将用于沿着某,y或者进行二次差分,然后通过差分后的一些属性来检测边缘。

③根据边缘的位置,图像的灰度值变化很大。

相对应的连续函数的坡度最大。

常用的算法有Robert运算符,Prewitt运算符和Sobel。

另一种更直观的方法是使用当前像素附近的一些像素值合成表面,并计算像素连续表面的斜率。

最大的梯度就是肖像的边缘。

2.3人脸识别简介2.3.1人脸识别阶段人脸识别作为图像处理的一次尝试,目前有了很大发展和突破。

主要流程包含:

首先利用机器分析,对特征信息进行提取,然后进行查找和匹配,从而达到识别人脸的目的。

目前人脸识别技术已经渗透到我们的生活,比如人脸支付、人脸门禁、人脸购物等等。

伴随着科技的不断发展和人们需求不断地增加,人脸识别技术也在不断地成熟和稳定,其发展大概分为三个阶段。

(1)第一阶段人脸识别的创始人Bledoe,他把人脸进行特征提取,比如组成人脸的眼睛、鼻子等作为参数,人脸识别系统的雏形得到了建立

(2)第二阶段因为在收集分析信息方面人们变得变得更加简单,在199几年初,图像处理的关键发展方向已经从一些基础的处理转向了整体人脸识别。

并且由于计算机技术得到不断的突破。

人脸识别的方法更加呈现百花齐放的状态例如:

灰度处理,人脸模型等等。

(3)第三阶段人脸识别技术是在1990年代后期开发的,随着市场需求的持续增长,它已成为关注的焦点。

在世界上每个国家,我们都在争夺人脸识别技术的发展,但是基于成熟的技术,人脸识别技术也存在严重的缺陷。

直到现在,人脸识别技术仍然对世界感兴趣,并且还在不断发展。

2.3.2人脸识别方法人脸识别的方法有很多有根据眼耳口鼻的形状和它们之间的距离来识别,此外有将图片进行压缩并且正交变换来进行识别,其次有通过机器学习用函数来进行训练识别。

此外还有一些常用的模型识别方法,如NM,HNM等。

2.4深度学习算法及CNN人工神经网络是一个动态系统,是一个自适应的非线性动态系统。

每个神经元在单独分开来看的时候其自身的功能和结构对于其他来说是简单的,但如果我们将由大量神经元进行组合连接,其呈现的东西是十分强大的。

人工神经网络之所以称之为人工神经网络,主要是因为它能反映人脑功能的一些基本特征。

虽然这只是对人脑功能的抽象化呈现和模拟。

但是对于普通的计算机来说,他不是单单地执行代码所能呈现的功能,一步一步往下操作,它能在执行代码程序的过程中不断去适应环境,自我地去学习,优化自身,总结学习上的规律。

因此人工神经网络在这几个方面上更接近人脑。

在人工神经网络在一开始像一个初生的婴儿一样是一张白纸,他要通过不断地学习才能进行工作。

比如说在设定“一”代表“1”,“二”代表“2”以此类推,人工神经网络便要去学习。

在现实生活中神经网络的优势更多地体现在分类的问题上,比如图书推荐,酒店推荐等等。

像LR或者linearSVM这些分类算法在面对一些非线性分类的时候,LR通常需要靠特征工程做特征映射,而SVM需要选择核。

这些操作往往会增加计算量,延缓运行速度。

而神经网络在具有三层或三层以上结构的时后,它能够很好地实现非线性可分。

并且计算量会相比LR或者linearSVM少得多。

之前的人工神经网络存在一个问题:

就是数据的传递都是一整个传递,这导致越往后所需要处理的像素参数会越来越多。

直到卷积神经网络(简称ConvNet或CNN)的出现来=才解决此类图像处理问题[11]。

CNN:

CNN也称被为卷积神经网络。

他拥有两个不同功能的神经元。

一个是C,另一个是S。

C代表的是卷积。

主要用于特征提取。

S代表子采样,实际上是池化操作。

LevelC是特征提取的Level[12]。

每个神经元都只和上层的一部分相连接,在这一部分确定后,其他未连接的部分也会被映射下来。

网络中的每个处理级别都包含多个功能图。

每个对象都映射在一个平面上,并

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1