人脸识别系统—计算机毕业设计内容摘要:
度比例变换、灰度线性变换、灰度线性截断、灰度取反。 高斯平滑: 在图像的采集过程中 ,由于各种因素的影响 ,图像中往往会出现一些不规则的随机噪声 ,如数据在传输、存储时发生的数据丢失和损坏等 ,这些都会 影响图像的质量,因此需要将图片进行平滑操作以此来消除噪声。 但是 如果平滑不当,就会使图像本身的细节如边界轮廓、线条等变的模糊不清 ,为了 既平滑掉噪声有尽量保持图像细节 ,本系统采用高斯平滑。 均衡直方图:使用该模块的 目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像。 它的实现主要是利用灰度均衡的转换式 DB = f ( DA) = A0DMax H( u) du。 (式 1) 图像对比度增强:为了将图像的特征一步一步显现出来,需要进行图像的对比度增强,它主要 通过 对图像的灰度值进行统计,对于小于 Low 则认为是有关的信息,则将它作为黑色处理,对于处于 High 以上的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。 第三章 系统的概要设计 本章主要介绍系统的结构设计的流程以及系统各模块的功能及相关原理。 (一) 应用程序的总体结构设计流程图如图 3- 1所示: 图 3- 1总体结构设计流程图 用 户 从“文件”菜单中选择“打开”选项 在弹出的“打开”对话框中选择要打开的位图,点击“确定”,应用程序显示所要打开的位图 显示识别结果 获取脸部区域 图象预处理 人脸定位 获取特征参数 识别 (二) 图像预处理的层次图如图 32 所示: 图 32 预处理的层次图 第一节 各模块功能概述 以上是该系统的总体结构设计图以及图像预处理模块的层次图。 下面介绍系统中的各模块的功能及算法: 图像获取模块 该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。 人脸区域获取 该系统中图像里人脸区域的获取,主要是根据肤色来进行获取,通过肤色非线形分段色彩变换来实现。 这一非线性分段色彩变换得到的肤色模型属 于色彩空间中的聚类模型,这一类肤色模型的建立首先要选取一种合适的色彩空间。 图像预处理模块 图像预处理就是对获取得来的图像进行适当的处理,使它具有的特征能够在图像中明显的表现出来。 该模块中的子模块有如下 5个,下面对它们进行概述: 预处理 光线补偿 图像灰度化 高斯平滑 均衡直方图 图像对比度增强 二值化 光线补偿 [3] 因为系统得到的图片可能会存在光线不平衡的情况,这会影响我们对特征的提取,同时系统中要用到 YcrCB色彩空间,所以有必要对图像进行光线补偿。 尽可能将它的特征在图像中表现出来。 YcrCB是一种色彩空间,它用于视频系统中,在该色彩空间中, Y分量表示像素的亮度, Cr表示红色分量, Cb表示蓝色分量,通常把 Cr和 Cb称为色度。 YcrCB色彩空间是以演播室质量标准为目标的CC601编码方案中采用的彩色表示模型。 灰度变化 [4] 图像灰度化的过程就是把彩色图像转换为黑白色图像的过程,它也是为了将图像的信息更加具体、简单的表现出来,但是,这样做也将会丢失图像信息。 因此,尽可能在转化的过程中用简单的方式表现图像复杂的信息。 高斯平滑处理 [5] 高斯平滑将对图像进行平滑处理,在图像采集过程中,由于各种因素的影响,图像往往会出现一些不规则的噪声,入图像在传输、存储等都有可能产生数据的丢失。 从而影响图像的质量。 处理噪声的过程称为平滑。 平滑可以降低图像的视觉噪声,同时出去图像中的高频部分后,那些本来不明显的低频成分更容易识别。 平滑可以通过卷积来实现。 经过卷积平滑后的水平投影后,二值化提供了较好的图像效果。 对比度增强 [6] 对比度增强,就是对图像的进一步处理,将对比度再一次拉开。 它 针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。 通过改变选用的增强函数的解析表达式就可以得到不同的处理效果。 二值化 [7] 二值化的目的是将采集获得的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。 二值化就是通过一些算法,通过一个阈值改变图像中的像素颜色,令整幅图像画面内仅有黑白二值,该图像 一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,“ 1”表示黑色,“ 0”表示白色,当然也可以倒过来表示,这种图像称之为二值图像。 这便有利于我们对特征的提取。 该设计中采用组内方差和组外方差来实现二值化。 直方图均衡 [8] 直方图均衡化 的 目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它 的 处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布 ,它的研究思路是: 通过直方图变换式来进行直方图的均衡处理,直方图变换式是 但是 直方图均衡化存在着两个缺点: 1)变换后图像的灰度级减少,某些细节消失; 2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。 人脸定位模块 人脸定位是将典型的脸部特征(如眼睛,鼻尖,嘴唇等等)标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。 由于眼睛具有对称性,因此可以很快就能标记出来, 而鼻子是 在眼睛下面 , 且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。 特征提取模块 特征提取按以下 4 个步骤进行: ( 1)、提取两只眼睛的距离 ( 2)、眼睛的倾角度 ( 3)、眼睛、嘴巴的重心 ( 4)、用一个矩形标出每一个特征 在特征提取完之后将会得到相应的特征值以便存入后台数据库。 识别模块 该模块通过与库存中的特征向量进行比较,找出与特征最相近的参数,再对该参数进一步分析。 如果分析在我们所确认的范围内,我们就认为该人就是我们所要找的。 然后从库存中提取出该人相关的信息,并显示出来。 如果库 存中没有,则给出提示是否对存库作为样本。 139。 1AB H f DHD f f D第四章 系统的详细设计 本章主要对图像处理这一模块进行详细介绍,对其子模块所用到的算法及具体实现进行详细讲述。 第一节 系统的运行流程图 图 61 系统的运行流程图 第二节 图像处理详细设计 一 位图详细设计 1 设备无关位图( DIB) VC++没有提供使用十分方便的 DIB 绘制方法,只好自己去创建一个实用的DIB 类了。 本系统中 建立了一个专门的类 DIB 来处理设备无关位图,表 4- 1 列出了对位图的操作函数。 函 数 功 能 ClearMemory() 释放内存 输入 启动本系统,进入人脸识别系统界面。 点击摄像键,然后进行拍照,并将图像显示并保存。 对图 片进行光线补偿 、 将图片变成灰色 、实现图片对比度增强,二值化变换等一系列预处理。 将处理好的人脸图片进行定位,标出眼睛 、鼻尖和嘴巴。 对定位好的人脸图片进行特征提取操作。 识别出图片上的人。 结束退出 输出 表 6- 1 Dib 类的部分功能 二 图像点处理详细设计 图像点运算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值,点运算与局部运算的差别在于:后者每个输出像素的灰度值由对应输入像素的一个领域内几个 像素的灰度值决定。 所以,点运算不可以改变图像内的空间关系。 点运算可以按照预定的方式改变一幅图的灰度直方图。 除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看作是“从像素到像素”的复制操作。 如果输入图像为 A( x, y),输出图像为 B( x, y),则点运算可表示为: B( x, y) = f[A( x, y) ] (式 2) 其中函数 f( D)被称为灰度变换( Gray Scale Transformation , GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系,一旦灰度变换 函数确定,该点运算就完全被确定下来了。 点运算有时又称为对比度增强、对比度拉伸或灰度变换,它是图像数字化软件和图像显示软件的重要组成部分。 下面将对本设计解决各图像点处理模块运用进行到的理论和编程实现进行详细讲述。 CopyHandle() 拷贝内存块 LoadDIB() 加载位图信息 ReadDIBFile() 读取位图文件信息 LightingCompensate() 进行光线补偿 PixelOffset() 修正像素值 PaintDIBTrue() 绘制 DIB 对象 GetColorNumber() 获取颜色总数 GetHeight() 获取 DIB 高度 GetWidth() 获取 DIB 宽度 GetSize() 获取图像数据缓冲区中的字节数 GetBitCount() 获取颜色位数 GetBiBitCount() 获取字节数 光线补偿 ( 1)算法思想: 光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖、照片偏黄、便蓝等等。 这种现象在艺术照片中更为常见。 所以 Anil ,为了抵消 这种整个图像中存在着的色彩偏差,我们将整个图像中所有像素亮度(是经过了非线形 r校正后的亮度)从高到低进行排列,取前 5%的像素,如果这些像素的数目足够多(例如,大于100),我们就将它们的亮度作为“参考白”( Reference White),也即将它们的色彩的 R、 G、 B分量值都调整为 255。 整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换。 ( 2) 具体实现光线补偿功能: 明白了光线补偿这功能的算法及思想,就可以编码实现其功能了,实现过程如下: ① 、 编辑菜单 IDR_MAINFRAM, 先在其中添加一菜单项,将其命名为“预处理”,并在其属性栏中将其设为“弹出”菜单,点击预处理该菜单项将会弹出一个新的子菜单,此时把该子菜单命名为“光线补偿”,并把其 ID 设为ID_READY_LIGHTINGCONPENSATE,对应文件 FaceDetectView. Cpp 中的函数ReadyLightingconpensate() 实 现 , 并 在 void CFaceDetectView:: OnReadyLightingconpensate()中添加如下代码: hDIBTemp = (hDIB)。 (hDIB)。 GlobalUnlock(hDIB)。 Invalidate()。 光线补偿功能实质上是用上段代码中的 LightingCompensate()函数来进行实现。 函数 LightingCompensate()是类 DIB 的一个成员函数。 其核心代码如下所述: //下面的循环对图像进行光线补偿 for(i =0。 iheight。 i++) for(int j=0。 jwidth。 j++) { //获取像素 偏移 lOffset = thisPixelOffset(i,j,wBytesPerLine)。 //得到蓝色分量 *(lpData+lOffset) = colorb。 //绿色分量 colorb = *(lpData+lOffset+1)。 colorb *=co。 if(colorb 255) colorb = 255。 *(lpData+lOffset+1) = colorb。 //红色分量 colorb = *(lpData+lOffset+2)。 colorb *=co。 if(colorb 255) colorb = 255。 *(lpData。人脸识别系统—计算机毕业设计
相关推荐
侧移刚度 D 值( N/mm) 层次 边柱 中柱 iD k c 1iD k c 2iD 2~8 19250 28333 761328 1 21178 25196 741984 河南理工大学万方科技学院本科毕业设计 (论文) 13 表 27 边框架柱侧移刚度 D 值( N/mm) 层次 1A 2A B1 B10 iD k c 1iD k c ic 2~8 15333 13667
器构成(模数 K可预置);数控振荡器由加 /减脉冲控制器和除 N 计数器构成。 可逆计数器和加 /减脉冲控制器的时钟频率分别为 Mf0和 2Nf0。 这里 f0 是环路的中心频率,一般情况下 M 和 N 为 2 的整数幂。 时钟 2Nf0 经除 H( = M/2N)计数器得到。 结合模拟和数字锁相的理论分析 , 可以得到全数字锁相环的相位和相差传递函数。 图 3 为全数字锁相环的数学模型。 9
以上的 是大型 铣刨机。 对于铣刨宽度小于 等于 1 米的小型铣刨机 是以 机械传动为主,机械式工作 比较 可靠、维修 起来 、传动效率 比较 高、制造成本 相对 低,但其结 构复杂、操作不 是很 轻便、作业效率 比 较低、牵引力 比较小,适用于小面积 路面维修 、铣刨小型 的 沟槽等, 铣刨机 一般不带 沥青 回收装置。 铣刨宽度在 1 米 2 以上的中 大 型铣刨机 一般采用 液压传动
Ⅱ计算主主梁跨中的最大弯矩截面的疲劳强度。 由于水平惯性载荷产生的应力很小,为了计算简明而忽略惯性载荷产生的应力。 求解截面的最大弯矩和最小弯矩,满载小车位于跨中,则:空载小车位于跨端时,有最小弯矩: 验算主腹板受拉翼缘焊缝的疲劳强度 应力循环特性: 根据工作级别A8,应力集中等级及材料Q235,查得: 焊缝拉伸疲劳许用应力: (合格)验算大隔板下端焊缝与主腹板连接处 应力循环特性: 可见
.................................................................................................................... 4 功能需求 ...........................................................................
................................................................................. 51 十、安装工程 ...........................................................................................................