头面部动作检测方法及应用该方法操控计算机的助残系统的制作方法

文档序号:6581026阅读:282来源:国知局
专利名称:头面部动作检测方法及应用该方法操控计算机的助残系统的制作方法
技术领域
本发明涉及一种动作的识别,属于图像识别与人机交互技术领域,具体地说,是指
一种头面部动作检测方法及应用该方法操控计算机的助残系统。
背景技术
图像识别技术,是基于已有的adaboost算法实现的,但是现有的技术的检测速度 不理想,以下是相关文献中的记录 2007年IO月北京大学学报(自然科学版)第八巻第5期上发表的论文"Adaboost 算法在人脸检测中的应用"(作者叶延亮)中提到,Viola和Jones提出的Adaboost人脸 检测方法检测速度为15帧/s。 2007年在计算机信息与技术第31期中发表的论文"基于Adaboost的人脸检 测"(作者李振)中写到"检测速率可达每秒十五帧"。 2007年6月发表的硕士学位论文"基于Adaboost算法的驾驶员疲劳检测系统"中 所实现的帧速是10秒/帧。 2007年3月发表的硕士学位论文"基于Adaboost算法的人脸检测研究及实 现"(作者林鹏)也提到Adaboost算法被Viola等人应用于人脸检测的速度是15帧/秒。
2007年10月中国图像图形学报第12巻第10期上发表的"基于Gentle Adaboost 的行人检测"(作者朱文佳戚飞虎)中检测一幅图上的行人需要200ms,而论文中提到的文 献中的方法需要250ms。 2007年2月中国图形图像学报上第12巻第2期中发表的论文"基于改进Adaboost 算法的人耳检测与跟踪"(作者张怀穆志纯袁立)实现的检测速度是6-7帧/秒。
从上述文献记载可知,目前的基于adaboost算法的图像识别技术,图像检测速率 只能达到最高15帧/秒,远远不能满足目前图像识别领域中需要高速识别的要求。
另外,目前尚未有人专门针对各种头面部动作做过精确的检测和判断。
发明内客 本发明的目的是解决目前数千万的残疾人,尤其是上肢残疾的人使用电脑的问 题,并且能够进一步与家庭自动控制系统相结合使残疾人只需要头面部动作就能控制电 脑,进而通过电脑遥控各种家具,如电视、空调等,为了实现这一目的,即通过识别头面部动 作进行对电脑的各种操作,就需要通过摄像头实时捕捉用户的头面部动作,并加以识别,本 发明采用了现有的adaboost算法,并结合多线程方法使头面部动作的检测速率提高到了 30帧/秒,对所得到的头面部动作数据信息进行分析判断,从而达到了准确识别的效果。
本发明提供的头面部检测方法的具体实现步骤如下 步骤1 :采集各种头面部动作的图片,这些图片都是将来希望能够识别出来的各 种头面部动作的图片,即正例图片。此外,再采集不含头面部动作的任何图片,即反例图片。
步骤2 :用adaboost算法对正例图片和反例图片进行训练,归纳正例图片中的共 同haar特征,并排除反例图片中所存有的haar特征,得到存有头面部动作特征的分类器,
4分类器中用文本记录了所训练的头面部动作中所含有的haar特征和每个haar特征在头面 部动作的坐标位置。 步骤3 :采用多线程方法获取图像并对图像进行预处理和头面部动作检测。 应用多线程方法创建两个线程,即线程A和线程B。其中线程B用于通过摄像头实
时捕获图像,并把这个图像交给线程A处理,之后线程B捕获下一帧图像,具体过程如下 (1)线程B通过摄像头实时捕获图像,并把这个图像交给线程A处理。 (2)当线程A获得一帧图像后,对该帧图像依次进行颜色空间转换、图像积分、边
缘检测处理,得到预处理后的图像。 (3)以不同大小的窗口在图像中移动搜索目标(头面部动作),用窗口所选中的图 片特征与分类器中的特征相比较,由此判断出图像中是否存在希望出现的头面部动作,如 果是就记录下头面部动作在图像中的位置坐标与头面部动作的大小(长和宽)信息,如果 不是就继续移动搜索下一 目标。 (4)重复步骤(1) (3),线程A继续处理送来的下一帧图像。 应用该多线程方法进行图像的捕获、预处理和头面部检测,可使此检测的速率提
高到30帧/秒。 步骤4 :根据上面步骤3得到的头面部动作的大小与坐标位置信息,连续考察n帧 头面部动作的信息,求出他们的平均位置与大小,以及检测率,其中n为整数,n取值范围为 100 300。 如果当前头面部动作的位置和大小与平均位置和大小相比较,二者的差值超过差
值阈值,则计算机会出现错误信息提示,如"光线过差,无法识别",此时不进行操作;如果小
于或等于,则继续判断检测率。所述的差值阈值是通常取为20 30像素。 如果检测率小于检测率阈值,则无法使用目前的头面部信息来实现操作;如果检
测率大于检测率阈值,则根据识别出的具体的头面部动作信息对计算机进行操控。 所述的检测率阈值取O. 6 0. 7。 步骤5 :通过对所得到的具体的头面部动作信息数据进行分析,从而精确分辨出 各个头面部动作 1)比较最近的10帧图像眼睛的检测率与眼睛阈值的大小,检测率小于眼睛阈值 被判断为闭眼动作,大于眼睛阈值被判断为睁眼。所述的眼睛阈值取值为0. 2 0. 3。
2)两种方法判断张嘴动作a)检测率小于嘴阈值判断为张嘴,b)连续3帧图像在 嘴的区域没有检测到嘴判断为张嘴。所述的嘴阈值的取值为0. 5 0. 8。
3)嘴部坐标与脸部坐标的差值大于左偏头阈值判断为左偏头,小于右偏头阈值判 断为右偏头。所述的左偏头阈值取为4 6像素,右偏头阈值取为_6 -4像素。
4)连续识别m帧右侧面脸判断为左转头,连续识别m帧左侧面脸判断为右转头。M 为正整数,5《m《7。 5)把步骤4所求的头部坐标平均值作为中心位置,当前头部坐标偏离中心位 置的垂直位移小于俯头阈值判断为俯头,大于仰头阈值判断为仰头。所述的俯头阈值取 为-5 -3像素,仰头阈值3 5像素。 6)把步骤4所求的头部坐标平均值作为中心位置,当前头部坐标偏离中心位置的 水平位移大于左移阈值判断为左移头,小于右移阈值判断为右移头。所述的左移阈值取为4 8像素,右移阈值取为_8 -4像素。 7)当前脸部的大小与平均脸部的大小之差大于靠近阈值识别为靠近,小于远离阈 值识别为远离。所述的靠近阈值取为10 20像素,远离阈值取为-20 -10像素。
以上这些头面部动作相互独立,它们之间可以相互组合,能够得到更多的头面部 动作。 本发明还提供一种用于上述的检测方法的头面部动作操控计算机的助残系统,该 系统包括摄像头采集图像模块、图像预处理及检测模块、头面部动作数据分析模块、精确 判断模块、动作到计算机命令映射模块。其中动作到计算机命令映射模块有包含控制鼠标 模块、辅助阅览模块、坐姿监控模块、键盘输入模块、颈部操游戏模块、控制赛车游戏模块、 控制家居模块、自定义控制模块。 所述的摄像头采集图像模块是通过摄像头实时捕获一帧图像,然后传给图像预处 理及检测模块;所述的图像预处理及检测模块是用于预处理摄像头采集图像模块所传来的 图像,并在图像上进行头面部动作检测,最终得到头面部动作的坐标位置与大小信息;所述 头面部动作数据分析模块是对图像预处理及检测模块所得到的头面部动作信息进行统计 分析得出头面部动作的平均位置和平均大小及检测率;所述的精确判断模块是用于精确判 断并区分出15种相互独立的头面部动作;所述的动作到计算机命令模块是通过在不同的 动作下调用不同的系统API,把头面部动作映射成各种计算机命令;所述的控制鼠标模块 是把俯仰头、左右移动头动作映射为鼠标的上下左右移动操作,左右转头动作映射为鼠标 的左右键点击,点头(组合动作)映射为鼠标的双击。所述的辅助阅览模块是把俯仰头动作 映射为各种电子文档、网页等的上下翻页;所述的坐姿监控模块是把用户靠近计算机的动 作映射为警告提示,提醒用户离电脑太近;所述的键盘输入模块是把俯仰头、左右转头、左 上仰头、右上仰头、左下俯头、右下俯头和张嘴映射为不同的键盘按键,实现用户的快速输 入;所述的颈部操游戏模块是把俯仰头、左右转头、左上仰头、右上仰头、左下俯头、右下俯 头映射为不同的游戏控制命的游戏应用;所述的控制赛车游戏模块是把左右移动头部映射 为赛车的左右转弯命令,俯仰头映射为加减速命令的游戏应用;所述的家居控制模块是通 过与网络家具控制系统结合把头面部动作映射为各种家具的控制命令,实现电视机、空调、 窗帘、灯的控制。所述的自定义控制模块是用于用户自己定义头面部动作与各种操作的映 射。 本发明的主要优点在于 1)打破思维定势应用多线程方法对图像进行捕获、预处理和头面部检测,使检测 速率达到30帧/秒。 2)运用本发明提供的头面部检测方法能准确识别出15种独立(可以相互组合) 的头面部动作。 3)本发明提供的检测方法可完全摆脱计算机对手的依赖,可由头面部动作完成对 电脑的各种基本操作。在检测方法的帮助下,上肢残疾人也能无障碍地使用电脑,他们可以 自由地控制鼠标,进行电子阅读、上网等日常工作,甚至还能够玩游戏。


