[作业]OpenCV人脸识别 - 图文(2)

2019-06-11 15:06

第2章 人脸图像处理技术

2.1 OpenCV概述 2.1.1 OpenCV简介

OpenCV是Intel公司支持的开源计算机视觉库。它轻量级而且高效——由一系列

C函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。1999年在俄罗斯设立的软件开发中心“Software Developmellt Cellter¨开发的。

OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。

OpenCV还提供了Python、Ruby、MATLAB以及其他语言的接口。OpenCV的设计目标是执行速度尽量快,主要关注实时应用。它采用优化的C代码编写,能够充分利用多核处理器的优势。如果是希望在Intel平台上得到更快的处理速度,可以购买Intel的高性能多媒体函数库IPP(Integrated Performance Primitives)。IPP库包含许多从底层优化的函数,这些函数涵盖多个应用领域。如果系统已经安装了IPP库,OpenCV会在运行时自动使用相应的IPP库。

OpenCV的一个目标是构建一个简单易用的计算机视觉框架,以帮助开发人员更便捷地设计更复杂的计算机视觉相关应用程序。OpenCV包含的函数有500多个,覆盖了计算机视觉的许多应用领域,如工厂产品检测、医学成像、信息安全、用户界面、摄像机标定、立体视觉和机器人等。因为计算机视觉和机器学习密切相关,所以OpenCV还提供了MLL(Machine Learning Library)机器学习库。该机器学习库侧重于统计方面的模式识别和聚类。MLL除了用在视觉相关的任务中,还可以方便地应用于其他的机器学习场合。

2.1.2 应用领域

自从OpenCV在1999年1月发布alpha版本开始,它就被广泛用在许多应用领域、产品和研究成果中。相关应用包括卫星地图和电子地图的拼接,扫描图像的对齐,医学图像去噪(消噪或滤波),图像中的物体分析,安全和入侵检测系统,自动监视和安全系

3

统,制造业中的产品质量检测系统,摄像机标定,军事应用,无人飞行器,无人汽车和无人水下机器人。将视觉识别技术用在声谱图上,OpenCV可以进行声音和音乐识别。

2.1.3 OpenCV的基本结构

OpenCV主体分为五个模块,其中四个模块如图2-1所示。OpenCV的CV模块包含基本的图像处理函数和高级的计算机视觉算法。ML是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI包含图像和视频输入/输出的函数。CXCore包含OpenCV的一些基本数据结构和相关函数。

CV 图像处理和视觉算法 MLL 统计分类器 HighGUI GUI 图像和视频输入/输出 CXCORE 基本结构和算法、XML支持、绘图函数

图2-1 OpenCV的基本结构

图2-1中并没有包含CvAux模块,该模块中一般存放一些即将被淘汰的算法和函数(如基于嵌入式隐马尔可夫模型的人脸识别算法),同时还有一些新出现的实验性的算法和函数(如背景和前景的分割)。

2.1.4 OpenCV的特征

OpenCV的主要特征有以下几个方面:

(1)图像数据的操作(分配、释放、复制、设置和转换)。

(2)图像是视频的输入输出I/O(文件与摄像头的输入、图像和视频文件输出)。

4

(3)矩阵和向量的操作以及线性代数的算法程序(矩阵积、解方程、特征值以及奇异值等)。

(4)各种动态数据结构(列表、队列、集合、树、图等)。

(5)基本的数字图像处理(滤波、边缘检测、角点检测、采样与差值、色彩转换、形态操作、直方图、图像金字塔等)。

(6)结构分析(连接部件、轮廓处理、距离变换、各自距计算、模板匹配、Hough变换、多边形逼近、直线拟合、椭圆拟合、Delaunay 三角划分等)。

(7)摄像头定标(发现与跟踪定标模式、定标、基本矩阵估计、齐次矩阵估计、立体对应)。

(8)运动分析(光流、运动分割、跟踪)。

(9)目标识别(特征法、隐马尔可夫模型:HMM)。

(10)基本的GUI (图像与视频显示、键盘和鼠标事件处理、滚动条)。 (11)图像标注(线、二次曲线、多边形、画文字)。 2.2 图像预处理

由于一些外界条件的不同,例如用干采集图像的设备的性能好坏、现场光照明暗程度不同等,图像通常会存在噪声、清晰度低等缺陷。此外,图像中人脸的绝对坐标及区域大小会随着人离摄像头的远近而改变。要想保证提取到的人脸特征不会受到上述这些因素的影响,则需要在提取特征人脸之前,对图像进行预处理。

2.2.1 灰度图像转换

由于对彩色图像数据的分析比黑白图像要难得多,所以将彩色图像转换成灰度

