基于机器视觉的人眼跟踪系统的设计和实现毕业论文
2020-04-12 08:48:13
摘 要
本文使用数学软件MATLAB进行了基于机器视觉的人眼跟踪系统的搭建尝试并对其中用到的原理与算法进行了介绍,在此过程中经过了数据采集、人眼分割、图像处理、模型建立、数据判断等阶段,最终所得的系统实现了小样本数据下人眼判断模型的建立,并利用判断模型输出状态标签实现了对人眼的跟踪。
本系统搭建过程中的关键点为人眼分割和模型建立两个阶段,在人眼分割阶段中因为摄像头采集图像干扰过多,需要先进行图像处理,然后利用Viola-jones算法实现人眼分割;在模型建立阶段,利用卷积神经网络获得特征值,然后将特征值输入支持向量机,以此实现对小样本数据的训练学习,最后获得的分类网络能成功对新采集的数据进行分类。
关键字:MATLAB;人眼分割;神经网络
Abstract
This article uses the mathematics software matlab to carry on the construction attempt of the human eye tracking system based on the machine vision and introduce the principles and algorithms that are used. In this process , we go through the data acquisition, human eye segmentation, image processing, the model establishment, the data judgement and so on. Finally the system achieves the establishment of the human eye judgment model under small sample data,and uses the output status tag of judgment model to achieve tracking of human eyes.
The key points in the construction process of the system are two stages of human eye segmentation and model establishment. In the human eye segmentation process, because the camera collects too much image interference, it needs to have image processing firstly, and then use Viola-Jones algorithm to achieve human eye segmentation. As to the model establishing stage, the eigenvalues is obtained by the convolutional neural network ,and then the eigenvalues are input into the support vector machine to realize the training and learning of the small sample data. Finally, the classification network can successfully classify the newly acquired data.
Key Words : matlab; human eye segmentation ; neural network
目 录
摘要 I
Abstract II
第1章 绪论 1
1.1 研究背景与意义 1
1.2 研究目标和方法 2
1.2.1 人眼分割 2
1.2.2 分类模型训练 2
1.3 所用软件及硬件 2
1.4 程序流程图 2
第2章 人眼检测中的基本理论及实现 4
2.1人脸及人眼检测常见思路 4
2.2 人眼检测实用方法 4
2.3 人眼图片的处理方法 7
2.3.1灰度矫正 7
2.3.2 直方图均衡化 8
2.3.2去噪 8
2.4 matlab中将视频中人眼分割出来的流程 8
第3章 构建分类模型 10
3.1神经网络简介 10
3.1.1神经网络的概念与分类 10
3.1.2神经网络的基本性质及应用 10
3.1.3 神经网络基本实现原理 11
3.2 卷积神经网络 12
3.2.2 matlab中实现卷积神经网络设计与构建 14
3.3 支持向量机分类卷积神经网络中的特征数据 15
3.3.1 支持向量机简介 15
3.3.2 svm分类器的matlab实现 16
3.4 实验结果与分析 16
第4章:总结与展望 20
4.1 论文工作总结 20
4.2 研究工作展望 20
参考文献 22
附录 23
致谢 27
第1章 绪论
1.1 研究背景与意义
机器视觉系统是一个交互的系统,在获得图像或视频的图像序列后对图像进行处理与分析并将分析图像获得的信息的一部分用于进一步处理,或者将其作为控制信息进行输出以此实现与外界环境的交流。机器视觉系统的输出要求与输入图像有关并且包含完成交流任务所需要的所以信息,用这种方式实现了交互的有效性与可靠性。
机器视觉经过多年发展已经获得了可喜的成果,国内外机器视觉在医学、工业制造、半导体、纺织、交通、物流等行业都有着大量应用。通过构建机器视觉系统并将其应用于实际的生产实践活动控制与指导中,可以大幅度提高生产活动的自动化程度,提高生产效率,降低生产成本。例如:
- 医学方面:B超/CT的自动获取与识别、组织切片样本的结构检测等。
- 工业制造方面:流水线上配件形状大小识别、产品自动包装等。
- 半导体方面:半导体外观缺点、尺度大小、数量、距离、定位、校准、焊接点质量、弯曲度等等的检测和丈量。
- 纺织方面:纺织布料颜色图像识别、织物表面绒毛鉴定、纱线结构分析等。
- 交通方面:车牌识别、无人驾驶、车况监控、驾驶员状态检测等。
- 物流方面:自动分拣、自动数量检测等。[1]
本文研究的是机器视觉在人眼跟踪方面的研究,目的是实现计算机系统与人眼的交互,即通过计算机系统不断输出对人眼状态的判定标签来体现人眼的状态,以此完成所谓的跟踪。当然其获得的标签也可以进一步作为控制信息来完成对计算机的控制以实现各种各样的功能。基于机器视觉的人眼跟踪系统的实现包括人眼检测和分类两个部分,即先从视频数据中找到人眼,再进行图像处理后输入卷积神经网络取出特征,然后实现分类,而分类包括分类器的设计和分类状态判断。在现实环境中多因为环境不同、人物不同导致光照条件和人脸结构等大不相同,很难找到一个统一的匹配模型来对图像进行分类,所以选择卷积神经网络进行特征提取是有一定的现实考虑的。同时我们也添加了一个短暂的数据采集阶段,主要想获得人眼的几种主要状态的图片数据,然后基于采集的数据预先训练一个匹配当前情况的模型来进行分类,再结合一定的对环境的抗干扰方法实现人眼跟踪系统的现实应用。
1.2 研究目标和方法
本文重点讨论我们建立的基于机器视觉的人眼跟踪系统实现过程中的两个方面。
1.2.1 人眼分割
因为我们直接从网络摄像头中获得的视频数据中有大量的变化的外界环境数据,所以需要先进行人脸提取的操作以去除背景环境的影响。在获得人脸后比较简单的人眼分割方法是按比例将人脸的部分区域直接截取出来,此方法简单运算量小,而且获得设置适当的比例后既不会引入太多干扰项也不会损失太多人眼信息。本系统中是直接调用MATLAB自带的工具箱函数来实现了人眼部位的分割,在人眼的各种状态识别中,理论上来说一只眼睛已经含有足够多的信息,可是实际操作后发现一只眼睛所携带的信息所训练出来的分类模型在分类时,准确率远不能达到预期。于是选择保留两只眼睛的区域,以此进行训练。
1.2.2 分类模型训练
本文的分类模型训练部分的研究内容主要是通过训练得到一个能够将人眼状态正确分类的分类模型。在设计神经网络的结构后,通过调用MATLAB的相关函数可以方便训练网络,同时需要注意到因为是使用MATLAB自带的训练函数,所以需要预先对特征数据进行处理以符合要求的输入数据类型,为同一状态样本进行标签设置时也要注意样本要随机选取。因为样本比较少,所以卷积神经网络训练得出的模型在某些情况下可能不够理想。而支持向量机在小样本分类模型训练上表现良好,所以综合采用卷积神经网络提取特征和支持向量机实现分类器。
1.3 所用软件及硬件
本文所设计的基于机器视觉的人眼跟踪系统运行的软硬件环境如下:1.Intel G4600双核处理器。2.神舟K690E-G4D1内置网络摄像头。3.编程软件使用MATLAB R2017b。4.操作系统是win10。
1.4 程序流程图
在说明系统运行所基于的软硬件平台,及主要目标后,给出实现设计的系统的程序流程图如下图1.1所示:
图1.1 程序流程图
从图1.1的程序流程图中,我们可以看出,从摄像头中获取的数据有的用于模型训练,有的用于计算机交互,一般情况下模型训练在前。
第2章 人眼检测中的基本理论及实现
2.1人脸及人眼检测常见思路
(1)基于匹配模板法:基于匹配模板法是指通过定义一个标准的眼睛模板,然后通过与模板大小相同的窗口滑动扫描脸部,不断取出窗口内的数据,然后计算其与标准模板的相关性,相关性最高的定为眼睛。这种方法理论上比较简单,而且可以通过增加滑动步长来降低检测时间,可是找到一个能够适应各种变化的外界环境以及背景的模板非常困难,所以除了不断对不同应用环境设计不同模板,其在很多场合中应用情况并不理想。
(2)差分法:差分法是理论上最简单的板法,它通过将前后两帧图片的值相减后再进行去噪,值不为零的部分为眼睛大概位置,此方法的前提是前后两帧图片只有眼睛转动,但是有时采集到的图像噪声会有很大干扰并且很多时候采集到的图片的大小并不一致,这时就不能直接相减了。
(3)基于肤色的方法:将人脸范围从背景中取出来可以利用人脸肤色来实现,因为在彩色图片中,相对于背景,人脸区域肤色有明显的差别。有研究表明,不同人种的肤色可以通过运算将其聚集在一起,而在变换过程中影响最大的是亮度而非色度,同时HSV颜色空间最大的特点之一就是亮度分量与图像的彩色信息无关,所以可以基于HSV空间进行图像处理算法的设计来实现用肤色来区分人脸部位与非人脸部位。[2]
(4)主成分分析法:主成分分析法是首先将样本图像进行一定处理后将其转换到同样大小的图像区域,然后将其表示为向量形式,再进行降维得到特征向量,取变换后所得到的若干个特征向量来用来表示原来的图像,使其包含原有图像最多的区别于其它图像的信息,将这些特征向量称为主成分。将人脸图像进行主成分分析后获得的特征向量称为特征脸,通过测试被测图像区域特征脸与标准特征脸之间的距离来判断被测区域是否包含人脸。[3]
2.2 人眼检测实用方法
本文所处理的图像特征是通常图片中只有一张有效人脸而且人脸所占比例较大、背景相对简单且多为正面脸部图。在此背景下,为了兼顾算法检测人脸的有效性以及实时性,最终本文选择比较实用的Viola-Jones检测算法来实现对人脸的检测,因为它针对正面人脸有较好的区分效果,而且特征的计算简单快速。
Viola-Jones检测算法可能是最有名而且应用最广的人脸检测算法,它第一次在计算机视觉领域引入了boosting的概念,即通过融合一系列简单分类器获得强分类器的思想,它的特征是输入区域的矩形块的差即haar特征,Viola-Jones检测算法的整个过程分为以下三步:
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: