《基于 OpenCV的人脸识别系统》

阅读: 评论:0

西安电子科技大学
人工智能学院暑期夏令营科研实践《基于OpenCV的人脸识别系统》
实践报告
姓名:XXX
学校:XXXX
院系班级:XXXXXXXXX
:XXXX
目录
1 项目背景 (1)
耐老化测试
2 项目目标 (1)
3 项目方案 (2)
3.1 人脸采集 (2)
3.2 人脸训练 (3)
3.3 人脸识别 (4)
4 项目调试 (6)
4.1 采集调试 (6)
4.2 训练调试 (6)
4.3 识别调试 (7)
5实践总结 (8)
如何创造一个安全的、数字现代化的、智能化的宿舍门禁系统有着十分重要的意义。然而,在日常管理中我们经常会碰到这样的问题:外来人员混入宿舍带来的安全隐患、夏天未带校园卡而在公寓楼前苦等、宿舍出入口必须有人盯守、晚归被困公寓楼外等等。
在当今计算机普及与急剧增长的状况下,应该实施一些高效率的系统,不仅省钱,省事,而且便捷,针对以上情况,十分有必要建立一个全面、高效、人性化、智能的高校宿舍出入管理系统。
因此,做一个人脸识别系统就非常地有必要!
2 项目目标
本项目拟完成人脸采集、人脸训练和人脸检测与识别的功能。
人脸采集程序主要完成以下功能:
1. 建立新的文件夹:用户根据提示输入自己姓名的简称,程序会在工程目录下建立该用户的文件夹,用以存放拍摄的照片;
足底理疗仪2. 打开摄像头和写入图像:调用笔记本摄像头,当P键按下时,显示当前帧的图像,经处理后,保存图像;当q键按下时,立即退出采集程序
3. 人脸检测与裁剪:在当前帧识别出人脸后将其裁剪至ORL人脸数据
库大小即92x112。
人脸训练程序主要完成以下功能:
1. CSV文件读取:CSV文件对应的图像数据和对应的标签;
2. 样本训练:包括ORL人脸数据库的样本和自己的样本。
人脸训练样本取自ORL人脸数据库,共40个人,每人10张照片。照片在不同时间、不同表情(睁眼闭眼、笑或者不笑)、不同人脸细节(戴眼镜或者不戴眼镜)下采集,所有的图像都在一个黑暗均匀的背景下采集的,正面竖直人脸(有些有轻微旋转)。此外,增加自己的样本,并以相同尺寸拍摄20张左右图像。
人脸识别与检测程序主要完成以下功能:
实验室自动清洗机
1. 人脸检测:识别出当前帧是否有人脸;
2. 人脸预测:根据训练结果判断当前帧中人脸是否属于样本集;
3. 姓名显示:若属于样本集则显示姓名缩写,否则,显示“0”。
本项目一共分为三个步骤,故程序共有三个,分别是:人脸采集程序、人脸训练程序和人脸检测与识别程序。
3.1 人脸采集
电梯应急装置
人脸采集程序包含三个模块:建立文件夹模块、打开摄像头和写入图像模块、人脸检测与裁剪模块。图1是人脸采集程序的流程图。
图1 人脸采集程序流程图
建立文件夹模块:采用mkdir()函数为每位用户提供单独文件夹保存拍摄的
照片,不允许有重复文件夹,若名字相同,只能删除原文件夹或者更改名字简称。
打开摄像头和写入图像模块:拍摄照片时调用笔记本电脑摄像头,使用OpenCV的VideoCapture类,即可打开摄像头,使用imwrite()函数即可写图像。
人脸检测与裁剪模块:检测并分割出人脸,并改变图像法的大小与下载的数据图片大小一致。人脸采集使用OpenCV内部描述脸部Haar特征的分类器:haarcascade_frontalface_default。而人脸检测使用detectMultiScale函数,该函数原型为:
void detectMultiScale
(
const Mat& image,
CV_OUT vector<Rect>& objects,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size()
);
参数1:image--待检测图片,一般为灰度图像加快检测速度;
参数2:objects--被检测物体的矩形框向量组;
参数3:scaleFactor--表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%;冷冻水产品
参数4:minNeighbors--表示构成检测目标的相邻矩形的最小个数(默认为3个);
如果组成检测目标的小矩形的个数和小于min_neighbors - 1 都会被排
除;如果min_neighbors 为0, 则函数不做任何操作就返回所有的被检
候选矩形框;这种设定值一般用在用户自定义对检测结果的组合程序上;参数5:flags--要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING,如果设置为CV_HAAR_DO_CANNY_PRUNING,那么函数将会使用
数码彩扩
Canny边缘检测来排除边缘过多或过少的区域,因此这些区域通常不会
是人脸所在区域;
参数6、7:minSize和maxSize用来限制得到的目标区域的范围。
3.2 人脸训练
人脸训练程序包含三个模块:创建CSV文件模块、读取CSV文件和人脸训练模块。
创建CSV文件模块:CSV文件采用Python3 编写,使用opencv教程里提供的自动生成csv文件的脚本。包含图片的路径和标签。
读取CSV文件模块:stringstream最大的特点就是可以实现各种数据类型的转换,不需要像C语言那样麻烦,而且非常安全;getline()把从输入流读入的字

本文发布于:2023-06-09 00:13:59,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/131438.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:人脸   检测   程序   模块   图像   宿舍
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图