图是图像预处理的第一步。对图像进行灰度化处理是智能识别的基础,一般采集的图像都是三原色(R, G. B三个分量)。为了提高检测运动目标的速度,需要在特征提取之前将人脸图像进行灰度化,这样就只需要对像素点的灰度值进行处理。

本文采用OpenCV视觉库的接口进行灰度化处理,具体实现是通过使用cvCvtColor()函数,使用RGB2GRAY参数,将RGB彩色图转换为灰度图。

5

2.2.2 图像噪声消除

通常视频可以理解为连续的图像序列,在采集、保存、传输视频图像数据的过程中常会出现噪声干扰现象,噪声会使图像失真,使图像不像原木那样均匀连续地变化,进而会对图像的后续处理产生影响。因此,对视频图像进行检测分析之前,应对输入的图像进行噪声消除,尽最地消除图像中的噪声干扰,有助于准确快速地获取图像的特征,从而也能更好地进行模式识别等复杂处理,同时也能够减少目标检测的计算量。

按影响图像质量的噪声源可将图像噪声分为三类:第一类,阻性元件内部电子自由热运动产生的电子噪声,常用零均值高斯白噪声模型来近似。第二类,由于光电转换引起的泊松噪声(椒盐噪声)。第三类,在感光过程中产生的颗粒噪声。根据噪声与信号之间的关系,噪声也可分为加性噪声和乘性噪声。加性噪声的来源主要有人为噪声、自然噪声、内部噪声,主要表现形式有脉冲噪声和高斯噪声。乘性噪声往往具有随机性,是图像中最普通的噪声,其中一个典型代表是光照变化。

OpenCV消除图像噪声的常用方法有:均值滤波、中值滤波和高斯滤波。均值滤波对高斯噪声有较好的抑制作用,中值滤波适用于处理椒盐噪声。下面简单介绍下这三种去噪方法。

2.2.2 图像边缘检测

在对图像进行目标检测时,图像边缘是重要的提取信息。根据人眼的直观感受,目标图像的边缘信息是最明显的,图像边缘在整个图像中变化差异最大。提取图像边缘的主要依据是目标边缘处像素点的灰度值变化比较剧烈。图像边缘往往处于前景物体与背景图像的交界处,所以一般采用高通滤波器,保留高频信号。

常用的边缘检测方法有:梯度边缘检测、差分边缘检测、Sobel边缘检测算子、Laplace边缘检测算子等。OpenCV中常用于边缘检的函数有:cvSobel(), cvLaplace(),cvCanny()。

6

第3章 人脸检测原理与算法

3.1 人脸识别原理

人脸识别算法的原理:系统输入一般是一张或者一系列含有未确定身份的人脸图像,以及人脸数据库中的若干已知身份的人脸图象或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。

此方法是把人脸面部器官之间关系编码并准则化的人脸检测方法。这是一种自顶而下的方法,根据人脸面部器官的对称性、灰度差异等先验知识,制定一系列的准则。当图像中的待测区域符合准则,即被检测为人脸。

人脸及器官具有典型的边沿和形状特征,通常人们利用采用Laplacian,Sobel和Canny等算子来提取边沿特征,将这些特征用于人脸的定位。边沿和形状对于光照条件的变化具有很好的鲁棒性,灰度特征对光照比较敏感。

3.2 人脸检测方法

现有的人脸检测方法,人致分为三类:基于人脸几何特征的方法、基于人脸肤色的方法和基于人脸统计理论的方法。 (1)基于人脸几何特征的方法

人脸的几何特征即人脸的而部特征(如眼睛、鼻户、嘴巴、耳朵、肤色等),主要判别标准是人脸轮廓五官的对称性以及各个特征之间相对的位置。典型的基于人脸几何特征的方法有:基于先验知识的人脸检测方法和基于模板的人脸检侧方法.

基于先验知识的检测方法,首先需要确定人脸区域,然后通过前辈总结的先验知识来检验是否存在人脸,例如人脸面部五官的对称性、灰度值的不同等.人脸五官存在一些基本的规律,例如眼睛的形状及对称性,眼睛、鼻子、眉毛和嘴巴处的像素灰度值要大于人脸其他部位,鼻和嘴巴的中心点的连线与两只眼睛的连线是垂直的等.可以将这些特征信息作为一个判别准则.若图像符合这些准则,则确定存在人脸。该算法的优点为人脸特征比较直观、检测容易实现、计算量小。然而,该算法也存在不容忽视的缺点,检测准确率不高。如果人脸表发生变化或人脸偏向的角度不同,则人脸特征的判别准则

7


[作业]OpenCV人脸识别 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014年全国中考物理110套试题《电压和电阻》汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: