眼控人机交互系统及方法与流程

文档序号:11229900阅读:602来源:国知局
眼控人机交互系统及方法与流程

本发明涉及人工智能技术领域,尤其涉及一种眼控人机交互系统及方法。



背景技术:

随着计算机技术的发展,操作命令也越来越多,功能也越来越强。随着模式识别,如语音识别、汉字识别等输入设备的发展,操作员和计算机在类似于自然语言或受限制的自然语言这一级上进行交互成为可能。

视觉跟踪技术利用视觉的变化代替人手在触摸屏上的运动,使人远离屏幕时仍可以定位屏幕上的任意区域,通过眼睛的运动使用触摸屏,减少了许多步骤,加速以人为中心的智能化人机交互的发展与实现,然而,传统的视线跟踪技术虽然跟踪精度较高,但是价格昂贵,使用方法复杂,尤其是插入式的方法,不仅使人的活动受到限制,而且给用户带来了很大的不舒适感,很难被大多数人接受,只适用于某些特殊场合。



技术实现要素:

为了解决上述技术问题,本发明提供一种眼控人机交互系统。

本发明提供一种眼控人机交互系统,包括图像采集装置及主机,所述图像采集装置用于采集人脸部图像信息并将采集到的人脸部图像信息发送至所述主机,所述主机包括眼特征提取模块、瞳孔中心追踪模块、坐标转换模块及鼠标模拟模块,其中,所述眼特征提取模块用于接收图像采集装置采集的人脸部图像信息并根据接收到的人脸部图像信息提取出眼部特征信息,所述瞳孔中心追踪模块用于接收眼部特征信息并根据接收到眼部特征信息追踪瞳孔中心并确定瞳孔中心坐标,所述坐标转换模块用于接收瞳孔中心坐标并将接收到的瞳孔中心坐标映射成屏幕窗口中的坐标,所述鼠标模拟模块用于接收成屏幕窗口中的坐标,并将接收到的屏幕窗口中的坐标转成鼠标指令。

进一步地,所述图像采集装置运用opencv对脸部图像信息进行采集,运用opencv对脸部图像信息进行采集的过程包括:与想要捕获的摄像头的接口对应;以及接收视频的每一帧图像,并循环显示。

进一步地,所述眼特征提取模块采用roi提取的方式提取接收到的人脸部图像信息中的眼部特征信息,采用roi提取的方式提取接收到的人脸部图像信息中的眼部特征信息的过程包括:接收需要圈出的roi区域;对摄像头采集到的源图像做roi处理;以及载入并显示该roi区域。

进一步地,所述瞳孔中心追踪模块利用霍夫变换追踪瞳孔中心并定位瞳孔中心坐标,利用霍夫变换追踪瞳孔中心并定位瞳孔中心坐标的过程包括:将采集到的眼部roi区域进行放大;将放大之后的roi区域转换为灰度图;对灰度图进行高斯滤波去噪,并进行显示;对作完滤波处理的区域进行canny边缘检测;以及进行霍夫圆变换,算出圆的中心坐标。

进一步地,所述坐标转换模块将接收到的人眼瞳孔中心坐标映射成屏幕窗口中的坐标的方法包括:选取屏幕窗口的四个基本点并依次对这四个点的瞳孔中心坐标进行采集;确定屏幕窗口四个点在屏幕中的实际位置;以及完成瞳孔中心坐标到屏幕窗口坐标的映射转换。

本发明还提供一种眼控人机交互的方法,包括以下步骤:

采集人脸部图像信息;

提取出眼部特征信息;

追踪瞳孔中心并确定瞳孔中心坐标;

将瞳孔中心坐标映射成屏幕窗口中的坐标;以及

将屏幕窗口中的坐标转成鼠标指令。

进一步地,所述步骤“采集人脸部图像信息”包括:与想要捕获的摄像头的接口对应;以及接收视频的每一帧图像,并循环显示。

进一步地,所述步骤“提取出眼部特征信息”包括:接收需要圈出的roi区域;对采集到的源图像做roi处理;载入并显示该roi区域。

进一步地,所述步骤“追踪瞳孔中心并确定瞳孔中心坐标”包括:将采集到的眼部roi区域进行放大;将放大之后的roi区域转换为灰度图;对灰度图进行高斯滤波去噪;对作完滤波处理的区域进行canny边缘检测;以及进行霍夫圆变换,算出圆的中心坐标。

进一步地,所述步骤“将瞳孔中心坐标映射成屏幕窗口中的坐标”包括:选取屏幕窗口的四个基本点并依次对这四个点的瞳孔中心坐标进行采集;定屏幕窗口四个点在屏幕中的实际位置;以及完成瞳孔中心坐标到屏幕窗口坐标的映射转换。

相较于现有技术,本发明的眼控人机交互系统及方法具有以下优点:

本发明的眼控人机交互系统及方法,图像采集装置对操作者的眼睛进行拍摄并采集到图像,然后对图像进行一系列处理,提取出眼部特征,接下来进行瞳孔的检测及其跟踪,实现瞳孔中心的跟踪定位,利用检测到的瞳孔中心的坐标,来进行坐标转换,实现瞳孔中心坐标到电脑屏幕的映射,最后通过鼠标模拟来完成对计算机的操作,安装容易、操作简单、价格低廉且能够帮助残疾人获得更多的学习机会。

附图说明

图1为本发明的眼控人机交互系统的结构示意图。

图2为本发明的眼控人机交互方法的流程图。

图3为图2中的步骤s1的流程图。

图4为图2中的步骤s2的流程图。

图5为图2中的步骤s3的流程图。

图6为图2中的步骤s4的流程图。

具体实施方式

下面将对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

请参阅图1,本发明实施例提供一种眼控人机交互系统包括图像采集装置1及主机2。其中,图像采集装置1用于采集人脸部图像信息并将采集到的人脸部图像信息发送至主机2,主机2包括眼特征提取模块22、瞳孔中心追踪模块23、坐标转换模块24及鼠标模拟模块25。其中,眼特征提取模块22用于接收图像采集装置1采集的人脸部图像信息并根据接收到的人脸部图像信息提取出眼部特征信息,瞳孔中心追踪模块23用于接收眼部特征信息并根据接收到眼部特征信息追踪瞳孔中心并确定瞳孔中心坐标,坐标转换模块24用于接收瞳孔中心坐标并将接收到的瞳孔中心坐标映射成屏幕窗口中的坐标,鼠标模拟模块25用于接收成屏幕窗口中的坐标,并将接收到的屏幕窗口中的坐标转成鼠标指令,进而完成对主机2的操作,实现人机交互。

在本实施例中,图像采集装置1包括usb免驱摄像头模组,该usb免驱摄像头模组具体为21度镜头角度、30w像素并贴上850nm红外光滤波片滤去可见光及6个红外led灯的usb免驱摄像头模组。该摄像头帧率为30帧/秒,采集到的一帧图片大小为640*480,位深为24位,调焦模式为手动调焦。该图像采集装置1运用opencv对脸部图像信息进行采集,具体应用opencv中的一些基本类和函数,包括:(1)定义一个videocapture类,并实例化,使之与想要捕获的摄像头的接口对应;(2)定义一个mat类对象,接收视频的每一帧图像,并循环显示,同时用waitkey函数控制帧率。需要说明的是,videocapture类是opencv2.x版本中新增的一个类,提供了从摄像机或视频文件捕获视频的c++接口,作用是从视频文件或从摄像头捕获视频帧,并显示出来。imread及imshow函数:都有两个参数,第一个参数为窗口名,第二个参数为显示的图片(可为路径或一个mat类对象)。两个函数的功能分别是载入、显示一副图像。waitkey函数:为一个延时函数,用于调整视频帧率,使视频能够流畅显示。

优选地,图像采集装置1还包括眼镜、胶带及连接支架例如铁丝,连接支架通过胶带与眼镜连接并位于眼镜的正前方,usb免驱摄像头模组通过胶带与连接支架连接,以方便采集用户的脸部图形信息。