图1本发明头面部检测方法流程 图2多线程方法对图像进行捕获、预处理和头面部检测方法的流程图; 图3头面部动作数据统计分析流程图 图4准确识别出头面部动作并通过映射系统API把头面部动作转换为操作的流程 图; 图5能识别出的15种头面部动作示意图; 图6本发明的应用头面部动作操控计算机系统示意图。
具体实施例方式
下面结合附图对本发明提供的头面部检测方法及其应用该方法进行计算机操控 的助残系统进行详细说明。 如图1所示的是本发明提供的头面部检测方法流程图,该方法可以通过如下具体 步骤来实现 步骤一 、采集正例图片和反例图片。 采集3000 4000张各种头面部动作的图片,这些图片都是将来希望能够识别出 来的各种头面部动作的图片,即正例图片。此外,再采集3000 4000张不含头面部动作的 任何图片,即反例图片。 步骤二、采用adaboost算法对正例图片和反例图片进行训练。 采用adaboost算法对步骤一中采集的正例图片和反例图片进行训练,归纳正例
图片中的共同haar特征,并排除反例图片中所存有的haar特征,得到存有头面部动作特征
的分类器,分类器中用文本记录了所训练的头面部动作中所含有的haar特征和这种haar
特征在头面部动作的坐标位置。 步骤三、应用多线程方法对图像进行捕获、预处理和头面部检测。
应用多线程方法创建两个线程,即线程A和线程B。其中线程B用于通过摄像头实 时捕获图像,并把这个图像交给线程A处理,之后线程B捕获下一帧图像。如图2所示,捕 获、预处理和头面部检测过程具体如下 (1)线程B通过摄像头实时捕获图像,并把这个图像交给线程A处理。 (2)当线程A获得一帧图像后,对该帧图像依次进行颜色空间转换、图像积分、边
缘检测处理,得到预处理后的图像。 (3)以不同大小的窗口在图像中移动搜索目标(头面部动作),用窗口所选中的图 片特征与分类器中的特征相比较,由此判断出图像中是否存在希望出现的头面部动作,如 果是就记录下头面部动作在图像中的位置坐标与头面部动作的大小(长和宽)信息,如果 不是就继续移动搜索下一 目标。 (4)重复步骤(1) (3),线程A继续处理送来的下一帧图像。 步骤四、根据上面得到的头面部动作的大小与坐标位置,连续考察n(100 300)
帧头面部动作的信息,求出他们的平均位置与大小,以及检测率。 如图3所示,初步识别出头面部动作的大小与坐标,根据步骤三中记录的头面部 动作信息,如果当前头面部动作的位置和大小与平均位置和大小相比较,二者的差值超过 差值阈值,则计算机会出现错误信息提示,如"光线过差,无法识别",此时不进行操作;如果 小于或等于差值阈值,则继续判断检测率。所述的差值阈值是通常取为20 30像素。
7
如果检测率小于检测率阈值,则无法使用目前的头面部信息来实现操作;如果检测率大于或等于检测率阈值,则根据识别出的具体的头面部动作信息对计算机进行操控。所述的检测率阈值取0. 6 0. 7。 步骤五、通过所得到的具体的头面部动作信息数据,根据如下的方法来精确分辨出各个头面部动作,如图4: 1)比较最近10帧图像眼睛的检测率与眼睛阈值(0.2 0.3)的大小,小于眼睛阈值被判断为闭眼动作,包括闭左眼、闭右眼、闭双眼;如果检测率大于眼睛阈值被判断为睁眼。 2)两种方法判断张嘴动作a)检测率小于嘴阈值(0. 5 0. 8)判断为张嘴,b)连续3帧图像在嘴的区域没有检测到嘴判断为张嘴。 3)嘴部坐标与脸部坐标的差值大于左偏头阈值(4 6像素)判断为左偏头,小于右偏头阈值(_6 -4)判断为右偏头。 4)连续识别5 (可调整)帧右侧面脸判断为左转头,连续识别5 (可调整)帧左侧面脸判断为右转头。 5)把步骤四所求的头部坐标平均值作为中心位置,当前头部位置与平均位置的垂直差小于俯头阈值(-5 -3像素)判断为俯头,大于仰头阈值(3 5像素)判断为仰头。
6)把步骤四所求的头部坐标平均值作为中心位置,当前头部坐标偏离中心位置的水平位移(也即当前头部位置与平均位置的水平差)大于左移阈值(4 8像素)判断为左移头,小于右移阈值(_8 _4像素)判断为右移头。 7)当前脸部像素的大小与平均脸部像素的大小之差大于靠近阈值(10 20像素)识别为靠近,小于远离阈值(-20 -10像素)识别为远离。 这样,就成功地识别出了 15种头面部动作,如图6,图中自左到右自上而下依次是抬头、低头、右偏头、左偏头、左移头、右移头、右转头、左转头、闭右眼、闭双眼、闭左眼、靠近、张嘴、闭嘴、远离。 以上这些头面部动作相互独立,它们之间可以相互组合,能够得到更多的头面部动作。 本发明还提供一种用于上述的检测方法的头面部动作操控计算机的助残系统,如图5,该系统包括摄像头采集图像模块1、图像预处理及检测模块2、头面部动作数据分析模块3、精确判断模块4、动作到计算机命令映射模块5。其中动作到计算机命令映射模块有包含控制鼠标模块501 、辅助阅览模块502 、坐姿监控模块503 、键盘输入模块504、颈部操游戏模块505、控制赛车游戏模块506、控制家居模块507、自定义控制模块508。
所述的摄像头采集图像模块1是通过摄像头实时捕获一帧图像,然后传给图像预处理及检测模块2 ;所述的图像预处理及检测模块2是用于预处理摄像头采集图像模块1所传来的图像,并在图像上进行头面部动作检测,最终得到头面部动作的坐标位置与大小信息;所述头面部动作数据分析模块3是对图像预处理及检测模块2所得到的头面部动作信息进行统计分析得出头面部动作的平均位置和大小及检测率;所述的精确判断模块4是用于精确判断并区分出15种相互独立的头面部动作;所述的动作到计算机命令映射模块5是通过在不同的动作下调用不同的系统API,把头面部动作映射成各种计算机命令。
所述的控制鼠标模块501是把俯仰头、左右移动头动作映射为鼠标的上下左右移动操作或滚轮滚动操作,左右转头动作映射为鼠标的左右键点击,点头(组合动作)映射为鼠标的双击。所述的辅助阅览模块502是把俯仰头动作映射为各种电子文档、网页等的上下翻页;所述的坐姿监控模块503是把用户靠近计算机的动作映射为警告提示,提醒用户离电脑太近;所述的键盘输入模块504是把俯仰头、左右转头、左上仰头、右上仰头、左下俯头、右下俯头和张嘴映射为不同的键盘按键,实现用户的快速输入;所述的颈部操游戏模块505是把俯仰头、左右转头、左上仰头、右上仰头、左下俯头、右下俯头映射为不同的游戏控制命的游戏应用;所述的控制赛车游戏模块506是把左右移动头部映射为赛车的左右转弯命令,俯仰头映射为加减速命令的游戏应用;所述的家居控制模块507是通过与网络家具控制系统结合把头面部动作映射为各种家具的控制命令,实现电视机、空调、窗帘、灯的控制。所述的自定义控制模块508是用于用户自己定义头面部动作与各种操作的映射。
在不同的头面部动作下调用不同的系统API (Application ProgrammingInterface),把头面部动作转换为对应的计算机的命令,如图4,具体可以设定成如下的各种命令 闭左眼执行单击鼠标左键、键盘Left键;闭右眼执行单击右键、键盘Right键;张嘴执行确认;左转头执行单击左键;右转头执行单击右键;左偏头单击鼠标左键;右偏头单击右键;左移头执行向左移动鼠标、键盘Left键;右移头执行向右移动鼠标、键盘Right键;仰头执行向上移动鼠标、滚轮上滚、键盘Up键;俯头执行向下移动鼠标或滚轮下滚;点头执行双击左键。此系统的函数库里封装了一些常用操作所对应的的系统API,用户还可以根据自己的习惯为每个头面部动作映射操作。
权利要求
头面部动作检测方法,其特征在于所述的方法通过如下步骤实现步骤1采集各种头面部动作的图片,包括正例图片和反例图片;步骤2对正例图片和反例图片进行训练,归纳正例图片中的共同haar特征,并排除反例图片中所存有的haar特征,得到存有头面部动作特征的分类器;分类器中用文本记录了所训练的头面部动作中所含有的haar特征和每个haar特征在头面部动作的坐标位置;步骤3采用多线程方法获取图像并对图像进行预处理和头面部动作检测;应用多线程方法创建两个线程,即线程A和线程B,对图像进行预处理和头面部动作检测具体过程如下(1)线程B通过摄像头实时捕获图像,并把这个图像交给线程A处理;(2)当线程A获得一帧图像后,对该帧图像依次进行颜色空间转换、图像积分、边缘检测处理,得到预处理后的图像;(3)以不同大小的窗口在图像中移动搜索目标,用窗口所选中的图片特征与分类器中的特征相比较,由此判断出图像中是否存在希望出现的头面部动作,如果是就记录下头面部动作在图像中的位置坐标与头面部动作的大小信息,如果不是就继续移动搜索下一目标;(4)重复步骤(1)~(3),线程A继续处理送来的下一帧图像;步骤4根据上面步骤3得到的头面部动作的大小与坐标位置信息,连续考察n帧头面部动作的信息,求出他们的平均位置与大小,以及检测率,其中n为整数,n取值为200~300;如果当前头面部动作的位置和大小与平均位置和大小相比较,二者的差值超过差值阈值,则计算机会出现错误信息提示,此时不进行操作;如果小于或等于差值阈值,则继续判断检测率;所述的差值阈值取为20~30像素;如果检测率小于检测率阈值,则无法使用目前的头面部信息来实现操作;如果检测率大于检测率阈值,则根据识别出的具体的头面部动作信息对计算机进行操控;所述的检测率阈值取0.6~0.7;步骤5通过对所得到的具体的头面部动作信息数据进行分析,从而精确分辨出各个头面部动作(1)比较最近的10帧图像眼睛的检测率与眼睛阈值的大小,检测率小于眼睛阈值被判断为闭眼动作,大于眼睛阈值被判断为睁眼;(2)两种方法判断张嘴动作a)检测率小于嘴阈值判断为张嘴,b)连续3帧图像在嘴的区域没有检测到嘴判断为张嘴;(3)嘴部坐标与脸部坐标的差值大于左偏头阈值判断为左偏头,小于右偏头阈值判断为右偏头;(4)连续识别m帧右侧面脸判断为左转头,连续识别m帧左侧面脸判断为右转头;(5)把步骤4所求的头部坐标平均值作为中心位置,当前头部坐标偏离中心位置的垂直位移小于俯头阈值判断为俯头,大于仰头阈值判断为仰头;(6)把步骤4所求的头部坐标平均值作为中心位置,当前头部坐标偏离中心位置的水平位移大于左移阈值判断为左移头,小于右移阈值判断为右移头;(7)当前脸部的大小与平均脸部的大小之差大于靠近阈值识别为靠近,小于远离阈值识别为远离;其中,眼睛阈值为0.2~0.3,嘴阈值为0.5~0.8,左偏头阈值为4~6像素,右偏头阈值为-6~-4像素,m为正整数,取为5~7,俯头阈值为-5~-3像素,仰头阈值为3~5像素,左移阈值为4~8像素,右移阈值为-8~-4像素,靠近阈值为10~20像素,远离阈值为-20~-10像素。
2. —种应用权利要求1所述的头面部检测方法进行计算机操控的助残系统,其特征在 于所述的助残系统包括摄像头采集图像模块、图像预处理及检测模块、头面部动作数据 分析模块、精确判断模块、动作到计算机命令映射模块,其中动作到计算机命令映射模块包 含有控制鼠标模块、辅助阅览模块、坐姿监控模块、键盘输入模块、颈部操游戏模块、控制赛 车游戏模块、控制家居模块、自定义控制模块;所述的摄像头采集图像模块是通过摄像头实时捕获一帧图像,然后传给图像预处理及 检测模块;所述的图像预处理及检测模块是用于预处理摄像头采集图像模块所传来的图 像,并在图像上进行头面部动作检测,最终得到头面部动作的坐标位置与大小信息;所述头 面部动作数据分析模块是对图像预处理及检测模块所得到的头面部动作信息进行统计分 析得出头面部动作的平均位置和平均大小及检测率;所述的精确判断模块是用于精确判断 并区分出15种相互独立的头面部动作;所述的动作到计算机命令模块是通过在不同的动 作下调用不同的系统API,把头面部动作映射成各种计算机命令;所述的控制鼠标模块是 把俯仰头、左右移动头动作映射为鼠标的上下左右移动操作,左右转头动作映射为鼠标的 左右键点击,点头映射为鼠标的双击;所述的辅助阅览模块是把俯仰头动作映射为各种电 子文档、网页等的上下翻页;所述的坐姿监控模块是把用户靠近计算机的动作映射为警告 提示,提醒用户离电脑太近;所述的键盘输入模块是把俯仰头、左右转头、左上仰头、右上仰 头、左下俯头、右下俯头和张嘴映射为不同的键盘按键,实现用户的快速输入;所述的颈部 操游戏模块是把俯仰头、左右转头、左上仰头、右上仰头、左下俯头、右下俯头映射为不同的 游戏控制命的游戏应用;所述的控制赛车游戏模块是把左右移动头部映射为赛车的左右转 弯命令,俯仰头映射为加减速命令的游戏应用;所述的家居控制模块是通过与网络家具控 制系统结合把头面部动作映射为各种家具的控制命令,实现电视机、空调、窗帘、灯的控制; 所述的自定义控制模块是用于用户自己定义头面部动作与各种操作的映射。
3. 根据权利要求2所述的助残系统,其特征在于所述的15种相互独立的头面部动作 分别为抬头、低头、右偏头、左偏头、左移头、右移头、右转头、左转头、闭右眼、闭双眼、闭左 眼、靠近、张嘴、闭嘴、远离。
全文摘要
本发明公开了一种头面部检测方法及应用该方法操控计算机的助残系统,所述方法通过采集正例图片,反例图片,并对正例图片和反例图片应用Adaboost算法进行训练得到存有头面部特征的分类器,本发明在Adaboost算法的基础上,采取多线程的方法,先对人的头面部动作进行检测,然后根据头部所做出的不同的动作,在不同的功能选择下做出相应的操作,从而实现了用头面部动作控制计算机。本发明实现了控制鼠标键盘、辅助阅览、颈部操游戏、控制赛车游戏等一系列重要而实用的功能,能够应用于家庭自动控制系统中,使残疾人只用头部就能控制电视、空调等所有家庭设施。
文档编号G06F3/01GK101697199SQ20091018064
公开日2010年4月21日 申请日期2009年10月27日 优先权日2009年10月27日
发明者孟繁荣, 宋友, 黄宇翔, 龚存晨 申请人:北京盈科成章科技有限公司;孟繁荣;宋友;龚存晨;黄宇翔;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1