当前位置: 首页 > news >正文

做网站通过什么赚钱哪些网站做英语比较好

做网站通过什么赚钱,哪些网站做英语比较好,美食网站html代码,节能环保公司网站建设摘要 随着计算机技术与信息处理技术迅速发展#xff0c;智能化电子设备逐渐进入到日常的生产和生活中#xff0c;与此同时#xff0c;人们对电子设备操作过程的便捷化也提出了新的要求#xff0c;这也促使计算机进行图像处理的技术也得到了发展。近些年兴起的模式识别技术…摘要 随着计算机技术与信息处理技术迅速发展智能化电子设备逐渐进入到日常的生产和生活中与此同时人们对电子设备操作过程的便捷化也提出了新的要求这也促使计算机进行图像处理的技术也得到了发展。近些年兴起的模式识别技术为操作便捷化提供了新的研究方向和发展平台其中通过对手势的识别来向电子产品进行命令操作逐渐成为一项新的关键技术。目前手势识别技术已经逐步应用在AR和汽车辅助驾驶等方面同时在人机交互过程中应用手势识别技术还可以提高体验感。所以研究开发手势识别系统具有一定的学术意义和经济价值。这项技术涉及了包含静态图片识别与分析、视频图像处理及计算机视觉等多方面内容。 本文介绍了开发手势识别系统的背景及意义分析了过程中涉及到的必要步骤及算法。本系统基于C环境使用OpenCV开源计算机视觉库进行手势识别。本系统通过计算机本地单目摄像头录入手势分别对动态和静态手势进行识别并实时显示不同手势所表示的结果。总体上可分为图像采集、图像预处理特征提取及识别四个模块具体包括非线性中值滤波、形态学膨胀滤波、HOG特征和SVM分类等步骤。 目前系统开发完成实验结果基本可以实现手势的识别并显示出结果。 关键词图像处理手势识别OpenCV计算机视觉 ABSTRACT With the rapid development of computer technology and information processing technology, intelligent electronic equipment has gradually entered into daily production and life. At the same time, people have put forward new requirements for the convenience of electronic equipment operation process, which also promotes the development of computer image processing technology.The emerging pattern recognition technology in recent years provides a new research direction and development platform for the convenience of operation, among which the command operation of electronic products through gesture recognition has gradually become a new key technology.At present, gesture recognition technology has been gradually applied in AR, automobile assisted driving and other aspects. Meanwhile, the application of gesture recognition technology in human-computer interaction can also improve the sense of experience.Therefore, the research and development of gesture recognition system has certain academic significance and economic value.The technology involves static image recognition and analysis, video image processing and computer vision. This paper introduces the background and significance of developing gesture recognition system, and analyzes the necessary steps and algorithms involved in the process.This system uses OpenCV open source computer vision library for gesture recognition based on C environment.In this system, gestures are recorded by computer local monocular camera, and the dynamic and static gestures are recognized respectively, and the results of different gestures are displayed in real time.In general, it can be divided into four modules: image acquisition, image preprocessing, feature extraction and recognition, including nonlinear median filtering, morphological expansion filtering, HOG feature and SVM classification. At present, the system has been developed, and the experimental results can basically realize gesture recognition and display the results. Key words: Image processing;Gesture recognition;OpenCV;Computer vision 目录 1 绪论 1 1.1 课题背景及意义 1 1.2 手势识别的发展现状 1 1.3 本文主要内容 2 1.4 本文结构安排 2 2 系统开发平台 3 2.1 OpenCV 3 2.1.1 OpenCV简介 3 2.1.2 OpenCV配置 4 2.2 MFC 8 2.2.1 MFC简介 8 2.2.2 创建一个MFC 8 3 系统相关技术及算法介绍 8 3.1 系统相关技术 8 3.1.1 图像采集技术 8 3.1.2 图像预处理技术 9 3.1.3 肤色检测与分割技术 9 3.1.4 特征提取 9 3.2 系统相关算法 10 3.2.1 HOG特征 10 3.2.2 SVM 14 3.2.3 核函数 15 3.2.4 肤色模型 15 3.2.5 RGB色彩空间模型 16 3.2.6 YCbCr色彩空间模型 17 3.2.7 中值滤波 19 3.2.8 膨胀滤波 19 4 系统设计与实现 21 4.1 系统整体设计 22 4.1.1 手势训练模块 23 4.1.2 手势测试模块 27 5 系统测试与分析 28 5.1 系统测试环境 28 5.2 系统界面测试 28 5.2.1 手势注册功能测试 28 5.2.2 手势识别动态手势测试 31 5.2.3 图片识别静态手势测试 34 5.3 测试问题 36 5.3.1 手势识别动态手势问题 36 5.3.2 图片识别静态手势问题 38 5.4 测试结论 39 6 总结和展望 39 6.1 本系统优点总结 39 6.2 本论文不足总结 40 6.3 未来工作展望 40 参考文献 42 致谢 43 1绪论 1.1课题背景及意义 随着计算机技术的进步和技术革新以及智能化时代的要求人们不断探寻开发新的、更加便捷的人机交互方式。其中基于计算机视觉的手势识别技术已成为研究热点之一。手势的检测和识别技术作为一种有着自然性、简洁性和直接性的一种新型的交互方式是这些交互技术当中倍受重视的研究和应用的技术。近几年来已经有相当一部分的应用采用了这种手势识别的方式作为跟机器交互的手段。本文讨论一种采用基于单目摄像机的特定颜色模型的背景分离方法和基于关键信息的手势提取方法用Visual Studio C和OpenCV进行开发实现在单摄像机下的手势识别交互系统。 1.2手势识别的发展现状 手势识别在计算机科学中是指通过数学算法来识别人类手势。为了获得更好的人机交互体验计算机需要正确地理解人类手势的含义并根据预定义的手势指令进行相关操作。手势识别技术通常包括图像采集技术、图像预处理技术、特征提取技术和识别分类技术几个方面。目前手势识别主要有两个研究方向一是基于计算机视觉二是基于可穿戴设备。 本文是基于计算机视觉开发的的手势识别系统。无论是静态或动态手势其识别顺序首先需进行图像的获取、手势检测和手势分割然后进行手势识别。其关键件技术主要为图像处理、手势分析与分割、手势识别三个过程。图像处理是系统把通过计算机单目摄像头采集的视频流进行帧分离处理从视频流中分离出单一手势图像并对图像进行滤波、平滑等预处理操作作为下一阶段的输入量。然后通过检测算法检测输入量中是否含有人类手势如果检测出手势图像则进行肤色分割处理将手势与背景进行分离得到手势的平面模型建立手势形状数据库。手势识别阶段采用模板匹配法将动态手势看成由静态手势图像所组成的序列然后将待识别的手势模板序列与已知的手势模板序列进行比较识别出手势。 本文是将部分手势转化成所对应的信息。未来可以进一步将手势直接转化成语音通过对话的方式将信息传递出去。方便聋哑人士与普通人的沟通。另外汽车行业一如既往的对手势识别保持热情汽车中的各种仪表可以直接通过手势识别直接控制。而在穿戴设备领域使用手势识别技术以追踪用户包括睡姿、心率、体脂肪率、总肌肉量、体脂肪量和基础代谢率在内的一系列数据进而促进穿戴设备的发展。 1.3本文主要内容 本文所涉及到的一系列软件开发有效凭借以及完成相应试验平台的建立,使用OpenCV中的一些功能函数及控件对图像和视频流进行手势检测的研究。其中以HOG特征、局部二值模式(LBP)为提取的目标通过手势检测椭圆模型算法对图片及视频序列中的手势进行提取手势轮廓。之后通过对RGB、YCrCb等颜色空间模型的处理而后通过非线性中值滤波形态学膨胀等方式进行降噪滤波以达到皮肤分割的效果。最终通过MFC构建了一个支持多手势的视频和图像处理系统该系统可以对视频和图像中的多个手势进行实时识别。 本文的目的是在大量学习和理解传统的算法之后将其实现并优化。在阅读了大量的相关文献和搜索了大量的资料后设计并完成了一套相对方便简洁的手势识别系统。该系统实现了10个手势的动态和静态识别能够快速识别并显示手势所代表的信息。另外可随时采集并训练新的手势模型。 1.4本文主要研究内容 本文整体结构具体可以归结为六个部分其各个章节的布局如下所示 第一章绪论针对于手势识别相关研究背景及意义进行了相对较为切实有效的分析介绍了手势识别研究现状和发展趋势简要阐述了本文的主要内容以及相应章节的布局。 第二章系统开发平台具体涵盖了开发环境和实验平台的搭建在手势检测、手势识别算法研究的基础上借助OpenCV计算机视觉库中的一些函数实现算法和MFC微软基础类库以及Visual Studio 2013开发环境来构建交互界面。 第三章系统相关技术及算法介绍首先介绍了手势识别相关基本原理其次研究了Hog检测算法的基本原理同时介绍了相关概念如色彩和伽马归一化、计算图像梯度等。而后阐述SVM分类原理。最后分析RGB、YCbCr等颜色空间模型及中值滤波算法、膨胀滤波算法的原理。 第四章系统设计与实现首先介绍了手势识别的主要流程和设计思路然后介绍了对应的模块组成及具体功能描述最后进行软件的实现。 第五章系统测试与分析对本文所设计的系统进行测试本章主要介绍对系统各功能的测试结果及针对不同测试结果的分析。 第六章总结和展望对本文所描述的研究工作进行总结并对目前需要进一步改进优化的部分加以说明同时简单介绍改进之后期望达到的效果。 2系统开发平台 本文所开发的系统是基于所进行开发的相应的开发环境具体涉及到了 在此过程当中还应用到了作为系统内部相应的界面库并且基于相对开源的针对于手势检测以及识别完成了相应的开发。 2.1OpenCV 2.1.1关于的OpenCV概述 所谓的具体可以归结为开源形式的计算机视觉库相应的组合命名可以概括为。 在年就已经建立起如今由提供支持。它是一个跨平台开源计算机视觉库可以运行在以为代表的多个操作系统上。包括C函数和少量类同时提供了包含在内等多种语言接口在图像处理和计算机视觉方面有很多通用算法。 提供了机器学习库。该机器学习库侧重于统计方面的模式识别和聚类。除了在视觉相关的任务中还可以方便地应用与其他的机器学习场合。 版本于年发布。的第二个版本是2009年10月的OpenCV2.0主要更新包括C接口更容易、更安全的模式新的函数对现有实现代码优化等。2012年8月对的支持由一个非营利组织提供现在它也集成了对的支持。2014年8月随着的发布这个强大的计算机视觉库迎来了全新的纪元。2019年发布4.0版本。 据相关统计一个人获取的信息大约有 75来自视觉。而图像又是其中最重要的组成部分。在人工智能时代机器视觉会在人机互动、人脸识别、手势识别等方面得到更广泛的应用。作为图像处理的重要工具之一它将会在这一领域发挥更加重要的作用。 2.1.2OpenCV配置 本文采用的是的配置方法OpenCV作为开源的软件直接到官网下载即可目前官网更新到4.1.0版本本系统因需要用到控件故文中采用2.4.9版本。配置过程如下 (1)安装打开资源包解压到相应文件夹。 图2-1 OpenCV资源包解压 (2)配置环境变量将环境变量添加到路径 图2-2 配置环境变量 (3)工程包含include目录的配置 图2-3 配置工程包含include目录 (4)工程库lib目录配置 图2-4 配置工程库lib目录 (5)链接库配置 图2-5链接库配置 (6)加入动态链接库 将文件夹下所有dll文件复制粘贴到 图2-6 动态链接库 如图所示呈现出的模块构成其具体可以归结为部分即模块、模块、模块以及模块包含了相应的基本形式的数据结构以及相关函数。 图2-7 OpenCV模块 2.2MFC 2.2.1MFC简介 是微软基础类库的简称是微软公司实现的一个c类库其具体涵盖了众多的句柄封装类以及大量的的内建控件以及相应的组件的封装类。 MFC除了是一个类库以外还是一个框架MFC作为一个通用框架不具备最好的针对性同时也就丧失了部分灵活性和效率。但的具体封装形式相对较浅故其相应的效率损失相对较少。 利用MFC AppWizard创建Test工程之后将自动生成5个类CAboutDlg“关于”对话框类、CMainFrame基础框架类、CTestApp应用程序类、CTestDoc文档类、CTestView视图类。 2.2.2创建一个MFC 文件-新建-项目-MFC应用程序其余项默认点击创建。本文命名为“MFCGesture”。 点击“解决方案资源管理器”可以看到CAboutDlg、CMFCGusetureApp和CMFCGusetureDlg。其中CAboutDlg是应用程序的“关于”对话框类CMFCGusetureApp是由CDialogEx派生的类CMFCGusetureDlg是主对话框类本系统程序运行后显示的主界面即为主对话框。 在“资源视图”中可以看到工程MFCGuesture的资源树。点击展开Dialog项出现两个ID分别为IDD_ABOUTBOX“关于”对话框的模板和IDD_MFCGuesture_DIALOG主对话框的模板的对话框模板。ID是资源的唯一标识本质上是一个无符号整数一般ID代表的整数值由系统定义。 在这之后可以对系统自动生成的主对话框模板进行编辑、添加控件和函数等操作或者创建新的对话框模板和所对应的对话框类再进行编辑等操作最终实现图形界面。 3系统相关技术及算法介绍 3.1系统相关技术 3.1.1图像采集技术 对于计算机而言摄像头扮演着眼睛的角色是环境图像采集的工具。现有多数手势识别系统中图像采集可以是从指定文件夹中读入的视频和计算机本地摄像头实时视频流本文开发的手势识别系统是基于本地摄像头。为实现动态手势识别功能首先要将摄像头采集的视频转换为单帧图像这些图像存储到Mat中然后进行图像处理。本文采用OpenCV开源函数库打开本地摄像头进行图像采集。 3.1.2图像预处理技术 预处理是计算机图像处理过程重要的一步。在图像采集时会存在许多干扰因素导致采集到的图像会存在不同程度的噪声。图像噪声包括外部噪声和内部噪声。由系统外部电磁波干扰等因素引起的噪声称为外部噪声。由光、电的基本性质引起的噪声称为内部噪声。图像后续处理受噪声直接影响所以在图像使用前需经过降噪、量化、压缩等处理减少图像噪声提高图像质量。OpenCV包含线性滤波方框滤波、均值滤波、高斯滤波、非线性滤波中值滤波、双边滤波、形态学滤波。经测试本文采用中值滤波及膨胀滤波。 3.1.3肤色检测与分割技术 肤色检测与分割手势轮廓检测的关键一步。在这一处理过程中将采集图像中的手势与背景分离消除背景对手势的影响为下一步手势识别过程提供单纯的手势图像这一操作将影响识别准确率的高低。肤色易因光照强度和不同人之间差异以及某些摄像头的自动对光功能的影响。为此需要一种快捷的手段根据现场情况进行调整。本文采用将颜色空间从RGB色彩空间转换到亮度与色度分离的某个颜色空间然后放弃亮度分量。在双色差或色调饱和度平面上不同人的肤色区别较小肤色的不同更多在亮度上而不是色度上。肤色分割后得到的是二值化图像皮肤部分为白色其余部分为黑色。在完成图像的预处理之后 将图像的RGB空间转换成YCrCb空间。 YCbCr颜色空间是一种常用的肤色检测的色彩模型其中Y代表亮度Cb代表光源中的蓝色分量Cr代表光源中的红色分量。 3.1.4特征提取 一旦有效获取相应的单独目标手势以后接下来就需要对其完成切实有效的描述。也就是说针对于相应的关键特性完成相对具有代表性的提取除此之外还要将其进行一定的数值化处理建立起相应特征向量在一定程度上将手势识别完成对应的数字化建模便于后期进行切实有效的手势识别。 关于静态形式的手势仅需要针对某一特定时间点完成相应的描述不难分析出此状态下的手势特征值不会受限于相应的手势所处的地域环境与位置几乎完全凭借其相应的姿态来决定。具体可以概括为不管手势如何变更方位只要保持其姿态不发生任何变化与之相对应的特征向量便会保持相对一致。 针对于动态手势识别就不那么简单了从动态的字眼就可以看出其同时兼具时、空二元耦合特性在此过程中必须将这两方面全部考虑进去才能确保所提取的动态手势切实有效。可以这样理解一方面要如同于静态手势逐一时间点进行有效识别与此同时还要对其相应的运动轨迹完成有效的识别工作并将二者有效融合即可完成所谓的动态手势识别工作。 3.2系统相关算法 当前形式下针对于图像特征提取已经开发出了各式各样的算法其中也存在一定量的散发针对于相应的几何变换呈现出相对较为良好的适应性但是在手势识别过程当中还要有效处理好光照变化问题对此前的算法还要进一步的完善在一定程度上可以说是相对较为繁琐且艰巨的过程。 考虑到这些原因该手势识别系统是基于手势检测技术恰巧基本可以实现相应的收拾特征获取任务在一定程度上能够相对较好的有效解决光照变化所引申出的一系列问题。故可有效凭借的方式切实有效完成相应收拾特征的获取工作确定手势位置。然后对此区域进行图像采集及识别。 完成相应的手势特征获取以后确保实现相对较为切实有效的手势识别还需进一步针对于相应的分类器进行不断的模拟与调试本项研究具体采取的是为即支持向量机来作为分类器。 3.2.1HOG特征 具体所指方向梯度直方图其在一系列的视觉检测以及相应的图像处理方面已经得到了相对较为广泛的应用在此过程当中可以实现相应物体的检测以及所对应的特征描述。其具体的运作形式可以归结为有效凭借图形局部区域所对应的梯度方向直方图来实现相应的特征搭建。尤其是在针对于行人进行相关检测当中并与进行有效组合在一定程度上已经成功应用的众多领域当中。即针对于一副图像相应的梯度几乎全部集中于其边缘的位置。相应的目标的形态可有效凭借梯度或者相应的边缘方向进行切实有效的描述。 存在的优势具体可以归结为在一定程度上具备一定的几何以及光学不变特性微量的动作几乎不会对相应的检测效果造成任何形式的干扰可以理解为允许手部肢体不那么僵持。 针对于直方图所呈现出的更大区域:完成相应的归一化可以将其整体性能有效提升。如图3-3所示呈现出具体形式的生成流程。 图3-1 关于生成流程 其具体的生成流程可以归结为以下几方面: (1)规范化以及相应的颜色空间 所谓光照的程度会对相应的具体图像色值造成一定的影响确保将其所呈现出的干扰程度有效压低要做的第一步就是针对于图像进行相应的归一化处理。在相应的纹理强度当中所占比重相对较大的部分要属表面曝光故此类压缩处理方式能使图像对这类变化具有不变性特征相应的局部阴影以及所对应的光强改变均能得到切实有效的下降。由于在此过程当中相应的颜色信息功效不是很强烈一般采取的方式是进行相应的灰度处理 在这里将相应取为从而切实保证高光区呈现出相对较低的对比度反之阴影区相应的对比度则有效提升。该项压缩处理方式在一定程度上确保局部阴影以及相应的光照改变呈现出切实有效的下降趋势。试验结果可知引入这项步骤呈现出效果几乎不够显著进而将其忽略。 (2)关于图像梯度的相关求解 凭借一维形式的微分算子即对最初的图像进行相应的卷积求解,结果显示相应的方向梯度分别呈现在横纵坐标当中随后完成相应梯度方向值的有效求解进行相应的倒数运算在一定程度上不单能可有效获取其轮廓还可以有效将光照的干扰有效压低。基于表示图像某一通道中xy处的颜色值其xy处的水平方向梯度记为Gxxy垂直方向梯度记为Gyxy计算式如下 则xy 处的梯度幅值Gxy 和梯度方向θxy计算公式如下 求解的具体方式可以归结为:分别基于以及对应的梯度算子对最初状态的图像完成相应的卷积求解即可有效得到相应水平以及垂直方向上所对应的梯度分量进而可以求解出任意像素点所对应的梯度方向与数值。 (3)针对于任意细胞单元进行相应的梯度方向直方图的建立 这步的功效在于有效产出相应的编码供所对应的局部图像区域运用与此同时还能确保图像内部的人体姿态以及相应的外形具备一定相对较弱的敏感性。 该单元当中的任意像素点均能够针对于方向形式的直方图进行所谓的投票。其具体凭借加权的形式也就是说任何的票均夹杂这一定的权值其相应的大小是基于相应的梯度幅度进行求解的。可以有效凭借其自身或者一系列的函数关系实现相应权值的表示基于相关测试结果显示在一定程度上凭借幅值的方式进行表示权值所得到的效果最为良好除此之外一系列关于幅值的函数关系譬如其平方、立方等形式也可以进行相应的权值表示。相应的单元的形状也呈现出多样化的趋势具体可以归结为星、矩形等。相应的直方图通道具体均布呈现在以及区间内。 针对于相应的人体进行检测时其中单元格大小呈现出以及像素的时候所对应的检测效果相对最为良好。倘若相应的单元格大小呈现出以及个像素时造成的差异也不是很明显。因此将相应的图像进行像素单元化处理也就是说任意的尺寸必须确保像素。现拟凭借进行相应的梯度信息统计工作。其具体步骤可以归结为首先针对于相应的梯度方向进行区间层面的有效划分也就是说进一步完成度的块等分在此过程中任意直方图块均呈现出。如图所示:倘若其相对于梯度方向呈现出的形式即可将其归纳到相应的第一块倘若其相对于梯度方向呈现出的形式便将其归纳到相应的第二块除此之外相应的直方图第个执行累加的运算逐次类推。完成全部形式的加权投影即可得到与之对应的。 图3-2 cell的梯度方向直方图 (4)把细胞单元组合成大的块block块内归一化梯度直方图将细胞单元组合成大的区间 通常情况下相应的梯度强度在一定程度上会随局部光照以及相应的对比度改变呈现出相对较为剧烈的改变因此必须进行切实有效的归一化处理。归一化能够进一步地对光照、阴影和边缘进行压缩。 本文采取把任意进行相应连通区间的组合即。也就是说将一个内全部形式的的特征向量进行有效串接从而获取到此所对应的特征。这部分区间存在一定的重叠性也就是说任意的特征会基于相对差异的形式呈现在最终的特征向量当中。 如图所示呈现出以及的关系形式。 图3-3 关于以及相应的重叠关系 3.2.2SVM 支持向量机Support Vector Machine, SVM是由机器学习领域的最大间隔分类算法发展而来的是一类按监督学习supervised learning方式对数据进行二元分类binary classification的广义线性分类器generalized linear classifier针对于降低最小化实验误差以及相应的最大化几何边缘呈现出相对较为良好的效果故可以将其归结为最大边缘分类器。其本质在于在相对更高维度的空间内部进行相应的超平面搭建所谓的决策边界是对学习样本求解的最大边距超平面maximum-margin hyperplane确保其对相应进行分类的数据呈现出相对较大的间隔。相应的误差与间隔之间也就是所谓的负相关形式。经过不断发展SVM己经成为了机器学习领域的标准工具之一。 我们以二维平面加以分析。如图所示图中呈现的红方以及蓝圆均为即将进行分类的相关对象两条蓝线即为相应的超平面不难分析出任意点与之间的间距要高于也就是说即能进行相对较为良好的区分凭借对的有效调节直至实现任意点间距达到最大化此刻呈现出最近形式的点即为所谓的支持向量。 图3-4 相应的最大间隔分类 3.2.3核函数 针对在低维空间呈现出一定的线性不可分的相关特性如图所示可有效凭借高维度映射的方式逐步实现线性可分形式的切实有效转化。 图3-5 关于线性转化过程 3.2.4肤色模型 肤色特征区别于其他特征,对于彩色图像肤色是图像中相对聚集和稳定的区域不会基于人的各类现象的产出而发展改变,呈现出相对较高的鲁棒性,与相应的背景色彩呈现出显著的差异。通过大量的实验研究表明,不同人种的人其皮肤的色调是比较一致的,不同之处具体呈现在灰度。故一般情况下基于相对较为常见的相关肤色模型针对于人脸特征进行有效概括。由于肤色在存在差异的色彩空间中具有不同的表现形式。本项研究基于当中的椭圆模型进行相应肤色分布的具体描述。 所谓的皮肤模型可以归结为等。通过对相关学者所做的关于皮肤信息统计方面的文献进行切实有效分析可知倘若实现相应的皮肤信息映射到则在相应的二维空间中呈现出类椭圆形式的分布状况。一旦可以得到相应的椭圆在有效凭借接下来获取到的坐标进行相应的区域位置判别也就是在椭圆内部还是外部倘若落在其内部的话即可将其判别为相应的皮肤否则即为所谓的像素点。 确保相应的亮度不对所谓的肤色聚类造成一定的干扰在当中针对于相应色度执行一系列的非线性变换完成光影相对较高的区域剔除也就是所谓关于的极值在进行一系列非线性变换当中凭借有效代表相应的中轴线相应肤色区域的具体宽度可凭借进行有效表示。 也就是将其全部转化到当中再依次进行关于平面的有效投影故通过相应采样得到的相关点集依次进行相应的投影以及相应的变换。 图3-6 关于椭圆模型的相关坐标 3.2.5RGB色彩空间模型 RGB 色彩空间是人们最常用到的颜色模型。于年选取了红绿蓝这几种单色作为相应的基本色也就是所谓的色彩空间。在一定程度上可以基于三基色实现任何色彩的体现与表示这是当今时代下最为常用的色彩表示方式。也可以有效凭借三基色进行相应光量的有效表示其中红色波长700.0nm绿色波长546.1nm蓝色波长435.8nm组成的坐标系为 RGB 色系坐标系。图像的颜色一般都用 RGB 坐标系来表示。 在针对于手势识别相关研究过程当中一般情况下摄像头所采集到的各种形式图像都是来源于相应的色彩空间需要注意的是不能直接对其进行相应的肤色分割。这是因为其三基色之间存在相对较为突出的相关性倘若进行任意分量保持相对独立的形式进行处理可以说要比登天还难在此过程中其对光照要求相当严格其所带来的干扰也尤为突出故在进行目标手势肤色分割的过程当中几乎没有采取的现象。 图3-7 关于色彩空间相关坐标系 在 RGB 模型中手势表现出来的颜色受到关照的影响但对同一点来说在不同的亮度条件下其对应的值是成比例的 可以归结为相应的光照几乎不会影响同一点的色彩情况仅仅局限于亮度存在差异。 RGB 颜色空间可以直接通过线性变换转化为灰度图像 3.2.6YCbCr色彩空间模型 具体可以归结为由进行有效变换所得到的。其中代表相应的亮度、Cr 分别代表光源中的红色分量与蓝色分量。通过非线性分段而得到的的亮度以及色度所对应的采样比率分别为在一定程度上基本能够满足于肉眼对色度变化的敏感程度明显低于亮度变化的性质与此同时相关色彩的求解相对较为简便、相应的亮度以及色度分量可有效进行分离、具备相对较为良好的聚类性等特征被认为是很出色的肤色空间模型。经过对文献的调研在人们的大量实验后通过统计的方法来确定肤色的参数人手肤色在YCbCr空间中的范围Cb∈(105,127),Cr∈(137,162),当像素点属于此范围时我们就认为它是皮肤像素点。 其转换公式为 相关实验结果显示基于相关模型以及分量呈现出一定的相关性但需要注意的是与之间没有所谓的相关性当亮度存在差异的形势下以及均能呈现出相对较为出色色聚类效果。而且基于到空间的转化基本可以称之为线性变换从而可以忽视的干扰从而有效降低冗余通道的数量。这就实现了相应的维度降低操作。如图3-8所示呈现出肤色关于平面相应的投影。 图3-8关于肤色在平面上相应的投影 经查阅文献及实验本文首先将采集到图像转换到YCrCb空间再对其进行手势分割以得到想要的目标手势。相比于RGB和HSVYCrCb空间计算量远远小于前两种同时对人体肤色的聚类效果最佳受光线变化干扰也最小。接下来的一章将进一步介绍基于肤色聚类分割的具体呈现形式此处不再赘述。 3.2.7中值滤波 肤色分割之后我们还需对图像进行一定的平滑度处理。在一定程度上又可归结为模糊通常情况下凭借其进行有效降噪其本质在于针对于相应的图像进行平滑化从而有效降低其内部的噪点存在。在本文所涉及的手势识别当中所谓的图像平滑处理的最根本原因在于尽可能最大限度降低一系列的冗余信息便于后续的手势轮廓分割以及相关特征的有效获取与此同时致使相应的计算量有效下降。中值、双边以及相应的高斯滤波是相对较为常见的几种平滑滤波方式。 中值滤波可以归结为相对较为典型的非线性技术其具体的原理是有效凭借像素点灰度中值进行有效近似等价替代其功效在于有效剔除相应的造成与此同时还能切实有效保证一系列边缘细节不会被破坏。 基于实验进行分析相应的中值滤波对去除图片噪声特别理想。相比于其他平滑方法其在一定程度上能够有效克服一系列相对较为常见的线性滤波器譬如最小均方、方框、均值滤波等造成的一系列细节模糊问题与此同时能够有效降低脉冲干扰以及相应的扫描噪声还能切实有效保证一系列边缘细节不会被破坏。除此之外相应的算法相对较为便捷实用。故本文所涉到的手势识别系统有效凭借中值滤波的方式完成相应的噪音剔除。 。 其中f(x,y)、g(x,y)分别表示中值滤波处理前、后的图像W是模板通常为33或者22本文采用3*3。 3.2.8膨胀滤波 形态学morphology是生物学的一个分支图像处理中的形态学具体可以归结为数学形态学其实质在于格论以及相应的拓扑学层面的图像分析。 简而言之所谓的形态学操可以归结为基于相应形状的图像处理。在一定程度上为相应的图像形态学变换营造了相对较为快捷的函数以及开发环境。最基本的形式可以归结为两类即膨胀以及腐蚀。本文采用膨胀进行滤波。 膨胀dilate又称为作图像加粗也可以称之为局部最大峰值的求解。基于数学视角出发所谓的膨胀即为将图像与核进行卷积计算。 核的形状以及大小几乎不受任何限制它具备一定的单独形式进行定义的相关参考点也就是所谓的锚点。通常情况下核具体表现为相对较小其中心部位存在一定的参考点的实心圆或者正方形。可以将其当做相应的模板甚至是掩码。相应的膨胀操作在一定程度上能够针对于噪音以及阴影等干扰所进行分割的各个部分完成相应切实有效的融合。 如图所示有效凭借膨胀可以进行局部最大峰值的求解。核与图形发生卷积即进行核覆盖区域所对应的的像素点的最峰值的求解并将其赋给相应的参考像素便可将相应的高亮区域逐步扩大。p188 图3-9 膨胀滤波 膨胀的数学表达式如下 4系统设计与实现 凭借着计算机以及图像处理技术发展势头迅猛提升相应的计算机视觉等方面也在迅速发展手势识别作为人机交互的一种方式也迎来了新的发展机遇。通过前期调研发现手势识别技术已应用在多个领域如日常生活视频直播或者拍照过程中结合用户的手势如点赞、比心实时显示相应的特效丰富交互体验。智能驾驶过程中将手势识别应用到驾驶辅助系统使用手势控制车内的各种功能一定程度上解放双眼将更多的注意力放在道路上提升驾车安全性。同时还包括百度AI开放平台提供的在线手势识别服务等。这些均反映着手势识别技术的火热。 本文设计的手势识别系统可以归结为顺序结构相应的系统流程如下图4-1所示 图4-1 手势识别流程图 下面对系统中三个重要模块进行介绍 (1)图像采集模块 基于本地形式的摄像头完成相应的视频图像的切实有效采集呈现出空间视频流的形式进而为手势识别输入奠定一定的基础并将采集到个各项数据有效储存到当中为接下来的输入做好充分准备。 (2)图像预处理模块 凭借图片的有效缩放进而将后期的相关计算量有效压低在此过程当中有效剔除相应的图片噪音为接下来的相应处理提供相对较为便捷的条件。这部分具体涵盖了灰度变换、空间转化以及相应的平滑处理等。 (3)匹配识别模块 该模块是手势识别系统需要实现的目标功能也是本系统最重要的模块。在对图像进行一系列的处理后有效获取到相应手势图像具体形式的特征值接下来与事先设定好的模板特征值完成切实有效的对比以及归类进而有效寻找出所对应的手势信息譬如手型所代表的数字。然而在动态识别当中系统内部会进行实时的信息采集并完成相应的处理工作。 4.1系统整体设计 根据前期的需求分析和调研本文设计的整体系统结构如下图所示 图4-2 手势识别程序流程图 4.1.1手势训练模块 在开始训练手势之前需要用户打开电脑自带的摄像头提供视频流。 void CMFCGuestureDlg::OnBnClickedOpencap()//打开摄像头 { m_Cap.open(0); if (!m_Cap.isOpened()) { MessageBox(“摄像头打开失败”); return; } 但是MFC的picture control控件中的图像格式与OpenCV的图像格式不尽相同因此需要将OpenCV得到的视频流通过CvvImage开源图像处理库进行转变处理。处理完以后摄像头所得到的图像就会被显示在控件中。 void CMFCGuestureDlg::regniseHand(string path_img) { imagesRegnise imread(path_img.c_str());//imagelist[0].c_str() Mat incp imagesRegnise.clone(); srcCvvImg.CopyOf((IplImage)imagesRegnise); //绘制图像到控件 srcCvvImg.DrawToHDC(m_HDCImg, m_RectImg); resize(incp, incp, Size(HogWIDTH, HogHEIGHT)); hand handPreprocess(incp); if (1.0*countNonZero(hand) / (incp.cols*incp.rows) 0.23) {int regResult mySvmClassifier-svmPredict(incp);CString str;str.Format(%d, regResult);SetDlgItemText(IDC_EDIT2, str);sprintf_s(buffer, %d, regResult);putText(imagesRegnise, buffer, Point(incp.cols / 2, incp.rows / 2), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2);srcCvvImg.CopyOf((IplImage)imagesRegnise); //绘制图像到控件srcCvvImg.DrawToHDC(m_HDCImg, m_RectImg);srcCvvImg.CopyOf((IplImage)hand); //绘制图像到控件srcCvvImg.DrawToHDC(m_HDCImg2, m_RectImg2); } else {MessageBox(没有检测到手势); }} 在本系统中为降低识别失败率及程序复杂度我直接定义并设置了检测区域的位置。 int WIDTH m_src.cols; int HEIGHT m_src.rows; capRt cv::Rect(1 * WIDTH / 3 - 1, 1 * HEIGHT / 3 - 1, WIDTH / 2, HEIGHT / 2); 采集手势如图所示 图4-3 手势采集 void CMFCGuestureDlg::OnBnClickedReg()//注册手势类别 { CString str; GetDlgItem(IDC_EDIT1)-GetWindowText(str); regingInt atoi(str); regBool false; sprintf_s(buffer, “./Data/%d”, regingInt); if (_access(buffer, 0)0) { sprintf_s(buffer, “手势%d已注册如需重新注册请先删除对应类别文件夹”, regingInt); MessageBox(buffer); regingInt -1; return; } CreateDirectory(buffer, NULL); regBool true; regNum 0;} 图像采集完毕后存入指定文件夹下。如例子中注册手势1则存入D:\2019毕设\vs13program\handGuesture\MFCGuesture\Data\1。保存如图所示 图4-4 手势采集保存形式 本系统手势预处理将计算机摄像头采集到的的RGB色彩空间转换为YCrCb空间再利用椭圆皮肤模型进行皮肤检测与分离。 Mat CMFCGuestureDlg::handPreprocess(Mat src) { ycrcb_image; Mat output_mask Mat::zeros(Size(src.cols,src.rows), CV_8UC1);for (int j 0; j src. //如果该落在皮肤模型椭圆区域内该点就是皮肤像素点output_mask.atuchar(j, i) 255;}dilate(output_mask, output_mask, element);//膨胀参数1输入图片参数2输出图片参数3卷积核 medianBlur(output_mask, output_mask, 3);//中值滤波 morphologyEx(output_mask, output_mask, MORPH_CLOSE, element2);//形态学运算函数return output_mask;} 输出如图所示 图4-5 手势预处理 采集并处理完图像后进行手势模型的训练 void CMFCGuestureDlg::OnBnClickedButton3()//训练模型 { char* path_ “./Data/”; readDir(path_, imagelist, labelName); mySvmClassifier new svmGuesture(imagelist.size(), HogWIDTH, HogHEIGHT); //新建的手势识别的类svmGuesture这个类在另外的文件 if (_access(“./model.xml”,0)0) { mySvmClassifier-svm.load(“./model.xml”); return; } int flag mySvmClassifier-loadData(imagelist); if (flag-1) {MessageBox(not Found image files); } flag mySvmClassifier-svmTrain(); if (flag -1) {MessageBox(train model error); } MessageBox(training model done);} 4.1.2手势测试模块 系统必须先通过手势检测模块来画出手势轮廓与皮肤区域。此系统中的手势检测功能就是通过OpenCV手势识别库在特定区域提取手势特征。 本系统手势识别模块包括了动态识别和静态识别。具体方法将在第五章叙述。 启动手势识别功能代码如下 void CMFCGuestureDlg::OnBnClickedButton2()//手势识别 { if (_access(“./model.xml”,0)!0) { MessageBox(“请先训练模型”); return; } startRegnise true;} 5系统测试与分析 在系统运行和测试阶段通过对系统功能逐个进行测试验证系统是否达到了预期的设计要求。 5.1系统测试环境 在本文的测试中系统的运行环境为英特尔 Core i7-8750H 2.20GHz 六核处理器和16GB内存配置的电脑操作系统为win10开发环境采用Visual Studio 2013开发语言为C。 5.2系统界面测试 5.2.1手势注册功能测试 系统界面如图5-1所示 图5-1 手势识别系统界面 考虑需要一只手注册一只手操作我将注册区域调整到画面左下方。以注册手势0为例。 图5-2 注册手势“0” void CMFCGuestureDlg::OnTimer(UINT_PTR nIDEvent) //时间响应函数 { m_Cap m_src; rectangle(m_src, capRt, Scalar(255, 0, 0), 2); srcCvvImg.CopyOf((IplImage)m_src); //绘制图像到控件 srcCvvImg.DrawToHDC(m_HDCImg, m_RectImg); frameCounter; if (regBool || startRegnise)hand handPreprocess(m_src(capRt)); // 皮肤检测判断是否为手势if (regBool regNum50 regingInt0) {//Mat hand handPreprocess(m_src(capRt));if (regingInt 1)thresh_ 0.24; else thresh_ 0.3;if (frameCounter % 3 0 1.0*countNonZero(hand) / (capRt.width*capRt.height) thresh_){sprintf_s(buffer, ./Data/%d/%d_%d.jpg, regingInt, frameCounter, regNum);Mat saveImg m_src(capRt);//cvtColor(saveImg, saveImg, CV_RGB2GRAY);imwrite(buffer, saveImg/*hand*/);regNum;}srcCvvImg.CopyOf((IplImage)hand); //绘制图像到控件srcCvvImg.DrawToHDC(m_HDCImg2, m_RectImg2); } if (regBool regNum 50 ) {sprintf_s(buffer, 手势%d注册完成, regingInt);regBool false;regNum 0;MessageBox(buffer); }if (startRegnise) {Mat saveImg m_src(capRt);//handPreprocess(saveImg)if (1.0*countNonZero(hand) / (capRt.width*capRt.height) 0.3){resize(saveImg, saveImg, Size(HogWIDTH, HogHEIGHT));cvtColor(saveImg, saveImg, CV_RGB2GRAY);int regResult mySvmClassifier-svmPredict(saveImg);CString str;str.Format(%d, regResult);SetDlgItemText(IDC_EDIT2, str);sprintf_s(buffer, %d, regResult);putText(m_src, buffer, Point(capRt.x, capRt.y), FONT_HERSHEY_SIMPLEX, 1.5, Scalar(0, 0, 255), 2);srcCvvImg.CopyOf((IplImage)m_src); //绘制图像到控件srcCvvImg.DrawToHDC(m_HDCImg, m_RectImg);srcCvvImg.CopyOf((IplImage)hand); //绘制图像到控件srcCvvImg.DrawToHDC(m_HDCImg2, m_RectImg2);}}5.2.2手势识别动态手势测试 图5-3 手势“0”动态识别 图5-4 手势“1”动态识别 图5-5 手势“2”动态识别 图5-6 手势“3”动态识别 图5-7 手势“4”动态识别 图5-8 手势“5”动态识别 图5-9 手势“6”动态识别 图5-10 手势“7”动态识别 图5-11 手势“8”动态识别 图5-12 手势“9”动态识别 由上图可以看出在光线条件合适的情况下背景与肤色对比度明显系统可以准确识别出0-9共10个手势并实时将识别结果显示在界面上。 5.2.3图片识别静态手势测试 点击图片识别按钮打开静态手势存储的文件夹识别图片手势。 图5-13 手势“1”静态识别 图5-14 手势“2”静态识别 void CMFCGuestureDlg::OnBnClickedButton4()//图片识别按钮 { KillTimer(1); startRegnise false; regBool false; CString str; BROWSEINFO bi; TCHAR name[MAX_PATH]; name[0] ‘d’; ZeroMemory(bi, sizeof(BROWSEINFO)); bi.hwndOwner GetSafeHwnd(); bi.pszDisplayName name; bi.lpszTitle _T(“Select folder”); bi.ulFlags 0x80; LPITEMIDLIST idl SHBrowseForFolder(bi); if (idl NULL) return; SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH)); str.ReleaseBuffer(); m_Path str; if (str.GetAt(str.GetLength() - 1) ! ‘\’) m_Path “\”; UpdateData(FALSE); m_ImageDir (LPSTR)(LPCSTR)m_Path; imagelist.clear(); labelName.clear(); readDir(m_ImageDir, imagelist, labelName); NumImg imagelist.size(); if (NumImg0) {MessageBox(文件夹下没有图片);return; } regniseHand(imagelist[0]);} 5.3测试问题 测试过程中也发现了一些问题具体如下 5.3.1手势识别动态手势问题 如图所示 图5-15 5-16 动态手势识别光线问题 由于光照条件变化和手掌与摄像头距离等原因在手势注册时肤色分割变化较大直接影响从视频流中采集的图像质量并影响手势训练结果最终导致手势识别效率降低。 5-17 手势角度变换造成识别错误 从测试中发现由于采集手势样本数量有限当摄像头采集区域手势角度发生变化时系统无法或错误识别动态手势。 图5-18 5-19 身体其他部位肤色对识别的影响 另外由于人体其他部位肤色与手部肤色差别不大当有身体其他部位如脸或手臂进入图像采集区时同样会被肤色分割。在手势采集时会影响模型训练效果而在手势识别时则会导致错误或无法识别。 5.3.2图片识别静态手势问题 5-20 异侧手无法识别 从测试结果中我们可以看出静态手势在图像处理方面不如动态手势主要表现在图像平滑处理不好。同时遇到与动态测试中相同的问题当旋转图片角度测试或者导入另一只手进行测试时系统无法识别该手势类型。 5.4测试结论 经过上述的测试表明该系统可以基本实现设计需求中的各项功能在光线和背景稳定的情况下能够保证这些功能的正确执行本系统的算法基于原有算法进行部分了改进达到预期设想。其中手势检测可以很好地检测动态正面手势摄像头采集的视频中的手势都可以正常进行预处理但当外界条件变化或因手部移动造成光线、位置等因素造成的干扰影响了图像的采集从而造成后续识别率降低。且由于边缘滤波算法研究不够全面和充分因此静态手势识别效果不够好。通过系统整体运行测试说明该系统可以实现一定程度上的动态、静态手势识别功能。 6总结和展望 随着时代的不断发展伴随着科学技术的日新月异相应的手势识别在人机交互的过程当中呈现出相对较为便捷、高效等特点成为当前研究和应用的热点。而新一代的人机交互必然会呈现出相对较为人性化、智能化以及自由化的趋势。 6.1本系统优点总结 本文以Visual Studio 2013OpenCV2.4.9作为开发平台开发出基于图片以及本地摄像头采集手势并进行切实有效识别的系统同时利用图像处理及模式识别的理论知识我对手势识别相关领域有了更深入的了解。 本文首先了阐述了手势识别的基本原理。对输入图像充分做好相应的预处理其次针对于手势图像的各方面特征基于相应的皮肤模型的椭圆模型法对皮肤特征进行提取。为了使分割效果更佳在肤色模型区域的算法中在查阅资料后选取形式的颜色空间与此同时考虑到相应的亮度变换比相对较大一旦呈现过亮或者过暗区域的现象产出在一定程度上会导致中呈现肤色溢出的现象。有效凭借完成相应类椭圆模型的搭建。相应的皮肤色彩呈现出一定的聚类特性基于该聚类特性可有效求解出各点的相似度并进行相应的归一化处理即呈现在区间内。去除肤色区域中的非手势区域从而可以较好的分割出目标部分。本项研究具体的贡献在于 1.针对于的手势模板提出了相应的动态识别算法进行切实有效识别。 2.本文对手势的特点进行了切实有效的分析具体涵盖了静态以及动态手势相关提取与识别并且基于特征以及相应的算法进行了切实有效的探索。 3.整体而言系统运行情况良好符合预期。 6.2本论文不足总结 针对于本文所开发的手势识别系统进行了一系列验证性实验以后将相应的不足之处有效归结为以下几点: 1.虽然帧速的相关识别相对较快很快但在精准度方面还有待进一步完善; 2.手势采集区域固定可通过更换算法实现手势区域自由定位 3.图像预处理算法仍需改进尤其是图像平滑处理 4.对旋转或者不同位置的手势系统无法快速、准确地进行识别; 5.基于调试中相应的参数使其相应的特征提取更加切实有效。 6.算法需要手动设置参数值无法自适应外部环境的变化; 7.给程序构造更加友好的用户界面 8.当前能够有效识别手势形式相对较少未来可进行相关算法的完善以及模板的扩充。 6.3未来工作展望 针对于手势识别未来的研究工作从以下方面着手进行 1.完善相关识别算法确保相应的识别精度有效提升同时保证相对较高的流畅性; 2.在光线、位置以及相应的环境方面的适应程度还有待进一步完善; 3.着手考虑手势旋转等因素确保得以实现全方位的手势识别纳; 4.扩展现有的模板容量保证手势识别呈现多样化的趋势; 5.考虑与哑语进行有效结合; 6.逐步引入类似于神经网络形式的相关算法确保相应的识别精度有效提升。 7.进行相关参数的优化使其智能化程度有效提升。 参考文献 [1]袁博查晨东. 手势识别技术发展现状与展望[J]科学技术创新201832. [2]李越. OpenCV应用现状综述[J]. 工业控制计算机201730(7): 123-126. [3]肖茜杨平徐立波. 一种基于MEMS惯性传感器的手势识别方法[J]传感技术学报201305. [4]秦刘念. 医院计算机网络的发展与医院计算机应用的重要性[J]电脑迷201810(10). [5]东述樾赵娜. 关于医院计算机网络安全管理工作的维护策略分析[J]世界最新医学信息文摘201818(74)198-199. [6]童欣. 一种基于OpenCV的手势轮廓识别与指尖定位跟踪方法[J], 福建电脑2018(12)96-98 . [7]陆海虹. 基于OpenCV的手势识别系统的设计与实现[J]电子设计工程, 201523(5): 1649-1652. [8]黄季冬. 动态手势识别技术研究与实现[D]. 武汉华中科技大学2012. [9]贺航. 基于OpenCV的手势识别的设计改进与实现[D]. 广州华南理工大学2018. [10]毛星云冷雪飞. OpenCV3编程入门[M]. 北京电子工业出版社, 2018. [11]葛立庄照波邱林袁玉荣赵信义杨颖鹏. OpenCV 在手势识别中的应用. 南方农机[J] 2017(23)126-127. [12]陈甜甜姚璜左明章田元杨梦婷. 基于深度信息的动态手势识别综述. 计算机科学[J]201845(12)42-52,. [13]刘培军马明栋王得玉. 基于 OpenCV 图像处理系统的开发与实现[J]. 计算机技术与发展, 2018(3): 1-7. [14]王晓鹏. 基于OpenCV的图像处理滤波算法研究[J]. 现代工业经济和信息化20188 (6): 61-62 . [15]谢凤英.数字图像处理及应用[J].电子工业出版社2014. [16]Zhang BinjueZhao LiaoyinWang YixuanFingeritip detection and gesture recognition based on kinectdepth data[J]. IEEE Trasactions on Computer Science and Technology201431 9-14. [17]Adams WBelotti PShen . Convex hull characterization of lexicographic orderings[J]Writing2013236 719-726 [18]Stephen Prata. C Prime Plus[M]. Addison-Wesley Professional. 2017. [19]H Ym, X Yang. Fast-moving target tracking based on mean shift and frame-difference methods [J]. Journal of Systems Engineering and Electronics, 201222(4): 587-592. 致谢 随着毕业论文完成我的本科生涯也进入尾声。在这短暂的四年学习生活中由衷的感谢北京建筑大学为我提供了一个良好的学习环境与锻炼的平台在这里我学会了如何踏实做人认真做事。 本次毕业设计从选题、开题报告、中期报告和文献翻译都是在张德老师耐心指导下完成。对于学生提出的要求老师有求必应不厌其烦地在知识点讲解、设计思路并在论文修改上面提供帮助。老师在时间和精力上付出了太多太多庆幸自己遇到这么一位治学严谨对学生热心的好老师在理论知识的学习和方法的掌握上给予了我全面而严格的指导谨向张老师表示崇高的敬意和衷心的感谢! 在人的一生中最宝贵的就是在你关键时期有良师或益友伴自己同行帮助自己不断取得进步。在此还要感谢教授课专业课老师们您们是课上专业负责传授知识的老师是课下和蔼可亲的长辈是您们孜孜不倦的教诲让我的专业素质获得提升思维得到发散能力得到提高。在平常的课程实践当中您们教会了我自主学习的能力让我短时间内自学新的知识。同时也感谢辅导员老师对我在学习、工作和生活上的支持今天能够顺利毕业离不开各位老师的默默付出。经过一定时间的适应在本次毕业设计当中我在编程的过程中也在学习新的知识使我的系统越来越完善也让我以后的学习有更加坚实的基础没有老师们的谆谆教诲我的论文就无法完成。借此机会也向我的父母表示感谢感谢他们对我的照顾和支持。 最后感谢在百忙之中参与论文评阅和提出宝贵意见的各位答辩组老师您的意见将是我成长的不竭动力。
http://www.sadfv.cn/news/81463/

