表情识别输入方法

文档序号:6488560阅读:389来源:国知局
表情识别输入方法
【专利摘要】一种表情识别输入方法,包括:获取连续两帧图像,计算所述两帧图像的差分灰度图像;定位当前帧中眉毛、眼睛、嘴巴的位置;跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量;将上述目标对象的位移矢量与预设表情库中的表情图像匹配;输入匹配表情图像对应的按键值。该方法利用人类头部的形状或位移输入指定的按键值,避免了手的参与。且由于大脑与头部器官距离近,所以对表情的控制速度快,输入快。
【专利说明】表情识别输入方法
【技术领域】
[0001]本发明涉及一种表情识别输入方法。
【背景技术】
[0002]为了生活的便利,人们设计了除键盘、鼠标之外的多种输入法,如触摸板输入法、触摸屏输入法、基于脑电波识别的输入法等等。但是,这些输入法从输入速度考虑,前面几个输入方式通常需要手操作,手在干其他活时或残障人士使用不太方便,对输入速度要求较高的游戏玩家输入速度不能满足要求,最后一个需要对大脑进行训练才能实现输入,且输入速度特别慢。
[0003]有鉴于此,特提出本发明。

【发明内容】

[0004]本发明要解决的技术问题在于克服现有技术的不足,提供一种避免双手参与且输入速度快的表情识别输入方法,
[0005]为解决上述技术问题,本发明采用技术方案的基本构思是:
[0006]一种表情识别输入方法,包括以下步骤:
[0007]获取连续两帧图像,计算所述两帧图像的差分灰度图像;
[0008]定位当前帧中眉毛、眼睛、嘴巴的位置;
[0009]跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量;
[0010]将上述目标对象的位移矢量与预设表情库中的表情图像匹配;
[0011]输入匹配表情图像对应的按键值。
[0012]进一步地,所述定位当前帧中眉毛、眼睛、嘴巴的位置的步骤具体包括:
[0013]去除差分灰度图像中的干扰噪声;
[0014]对去除干扰噪声后的图像根据寻找轮廓线算法寻找轮廓线上的点,获得图像的轮廓线,所述轮廓线包括头部、五官以及颈部的轮廓线;
[0015]对确定了轮廓线的差分灰度图像进行垂直投影,根据垂直投影算法获取垂直投影曲线,根据水平方向头部定位算法计算水平方向头部的位置;
[0016]计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距,获得差分灰度图像轮廓外侧水平间距曲线;
[0017]对上述差分灰度图像轮廓外侧水平间距利用包络检波算法获得检波结果,并根据检波结果获得包络检波后的差分灰度图像轮廓外侧水平间距曲线;
[0018]从左侧读取包络检波后的差分灰度图像轮廓外侧水平间距值,并寻找第二个间距小于颈部定位门限值Vtn的坐标点,该点为头部与颈部的水平边界点,将颈部从所述差分灰度图像中分离;
[0019]将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴;
[0020]对眉毛与眼睛部分做垂直投影,根据垂直投影算法获得眉毛与眼睛部分的垂直投影曲线,根据眉毛与眼睛部分水平位置定位算法计算出眉毛与眼睛部分的水平位置;
[0021]对确定了眉毛与眼睛水平位置的差分灰度图像进行水平投影,根据水平投影算法获得眉毛与眼睛部分的水平投影曲线,利用眼睛与眉毛的区分算法计算眼睛和眉毛的垂直分界点,从而确定眉毛和眼睛的各自的垂直位置;
[0022]对嘴巴部分进行垂直投影,根据垂直投影算法获得嘴巴部分的垂直投影曲线,利用嘴部提取算法计算嘴巴部分的水平位置。
[0023]进一步地,所述将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴的步骤具体为:
[0024]按照人类头部额头、眉毛到鼻子底部、鼻子底部到下巴纵向比例为1:1:1的关系,计算额头的高度,从差分灰度图像中去除额头部分;
[0025]将去除额头部分的差分灰度图像从纵向按1/4、1/4、3/8、1/8分割开,最上边1/4为眉毛与眼睛部分,中间1/4为鼻子部分,中间3/8部分为嘴巴部分,下边1/8为下巴。
[0026]进一步地,当帧率足够高时,所述跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量的步骤具体为:
[0027]依次选取一个搜索向量i,该向量是以上一帧图像中的目标对象的图像几何中心为原点,在7乘7像素的范围内以该范围内的任意像素点为终点构成的;
[0028]读取上一帧图像与当前帧中的搜索向量对应的图像中的对应像素点,计算两个像素点的灰度差值,并取绝对值;
[0029]将绝对值累加到Si ;
[0030]当向量遍历完成时,比较所有向量对应的累加值Si,寻找最小值,该值对应的向量即为上一帧图像在当前帧中的移动向量。
[0031]进一步地,所述去除差分灰度图像中的干扰噪声的步骤具体为:
[0032]读取差分灰度图像中像素的灰度值;
[0033]判断每个像素的灰度值是否大于噪声门限Vr ;
[0034]如果大于\,则保留该像素;
[0035]如果小于或等于噪声门限VN。,则删除该像素。
[0036]所述寻找轮廓线算法的步骤具体为:
[0037]读取差分灰度图像中非O像素点;
[0038]计算该像素点与周围8个像素点中的非O像素点灰度值的绝对值;
[0039]选取结果中绝对差值最小的点作为轮廓线上的下一点。
[0040]进一步地,所述垂直投影算法具体为:
[0041]读取所述差分灰度图像各像素的灰度值;
[0042]将多个灰度值按列累加,多个累加值形成一个数组,即为垂直投影数组,利用该数组绘制垂直投影曲线。
[0043]所述水平投影算法具体为:
[0044]读取所述差分灰度图像各像素的灰度值;
[0045]将各像素的灰度值按行累加,多个累加值形成一个数组,即为水平投影数组,利用该数组绘制水平投影曲线。
[0046]进一步地,
[0047]所述水平方向头部定位算法具体为:
[0048]从左边依次读取垂直投影值;
[0049]判断垂直投影值是否大于门限值Vt ;
[0050]左边第一个垂直投影值大于门限值Vt的投影点的坐标为头部水平位置的左边界;
[0051 ] 从右边依次读取垂直投影值;
[0052]判断垂直投影值是否大于门限值Vt ;
[0053]右边第一个大于门限值Vt的投影点的坐标为头部水平位置的右边界。
[0054]进一步地,所述计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距的步骤具体为:
[0055]从所述差分灰度图像中按行从左边读取第一个非零灰度值对应的横坐标;
[0056]从所述差分灰度图像中按行从右边读取第一个非零灰度值对应的横坐标;
[0057]计算两个横坐标的差并存储下来,此值为每行图像轮廓外侧水平间距。
[0058]所述包络检波算法具体为:
[0059]定义轮廓外侧上一个像素水平间距记录值变量并赋零;
[0060]顺序读取轮廓外侧各像素水平间距值;
[0061]判断当前读取值与上一值的大小;
[0062]如果当前读取值大于上一值,则将当前读取值赋给上一记录值,将上一记录值作为检波结果输出;
[0063]如果当前读取值小于或等于上一值,则将上一记录值减1,将上一记录值作为检波结果输出。
[0064]进一步地,所述眉毛与眼睛部分水平位置定位算法的步骤具体为:
[0065]读取眉毛与眼睛部分图像的垂直投影值,并计算出投影最左边与最右边非零值点的距离即为垂直投影非零值外侧宽度;
[0066]连续读取眉毛与眼睛部分图像垂直投影,并计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度以及该宽度区域对应的起始点位置;
[0067]计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度与垂直投影非零值外侧宽度的比值RW1,以及该宽度区域对应的起始点位置与垂直投影非零值外侧宽度的比值Rw2 ;
[0068]判断I Rffl-0.2 I是否小于误差值e,如果小于e,则
[0069]判断I Rw2-0.2 I是否小于误差值e,如果小于e,则
[0070]在左眼水平位置右侧连续读取眉毛与眼睛部分图像垂直投影,并计算垂直投影值连续大于眉毛与眼睛部分投影门限Vte的宽度以及该宽度区域对应的起始点位置;
[0071]计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度与垂直投影非零值外侧宽度的比值RW3,以及该宽度区域对应的起始点位置与垂直投影非零值外侧宽度的比值Rw4 ;
[0072]判断I Rff3-0.2 I是否小于误差值e,如果小于e,则
[0073]判断I Rw4_0.6 I是否小于误差值e,如果小于e,则结束。
[0074]进一步地,所述眼睛与眉毛的区分算法的步骤具体为:[0075]读取眉毛与眼睛部分的水平投影值;
[0076]判断水平投影值是否大于门限值VTeb ;
[0077]当大于门限值VTeb时,计算该投影点与眉毛与眼睛部分的垂直起始位置、终止位置距离的比值;
[0078]计算该投影点与眉毛与眼睛部分的垂直起始位置、终止位置距离的比值与I的差的绝对值;
[0079]将上述差的绝对值鱼误差值e比较;
[0080]小于误差值e时确定此点为眉、眼垂直分界点。
[0081]所述嘴部提取算法具体为:
[0082]读取嘴巴部分图像垂直投影值并从中删除最左边非零部分;
[0083]从最右边删除嘴巴部分垂直投影值非零部分,剩余部分为嘴巴部分图像的的垂直投影,从而确定嘴巴部分的水平位置。
[0084]采用上述技术方案后,本发明与现有技术相比具有以下有益效果:
[0085]该方法利用人类头部的形状或位移可以输入指定的值,表情识别结果直接转换为键盘输入信号,这种输入法避免了手的参与,尤其利于残障人士使用。另外,由于人体大脑与头部器官距离近,所以人对表情的控制速度与对手的控制相比非常快,最终可以提高人体对电脑的控制速度,这种控制的实时性对游戏发烧友非常适用,如在魔兽游戏中通过愤怒的表情输入“射击”的动作等。
[0086]下面结合附图对本发明的【具体实施方式】作进一步详细的描述。
【专利附图】

