基于图像处理的眼球检测方法与流程

文档序号:12365380阅读:474来源:国知局
基于图像处理的眼球检测方法与流程

本发明涉及图像识别与处理技术领域,具体地说,涉及一种基于图像处理的眼球检测方法。



背景技术:

眼球检测在全息投影和全息手机领域具有广泛应用,甚至在一定程度上可以作为协助实现谎言检测的工具。眼球检测同时包含面部定位,眼部定位和瞳孔检测三个部分。其中面部定位和眼部定位是比较常见的识别算法,但是准确定位瞳孔并跟踪瞳孔的运动,目前还是非常前沿的课题。目前在眼球检测技术中,尚未得以较好解决的问题包括:

1、原始图像中包含了光照的影响;众所周知,物体的材料加上光照的影响共同构成了物体的颜色,所以,如果我们想获得物体材料本身的颜色,我们就必须要考虑到消除光照的影响;

2、原始图像中包含了很多噪点;这些噪点一部分由于光照的影响,另一部分原因是由于摄像机采光的影响;要想尽可能的恢复物体本身的样子,我必须考虑将噪点对图像的影响降低到最小;

3、原始图像中可能包含了很多与前景无关或颜色、形状等相近的背景;我们想要尽可能完整的提取出图像中的前景,所以,在处理过程中不仅应该尽量减小图像处理的大小来增加处理速度,还应该尽可能的分离背景和前景;

4、眼球检测过程准确的找到人眼的黑眼球的中心位置,所以我们需要找到黑眼球并分离出来。但是,由于人眼的黑眼球并不是完全的纯黑色,眼睛的白色部分,也不是完全的纯白色,所以我们在实验中,需要重新的寻找眼球的特征来准确的分离出眼球部分。



技术实现要素:

为了上述问题,本发明提供了一种基于图像处理的眼球检测方法,通过伽马变换消除光线的影响,然后借助Ostu算法实现自动分割并检测出瞳孔,其具体的技术方案如下:

基于单目摄像头的智能测距方法,按以下步骤进行:

基于图像处理的眼球检测方法,按以下步骤进行:

步骤一:人脸识别,对加载的图像进行人脸检测,并提取检测后的人脸的图像;

步骤二:眼睛识别,在人脸图像中进行人眼检测,并提取两个眼睛的图像;

步骤三:检测图像是否为彩色,如果是,对彩色图像进行灰度转换,如果否,进行步骤四;

步骤四:采用Gamma校正方法对图像进行灰度值调整;

步骤五:提取眼球中黑色部分的图像;

步骤六:通过眼球黑色部分图像的轮廓,对黑色部分的中心位置进行定位;

步骤七:根据原图中眼球黑色部分中心位置,将眼球的黑色部分变换到原图中,并将其标出。

其中,步骤四对图像灰度值进行非线性调整,使输出图像灰度值与输入图像灰度值呈指数关系,其中,指数Gamma取值小于1;

此外,步骤五中提取眼球中黑色部分图像的方法包括:

A:采用Otsu分割算法以及阈值二值化算法准确的定位黑眼球的位置,得到包含黑白两部分的图像,黑色部分包括黑眼球及一部分眼皮与眼睛的交界线;

B:采用形态学方法对图像进行处理,去除眼皮与眼睛的交界线,保留黑眼球的黑色部分,其他的全部为白色部分;

C:采用中值滤波算法对图像中的噪点进行处理。

本发明所提供的基于图像处理的眼球检测方法,具有以下优点:

第一、采用Gamma校正法有效地对图像灰度值进行了调整,改善了存储的有效性和合理性,大大降低了光照对图像的影响;

第二、采用两次Otsu分割算法加阈值二值化算法,Otsu分割算法有自动确定阈值并且稳定的特点,通过第一次Otsu分割算法加阈值二值化算法得到的阈值,在小于该区间再用一次Otsu算法,求出更小的阈值,以求得更准确的结果;上述算法具有良好的鲁棒性和准确性,为准确找到眼球提供了保障;

第三、采用形态学处理后再做中值滤波处理,消除了图像中交界线、噪点的影响,保证了眼球黑色部分提取的准确性。

附图说明

图1为本发明基于图像处理的眼球检测方法流程图;

图2为训练级分类器示意图;

图3为为Gamma校正Gamma选取的图像输入/输出灰度的关系曲线;

图4为人眼和摄像机的感光与实际输入光强的关系;

图5 未经gamma校正和经过gamma校正保存图像信息;

图6为本发明的基本步骤中处理结果示意图。

具体实施方式

下面结合附图及实施例对本发明基于单目摄像头的智能测距方法作进一步详细的说明。

从图1中可以看出,基于图像处理的眼球检测方法,包括以下步骤:

步骤一:人脸识别,对加载的图像进行人脸检测,并提取检测后的人脸的图像;

步骤二:眼睛识别,在人脸图像中进行人眼检测,并提取两个眼睛的图像;

步骤三:检测图像是否为彩色,如果是,对彩色图像进行灰度转换,如果否,进行步骤四;

步骤四:采用Gamma校正方法对图像进行灰度值调整;

步骤五:提取眼球中黑色部分的图像;

步骤六:通过眼球黑色部分图像的轮廓,对黑色部分的中心位置进行定位;

步骤七:根据原图中眼球黑色部分中心位置,将眼球的黑色部分变换到原图中,并将其标出。

下面分别对上述步骤涉及的算法进行介绍:

一、人脸检测算法

Viola-Jones人脸检测方法

1.采用积分图像方法计算Haar-like特征,Haar-like特征是计算机视觉领域一种常用的特征描述算子。。

2.利用Adaboost学习算法进行特征选择和分类器训练,把弱分类器组合成强分类器。

3.采用分类器级联提高效率。

其中Adaboost算法为:

Adaboost训练强分类器的基本算法描述如下:

假设一组样本有T个特征,给定包含n个样本的训练集{(x1,y1),(x2,y2),…,(xn,yn)},其中yi(i=0,…,n)可取1和0来表示正样本(是目标类型)和负样本(非目标类型)来从n个弱分类器中训练强分类器:

1、 对第一个特征t=1,初始化各个弱分类器的权重w(1,i),通常用经验值(1/2m或1/2l设置,m、l分别是正负样本的数量)设置;

2、归一化权重w(1,i),…,w(1,n)为q(1,i),…,q(1,n);

3、对n个样本的T个特征进行训练,得 到 T个弱分类器h(f1),…,h(fT),计算这些分 类器对应于所有样本的错误率ε(f1)、ε(f2),…,ε(fT);

4、在n个错误率中选出最小错误率ε(fk),并确定对应弱分类器为最佳弱分类器;

5、利用最小错误率ε(fk)对n个样本进行权重调整:正确分类样本的权重加上新系数(该系数随最小错误率增加而递增),错误分类样本权重不变

6、归一化n个新权重,再对n个样本重新训练,获得T个新分类器,计算这些 新分类 器对应n个样本的错误率,再选出最小错误率……直至调整出新的权重;

7、一直训练样本,直至选出的最佳弱分类器满足预定条件,结束整个过程。

训练级联分类器:

如图2所示,1、2、3是一系列子窗口,每个子窗口对应许多分类器,因此在1子窗口处就有原始数 量的分类器,特征在下一级子窗口开始分类之前会经过条件筛选,因此终极和最初级相比子窗口数量急剧减少,用于增加感兴趣区域的关注。

二、人眼检测算法

与人脸检测算法基本相同,只不过训练的样本由人脸变为了人眼。

三、Gamma校正算法

(一)Gamma校正是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系: 这个指数即为Gamma.经过Gamma校正后的输入和输出图像灰度值关系如图3所示:横坐标是输入灰度值,纵坐标是输出灰度值,上方曲线是gamma值小于1时的输入输出关系,下方曲线是gamma值大于1时的输入输出关系。可以观察到,当gamma值小于1时(蓝色曲线),图像的整体亮度值得到提升,同时低灰度处的对比度得到增加,更利于分辩低灰度值时的图像细节。

(二)为什么进行Gamma校正?

1. 人眼对外界光源的感光值与输入光强不是呈线性关系的,而是呈指数型关系的。在低照度下,人眼更容易分辨出亮度的变化,随着照度的增加,人眼不易分辨出亮度的变化。而摄像机感光与输入光强呈线性关系。如图4所示:

为方便人眼辨识图像,需要将摄像机采集的图像进行gamma校正。

2. 为能更有效的保存图像亮度信息,需进行Gamma校正。未经gamma校正和经过gamma校正保存图像信息如图5所示,从图5可以观察到,未经gamma校正的情况下,低灰度时,有较大范围的灰度值被保存成同一个值,造成信息丢失;同时高灰度值时,很多比较接近的灰度值却被保存成不同的值,造成空间浪费。经过gamma校正后,改善了存储的有效性和效率。

