基于傅立叶描述子的手势特征提取与识别毕业论文
2020-02-17 21:59:17
摘 要
随着科技发展,人们追求更为便利的人机交互方式(HCI),其中手势识别是新一代人机交互的一项关键技术。本文基于Win10 Python3.7的环境,利用Python的OpenCV、Sklearn和PyQt5等库搭建了一个较为完整的手势识别系统,用于识别静态手势1-10,本系统的最大优点是设备简单,符合人们日常习惯,同时每个阶段均进行了多种方案的对比,保证了系统的准确度,以及系统对光照、背景的适应性。
系统主要分为3个阶段:预处理、特征提取和手势识别。预处理阶段进行了图像采集,图像平滑,基于OTSU阈值的肤色分割,基于八邻域搜索法进行轮廓检测操作,最终完成了手势图片从采集到轮廓曲线的提取过程。而特征提取过程对已得到的轮廓曲线提取其傅里叶描述子和椭圆傅里叶描述子,并分别进行了归一化处理。在手势识别阶段,利用最近邻(KNN),以欧式距离为判断标准和支持向量机(SVM)两种机器学习算法,以自己采集数据集为训练集进行了训练,并比较了二者的效果。
经过实验,两种描述子和两种机器学习算法一共训练了4种模型,4种模型都可以较好地识别出静态手势1-10,每个模型测试集的准确度均在89%以上。
关键词:手势识别;傅里叶描述子;椭圆傅里叶描述子;归一化;最近邻;支持向量机
Abstract
With the development of science and technology, people pursue human-computer interaction (HCI), which is more convenient. gesture interaction is a key technology for a new generation of HCI. Based on the environment of win10 and Python3.7, this paper builds a complete gesture recognition system using OpenCV, Sklearn and PyQt5 libraries to identify static gestures 1-10. The biggest advantage of this system is that it meets people's daily habits and the equipment is simple. At the same time, each stage has been compared with various schemes to ensure the accuracy of the system and the adaptability of the system to lighting and background.
The system is mainly divided into three stages: preprocessing, feature extraction and gesture recognition. Image acquisition, image smoothing, skin segmentation based on OTSU threshold, contour detection based on eight neighborhood search method, and finally completed the gesture. The picture is extracted from the acquisition to the contour curve. The feature extraction process extracts the Fourier descriptor and the elliptical Fourier descriptor from the obtained contour curve, and normalizes them separately. using two machine learning algorithms, the k-nearest neighbor (KNN) based on the Euclidean distanc and the support vector machine (SVM), to finish the gesture recognition the training set is trained by the data collection, and the effects of the two are compared.
After the experiment, the two descriptors and the two machine learning algorithms have trained a total of four models. The four models can better identify the static gestures 1-10, and the accuracy of each model test set is above 89%.
key words:Gesture recognition; Fourier descriptor; elliptic Fourier descriptor; normalization; KNN; SVM
目录
摘要 I
Abstract II
第1章 绪论 1
1.1课题研究背景及意义 1
1.2研究现状 1
1.2.1手势识别研究现状 1
1.2.2傅里叶算子的研究现状 2
1.3本文研究内容及安排 3
1.3.1本文的研究内容 3
1.3.2本文的组织结构 3
第2章 手势预处理 5
2.1手势采集 5
2.1.1单张手势采集 5
2.1.2数据集的扩充 6
2.2图像去噪 7
2.2.1均值滤波 7
2.2.2高斯滤波 8
2.2.3中值滤波 9
2.3手势分割 10
2.3.1 RGB空间筛选法 10
2.3.2 HSV空间筛选法 12
2.3.3 YCrCb空间筛选法 13
2.3.4椭圆检测模型 14
2.3.5 OTSU阈值分割算法 15
2.4形态学处理 17
2.4.1腐蚀运算 17
2.4.2膨胀运算 17
2.4.3开闭运算 18
2.5轮廓提取 19
2.5.1 Laplacian算子 19
2.5.2八邻域搜索法 20
2.6二次去噪 21
第3章 傅里叶算子提取 23
3.1一维傅里叶描述子 23
3.1.1傅里叶描述子提取 23
3.1.2不变性构造 25
3.2椭圆傅里叶描述子 26
3.2.1椭圆傅里叶描述子提取 26
3.2.2不变性构造 27
第4章 手势识别原型系统设计 29
4.1 基于KNN手势分类 29
4.1.1算法原理 29
4.1.2相似度度量 29
4.1.3识别效果 30
4.2 基于SVM手势分类 32
4.2.1算法原理 32
4.2.2参数调优 33
4.2.3识别效果 33
4.3基于Python系统集成 34
4.3.1环境介绍 35
4.3.2 GUI界面设计 35
第5章 总结与展望 37
5.1总结 37
5.2展望 37
参考文献 38
致谢 39
第1章 绪论
1.1课题研究背景及意义
手势,全称“手的姿势”,从生物学角度,可以解释为人运用手臂时出现的具体动作,包括静态手势和动态手势 [1],本文主要研究静态手势,从手势识别的角度进行严格定义的话,静态手势识别是通过各个手指的相对位置进行判断的识别方式[2]。
手势是人们日常生活中的重要的沟通媒介,当前人机交互技术HCI发展迅速,而符合人类交流习惯的HCI被摆到了越来越重要的位置,手势识别在这时候也进入了研究员的视野,当前已经在手语识别、智能驾驶、VR穿戴等领域投入应用。Markets and Markets 公司曾报告称,“手势识别和无触碰感知”市场将在2024年达到340亿美元。
1.2研究现状
本文的研究内容是以傅里叶算子为特征,搭建手势识别系统,本节将简单阐述手势识别以及傅里叶算子的研究现状。
1.2.1手势识别研究现状
手势识别分为基于外部设备的手势识别以及基于视觉的手势识别。典型外部设备有数据手套[3]。外部设备的介入违背了人机交互的本意,并不能真正方便人机交互的方式。后期无需外部设备,运用计算机视觉技术进行处理的方式发展起来,即基于视觉的手势识别。
国外很早就开始了手势识别的研究工作。Huang使用BP神经网络搭建手语识别系统[4]。此外,大型电子企业也在研究手势交互。2012年,三星推出结合了面部识别,手势识别和语言识别的ES8000的智能电视。2016年Thalmic Lab公司推出基于肌电信号的可以捕捉肌电信号并进行模式识别的手势识别设备。
图1.1 数据手套
图1.2 基于肌电信号的手势识别设备
我国近年来也取得了显著的成果,研究主要集中在各大高校和研究院等。中国科学院计算技术研究所的研究人员历时8年,开发出了先进的手语识别系统。该系统在2008年残奥会中得到了应用。上海大学 DING Youdong、PANG Haibo等人运用改进的LBP算法以及AdaBoost分类器进行手势识别。
图1.3 中科大手语识别系统
虽然手势识别研究成果越来越丰富,但是总的来说,关键技术上有很多待解决的问题。一方面手势本身具有很多无关信息,另一方面手势动作具有随意性,这些都在无形中加大了手势识别的难度[1]。目前其主要面临手势提取以及手势分类两大技术难题[5]。
1.2.2傅里叶算子的研究现状
形状识别是模式识别重要研究方向之一,常见的特征如:基于边界特征点,傅里叶描绘子、不变矩以及自回归模型等[6]。Kauppien对以上的形状表示方式进行实验,发现傅里叶描述子有很好的形状识别性能。
傅里叶描述子(Fourier Descriptor),是一种基于频域变换形状表示算法,可以分为两类:基于轮廓的一维傅里叶描述子(1-D FD),基于区域的二维傅里叶描述子(2-D FD)。
经典的一维傅里叶描述子,将一维傅里叶变换直接应用于形状图像轮廓线上,得到的傅里叶系数即为该形状的特征[7]。Lin和Mitchel等人经过研究,将对部分闭合曲线应用1-D FD。Arbter等人提出了具有仿射变换不变性的1-D FD,又称affine invariant Fourier descriptor(AIFD)。Granlund提出了可以描述轴对称形状的傅里叶描述子。Eichmann等人利用短时傅里叶变换(SFFT)来提取傅里叶描述子。Zhang和Lu证明了由于短时傅里叶在提取目标物体的局部特征时有很高的准确率,因此短时傅里叶变换得到的傅里叶描述子性能要优于传统的傅里叶描述子,同时,他们经过研究发现质心函数也能很好地提取一维傅里叶算子,证明了一维傅里叶算子在检索准确率性能和鲁棒性上的性能都优于曲率尺度空间描述子(CSS)。
1.3本文研究内容及安排
1.3.1本文的研究内容
先简单介绍一下本文基于视觉的手势识别系统的总体框图。首先,计算机的摄像机获取用户手势的视频数据流,接着系统从视频流中截取含手势的图片,对该图片进行预处理,提取出手势的轮廓图,然后提取轮廓特征,最后根据提取出的特征训练模型,对手势进行分类。
图1.4 手势识别系统框图
具体来说,在预处理阶段,对手势图像进行平滑,肤色检测,采用八邻域搜索法进行边缘检测,得到连通的手势外轮廓,在特征提取阶段,提取轮廓曲线的傅里叶描述子和椭圆傅里叶算子,并进行归一化。在手势识别阶段,将归一化的傅立叶描述子和椭圆傅里叶算子与样本库中各类图像的映射向量的欧式距离,判定输入图像与样本图像间的匹配程度,找到待识别的手势所属的类,最后集成基于Python的手势识别系统,完成静态手势1-10的识别。
1.3.2本文的组织结构
本文的结构安排如下:
第一章:绪论,该部分主要介绍了本课题研究的背景、目的和意义,点出手势识别的研究在当前人机交互发展中的重要地位。同时简述了国内外手势识别以及傅里叶算子研究现状。最后综合论述了本文的研究内容和组织安排。
第二章:手势预处理,该部分主要介绍了从录制手势到提取出手势的轮廓图的一系列操作,逐一讲解了平滑、手势分割、形态学处理、二次去噪以及轮廓提取的理论知识以及阶段性结果。其中每个步骤采取了多种的方式比较了他们的结果后,选出了最适合本文的预处理方案,最终建立了较完整的已经经过预处理的手势样本库,分为含5000张图片的训练集和200张图片的测试集。
第三章:傅里叶算子提取,该部分主要介绍了经典一维傅里叶算子以及改进的椭圆傅里叶算子的理论知识、提取过程以及归一化的过程,提取出样本库的每张手势图的经典的一维傅里叶描述子和椭圆傅里叶描述子,并分别保存为txt文件。
第四章:手势识别原型系统设计,该部分主要介绍机器学习中KNN和SVM的算法原理,简单介绍了所用的机器学习的库sklearn,并比较二者分别对一维傅里叶描述子和椭圆描述子训练的模型所达到的准确率。完成了系统集成,制作简易的GUI界面实现了实时手势识别,并简单介绍了本文的编程语言Python和界面设计使用的PyQt5库。
第五章:总结与展望,该部分最后整体分析了采用的一维傅里叶描述子和椭圆傅里叶描述子以及在手势识别中使用的SVM和KNN的结果,对傅里叶描述子的识别物体形状的问题进行整体思考,同时提出了本文研究中一些不足。
第2章 手势预处理
在预处理阶段,需要完成手势的采集工作,同时本文的特征选取傅里叶算子,因此需要手势的轮廓曲线,以便于特征提取。预处理阶段的目标是在获取的手势图像中最大程度地去除无用信息,将一幅含手势的彩色图像变换为一幅黑色背景只有白色的手势轮廓线。为了达到这一目标,对每张采集到手势图像要依次进行去噪、肤色检测、形态学处理、二次去噪和轮廓提取,具体框图如图2.1所示。
图2.1 预处理框图
本阶段经过多种方案对比,最终在图像平滑阶段采用高斯滤波,肤色检测过程中采用基于YCrCb空间的OTSU阈值分割法,在轮廓提取阶段采用八邻域探索法,下文将重点介绍各个方案原理及实验结果。最终预处理效果如图2.2所示:
(a)手势原图 (b)手势轮廓图
图2.2 预处理结果图
从预处理结果图来看,本阶段的主要难点在于如何从复杂的背景提取出较为干净的手势轮廓曲线,需要考虑背景中含有肤色噪声,同时也要考虑光线问题[9]。
2.1手势采集
2.1.1单张手势采集
手势采集即将物体反射的光线模拟量转换为数字量的过程,以便于计算机的处理。为了方便实验,本系统采用笔记本自带的摄像头,每台笔记本的摄像头的像素可能有所差异,本系统实验采用摄像头为720p,即分辨率是1280 * 720 = 921600,大约100万像素。
单张手势的图片分辨率300 * 300,位深度为24,即宽度为300像素,高度为300像素。图片保存格式为PNG。PNG图像格式文件,又称数据流,包含有1个8字节PNG文件署名域及3个以上的数据块。相比JPEG,PNG的压缩效果更好,不会丢失图像信息[10]。
2.1.2数据集的扩充
图2.3 手势1原始部分样本库
本文一共采集了20人的手势,每人分别有1-10张手势图,每张手势的以手势类别 图片序号进行命名。为了减少后期的操作,在存储的时候直接存储的是肤色检测后的图片,而非原图。本题最终采用的训练集的大小为5000张图片,每个手势含500张,在采集的过程中,共采集了20人的手势。原始数据集中的手势1如图2.3所示。
图2.4 手势1_1扩展数据集
采集完成后对数据集进行扩充,将每张图片随机进行翻转、平移、缩放等操作扩展成25张图片[2]。以1_1图片为例,将其扩展增加了24张照片,命名的序号从1_21至1_44,扩展效果如图2.4所示,其余19张依次类推。最终得到完整的5000张数据集样本,文件夹大小为120 MB,将手势1的第一张扩展后如图2.4所示。
2.2图像去噪
图像噪声,指的是图像数据中多余不必要的干扰信息,从人机交互交互角度,即为妨碍人们接受该图像信息的因素,从概率统计的角度,它是一种随机误差。为了后续处理中提取出满意的手势轮廓图,在获取图像后需去除这些随机误差。该操作又称为平滑处理[11]。在平滑之前,先对图像加入椒盐噪声,效果如图2.5所示:
图2.5 加入噪声后的手势图
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: