# **机器学习结课项目报告**
# **人脸识别系统**
## 引言
### 课题背景及意义
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或者摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。
人脸识别是图像分析与理解的一种最成功的应用,因其在商业,安全,身份认证,法律执行等众多方面的广泛应用,以及对人脸识别技术可行性的三十多年研究,使其越来越得到重视,并逐渐成为一个充满活力的研究领域。
随着人工智能领域特别是深度学习领域的发展,人脸识别技术逐渐走向成熟,进入了初级的应用阶段。
本项目将顺应人工智能发展的潮流,利用本学期机器学习课程上学到的知识,结合本人的专业技能,打造一个轻量型人脸识别系统,可用于家庭,学校,公司等场所。
另外,本项目将会把完善好的人脸识别系统移植到树莓派上,树莓派接上摄像头,实现人脸识别技术的落地。
### 可行性分析
人脸识别的四个步骤:
1. 人脸检测
2. 人脸对齐
3. 人脸编码
4. 人脸匹配
人脸识别的五个难点:
1. 头部姿势
2. 年龄
3. 遮挡
4. 光照条件
5. 人脸表情
经过多年的发展,人脸识别技术已有多种算法和模型支撑,基于独立成分分析和核向量的人脸识别算法,基于双向PCA和k近邻的人脸识别算法,基于深度学习卷积神经网络的人脸识别算法等等。而人脸识别的前三个步骤已有不少开源框架可以较好地完成任务,人脸匹配也已经有许多已经较为成熟的算法能够实现。
## 系统需求分析
### 系统功能需求
1. 实现人脸识别的四个步骤:人脸检测,人脸对齐,人脸编码,人脸匹配功能
2. 能进行实时人脸识别,测试时,人脸库中的照片可以是家庭成员,也可以是班级同学
3. 可以调整人脸库中单个人注册的人脸照片数
4. 可以设置不同距离函数和核函数
5. 测试不同参数设置情况下,参数变化对人脸识别系统的影响
### 系统性能需求
1. 每张图片提取特征值时间为毫秒级别
2. 在数千张图片的训练集上的准确度>=95%
3. 在目前多个主流的人脸数据集上测试准确度>=92%
4. 移植树莓派实现小型人脸识别系统
### 跨平台性需求
该人脸识别系统能在目前多个主流的操作系统Linux,Mac,Windows上编译。
## 系统实现原理
### OpenCV
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库,由英特尔公司发起并参与开发,可用于开发实时的图像处理,计算机视觉以及模式识别程序。
![opencv](/home/hustccc/Machine_Learning_Experiment/ML_Final_Project_Report/OpenCVImg/opencv_01.png)
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python,JAVA的接口。
操作系统支持Linux,Mac OS,iOS,OpenBSD,FreeBSD,Maemo,Andorid,Windows,使用者可以在Github获得官方版本,或者从Git获得开发者版本,使用CMake编译。
### 中科视拓SeetaFace2开源框架
`SeetaFace2`人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块`FaceDetector`,面部关键点定位模块`FaceLandmarker`以及人脸特征提取与比对模块`FaceRecognizer`。以及两个辅助模块`FaceTracker`和`QualityAssesssor`用于人脸跟踪和质量评估。
![pipeline](/home/hustccc/Machine_Learning_Experiment/ML_Final_Project_Report/SeetaFaceImg/pipeline.png)
`SeetaFace2`采用标准C++开发,全部模块均不依赖第三方库,支持x86架构(Linux,Windows)和Arm架构。`SeetaFace2`支持的上层应用包括但不限于人脸门禁,无感考勤,人脸比对等。
![grid](/home/hustccc/Machine_Learning_Experiment/ML_Final_Project_Report/SeetaFaceImg/grid.png)
SeetaFace框架性能:
模块 | 方法概述 | 基础技术指标 | 典型平台速度
-----|---------|-------------|------------
**人脸检测** | Cascaded CNN | FDDB 上召回率达到92%(100个误检情况下)。 | 40 最小人脸<br>I7: 70FPS(1920x1080)<br>RK3399: 25FPS(640x480)
**面部关建点定位(81点和5点)** | FEC-CNN | 平均定位误差(根据两眼中心距离归一化)<br>300-W Challenge Set 上达到 0.069。 | I7: 450FPS 和 500FPS<br>RK3399: 110FPS 和 220FPS
**人脸特征提取与比对** | ResNet50 | 识别:通用1:N+1场景下,错误接受率1%时,<br>1000人底库,首选识别率超过98%,<br>5000人底库,首选识别率超过95%。 | I7: 8FPS<br>RK3399: 2.5FPS
本项目将使用SeetaFace2开源框架完成人脸检测,面部关键点定位,人脸特征提取等工作。
### CMake
CMake是一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不依赖与某特定的编译器,并可支援多层目录,多个应用程序与多个函数库。它用配置文件构建过程(build process)的方式和Unix的make相似,只是CMake的配置文件取名为CmakeLists.txt。CMake并不直接构建出最终的软件,而是产生标准的配置文件(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用。
![Cmake](/home/hustccc/Machine_Learning_Experiment/ML_Final_Project_Report/CMakeImg/cmake_logo_slider.png)
使用CMake的软件有Boost C++ Libraries,Blender 3D,OpenSceneGraph等等,还有就是本项目使用的OpenCV,SeetaFace2。
本项目基于CMake进行编译,因此具备跨平台性,可以在目前主流的操作系统Linux,Mac OS,Windows上编译,后面能将该项目移植到树莓派上运行,也是得益于CMake的存在。
### KNN算法原理
在`模式识别`领域中,`最近邻居法`(即`KNN算法`,又称`K-近邻算法`)是一种用于分类和回归的统计方法。本项目中利用KNN算法进行分类任务。输入包含`特征空间`中的K个最接近的训练样本。
+ 在K-NN分类中,输出是一个分类族群。一个对象的分类是由其邻居的的“多数表决”确定的,k个最近邻居中最常见的分类决定了赋予该对象的类别。若k=1,则该对象的类别直接由最近的一个节点赋予。
+ 在K-NN回归中,输出是该对象的属性值,该值是其k个邻居的值的平均值
KNN算法采用向量空间模型来分类,概念为相同类别的案例,彼此的相似度高,而可以借由计算与已知的类别的样本之相似度,来评估未知类别的样本的分类。
k最近邻分类器可以被视为k最近邻居分配权重1/k以及为所有其他邻居分配0权重。这可以推广到加权最近邻分类器。也就是说,第i近的邻居被赋予权重$w_ni$,其中$\sum_{i=1}^nw_{ni} =1$。关于加权最近邻分类器的强一致性的类似结果也成立。
设$C_n^{wnn}$表示权重为$\{w_{ni}\}_{i=1}^n$的加权最近邻分类器。根据类别分布的规律性条件,超额风险具有以下渐近展开。
$$
R_R(C_n^{wnn})-R_R(C^{Bayes})=(B_1s_n^2+B_2t_n^2)\{1+\omicron(1)\}
$$
对常数$B_1 and B_2$当$s_n^2=\sum_{i=1}^nw_{ni}^2$并且$t_n=n^{-2/d}\sum_{i=1}^nw_{ni}\{i^{1+2/d}-{(i-1)}^{1+2/d}\}$
最佳加权方案$\{w_{ni}^*\}_{i=1}^n$用于平衡上面显示中的两个项,如下所示:
$$
k^*=\lfloor B_n^{4/(d+4)}\rfloor
$$
$$
w_{ni}^*=(1/k^*)[1+d/2-(d/{2k^{*2/d}})\{i^{1+2/d}-(i-1)^{1+2/d}\}],i=1,2,...,k^*
$$
$$
w_{ni}^*=0,i=k^*+1,...,n
$$
利用最优权重,超额风险的渐近展开中的主项是$O(n^{-4/{d+4}})$。
在KNN算法中,有两种常用的距离,分别为曼哈顿距离�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于机器学习的人脸识别课程高分项目+高分报告.zip个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评审分98分。主要针对计算机相关专业和需要项目实战练习的学习者,也可作为课程设计、期末大作业。个人经导师指导并认可通过的高分项目,评
资源推荐
资源详情
资源评论
收起资源包目录
基于机器学习的人脸识别课程高分项目+高分报告.zip (733个子文件)
libSeetaNet.so.11d9063 980KB
libSeetaNet.so.11d9063 801KB
libSeetaFaceRecognizer.so.11d9063 175KB
libSeetaFaceRecognizer.so.11d9063 143KB
libSeetaFaceDetector.so.11d9063 113KB
libSeetaFaceDetector.so.11d9063 95KB
libSeetaFaceLandmarker.so.11d9063 90KB
libSeetaQualityAssessor.so.11d9063 78KB
libSeetaFaceLandmarker.so.11d9063 75KB
libSeetaQualityAssessor.so.11d9063 67KB
libSeetaFaceTracker.so.11d9063 38KB
libSeetaFaceTracker.so.11d9063 30KB
libSeetaNet.so.21951fe 980KB
libSeetaNet.so.21951fe 801KB
libSeetaFaceRecognizer.so.21951fe 175KB
libSeetaFaceRecognizer.so.21951fe 143KB
libSeetaFaceDetector.so.21951fe 113KB
libSeetaFaceDetector.so.21951fe 95KB
libSeetaFaceLandmarker.so.21951fe 90KB
libSeetaQualityAssessor.so.21951fe 78KB
libSeetaFaceLandmarker.so.21951fe 75KB
libSeetaQualityAssessor.so.21951fe 67KB
libSeetaFaceTracker.so.21951fe 38KB
libSeetaFaceTracker.so.21951fe 30KB
libSeetaNet.so.a587833 980KB
libSeetaNet.so.a587833 801KB
libSeetaFaceRecognizer.so.a587833 175KB
libSeetaFaceRecognizer.so.a587833 143KB
libSeetaFaceDetector.so.a587833 113KB
libSeetaFaceDetector.so.a587833 95KB
libSeetaFaceLandmarker.so.a587833 90KB
libSeetaQualityAssessor.so.a587833 78KB
libSeetaFaceLandmarker.so.a587833 75KB
libSeetaQualityAssessor.so.a587833 67KB
libSeetaFaceTracker.so.a587833 38KB
libSeetaFaceTracker.so.a587833 30KB
libSeetaNet.so.a6e9ef3 980KB
libSeetaNet.so.a6e9ef3 801KB
libSeetaFaceRecognizer.so.a6e9ef3 175KB
libSeetaFaceRecognizer.so.a6e9ef3 143KB
libSeetaFaceDetector.so.a6e9ef3 113KB
libSeetaFaceDetector.so.a6e9ef3 95KB
libSeetaFaceLandmarker.so.a6e9ef3 90KB
libSeetaQualityAssessor.so.a6e9ef3 78KB
libSeetaFaceLandmarker.so.a6e9ef3 75KB
libSeetaQualityAssessor.so.a6e9ef3 67KB
libSeetaFaceTracker.so.a6e9ef3 38KB
libSeetaFaceTracker.so.a6e9ef3 30KB
CMakeDetermineCompilerABI_CXX.bin 16KB
CMakeDetermineCompilerABI_C.bin 16KB
CMakeDetermineCompilerABI_CXX.bin 16KB
CMakeDetermineCompilerABI_C.bin 16KB
README.md.bk 14KB
CMakeCCompilerId.c 20KB
CMakeCCompilerId.c 20KB
cmake.check_cache 86B
SeetaFaceRecognizerConfig.cmake 1.2MB
SeetaFaceLandmarkerConfig.cmake 1.2MB
SeetaFaceTrackerConfig.cmake 1.19MB
SeetaFaceDetectorConfig.cmake 1.19MB
SeetaQualityAssessorConfig.cmake 1.17MB
SeetaNetConfig.cmake 1.15MB
iOS.cmake 20KB
cmake_install.cmake 6KB
cmake_install.cmake 6KB
cmake_install.cmake 6KB
cmake_install.cmake 6KB
Makefile.cmake 6KB
CMakeCXXCompiler.cmake 5KB
CMakeCXXCompiler.cmake 5KB
cmake_install.cmake 5KB
cmake_install.cmake 5KB
SeetaFaceRecognizerConfig.cmake 4KB
SeetaFaceRecognizerConfig.cmake 4KB
SeetaFaceLandmarkerConfig.cmake 4KB
SeetaFaceLandmarkerConfig.cmake 4KB
SeetaFaceTrackerConfig.cmake 4KB
SeetaFaceTrackerConfig.cmake 4KB
SeetaFaceDetectorConfig.cmake 4KB
SeetaFaceDetectorConfig.cmake 4KB
SeetaQualityAssessorConfig.cmake 3KB
SeetaQualityAssessorConfig.cmake 3KB
SeetaNetConfig.cmake 3KB
SeetaNetConfig.cmake 3KB
DependInfo.cmake 3KB
cmake_install.cmake 3KB
CMakeCCompiler.cmake 2KB
CMakeCCompiler.cmake 2KB
DependInfo.cmake 2KB
cmake_install.cmake 2KB
cmake_install.cmake 2KB
cmake_install.cmake 2KB
cmake_install.cmake 2KB
cmake_install.cmake 2KB
cmake_install.cmake 2KB
DependInfo.cmake 2KB
DependInfo.cmake 2KB
DependInfo.cmake 2KB
cmake_install.cmake 2KB
SeetaFaceConfig.cmake 2KB
共 733 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
墨痕_777
- 粉丝: 4204
- 资源: 772
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于javaweb的网上拍卖系统,采用Spring + SpringMvc+Mysql + Hibernate+ JSP技术
- polygon-mumbai
- Chrome代理 switchyOmega
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功