在本实施例中,眼特征提取模块22采用roi提取的方式提取接收到的人脸部图像信息中的眼部特征信息。roi(regionofinterest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,roi。在halcon、opencv、matlab等机器视觉软件上常用到各种算子(operator)和函数来求得感兴趣区域roi,并进行图像的下一步处理。在图像处理领域,roi是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点,圈定该区域以便进行进一步处理。使用roi圈定可以减少图像处理时间,增加精度。定义roi区域有两种方法:一种是使用表示矩形区域的rect,它指定矩形的左上角坐标和矩形的长和宽,从而定义一个矩形,另一种定义roi的方式是指定感兴趣的行或列的范围。本系统在硬件设计时,固定了摄像头与头部的相对位置,所以即使头部有轻微的扰动,眼睛与摄像头的相对位置是不变的,也就是说,我们只需要从一副图像帧中,比较准确的圈出我们想要的眼睛部分区域即可。当这一部分参数固定后,以后头部再怎么扰动,我们都能够准确只定位到眼睛部位。这里我们首先需要知道摄像头捕获的图像帧的大小,经过拍照测试,摄像头捕获的图像大小为640*480。下一步要做的就是眼部提取了。这里有四个参数,分别是是左上角的原点坐标x,y、矩形区域的宽和高width、height。实现此方法的基本流程是:(1)定义一个mat类的imgroi对象接收需要圈出的roi区域;(2)对摄像头采集到的源图像做roi处理;(3)载入并显示该roi区域。

瞳孔中心追踪模块23利用霍夫变换追踪瞳孔中心并定位瞳孔中心坐标。具体地,霍夫变换(houghtransform),是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。霍夫变换在opencv中分为霍夫线变换和霍夫圆变换两种,这里用到的是霍夫圆变换。霍夫圆变换调用的是houghcircles()函数,该函数的定义如下:c++:voidhoughcircles(inputarrayimage,outputarraycircles,intmethod,doubledp,doublemindist,doubleparam1=100,doublepara2m=100,intminradius=0,intmaxradius=0);可以看到该函数一共有九个参数,这里选择比较重要的几个参数作简要解释。第二个参数,outputarray类型的circles,经过调用houghcircles函数后,此参数存储了检测到的圆的输出矢量,每个矢量由包含了3个元素的浮点矢量(x,y,radius)表示。分别表示圆的中心坐标和半径大小。第五个参数,double类型的mindist,为霍夫变换检测到的圆的圆心之间的最小距离,即让算法能明显区分的两个不同圆之间的最小距离。这个参数如果设置的太小,那么多个相邻的圆可能被错误地检测成一个重合的圆。反之,这个参数设置太大,某些圆就不能被检测出来。第七个参数,double类型的param2。对当前唯一方法霍夫梯度法,它表示在检测阶段圆心的累加器阈值。它越小,就越可以检测到更多根本不存在的圆,而它越大的话,能通过检测的圆就越接近完美的圆形了。第八、九个参数,分别表示检测出的圆半径的最小值和最大值。实现此方法的基本流程是:(1)将采集到的眼部roi区域进行放大,放大倍数选择两倍,由于摄像头只有30w像素,若放大倍数过大,则该区域会非常模糊,对后续处理也非常不利,所以选择放大两倍,经测试,在视觉上与检测效果上均能满足要求;(2)运用cvtcolor()函数对放大之后的roi区域进行转换,转换为灰度图,并进行显示,查看效果;(3)运用gaussianblur()函数对灰度图进行高斯滤波去噪,并进行显示,查看效果,根据效果来调整函数的参数;(4)运用canny()函数对作完滤波处理的区域进行canny边缘检测,并进行显示,查看效果;(5)图像预处理完毕后,接下来进行霍夫圆变换,然后算出圆的中心坐标,即计算出瞳孔中心坐标。

坐标转换模块24将接收到的人眼瞳孔中心坐标映射成屏幕窗口中的坐标的方法为:(1)选取屏幕窗口的四个基本点,然后依次对这四个点的瞳孔中心坐标进行采集,并记录下来;(2)确定屏幕窗口四个点在屏幕中的实际位置,同时也记录下来;(3)完成瞳孔中心坐标到屏幕窗口坐标的映射转换。

请参阅图2,本发明还提供一种人机交互的方法,包括以下步骤:

步骤s1:采集人脸部图像信息;

步骤s2:提取出眼部特征信息;

步骤s3:追踪瞳孔中心并确定瞳孔中心坐标;

步骤s4:将瞳孔中心坐标映射成屏幕窗口中的坐标;以及

步骤s5:将屏幕窗口中的坐标转成鼠标指令。

请参阅图3,步骤s1利用opencv对脸部图像信息进行采集,具体应用opencv中的一些基本类和函数,该步骤包括以下内容:

步骤s11:与想要捕获的摄像头的接口对应。该过程首先定义一个videocapture类,并实例化,使之与想要捕获的摄像头的接口对应、

步骤s12:接收视频的每一帧图像,并循环显示。该过程首先需要定义一个mat类对象,以接收视频的每一帧图像,并循环显示。

请参阅图4,步骤s2采用roi提取的方式提取接收到的人脸部图像信息中的眼部特征信息,步骤s2具体包括以下内容:

步骤s21:对象接收需要圈出的roi区域。该过程需要定义一个mat类的imgroi对象接收需要圈出的roi区域。

步骤s22:对采集到的源图像做roi处理。

步骤s23:载入并显示该roi区域。

请参阅图5,步骤s3利用霍夫变换追踪瞳孔中心并定位瞳孔中心,步骤s3具体包括以下内容:

步骤s31:将采集到的眼部roi区域进行放大。

步骤s32:将放大之后的roi区域转换为灰度图。该过程运用cvtcolor()函数。

步骤s33:对灰度图进行高斯滤波去噪。该过程运用gaussianblur()函数。

步骤s34:对作完滤波处理的区域进行canny边缘检测。该过程运用canny()函数。

步骤s35:进行霍夫圆变换,算出圆的中心坐标。

请参阅图6,步骤s4具体内容包括以下步骤:

步骤s41:选取屏幕窗口的四个基本点并依次对这四个点的瞳孔中心坐标进行采集;

步骤s42:定屏幕窗口四个点在屏幕中的实际位置;以及

步骤s43:完成瞳孔中心坐标到屏幕窗口坐标的映射转换。

本发明的眼控人机交互系统及方法,图像采集装置对操作者的眼睛进行拍摄并采集到图像,然后对图像进行一系列处理,提取出眼部特征,接下来进行瞳孔的检测及其跟踪,实现瞳孔中心的跟踪定位,利用检测到的瞳孔中心的坐标,来进行坐标转换,实现瞳孔中心坐标到电脑屏幕的映射,最后通过鼠标模拟来完成对计算机的操作,安装容易、操作简单、价格低廉且能够帮助残疾人获得更多的学习机会。

以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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