相关文章:

  • 做宠物网站心得微信客户端登录入口
  • 营销网站制作方法智慧团建注册登录入口官网手机版
  • 云图书馆平台网站建设网络建设与运维
  • 中山网站建设文化案例怎么制作公司宣传图片
  • 营销型网站建设工资怎么查询企业信息
  • 唐河网站制作如何把一个静态网站
  • 西安有什么好玩的地方嘉兴优化网站价格
  • asp门户网站源码商城网站项目工作的流程
  • 做网站学生作业免费网站推广方式
  • 山东天成水利建设 网站网站支付链接怎么做的
  • 2018年深圳建设网站公司网站推广工具 刷链接
  • 中国建设银行南京分行网站首页网站大学报名官网入口
  • 哈尔滨网站建设 博客网站建设分金手指专业十九
  • 自己网站做第三方支付西安营销推广
  • 什么网站可以做电影投资网站建设 技术方案模板
  • 做网站诈钱家装公司哪家好
  • 做网站的素材包含哪些wordpress 主题 开源
  • 做网站哪里便宜上海网址导航
  • 做网站时怎样分割开发定制手游游戏
  • 网站建设合同交印花税200平米简约办公室装修
  • 广西建设厅官网站什么是网站建设从哪些方面建设网站
  • 自助服务器网站建设怎么在网上做公司网站
  • 北京师范大学学风建设专题网站山西做网站多少钱
  • 网站外包怎么做怎样做网站推广啊
  • 电商网站如何设计内容我的网站搜索不到了
  • 手机网站制作合同wordpress网站托管
  • 如网站站长如何对付黑客wordpress 支付下载
  • 做网站永久网站建设文化流程
  • 外贸网站制作需求wordpress导入演示
  • wordpress不允许评论优化大师软件下载