生活服务
基于 opencv 的人脸识别系统
2025-01-02 20:55  浏览:101

随着智能设备的不断发展,人脸检测技术应用于越来越多的领域,极大的丰富和方便了人们的生活,具有很大的商业价值和研究意义。人 脸 识 别 主 要 为 两 个 步 骤:人 脸 检 测(FaceDetection)和人脸识别(Face Recogniton)。人脸检测就是判断待检测图像中是否存在人脸以及人脸在图片中的位置,人脸识别则是将检测到的人脸与已知的人脸库中的人脸进行比对,得出相似度信息。本项目基于天嵌的 TQ2440(采用 S3C2440 处理器)硬件开发平台,扩展 USB 摄像头模块,搭建配置嵌入式开发环境,给出并实现了一个嵌入式人脸识别实现方案。本系统使用人脸类 harr 特征、Adaboost 算法进行人脸检测,采用 PCA(Principal Component Analysis)降维算法得到特征脸子空间,将在 PC 平台训练的人脸识别分类器预存到嵌入式目标平台,最后结合最近邻匹配算法实现在线人脸识别,实际采集的图片测试结果表明该系统效果良好。

系统实现

(一)图像采集

图像采集部分负责采集图像,将来自于外部设备的图像转换为可处理的数字图像格式。实验选用的是 Z301P芯片的 USB 摄像头,其驱动程序是 Linux 下常用的通用驱动 spca5xx。Linux 系统为视频捕获提供的统一的程序设计接口是 V4L(Video4Linux),通过调用 V4L 函数来实现视频采集功能。

(二)图像预处理在采集实时图像的时候,受拍摄角度、位置等因素影响,导致检测到的人脸在整幅图像中的位置和大小不确定。为了能准确地识别人脸,必须对其进行一定的预处理,使得人脸图像具有标准灰度等级、标准位置、标准大小。本系统用到的图像预处理方法主要是以下 4 种:

(1)几何归一化:将图像中检测到的人脸部分裁剪出来,然后缩放到统一大小。

(2)灰度归一化:彩色图像转换为灰度图像。

(3)平滑处理:也叫做“模糊处理”, 为了降噪和图像不失真,本系统采用高斯平滑。

(4)灰度均衡:采用直方图均衡,可以减小不同人脸图像的亮度差别,提高图像对比度。

(三)人脸检测与定位AdaBoost 算法可以通过不断添加弱分类器使得总分类器在训练集上的错误率任意小。首先,给每个训练样本引入一个权值 wi, 训练过程通过迭代实现。迭代训练过程当中,要尽量满足当前权值下的错误率最低。下一次的迭代,要更关注错误样本,可以通过增加错误样本的权值和减少正确样本的权值来达到目标 。

人脸检测方法的训练过程包括:采集训练样本集(人脸样本和分人脸样本),并对样本进行预处理(包括将彩色图像转换为灰度图、图像缩放到同一大小、

归一化等);利用积分图算法计算样本集中所有的类harr 特征 ;训练过程按照 Adaboost 算法,输入的是类Harr 特征,输出的是一个分级级联分类器。分级级联分类器包含了若干个强分类器, 每个强分类器又包含了若干个弱分类器,一个弱分类器对应一个按照某个规则选择出来的类 Harr 特征。人脸检测函数以不同比例大小的扫描窗口对目标图片进行匹配搜索,如果找到包含目标的方形区域,则返回这些方形区域。在处理和搜索到候选方形区域后,接着对这些候选区域进行合并,最后返回一系列足够大的合并后的平均方形区域。

(四)人脸识别

特征提取是人脸识别的关键问题之一。PCA 是一种数据降维方法,它将数据维数高的样本用尽可能少的特征向量去描述,以达到压缩数据的目的 [9]。在降维过程中,是使用向量线性变换来表征数据的关键信息,所以可以最大程度的保留人脸的主要信息。软件设计部分,自动人脸识别的大概过程如下:

step1:摄像头采集图像;

step2:平滑处理、灰度均衡;

step3:图像中的人脸检测与定位;

step4:归一化处理,并载入样本人脸库数据;