【附图说明】
[0087]图1是本发明表情识别输入方法的一种流程图;
[0088]图2是相邻两帧图像相减后的图像;
[0089]图3是表情重复判别算法的流程图;
[0090]图4是定位当前帧中眉毛、眼睛、嘴巴的位置的步骤的流程图;
[0091]图4a是图2去除干扰噪声后的图像;
[0092]图5是头部的轮廓线图像;
[0093]图6是图5的垂直投影曲线;
[0094]图7是图6去除干扰噪声后的图像;
[0095]图8是垂直投影定位后的头像;
[0096]图9是头像轮廓外侧水平间距曲线;
[0097]图10是包络检波后的差分灰度图像轮廓外侧水平间距曲线;
[0098]图11是眉毛与眼睛部分的垂直投影曲线;
[0099]图12是眉毛与眼睛部分水平定位结果图;
[0100]图13是眉毛与眼睛部分的提取结果图;
[0101]图14是眉毛与眼睛部分的水平投影曲线图;
[0102]图15是嘴巴部分的垂直投影曲线图;
[0103]图16是嘴巴部分图像提取结果图;
[0104]图17是将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴的步骤的流程图;
[0105]图18是按人类头部器官比例分割头部的头部图像;
[0106]图19是跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量的流程图;
[0107]图20是去除差分灰度图像中的干扰噪声的流程图;
[0108]图21是寻找轮廓线算法的流程图;
[0109]图22是垂直投影算法的流程图;
[0110]图23是水平投影算法的流程图;
[0111]图24是水平方向头部定位算法的流程图;
[0112]图25是计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距的流程图;
[0113]图26是包络检波算法的流程图;
[0114]图27是眉毛与眼睛部分水平位置定位算法的流程图;
[0115]图28是眼睛与眉毛的区分算法的流程图;
[0116]图29是嘴部提取算法的流程图。
【具体实施方式】
[0117]以下【具体实施方式】中的图6、图7、图9、图10、图11、图14和图15中的二维坐标图中,横轴均表示物体位置,单位为像素,纵轴表示像素灰度值之和。
[0118]如图1所示,本发明是一种表情识别输入方法,包括以下步骤:
[0119]确保拍摄环境没有运动物体,即背景是静止的,在摄像头前做出表情,执行步骤S11、采集获取连续两帧图像,计算所述两帧图像的差分灰度图像。如图2 ;拍摄时要求人脸尽量正对摄像头,并保持合适的距离(以头部能大致充满摄像头输出的视频图像为准)。采用摄像头或其他射频采集设备采集图像。
[0120]S12、定位当前帧中眉毛、眼睛、嘴巴的位置;
[0121]S13、跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量;
[0122]S14、将上述目标对象的位移矢量与预设表情库中的表情图像匹配;
[0123]S15、输入匹配表情图像对应的按键值。
[0124]对于步骤S14和S15,根据自己的习惯设计各种不同的表情,并与按键做绑定。比如把撅嘴设计为向上按键,缩嘴设置为向下按键,左偏头设置为向左按键,右偏头设置为向右按键。具体动作与按键映射可以参考按键动作参考表。该标准记录了眉毛、眼睛、嘴巴的形状以及与无按键表情的相对位移。可以利用眉毛、眼睛、嘴巴的位移表示按键,也可以用眉毛、眼睛、嘴巴的形状表示按键。将上述设置好的表情按键值存入表情库。
[0125]然后将自己想好的按键输入表情识别键盘,则完成表情与键盘按键的绑定。同样的方法可以设置多个按键。
[0126]在表情设置的过程中,系统自动对差别小的表情作出判别,如果差别太小则认为表情重复,不允许设置。具体判别方法见表情重复判别算法描述。
[0127]参照图3,所述表情重复判别算法包括以下步骤:[0128]S2101:首先读取一个自定义的表情类型,即利用五官或头部移动定义的表情,然后进入2102 ;
[0129]S2102:读取一个表情库中的表情;
[0130]S2103:计算新表情与表情库中的表情的距离,然后进入2104 ;
[0131]S2104:判断新表情与表情库中的表情的距离是否小于门限值Dt,如果小于则进入2105,否则进入2106 ;
[0132]S2105:确认自定义表情重复,结束程序;
[0133]S2106:判断表情库是否搜索完毕,如果没有完毕则进入2101继续搜索,如果完毕则程序结束,搜索完毕,则进入S2107,结束。
[0134]本算法主要用于防止将类似的表情定义为不同的按键值造成混乱。
[0135]步骤S13是一个识别过程。完成按键设置后,结合跟踪过程可以进行表情识别,举例说明如下:
[0136]在跟踪眉毛、眼睛、嘴巴的同时,计算眉毛、眼睛、嘴巴的位移,当位移达到预置位移的时候,可以认为头部发生了向左或向右偏移,然后向电脑USB接口送出绑定的按键值。
[0137]在跟踪眉毛、眼睛、嘴巴的同时,把眉毛、眼睛、嘴巴形状与定义的按键表情做搜索匹配。当发现与按键定义表情匹配时,向电脑USB接口送出绑定的按键值。
[0138]该方法利用人类头部的形状或位移可以输入指定的值,表情识别结果直接转换为键盘输入信号,这种输入法避免了手的参与,尤其利于残障人士使用。另外,由于人体大脑与头部器官距离近,所以人对表情的控制速度与对手的控制相比非常快,最终可以提高人体对电脑的控制速度,这种控制的实时性对游戏发烧友非常适用,如在魔兽游戏中通过愤怒的表情输入“射击”的动作等。
[0139]参照图4,优选的,所述步骤S12、定位当前帧中眉毛、眼睛、嘴巴的位置的步骤具体包括:
[0140]S121、去除差分灰度图像中的干扰噪声;图4a是两帧图像的差分灰度图像去除干扰噪声后的图像,由于摄像头等视频采集电路的影响,会在输出图像中产生噪声干扰点,这些噪点不利于图像处理,需要去除。
[0141]S122、对去除干扰噪声后的图像根据寻找轮廓线算法寻找轮廓线上的点,获得图像的轮廓线,如图5,所述轮廓线包括头部、五官以及颈部的轮廓线;通过本算法可以保留图像中重要的轮廓线上的信息点,去除不重要的非轮廓线上的点。
[0142]S123、对确定了轮廓线的差分灰度图像进行垂直投影,根据垂直投影算法获取垂直投影曲线,如图6,根据水平方向头部定位算法计算水平方向头部的位置;
[0143]垂直投影表示头部轮廓线在垂直方向上像素的集中程度,投影值越大说明该投影方向上对应的线条越多,可以用于定位物体的水平位置。线条密集区大致处于头部,所以通过设置垂直投影门限Vt可以计算出水平方向头部的位置,可参照图7。根据水平方向头部定位算法获得的头部图像如图8所示。
[0144]在上述图8的基础上执行步骤S124、计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距,获得差分灰度图像轮廓外侧水平间距曲线,如图9 ;
[0145]S125、对上述差分灰度图像轮廓外侧水平间距利用包络检波算法获得检波结果,并根据检波结果获得包络检波后的差分灰度图像轮廓外侧水平间距曲线,如图10 ;[0146]S126、从左侧读取包络检波后的差分灰度图像轮廓外侧水平间距值,并寻找第二个间距小于颈部定位门限值Vtn的坐标点,该点为头部与颈部的水平边界点,将颈部从所述差分灰度图像中分离;
[0147]S127、将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴;
[0148]S128、对眉毛与眼睛部分做垂直投影,根据垂直投影算法获得眉毛与眼睛部分的垂直投影曲线,如图11,根据每个眼睛宽度约占人脸宽度1/5,可以利用图11定位出眼睛的水平位置,如图12所示,根据眉毛与眼睛部分水平位置定位算法计算出眉毛与眼睛部分的水平位置,图像如图13 ;
[0149]在图13的基础上执行步骤S129、对确定了眉毛与眼睛水平位置的差分灰度图像进行水平投影,根据水平投影算法获得眉毛与眼睛部分的水平投影曲线,如图14,利用眼睛与眉毛的区分算法计算眼睛和眉毛的垂直分界点,从而确定眉毛和眼睛的各自的垂直位置;
[0150]S130、对嘴巴部分进行垂直投影,投影结果绘制的曲线如图15所示,从该图可以看出脸部轮廓与嘴部的投影明显分为3部分。根据垂直投影算法获得嘴巴部分的垂直投影曲线,利用嘴部提取算法计算嘴巴部分的水平位置,从而得到嘴巴部分的图像,如图16。
[0151]参照图17,优选的,所述步骤S125、将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴的步骤具体为:
[0152]S1251、按照人类头部额头、眉毛到鼻子底部、鼻子底部到下巴纵向比例为1:1:1的关系,计算额头的高度,从差分灰度图像中去除额头部分;
[0153]S1252、将去除额头部分的差分灰度图像从纵向按1/4、1/4、3/8、1/8分割开,最上边1/4为眉毛与眼睛部分,中间1/4为鼻子部分,中间3/8部分为嘴巴部分,下边1/8为下巴。
[0154]按人类头部器官比例分割头部的图像如图18所示。
[0155]当帧率足够高时,两帧之间的运动物体的形状与位置差别不大,所述步骤S13、跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量的步骤具体为,参照图19:
[0156]S131、依次选取一个搜索向量i,该向量是以上一帧图像中的目标对象的图像几何中心为原点,在7乘7像素的范围内以该范围内的任意像素点为终点构成的;
[0157]S132、读取上一帧图像与当前帧中的搜索向量对应的图像中的对应像素点,计算两个像素点的灰度差值,并取绝对值;
[0158]S133、将绝对值累加到Si ;
[0159]S134、判断向量遍历是否完成,如果没有完成则进入步骤S131 ;
[0160]S135、当向量遍历完成时,比较所有向量对应的累加值Si,寻找最小值,该值对应的向量即为上一帧图像在当前帧中的移动向量。
[0161]以跟踪嘴的运动为例,撅嘴过程,有可能伴随着嘴的位置与形状同时变化。当帧率足够高,可以认为两帧之间嘴的形状变化微小,可以忽略。从而利用当前帧中定位的嘴的图像搜索其在下一帧中的位置。因为两帧之间时间很短,嘴的位移很小,所以可以以当前嘴的位置为中心,设置搜索向量,依次按照各个向量搜索,利用匹配算法,寻找嘴部位移矢量,从而实现下一帧中嘴部的定位。具体搜索匹配算法见搜索匹配算法描述。
[0162]参照图20,优选的,所述步骤S121、去除差分灰度图像中的干扰噪声的步骤具体为:
[0163]S1211、读取差分灰度图像中像素的灰度值;
[0164]S1212、判断每个像素的灰度值是否大于噪声门限Vn。,进入S1213和S1214 ;
[0165]S1213、如果大于vn,则保留该像素;
[0166]S1214、当灰度值等于O时,删除该像素。
[0167]本算法主要用于搜索内容相似的图像。
[0168]参照图21,优选的,所述步骤S122中的寻找轮廓线算法的步骤具体为:
[0169]S1221、读取差分灰度图像中非O像素点;
[0170]S1222、计算该像素点与周围8个像素点中的非O像素点灰度值的绝对值;
[0171]S1223、选取结果中绝对差值最小的点作为轮廓线上的下一点。
[0172]本算法主要用于搜索头部以及五官的轮廓线。
[0173]参照图22,优选的,所述步骤S 123、S126中的垂直投影算法具体为:
[0174]S1501、按列读取所述差分灰度图像各像素的灰度值;
[0175]S1502、将多个灰度值按列累加,每列可得到一个累加值,多个累加值形成一个数组,即为垂直投影数组,利用该数组绘制垂直投影曲线。
[0176]本算法主要用于定位头部及五官的水平位置。
[0177]参照图23,优选的,所述步骤S 127中的水平投影算法具体为:
[0178]S1601、按行读取所述差分灰度图像各像素的灰度值;
[0179]S1602、将各像素的灰度值按行累加,每行可得到一个累加值,多个累加值形成一个数组,即为水平投影数组,利用该数组绘制水平投影曲线。
[0180]本算法主要用于定位头部及五官的垂直位置。
[0181]参照图24,优选的,所述步骤S 123中的水平方向头部定位算法具体为:
[0182]S1801、从左边依次读取垂直投影值;
[0183]S1802、判断垂直投影值是否大于门限值Vt ;
[0184]S1803、左边第一个垂直投影值大于门限值Vt的投影点的坐标为头部水平位置的左边界;
[0185]S1804、从右边依次读取垂直投影值;
[0186]S1805、判断垂直投影值是否大于门限值Vt ;
[0187]S1806、右边第一个大于门限值Vt的投影点的坐标为头部水平位置的右边界。本算法主要用于定位头部水平位置。
[0188]参照图25,优选的,所述步骤S124中计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距的步骤具体为:
[0189]S2401、从所述差分灰度图像中按行从左边读取第一个非零灰度值对应的横坐标;
[0190]S2402、从所述差分灰度图像中按行从右边读取第一个非零灰度值对应的横坐标;
[0191]S2403、计算两个横坐标的差并存储下来,此值为每行图像轮廓外侧水平间距。[0192]参照图26,优选的,所述步骤S124中的包络检波算法具体为:
[0193]S2501、定义轮廓外侧上一个像素水平间距记录值变量并赋零;
[0194]S2502、顺序读取轮廓外侧各像素水平间距值;
[0195]S2503、判断当前读取值与上一值的大小;
[0196]S2504、如果当前读取值大于上一值,则将当前读取值赋给上一记录值,将上一记录值作为检波结果输出;
[0197]S2505、如果当前读取值小于或等于上一值,则将上一记录值减1,将上一记录值作为检波结果输出。
[0198]根据每个眼睛宽度约占人脸宽度1/5,参照图27,优选的,所述步骤S126中的眉毛与眼睛部分水平位置定位算法的步骤具体为:
[0199]S2801、读取眉毛与眼睛部分图像的垂直投影值,并计算出投影最左边与最右边非零值点的距离即为垂直投影非零值外侧宽度;
[0200]S2802、连续读取眉毛与眼睛部分图像垂直投影,并计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度以及该宽度区域对应的起始点位置;
[0201]S2803、计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度与垂直投影非零值外侧宽度的比值Rwi,以及该宽度区域对应的起始点位置与垂直投影非零值外侧宽度的比值 Rw2;
[0202]S2804、判断I RW1_0.2 |是否小于误差值e,如果小于e,说明该投影部分为眉毛与眼睛部分,进入S2805,否则进入S2802 ;
[0203]S2805、判断I Rw2-0.2 |是否小于误差值e,如果小于e,说明该投影部分为左眼水平位置,进入S2806,否则进入S2802 ;
[0204]S2806、在左眼水平位置右侧连续读取眉毛与眼睛部分图像垂直投影,并计算垂直投影值连续大于眉毛与眼睛部分投影门限Vte的宽度以及该宽度区域对应的起始点位置;
[0205]S2807、计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度与垂直投影非零值外侧宽度的比值Rw3,以及该宽度区域对应的起始点位置与垂直投影非零值外侧宽度的比值 Rw4 ;
[0206]S2808、判断I Rw3-0.2 |是否小于误差值e,如果小于e,说明该投影部分为眉毛与眼睛部分,进入S2809,否则进入S2806 ;
[0207]S2809、判断I Rw4-0.6 |是否小于误差值e,如果小于e,说明该投影部分为右眼水平位置,进入S2810,结束,否则进入S,2806。
[0208]参照图28,优选的,所述步骤S127中的眼睛与眉毛的区分算法的步骤具体为:
[0209]S1901、读取眉毛与眼睛部分的水平投影值;
[0210]S1902、判断水平投影值是否大于门限值VTeb ;
[0211]S1903、当大于门限值VTeb时,计算该投影点与眉毛与眼睛部分的垂直起始位置、终止位置距离的比值;否则进入S1901 ;
[0212]S1904、计算该投影点与眉毛与眼睛部分的垂直起始位置、终止位置距离的比值与I的差的绝对值;
[0213]S1905、将上述差的绝对值与误差值e比较;
[0214]S1906、小于误差值e时,确定此点为眉、眼垂直分界点,否则进入S1901。[0215]本算法主要用于定位眼部与眉毛的垂直位置。
[0216]参照图29,优选的,所述步骤S128中的嘴部提取算法具体为:
[0217]S2701、读取嘴巴部分图像垂直投影值并从中删除最左边非零部分;
[0218]S2702、从最右边删除嘴巴部分垂直投影值非零部分,剩余部分为嘴巴部分图像的的垂直投影,从而确定嘴巴部分的水平位置。
[0219]所述表情可以为目标对象的形状或位移。
[0220]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种表情识别输入方法,其特征在于:包括以下步骤: 获取连续两帧图像,计算所述两帧图像的差分灰度图像; 定位当前帧中眉毛、眼睛、嘴巴的位置; 跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量; 将上述目标对象的位移矢量与预设表情库中的表情图像匹配; 输入匹配表情图像对应的按键值。
2.根据权利要求1所述的表情识别输入方法,其特征在于:所述定位当前帧中眉毛、眼睛、嘴巴的位置的步骤具体包括: 去除差分灰度图像中的干扰噪声; 对去除干扰噪声后的图像根据寻找轮廓线算法寻找轮廓线上的点,获得图像的轮廓线,所述轮廓线包括头部、五官以及颈部的轮廓线; 对确定了轮廓线的差分灰度图像进行垂直投影,根据垂直投影算法获取垂直投影曲线,根据水平方向头部定位算法计算水平方向头部的位置; 计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距,获得差分灰度图像轮廓外侧水平间距曲线; 对上述差分灰度图像轮廓外侧水平间距利用包络检波算法获得检波结果,并根据检波结果获得包络检波后的差分 灰度图像轮廓外侧水平间距曲线; 从左侧读取包络检波后的差分灰度图像轮廓外侧水平间距值,并寻找第二个间距小于颈部定位门限值Vtn的坐标点,该点为头部与颈部的水平边界点,将颈部从所述差分灰度图像中分离; 将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴; 对眉毛与眼睛部分做垂直投影,根据垂直投影算法获得眉毛与眼睛部分的垂直投影曲线,根据眉毛与眼睛部分水平位置定位算法计算出眉毛与眼睛部分的水平位置; 对确定了眉毛与眼睛水平位置的差分灰度图像进行水平投影,根据水平投影算法获得眉毛与眼睛部分的水平投影曲线,利用眼睛与眉毛的区分算法计算眼睛和眉毛的垂直分界点,从而确定眉毛和眼睛的各自的垂直位置; 对嘴巴部分进行垂直投影,根据垂直投影算法获得嘴巴部分的垂直投影曲线,利用嘴部提取算法计算嘴巴部分的水平位置。
3.根据权利要求2所述的表情识别输入方法,其特征在于:所述将去掉颈部后的头部差分灰度图像利用人类头部器官比例初步划分出眉毛与眼睛部分、鼻子部分、嘴巴部分和下巴的步骤具体为: 按照人类头部额头、眉毛到鼻子底部、鼻子底部到下巴纵向比例为1:1:1的关系,计算额头的高度,从差分灰度图像中去除额头部分; 将去除额头部分的差分灰度图像从纵向按1/4、1/4、3/8、1/8分割开,最上边1/4为眉毛与眼睛部分,中间1/4为鼻子部分,中间3/8部分为嘴巴部分,下边1/8为下巴。
4.根据权利要求1所述的表情识别输入方法,其特征在于:当帧率足够高时,所述跟踪眉毛、眼睛、嘴巴的的运动并计算下一帧图像相对上一帧图像中眉毛、眼睛、嘴巴这些目标对象的位移矢量的步骤具体为: 依次选取一个搜索向量i,该向量是以上一帧图像中的目标对象的图像几何中心为原点,在7乘7像素的范围内以该范围内的任意像素点为终点构成的; 读取上一帧图像与当前帧中的搜索向量对应的图像中的对应像素点,计算两个像素点的灰度差值,并取绝对值; 将绝对值累加到Si ; 当向量遍历完成时,比较所有向量对应的累加值Si,寻找最小值,该值对应的向量即为上一帧图像在当前帧中的移动向量。
5.根据权利要求2所述的表情识别输入方法,其特征在于:所述去除差分灰度图像中的干扰噪声的步骤具体为: 读取差分灰度图像中像素的灰度值; 判断每个像素的灰度值是否大于噪声门限VN。; 如果大于Vn,则保留该像素; 如果小于或等于噪声门限VN。,则删除该像素。 所述寻找轮廓线算法的步骤具体为: 读取差分灰度图像中非O像素点; 计算该像素点与周围8个像素点中的非O像素点灰度值的绝对值; 选取结果中绝对差值最小的点作为轮廓线上的下一点。
6.根据权利要求2所述的表情识别输入方法,其特征在于: 所述垂直投影算法具体为: 读取所述差分灰度图像各像素的灰度值; 将多个灰度值按列累加,多个累加值形成一个数组,即为垂直投影数组,利用该数组绘制垂直投影曲线。 所述水平投影算法具体为: 读取所述差分灰度图像各像素的灰度值; 将各像素的灰度值按行累加,多个累加值形成一个数组,即为水平投影数组,利用该数组绘制水平投影曲线。
7.根据权利要求2所述的表情识别输入方法,其特征在于: 所述水平方向头部定位算法具体为: 从左边依次读取垂直投影值; 判断垂直投影值是否大于门限值Vt ; 左边第一个垂直投影值大于门限值Vt的投影点的坐标为头部水平位置的左边界; 从右边依次读取垂直投影值; 判断垂直投影值是否大于门限值Vt ; 右边第一个大于门限值Vt的投影点的坐标为头部水平位置的右边界。
8.根据权利要求2所述的表情识别输入方法,其特征在于: 所述计算上述确定了水平方向头部的位置的差分灰度图像轮廓外侧水平间距的步骤具体为: 从所述差分灰度图像中按行从左边读取第一个非零灰度值对应的横坐标;从所述差分灰度图像中按行从右边读取第一个非零灰度值对应的横坐标; 计算两个横坐标的差并存储下来,此值为每行图像轮廓外侧水平间距。 所述包络检波算法具体为: 定义轮廓外侧上一个像素水平间距记录值变量并赋零; 顺序读取轮廓外侧各像素水平间距值; 判断当前读取值与上一值的大小; 如果当前读取值大于上一值,则将当前读取值赋给上一记录值,将上一记录值作为检波结果输出; 如果当前读取值小于或等于上一值,则将上一记录值减1,将上一记录值作为检波结果输出。
9.根据权利要求2所述的表情识别输入方法,其特征在于:所述眉毛与眼睛部分水平位置定位算法的步骤具体为: 读取眉毛与眼睛部分图像的垂直投影值,并计算出投影最左边与最右边非零值点的距离即为垂直投影非零值外侧宽度; 连续读取眉毛与眼睛部分图像垂直投影,并计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度以及该宽度区域对应的起始点位置; 计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度与垂直投影非零值外侧宽度的比值RW1,以及该宽度区域对应的起始点位置与垂直投影非零值外侧宽度的比值Rw2 ; 判断I Rw1-0.2 I是否小于误差值e,如果小于e,则 判断I Rw2-0.2 I是否小于误差值e,如果小于e,则 在左眼水平位置右侧连续读取眉毛与眼睛部分图像垂直投影,并计算垂直投影值连续大于眉毛与眼睛部分投影门限Vte的宽度以及该宽度区域对应的起始点位置; 计算投影值连续大于眉毛与眼睛部分投影门限Vte的宽度与垂直投影非零值外侧宽度的比值RW3,以及该宽度区域对应的起始点位置与垂直投影非零值外侧宽度的比值Rw4 ; 判断I Rw3-0.2 I是否小于误差值e,如果小于e,则 判断I Rw4-0.6 I是否小于误差值e,如果小于e,则结束。
10.根据权利要求2所述的表情识别输入方法,其特征在于:所述眼睛与眉毛的区分算法的步骤具体为: 读取眉毛与眼睛部分的水平投影值; 判断水平投影值是否大于门限值Vm3 ; 当大于门限值VTeb时,计算该投影点与眉毛与眼睛部分的垂直起始位置、终止位置距离的比值; 计算该投影点与眉毛与眼睛部分的垂直起始位置、终止位置距离的比值与I的差的绝对值; 将上述差的绝对值鱼误差值e比较; 小于误差值e时确定此点为眉、眼垂直分界点。 所述嘴部提取算法具体为: 读取嘴巴部分图像垂直投影值并从中删除最左边非零部分; 从最右边删除嘴巴部分垂直投影值非零部分,剩余部分为嘴巴部分图像的的垂直投影,从而确定嘴 巴部分的水平位置。
【文档编号】G06K9/00GK103677226SQ201210323547
【公开日】2014年3月26日 申请日期:2012年9月4日 优先权日:2012年9月4日
【发明者】李争平, 李晋红, 张常年, 王辉柏, 韦欢 申请人:北方工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1