四、Otsu算法及阈值二值化算法

otsu算法(最大类间方差法)的原理:

阈值将原图象分成前景,背景两个图象。

前景:用n1, csum, m1来表示在当前阈值下的前景的点数,质量矩,平均灰度;

后景:用n2, sum-csum, m2来表示在当前阈值下的背景的点数,质量矩,平均灰度;

当取最佳阈值时,背景应该与前景差别最大,关键在于如何选择衡量差别的标准。

而在otsu算法中这个衡量差别的标准就是最大类间方差(英文简称otsu,这也就是这个算法名字的来源)。

在本程序中类间方差用sb表示,最大类间方差用fmax

关于最大类间方差法(otsu)的性能:

类间方差法对噪音和目标大小十分敏感,它仅对类间方差为单峰的图像产生较好的分割效果。

当目标与背景的大小比例悬殊时,类间方差准则函数可能呈现双峰或多峰,此时效果不好,但是类间方差法是用时最少的。

最大最大类间方差法(otsu)的公式推导:

记t为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1。则图像的总平均灰度为:u=w0*u0+w1*u1。

前景和背景图象的方差:

g=w0*(u0-u)*(u0-u)+w1*(u1-u)*(u1-u)=w0*w1*(u0-u1)*(u0-u1),

此公式为方差公式,可参照概率论等相关知识。

当方差g最大时,可以认为此时前景和背景差异最大,也就是此时的灰度是最佳阈值。

最后通过二值化的方法在图像中设定,当小于阈值的像素值均设定为白色,大于阈值的像素值均设定为黑色。

五、形态学开处理算法

形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,还包括用于预处理或后处理的形态学过滤、细化和修剪等。图像形态学处理中我们感兴趣的主要是二值图像。

膨胀和腐蚀:

膨胀和腐蚀这两种操作是形态学处理的基础,许多形态学算法都是以这两种运算为基础的。

(一)膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移位为基础的。

A被B膨胀是所有位移z的集合,这样,和A至少有一个元素是重叠的。结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的。

⑴用结构元素B,扫描图像A的每一个像素

⑵用结构元素与其覆盖的二值图像做“与”操作

⑶如果都为0,结果图像的该像素为0。否则为1

(二)腐蚀对Z中的集合A和B,B对A进行腐蚀的整个过程如下:

⑴用结构元素B,扫描图像A的每一个像素

⑵用结构元素与其覆盖的二值图像做“与”操作

⑶如果都为1,结果图像的该像素为1。否则为0腐蚀处理的结果是使原来的二值图像减小一圈。

开操作是先腐蚀、后膨胀处理。

六、中值滤波算法

中值滤波的基本思想是,把局部区域的像素按灰度等级进行排序,取该领域中灰度的中值作为当前像素的灰度值。

中值滤波的步骤为:

1、将滤波模板(含有若干个点的滑动窗口)在图像中漫游,并将模板中心与图中某个像素位置重合;

2、读取模板中各对应像素的灰度值;

3、将这些灰度值从小到大排列;

取这一列数据的中间数据,将其赋给对应模板中心位置的像素。如果窗口中有奇数个元素,中值取元素按灰度值大小排序后的中间元素灰度值。如果窗口中有偶数个元素,中值取元素按灰度值大小排序后,中间两个元素灰度的平均值。因为图像为二维信号,中值滤波的窗口形状和尺寸对滤波器效果影响很大,不同图像内容和不同应用要求往往选用不同的窗口形状和尺寸。

中值滤波对孤立的噪声像素即椒盐噪声、脉冲噪声具有良好的滤波效果。由于其并不是简单的取均值,所以,它产生的模糊也就相对比较少。

七、处理结果

如图6所示,对经过人脸检测、眼睛检测的图像进行灰度处理后,采用Gamma校正,该方法法有效地对图像灰度值进行了调整,改善了存储的有效性和合理性,大大降低了光照对图像的影响;随后采用两次Otsu分割算法加阈值二值化算法,Otsu分割算法有自动确定阈值并且稳定的特点,通过第一次Otsu分割算法加阈值二值化算法得到的阈值,在小于该区间再用一次Otsu算法,求出更小的阈值,以求得更准确的结果;上述算法具有良好的鲁棒性和准确性,为准确找到眼球提供了保障;随后采用形态学处理后再做中值滤波处理,消除了图像中交界线、噪点的影响,保证了眼球黑色部分提取的准确性,完成了本发明的目的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1