> # ♻️ 资源
> **大小:** 108MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010536**](https://www.yuque.com/sxbn/ks/100010536)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87400365**](https://download.csdn.net/download/s1t16/87400365)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 基于 SeetaFace+VS2017+Qt 的人脸识别
## 1 目的
目前计算机视觉技术已经比较成熟,相关的开源项目与算法很多,可以将这些开源算法进行整合,进而做成一个小项目,以供日后学习与研究。本实验主要将利用人脸识别开源项目SeetaFace,结合使用OpenCV工具,结合VS2017与Qt实现一个人脸识别的小项目。最后对实验系统进行测试评估。
## 2 相关知识与技术介绍
### 2.1 OpenCV 简介
OpenCV(Open Source Computer Vision Library),是一个开源的可以跨平台运行的计算机视觉库,可以运行在 Linux、Windows、Android 和 Mac OS 操作系统上。它轻量级而且高效,由一系列 C 函数和少量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV 的设计理念是所包含的函数能以最快的速度进行编译,之所以使用 C 代码进行编写,就是希望能够利用多核处理器的优势达到最快的运行速度。它构建了一个方便开发人员使用的、简单易懂的计算机视觉框架,在这个基础上,开发人员能都更方便的设计出更复杂的计算机视觉相关程序。OpenCV 是由 Intel 发起的项目,其中的源代码都是开源免费的代码,因此可以用于科研人员的研究领域,也可以用于商业领域。最新的版本 OpenCV3.4.2 已于 2018 年 7 月 4 日发布。
### 2.2 SeetaFace 简介
SeetaFace 是由中科院山世光老师带领的人脸识别研发组基于 C++ 代码研发的人脸识别算法。SeetaFace 人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块 SeetaFace Detection、面部特征点定位模块 SeetaFace Alignment 以及人脸特征提取与比对模块 SeetaFace Identification。
其中,SeetaFace Detection 采用了一种结合传统人造特征与多层感知机(MLP)的级联结构,在 FDDB 上达到了 84.4% 的召回率(100 个误检时),并可在单个 i7 CPU 上实时处理 VGA 分辨率的图像。
面部特征点定位模块 SeetaFace Alignment 通过级联多个深度模型(栈式自编码网络)来回归 5 个关键特征点(两眼中心、鼻尖和两个嘴角)的位置,在 AFLW 数据库上达到 state-of-the-art 的精度,定位速度在单个 i7 CPU 上超过 200fps。
人脸识别模块 SeetaFace Identification 采用一个 9 层的卷积神经网络(CNN)来提取人脸特征,在 LFW 数据库上达到 97.1% 的精度(注:采用 SeetaFace 人脸检测和 SeetaFace 面部特征点定位作为前端进行全自动识别的情况下),特征提取速度为每图 120ms(在单个 i7 CPU 上)。
## 3 基于 SeetaFace 的人脸识别算法
SeetaFace人脸识别引擎包括三个核心模块,即:人脸检测模块SeetaFace Detection、面部特征点定位模块SeetaFace Alignment以及人脸特征提取与比对模块SeetaFace Identification。下面对上述三个模块的情况做简要介绍。
### 3.1 人脸检测模块 SeetaFace Detection
该模块基于一种结合经典级联结构和多层神经网络的人脸检测方法实现,其所采用的漏斗型级联结构(Funnel-Structured Cascade,FuSt)专门针对多姿态人脸检测而设计,其中引入了由粗到精的设计理念,兼顾了速度和精度的平衡。如图1所示,FuSt级联结构在顶部由多个针对不同姿态的快速LAB级联分类器构成,紧接着是若干个基于SURF特征的多层感知机(MLP)级联结构,最后由一个统一的MLP级联结构(同样基于SURF特征)来处理所有姿态的候选窗口,整体上呈现出上宽下窄的漏斗形状。
从上往下,各个层次上的分类器及其所采用的特征逐步变得复杂,从而可以保留人脸窗口并排除越来越难与人脸区分的非人脸候选窗口。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1712797272699-4a78bd02-58dd-4dd6-b3c4-99fd49b283d6.png#averageHue=%23e5e9e0&id=pDTAw&originHeight=317&originWidth=642&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
图1 SeetaFace人脸检测模块所采用的FuSt漏斗型级联结构
整个算法采用漏斗型,先采用计算量小的特征,快速过滤大量非人脸窗口(图像滑窗),然后采用复杂结构逐层筛选人脸。由图 2 所示 SeetaFace 检测效果图看到在人脸局部遮挡的情况下也能很好的检测到人脸区域。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1712797272846-50f77dce-6173-4b6f-aa39-ff92fdf6a383.png#averageHue=%238a938b&id=puCK1&originHeight=286&originWidth=679&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
图2 SeetaFace检测效果图
### 3.2 面部特征点定位模块 SeetaFace Alignment
```
面部特征点定位(人脸对齐)在人脸识别、表情识别、人脸动画合成等诸多人脸分析任务中扮演着非常重要的角色。由于姿态、表情、光照和遮挡等因素的影响,真实场景下的人脸对齐任务是一个非常困难的问题。形式上,该问题可以看作是从人脸表观到人脸形状的复杂非线性映射。为此,SeetaFace Alignment采用一种由粗到精的自编码器网络(Coarse-to-Fine Auto-encoder Networks, CFAN)来求解这个复杂的非线性映射过程。
```
如图 3 所示,CFAN 级联了多级栈式自编码器网络,其中的每一级都刻画从人脸表观到人脸形状的部分非线性映射。具体来说,输入一个人脸区域(由人脸检测模块得到),第一级自编码器网络直接从该人脸的低分辨率版本中快速估计大致的人脸形状 S0。然后,提高输入人脸图像的分辨率,并抽取当前人脸形状 S0(相应提升分辨率)各特征点位置的局部特征,输入到下一级自编码器网络来进一步优化人脸对齐结果。以此类推,通过级联多个栈式自编码器网络,在越来越高分辨率的人脸图像上逐步优化人脸对齐结果。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1712797273016-72f2451f-b767-47de-8cab-1886cbe07022.png#averageHue=%23eaeaea&id=Zz01V&originHeight=99&originWidth=528&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
图3人脸对齐方法
此次开源的 SeetaFace Alignment 基于上述 CFAN 方法实现了 5 个面部关键特征点(两眼中心,鼻尖和两个嘴角)的精确定位,训练集包括 23,000 余幅人脸图像(标注了 5 点)。需要注意的是,为加速之目的,在基本不损失精度的情况下,开源实现中将 CFAN 级联的数目减少到了 2 级,从而可在单颗 Intel i7-3770 (3.4 GHz CPU)上达到每个人脸 5ms 的处理速度(不包括人脸检测时间)。
图 4 是本文通过 SeetaFace Alignment 分别对不同人员在不同状态特征点定位得到的效果图。测试中发现通过多次验证,在不同表情、不同面部偏转角度、抬头低头、脸部局部遮挡等情况下�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010536 本实验主要将利用人脸识别开源项目SeetaFace,结合使用OpenCV工具,结合VS2017与Qt实现一个人脸识别的小项目。最后对实验系统进行测试评估。
资源推荐
资源详情
资源评论
收起资源包目录
基于 SeetaFace+VS2017+Qt 的人脸识别【100010536】 (130个子文件)
OpenVideo.aps 67KB
seeta_fa_v1.1.bin 1.99MB
seeta_fd_frontal_v1.0.bin 1.15MB
OpenVideo.cpp 15KB
moc_OpenVideo.cpp 8KB
moc_OpenVideo.cpp 6KB
MyThread.cpp 5KB
moc_MyThread.cpp 5KB
qrc_OpenVideo.cpp 1KB
main.cpp 167B
FaceIdentification.dll 127KB
FaceDetection.dll 90KB
FaceAlignment.dll 25KB
OpenVideo.vcxproj.filters 7KB
1.gif 745KB
2.gif 227KB
ui_OpenVideo.h 14KB
surf_feature_map.h 5KB
image_pyramid.h 5KB
math_func.h 5KB
cfan.h 4KB
log.h 4KB
recognizer.h 4KB
hyper_param.h 4KB
sift.h 4KB
mlp.h 4KB
net.h 3KB
face_identification.h 3KB
face_detection.h 3KB
blob.h 3KB
lab_boosted_classifier.h 3KB
fust.h 3KB
net_factory.h 3KB
lab_feature_map.h 3KB
common.h 3KB
surf_mlp.h 2KB
OpenVideo.h 2KB
face_alignment.h 2KB
spatial_transform_net.h 2KB
aligner.h 2KB
lab_boost_model_reader.h 2KB
detector.h 2KB
math_functions.h 2KB
feature_map.h 2KB
classifier.h 2KB
surf_mlp_model_reader.h 2KB
model_reader.h 2KB
common_net.h 2KB
max_pooling_net.h 2KB
tform_maker_net.h 2KB
inner_product_net.h 2KB
nms.h 2KB
eltwise_net.h 2KB
conv_net.h 2KB
pad_net.h 2KB
bias_adder_net.h 2KB
bn_net.h 1KB
viplnet.h 1KB
MyThread.h 1KB
common.h 1KB
eye_128px_1204362_easyicon.net.ico 66KB
Button_circle_person_128px_1198024_easyicon.net.ico 66KB
icon.ico 66KB
picture_128px_1201195_easyicon.net.ico 53KB
OpenVideo.lastbuildstate 195B
OpenVideo.lastbuildstate 193B
FaceIdentification.lib 6KB
FaceDetection.lib 5KB
FaceAlignment.lib 3KB
LICENSE 1KB
OpenVideo.log 2KB
qt.log 2KB
OpenVideo.Build.CppClean.log 1KB
OpenVideo.Build.CppClean.log 1KB
OpenVideo.log 1KB
qt.log 873B
README.md 28KB
Recognition.mp3 33KB
OpenVideo.obj 1.04MB
moc_OpenVideo.obj 417KB
main.obj 410KB
OpenVideo.obj 283KB
MyThread.obj 135KB
moc_OpenVideo.obj 99KB
moc_MyThread.obj 94KB
main.obj 93KB
qrc_OpenVideo.obj 6KB
qrc_OpenVideo.obj 1KB
vc141.pdb 4MB
background.png 208KB
close2.png 537B
close3.png 531B
close1.png 437B
closeWhite.png 342B
close2 (2).png 270B
OpenVideo.pri 502B
OpenVideo.pro 806B
OpenVideo.qrc 65B
seeta_fr_v1.0.part1.rar 100MB
seeta_fr_v1.0.part2.rar 2.54MB
共 130 条
- 1
- 2
资源评论
神仙别闹
- 粉丝: 2677
- 资源: 7667
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MEM2307-VB一款SOT23封装P-Channel场效应MOS管
- 逐次分半积分实验.wps
- MEM2303XG-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- MEM2303-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 1_base.apk.1
- 基于FPGA深度学习的9I2C 读写 RTC 时钟实验,适合FPGA初学者
- MEM2303M3G-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- MEM2302XG-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- manage.py 相对路径
- 数据库设计课程设计-高校选课管理系统免费提供
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功