基于OpenCV的人脸检测与识别系统

时间:2024-02-25 点赞:43977 浏览:84748 作者原创标记本站原创

本文是一篇吉林大学论文范文,吉林大学方面本科毕业论文范文,关于基于OpenCV的人脸检测与识别系统相关电大毕业论文范文。适合吉林大学及计算机及参考文献方面的的大学硕士和本科毕业论文以及吉林大学相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:本论文以OpenCV图像处理库为基础,采用QT作为图形界面开发,具有人脸采集,图片训练,数据库管理及人脸识别等功能,并且使用光线补偿等方式提高识别率.

关 键 词:OpenCVQT人脸检测人脸识别

中图分类号:TP31文献标识码:A文章编号:1672-3791(2013)07(b)-0004-02

近年来计算机视觉技术在视觉领域中取得了飞速的发展,并在其他领域中得到了广泛的应用,人脸识别在图像处理与视频检索、视频监控、视频显示等方面占据着重要的位置.本文提出了基于OpenCV图像处理库的人脸检测与识别系统,通过分析人脸检测与识别的原理及方法设计了人脸检测与识别系统,该系统具有人脸采集,图片训练,数据库管理及人脸识别等功能,并且使用了光线补偿等方式更好的进行图像的处理和后期的识别.

1系统的运行流程图

该人脸检测与识别系统的处理流程如图1.

2系统详细设计及实现

2.1人脸定位模块

基于OpenCV的人脸检测中,先进行图像的采集,然后建立自适应模型并将该模型进行训练,使用XML文件保存该训练模型数据,有了这个模型后我们就可以从新使用新的模型来进行图片的对比,把当前的图片与该模型进行匹配得出的结果使用矩形进行标记,并在QT界面上画出该目标区域.

2.2人脸识别模块

人脸识别的流程为,从摄像头采集图片后对图片进行灰度化处理,分配PCA存储空间,再使用级联分类检测器对图片进行特征提取训练.提取出采集的人脸图片的特征,保存数据到facedata.xml文件.人脸识别的具体实现步骤和函数如下.

(1)得到一个32位的浮动图像.

IplImage*convertFloatImageToUcharImage(constIplImage*srcImg)

(2)保存源图片的所有特征向量.

voidFaceRec::storeEigenfaceImages()

(3)下载需要训练的数据,并将训练好的数据保存到xml文件中.

voidFaceRec::learn()

{szFileTrain等于"40.txt";//训练数据的路径

doPCA();//为人脸训练分配PCA空间

storeTrainingData();//将训练好的数据保存到xml文件中

if(SE_EIGENFACE_IMAGES)

{storeEigenfaceImages();//保存这些训练图片为一张位图}

(4)从摄像头中获取一帧图片.

intFaceRec::recFromFrame(IplImage*faceImage)


(5)从facedata.xml下载训练好的数据.

intFaceRec::loadTrainingData(CvMat**pTrainPersonNumMat)

(6)为图片分配PCA空间.

voidFaceRec::doPCA()

2.3光线补偿的模块

从摄像头对图像进行采集会受到设备的干扰及环境因素的影响,从而会使图像的色彩向某个固定的方向移动,例如色彩偏黄、变蓝、变黑等.系统为了消除图像的色彩偏差,需要对图像的RGB三个分量值进行线性调整.使用检测图像中亮度在前10%的像素(参考白),按公式计算出调整值.整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换,通过这种技术可以更好的进行图像的处理和后期的识别.

在QT下通过增加菜单栏,在其顶部添加一子目录,将命名为“预处理”,并在其下方的属性栏中命名为“弹出”菜单,右击预处理则该选项会自动生成一个子菜单项,属性名为“光线补偿”,并在右下面的属性中把ID号设置为ID_READY_LIGHTERGTHNSATE,对应文件FaceDetect.Cpp中的函数recognize()实现,并在recFromFrame(IplImage*faceImage)中添加如下代码:

hDIBTempp等于gDib.CopyHandle(hDIB);

gDib.LightingComper(hDIB);

GlobalUnlock(hDIB);

Invalidate();

光线补偿通过对图像的RGB进行转换而使图片的光线变亮或变暗,函数LightingComper()是类facerecognize的一个目标函数.

2.4测试

3结语

基于OpenCV图像处理库的人脸检测与识别具有人脸采集,图片训练,数据库管理及人脸识别等功能,系统采用Linux作为开发工具,利用QT作为图形界面开发,使用面向对象的思想来编写图像处理模块,并把该模块的各个功能进行独立出来,建立各个独立的类,从而减少了程序之间的耦合性,增加了代码的可重用性和可移植性,系统运行流畅,有广泛的使用前景.

相关论文

基于DTW和HMM算法的语音识别系统对比

本文是一篇算法论文范文,算法类专科毕业论文开题报告,关于基于DTW和HMM算法的语音识别系统对比相关专科毕业论文范文。适合算法及语音及模型。

嵌入式语音识别系统的与实现

本文关于语音及算法及模型方面的免费优秀学术论文范文,语音有关论文范文集,与嵌入式语音识别系统的与实现相关毕业论文的格式范文,对不知。

车牌视频跟踪识别系统的设计

这是一篇关于车牌类毕业论文题目范文,与车牌视频跟踪识别系统的设计相关本科毕业论文范文。是论文模板专业与车牌及图像及神经网络方面相关。

基于特征字符的印刷体公式识别系统

本文是一篇公式论文范文,公式类毕业论文模板,关于基于特征字符的印刷体公式识别系统相关函授毕业论文范文。适合公式及字符及文本方面的的大。

霍尼韦尔推出新型收银识别系统

本文是一篇自动化论文范文,关于自动化类毕业论文格式,关于霍尼韦尔推出新型收银识别系统相关函授毕业论文范文。适合自动化及自动化控制及信。

吉林省旅游品牌视觉识别系统建设

本文是一篇品牌建设论文范文,品牌建设类有关研究生毕业论文开题报告,关于吉林省旅游品牌视觉识别系统建设相关电大毕业论文范文。适合品牌建。

基于OpenCV的动态检测

本文是一篇计算机论文范文,关于计算机方面在职毕业论文开题报告,关于基于OpenCV的动态检测相关本科论文范文。适合计算机及灰度及阈值方面的。