step5:将待识别人脸投影到之前训练好的特征子空间;

step6:计算待识别人脸与训练库中每张人脸的距离;

step7:根据最小距离计算相似度并判断是否是样本库中的人,结束。

关键代码如下:

nEigens = nTrainFaces-1;// nEigens 是特征值数

// 为特征向量分配存储空间

faceImageSize.width = faceImageArray[0]->width;

faceImageSize.height = faceImageArray[0]->height;

eigenVectorArray= (IplImage**)cvAlloc(sizeof(IplImage*)

* nEigens);

for(i=0; i<nEigens; i++)

eigenVectorArray[i] = cvCreateImage(faceImageSize,

IPL_DEPTH_32F, 1);

// 将特征值存放到矩阵中

eigenValueMat = cvCreateMat( 1, nEigens, CV_32FC1 );

// 存放平均脸的图片

pAverageTrainImage = cvCreateImage(faceImageSize,IPL_DEPTH_32F, 1);

// PCA 迭代次数

calcLimit = cvTermCriteria( CV_TERMCRIT_ITER,nEigens, 1);

// 用 opencv 中提供的函数 cvCalcEigenObjects 计算平均脸、特征值和特征向量

    以上就是本篇文章【基于 opencv 的人脸识别系统】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/tnews/4623.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
腾讯围棋(野狐)手机版最新版中国象棋手机版「腾讯围棋(野狐)手机版最新版」
中国象棋竞技版最新版是有着很多经典的象棋残谱的经典益智游戏,在这里解锁自己感兴趣的棋谱,不管是是和电脑竞技还是真人pk,都
小米手机掉水里了应该怎么处理手机掉水里怎么处理「小米手机掉水里了应该怎么处理」
在日常生活中,我们难免会遇到一些突发情况,比如小米手机不慎掉入水中。面对这种情况,如果处理不当,可能会导致手机严重损坏。
有钱人“买爆”上海豪宅,有楼盘卖出200亿!去年多个“10万+”豪宅“日光”
本文来源:时代财经 作者:陈泽旋图源:图虫创意有钱人仍在楼市发挥他们的“钞能力”。近日,来自上海的中高端改善型项目海玥黄
华为WatchGT3可以遥控拍照吗?华为WatchGT3遥控拍照介绍华为手机驱动「华为WatchGT3可以遥控拍照吗?华为WatchGT3遥控拍照介绍」
近日有些朋友询问能否用华为Watch GT 3远程控制拍摄照片?以下是相关说明。(注:以上为简化版文本)华为WatchGT3支持遥控拍照,
谱写中印尼命运共同体新篇章
王鲁彤 中国和印度尼西亚是隔海相望的好邻居、命运与共的好伙伴,两国友谊源远流长。古代海上丝绸之路曾将双方紧密联系在一起,
东京股市继续上涨
  新华社东京4月18日电(记者钱铮)受医药和生物相关股普遍上涨拉动,日本东京股市18日继续上涨。日经225种股票平均价格指数收
如何有效格式化手机以清理存储空间和提升性能手机格式化是什么意思「如何有效格式化手机以清理存储空间和提升性能」
  在现代社会,手机已经成为我们生活中不可或缺的一部分。随着时间的推移,手机中的数据会逐渐增多,可能会导致设备运行缓慢,
如何快速关闭手机勿扰模式?详细步骤解析!手机勿扰模式在哪里「如何快速关闭手机勿扰模式?详细步骤解析!」
如何在Android手机上关闭勿扰模式 通过快捷设置关闭:用户可从屏幕顶部向下滑动以打开通知面板,接着找到“勿扰模式”图标(通常
microsd卡是什么卡手机sd卡是什么「microsd卡是什么卡」
  microsd卡是什么卡,很多人都有这样的疑问吧?下面就让我来为大家介绍一下吧!microsd卡是什么卡?  其实,MicroSD卡是一种
名茶汇聚的安徽,何以大而不强?
01为何名茶多,但名企少、名牌也少?说起安徽茶叶,大家第一印象是名优茶多,但这并不意味着龙头企业、知名品牌也多。中国十大名