技术领域
[0001] 本
发明涉及一种人机交互方法,特别涉及一种构建以人脸特征点
定位与姿态检测为
基础的视觉
鼠标装置的方法,通过
图像分析与目标检测手段,提取两个眼
角、两个嘴角和鼻尖共5个特征点,以一幅
正面图像的相应特征点
位置为参考,对实时人脸图像3个偏转角进行估计,并生成人机交互信息,通过USB
接口连接到计算机,形成一种人机交互的视觉鼠标装置。
背景技术
[0002] 人机交互技术(Human-Computer Interaction Techniques)是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术。它包括机器通过输出或显示设备给人提供大量有关信息及提示,人通过输入设备给机器输入有关信息,回答问题等。人机交互技术是计算机
用户界面设计中的重要内容之一。它与认知学、人机工程学、
心理学等学科领域有密切的联系。
[0003] 在人机交互领域,现在广泛使用的有
键盘、鼠标、光笔等传统装置,然而在一些特殊情况下传统装置有其局限性,例如某些多媒体游戏的复杂界面操作以及残疾人士使用计算机,迫切需要设计不依赖肢体动作的输入装置作为现有人机交互方式的补充。
[0004] 为了适应不同的交互环境,适用于不同的交互人群,国内外学者已经广泛研究基于视觉(图像)、听觉(语音)、触觉(压
力、
温度)等交互方法,有些方法已经初步投入使用。在视觉交互方法中,目前主要有视线追踪技术、手语识别技术等研究热点。视线追踪技术是通过摄像头和瞳孔定位技术
感知人的关注视点,从而驱动鼠标定位及相关操作,然而有两个重要缺点:一是瞳孔移动是不连续的,不能与连续移动的视点很好吻合,降低了
跟踪的准确性;二是由于生理与心理原因,人眼的移动具有随意性,某些情况下人眼视线所在位置并不反应自身所关注的主观意愿。
[0005] 为克服视线跟踪人机交互方法的
缺陷,本发明采用
人脸姿态估计方法,利用视频摄像头获得人脸图像,通过图像与视频处理技术实现
人脸检测与关键点定位,根据多
帧序列图像的特征点位置分布估计人脸姿态,并由姿态信息实现人机交互,是一种新的交互方法。由此形成的人机交互装置,适用于一些特殊的交互人群(如残疾人士)和交互环境(如多媒体游戏),具有显著的应用价值,在人机交互领域有着扩展范畴的重要意义。
发明内容
[0006] 针对现有的人机交互装置不能完全满足不同的交互环境和交互人群,本发明的目的是提供一种一种基于人脸姿态估计的人机交互方法,利用人脸特征点自动定位和人脸姿态估计等技术,生成人机交互信息,通过USB接口连接到计算机,形成一种人机交互的视觉鼠标装置。
[0007] 本发明涉及包含以下步骤:
[0008] a)经光学镜头及CMOS图像
传感器组件得到的人脸数字
图像序列,通过DSP的数字视频高速通道实现
数据采集。
[0009] b)对人脸数字图像进行预处理。
[0010] ①图像消噪。由于图像噪声点与它们的近邻
像素在灰度值、统计特征或分布规律上有显著的区别,由此可以进行图像滤波实现噪声抑制,使有用信息更容易检测与识别。非线性扩散是一种良好的图像消噪方法,具有很好的保边特性,但要经过多次
迭代,计算复杂度高。本发明中采用目标点四个方向带状区域的方差构造边缘映射,应用于非线性扩散图像消噪
算法中,减少迭代次数,并采用积分图实现快速计算。
[0011] ②人脸检测与区域划分。手工标注多张人脸,将这些人脸变换到相同尺寸,再求平均得到人脸模板,用模板匹配方法得到人脸的大概位置,然后根据人脸结构特征先验知识将人脸划分成左右眼、鼻和嘴四个区域。
[0012] ③
边缘检测。由于5个特征点都位于人脸器官的角点上,需要提取轮廓或角点信息以提高定位
精度。传统的边缘检测方法有Canny算子、Sobel算子、形态学方法以及
小波变换方法等。此外,SUSAN角点检测算法能够很好反映边缘及角点信息,但效果受到
阈值影响。本发明中采用方向滤波方法获取
边缘图像。
[0013] c)定位人脸的5个特征点(2个眼角、2个嘴角和鼻尖)。
[0014] ①定位眼角。首先,在前面确定的人眼区域内,对消噪后图像进行
水平和垂直两个方向的灰度投影,分别取谷点位置作为眼球中心的二维坐标,并以此划定矩形区域作为眼睛的确切位置;然后,考察这一区域,对边缘图像进行二值化处理,并检测任意连通区域的点数,去掉连通点数太少的区域。最后,对选中的人眼连通区域提取最左(右)点作为眼角点。
[0015] ②定位嘴角。嘴角定位也是角点检测,方法与眼角定位类似,但由于嘴的灰度变化不象眼睛一样存在高
对比度的瞳孔,造成其轮廓不分明。先采用唇色样本训练建立高斯混合概率模型,将嘴区域所有点代入模型计算其概率,并规格化后作为新的灰度信息,再应用眼角定位相同的方法提取嘴角位置。
[0016] ③定位鼻尖。鼻尖不在轮廓上,定位鼻尖要依靠其与眼角与嘴角的几何位置关系确定。由于鼻尖离鼻孔较近,而且位于两个鼻孔连线上方,先采用灰度投影法在鼻子区域内搜索两个鼻孔位置,然后在鼻孔上方查找高光点作为鼻尖位置。在人脸偏转角度较大时,鼻尖定位容易造成误差,但在本发明中,鼻尖位置只影响偏转角度的符号,即确定转动方向,并不影响角度大小计算,因而对误差并不敏感。
[0017] d)估计人脸的3个偏转角度
[0018] 3个偏转角度是生成人机交互信息的基础。在偏转角度不太大,人脸大小相对固定并处于画面中心,有良好光照的条件下,可以准确得到5个特征点,用下面步骤求取3个偏转角。
[0019] ①坐标变换。先计算左右眼角点的中心,并作为图像原点,其余所有坐标点根据其与原点的相对位置进行坐标变换,得到新的坐标值。然后计算两个嘴角点的中心位置并记录,得到两个眼角、眼角中心、鼻尖、嘴角中心共5个特征点,这5个特征点是进行人脸三个三维偏转角度估计的基础。
[0020] ②确定一幅正面图像,以两个眼角连线为水平线,该连线与嘴角中心点确定的平面与摄像镜头法线垂直时为正面,设此时三个偏转角0。定位正面图像的5个特征点,根据d)①方法完成坐标变换,计算5个特征点坐标并记录,在后续的姿态估计中作为参考信息。
[0021] ③对任意时刻采集的人脸图像,需要估计其姿态以生成人机交互信息。首先定位5个特征点,再按照d)②相同的方法得到5个点的坐标。参照d)②得到的正面图像的特征点,对这些坐标按照几何约束关系进行验证,对明显不符合条件的定位结果作放弃处理,不生成交互信息。
[0022] ④利用d)②、d)③两步所确定的两幅图像对应5点的坐标,利用针孔摄像机模型,根据算法特点作出一些合乎情理及不影响结果的简化假设,最后利用对极几何原理进行推导,计算出任意图像中人脸的姿态,得到三个偏转角度。
[0023] e)生成人机交互信息
[0024] 由前面获得的三个偏转角度定义鼠标位置和操作方式。计算机-鼠标交互方法包括
指针在二位平面内任意移动,鼠标左、右键的单双击等操作。本发明根据其中两个角度值定位鼠标指针位置,用另一角度的帧间突变量定义鼠标的操作,从而生成人机交互信息。
[0025] f)连接计算机实现通信
[0026] 装置中开发USB接口,按照标准USB鼠标的通信协议编写驱动程序,将前面获取的人机交互信息传送到计算机。计算机不需要任何专
门的程序支持,降低了目标计算机的负担,不影响操作者应用计算机运行复杂的
软件。
[0027] 本发明作为传统人机交互方法的补充,适用于一些特殊的交互人群(如肢残人士)和交互环境(如多媒体游戏),具有显著的应用价值。
附图说明
[0028] 图1是本发明的人机交互信息处理
流程图[0029] 图2是人脸初定位采用的人脸模板图
[0030] 图3是正面人脸器官模板及本方法中5个特征点位置图
[0031] 图4是本发明中人脸3个偏转角度的定义方法示意图
具体实施方式
[0032] 下面结合一个非限定性实例对本发明作进一步的说明
[0033] 参见图1、图2、图3、图4。
[0034] 本发明
图像采集、时序生成及控制采用CPLD器件实现,图像预处理、特征点定位和姿态估计相关算法采TI公司的达芬奇处理器TMS32C6446完成,USB接口用Cypress控
制芯片实现。依据信息处理流程完成所有算法及
硬件模
块设计,模拟鼠标操作实现人机交互。
[0035] 主要模块内容介绍如下:
[0036] (1)人脸图像预处理
[0037] I.图像消噪。由于光学系统或
电子器件影响,图像不可避免会受到噪声干扰,需要进行消噪处理以提高特征点的定位精度。应用非线性扩散消噪算法原理,并利用目标点邻域四个方向带状区域灰度的方差值作为图像的边缘映射,每个像素点的扩散量由邻域八像素与该点的差值以及相应的方向权系数决定,从而增强适应能力,减少迭代次数少,加快运算速度。其迭代公式为:
[0038]
[0039] 为了在迭带过程中不产生新的极值点,λ取0.125,σp,q根据p、q值不同代表四个方向带状区域方差。 为叉分方法计算的梯度。扩散函数g(σ)定义为:
[0040]
[0041] II.人脸定位与区域划分。由于本发明应用于特殊的人机交互环境,可以保证一系列客观条件:良好的光照,人脸大小比较统一并处于图像中心,背景影响较小,减少了人脸定位负担。先采用手工标注100张人脸,在尺寸归一化后求平均得到人脸模板,用模板匹配方法提取人脸的位置。设ai,j为待检测像素灰度,ti,j为模板像素灰度,Ea、Et分别为二者均值,则匹配系数定义为:
[0042]
[0043] m>0.55为侯选人脸区域。在检测范围内若出现多个符合条件的区域,则对连续出现的人脸区域求平均得到人脸位置。然后根据人脸结构特征先验知识将人脸划分成左右眼、鼻和嘴四个区域。
[0044] III.边缘检测。人脸的眼、鼻、嘴等器官包含了显著的轮廓信息,可以通过边缘检测算法提取轮廓信息,为特征点检测打下基础。本发明中采用方向滤波方法:先用差分法计算每个点的梯度大小和方向,再对目标点及其相邻8点的梯度进行矢量
叠加,用其模值作为该点新的灰度值,从而得到边缘图像。
[0045] (2)定位人脸的5个特征点(2个眼角、2个嘴角和鼻尖)。
[0046] I.定位眼角。首先,针对(1)I得到的预处理图像和(1)II确定的人眼大致区域,进行水平和垂直灰度投影,先对投影
波形进行平滑,再分别取谷点位置为眼球中心点的纵向和横向坐标,并以此划定矩形区域作为眼睛的位置;其次,对该区域的(1)III边缘图像采用最大类间方差法确定阈值进行二值化处理;再次,对二值图像进行连通区域检测,对连通点少于20的区域作为干扰排除,并对候选连通区进行形状验证;最后,对选中的人眼连通区域提取最左(右)点,若存在多点则最下面的点作为眼角点。
[0047] II.定位嘴角。采用与眼角定位相似的方法,只是由于嘴的灰度变化不如眼睛明显,所以在对嘴唇区域进行边沿检测之前,先通过高斯混合模型(GMMs)进行肤色变换:手工收集大量嘴唇样本,根据其
颜色先计算所有样本点的Cr、Cb色差信息,并以此为二维坐标,建立由两个高斯模型组成的高斯混合概率模型,代入所有样本点进行肤色训练,获得模型参数。将(1)II步确定的嘴巴区域所有点的颜色信息代入模型,计算属于嘴唇的概率,将概率变换到0-255区间,作为新的灰度图,然后用(1)III方法进行边缘检测。后续的嘴角定位步骤与眼角提取相同。
[0048] III.定位鼻尖。首先定位两个鼻孔位置,以找到的两个眼角位置为基础,定义其距离为h,根据眼角、嘴角和鼻孔的位置关系,在眼角连线以下的1.2h到1.6h,宽度为h的矩形区域内分别进行水平和垂直灰度投影,由水平投影的谷点位置作为鼻孔位置的纵坐标,以垂直投影的两个谷点分别作为两个鼻孔的横坐标。然后在鼻孔上方0.3h内查找高光点,作为鼻尖位置。
[0049] (3)估计人脸的3个偏转角度
[0050] 在偏转角度不太大(在20°以内),并且有良好光照的条件下,前面步骤能够准确定位5个特征点A~E,用下面步骤求取3个偏转角。
[0051] I.坐标预处理。对A、B两点坐标求平均,得到中心点F。
指定F为坐标原点,水平向右为横轴u,竖直向上为纵轴v,对后面所有图像点的二维坐标均以此为参考进行变换。对两个嘴角点D、E坐标求平均得到中心点G,连同两个眼角、眼角中心点和鼻尖共5个特征点A、B、C、F、G,用下面步骤求取3个偏转角。
[0052] II.首先确定一幅正面图像,设定其三个偏转角α、β、γ为0,定位5个特征点A~E,按照上面(3)I方法计算A、B、C、F、G点的坐标并记录。作为参考图像,在下面表述中,以下标1作为标记。于是这些坐标点描述为:A点(uA1,vA1),B点(uB1,vB1),C点(uC1,vC1),F点(uF1,vF1),G点(uG1,vG1)。
[0053] III.对任意时刻采集的人脸图像,首先定位5个特征点,再按照(3)II相同的方法得到5个点的坐标,以下标2为标记:A点(uA2,vA2),B点(uB2,vB2),C点(uC2,vC2),F点(uF2,vF2),G点(uG2,vG2)。
[0054] IV.利用(3)II、(3)III两步所确定的两幅图像对应5点的坐标,利用针孔摄像机模型和对极几何原理进行数学推导,计算出图像2中人脸的姿态,得到三个偏转角度α、β、γ。针孔摄像机模型:
[0055]
[0056] 其中s为尺度因子, 图像点的齐次坐标,K为像机的内部参数矩阵,可以定义成diag(f,f,1)。T=[tx,ty,tz]T是平移矩阵, 是空间人脸三维点的齐次坐标。R是以α,β和γ为基础的旋转矩阵。本步骤的任务是根据两幅已知图像的5个特征点的 信息,通过一些合理的假设,在不知道 的情况下估算R中的三个角度值。
[0057] 由于只涉及角度估计,算法中的运算式全部以差-商方式出现,可以对针孔像机T模型的参数作如下假设:s=1,K=diag(1,1,1),T=[0,0,0]。设:
[0058]
[0059] c=cosγ d=sinγ h=sinβ
[0060] 可以推导出:
[0061] γ=arc tan(M)
[0062]
[0063]
[0064] 由于在计算过程中,β存在一个正负符号问题,不能由A、B、F、G四点唯一确定,所以需要引入C点,根据C与F、G连线的相对位置决定其符号。
[0065] (4)生成人机交互信息
[0066] 由α、β、γ三个角度信息定义鼠标位置和操作方式。α、β为0定义为屏幕中心,α变化时鼠标上下移动,β变化时鼠标左右移动,角度大于或等于20°时鼠标定位到屏幕边沿。γ角度的突变定义鼠标操作方式,γ为正且连续两帧之间角度变化介于3°~8°为单击左键,超过8°为双击左键,γ为负且连续两帧之间角度变化介于-3°~-8°为单击右键,超过-8°为双击右键。
[0067] (5)通过USB连接到PC机上形成鼠标装置
[0068] 装置上应用Cypress芯片开发USB接口,以标准USB鼠标方式实现与PC机的通信。用上面方法产生的鼠标位置和操作方式取代传统鼠标的操作信息传送到PC机,形成一种基于人脸姿态估计的视觉鼠标装置。