基于视觉的侧脸姿态解算方法及情绪感知自主服务机器人与流程

文档序号:17928706发布日期:2019-06-15 00:37阅读:397来源:国知局
基于视觉的侧脸姿态解算方法及情绪感知自主服务机器人与流程

本发明涉及人脸识别及机器人领域,尤其涉及一种基于视觉的侧脸姿态解算方法及情绪感知自主服务机器人。



背景技术:

情绪识别是人类重用的功能,也是服务机器人所必须的,只有能够准确识别主人的情绪,机器人才能为主人提供优质的服务、成为令人满意的“仆人”。

制约情绪识别准确率的关键问题是机器人可能无法有效观测到人脸。最佳的情绪识别位置是在正对人脸的前边,但时刻都把机器人摆在人面前是不现实的,会让人感到十分不方便。人类希望机器人要像人类仆人一样。对于仆人,他们通常是待在主人的侧面,察言观色、随时听候主人的召唤,对于机器人生厂商,如果要想得到消费者的青睐,他们的机器人产品也要做到这样。

但位于人的侧面会带来一个很麻烦的问题:目前人脸识别和情绪识别方法都是针对正面人脸的。侧脸的情况与正脸截然不同,全世界所有的民族,他们的正脸都符合“三庭五眼”的原则,即脸长与脸宽符合一定的比例、眼鼻嘴的位置基本固定,根据这些信息很容易即可将正面的人脸从各种背景环境中识别出来、并实施表情识别。但这仅是对正脸时才适用,对于通常仅能观察到主人侧脸的机器人仆人,上述的这些方法都无法使用。

对于正脸中的五官特征信息,在侧脸中完全不具备。90度侧脸时,眼睛只能看到半只、鼻子和嘴也只有一半,完全不具备正脸观察时的眼鼻嘴特征,再加上佩戴的各式各样的眼镜、口罩,造成五官特征远差于正脸特征。侧脸的脸型和长宽比也不再具备规律,有的人头发多能遮住大半个脸,有人头发少露出的脸非常大。这些问题造成针对侧脸的身份识别和情绪识别的研究成果远少于正脸的识别成果。不要说通过侧脸识别身份和情绪,就是从图像中有效分割出人侧脸区域,都是无法实现。在实验测试中,只要脸侧到一眼睛被遮挡一大半时,基于正脸的识别算法就无法识别出正脸了。

而侧脸是机器人所要经常面对的场景。为了能有效为人类服务,必须要有一种策略能够解决侧脸时的人类情绪识别和身份识别。



技术实现要素:

本发明的目的在于提供一种基于视觉的侧脸姿态解算方法及情绪感知自主服务机器人,以解决侧脸时无法识别人的身份和情绪的问题。

有鉴于此,本发明提供了一种基于视觉的侧脸姿态解算方法及情绪感知自主服务机器人,该基于视觉的侧脸姿态解算方法实时获取当前状态下检测到的人脸图像相对于该被检测人脸在正脸状态下的姿态角,其中,该姿态角包括绕脖子转动形成或相对于机器人视角的侧脸角h,范围为-90度~90度,和抬头低头形成的俯仰角p,范围为-45度~45度。对于该方法的具体描述如下,主要包括:

构造脸部面积的姿态变化模型,得到机器人检测到的人脸图像特征相对于该被检测人脸的正脸图像特征关于姿态角的函数关系,其中,图像特征包括图像中人脸区域的宽度、高度或深度;

进一步的,该脸部面积的姿态变化模型为:

其中,设定脸的高度方向为z轴,坐标用z表示,脸的宽度方向为y轴,坐标用y表示,脸的深度方向为x轴,坐标用x表示,(x,y,z)为被检测人脸在正脸状态下的坐标点,(xb,yb,zb)为检测到的人脸的坐标点;

更进一步的,该被检测人脸的正脸状态和检测到的人脸均为照片呈现的二维坐标yoz,基于二维坐标yoz构造脸部面积的姿态变化模型为:

yb=xsinhcosp+ycosh+zsinhsinp,

zb=-xsinp+zcosp。

构造脸部的剪切角模型,根据检测到的人脸图像特征以及该被检测人脸的正脸图像特征,利用上述函数关系,得到该检测到的人脸图像的姿态角,然后根据该姿态角得到该检测到的人脸图像剪切畸变产生的剪切角pe;

进一步的,构造脸部的剪切角模型为:

pe=tg-1(sinh·tgp),

其中,h为上述检测到的人脸图像的侧脸角,p为上述检测到的人脸图像的俯仰角,pe为上述检测到的人脸图像的剪切角。

构造基于剪切角消除的姿态角解算模型,根据上述剪切角pe对上述检测到的人脸图像进行反向旋转,得到消除剪切畸变的该检测到的人脸图像,再根据该消除剪切畸变的人脸图像得到该检测到的人脸图像消除剪切畸变的姿态角(即侧脸角h和俯仰角p);

进一步的,该部分包括:

人脸特征提取,获取检测到的人脸图像;

基于脸部的剪切角模型得到的剪切角,对该检测到的人脸图像进行反向旋转校正,消除剪切畸变;

对校正后的人脸图像进行归一化处理;

根据该归一化的人脸图像计算侧脸角h和俯仰角p。

其中,人脸区域提取包括:

将检测到的人脸和背景图像从rgb格式变为ycbcr格式,设定阈值为145<cb<170,且95<cr<115;

进一步有,该检测到的人脸和背景图像的阈值为在设定的阈值范围内自适应调整。

对人脸图像进行校正为:

其中,(yb,zb)为上述检测到的人脸图像的坐标点,(ye,ze)为上述检测到的人脸图像消除剪切畸变后俯仰角p=0时的坐标点,pe为剪切角。

以及,计算侧脸角h和俯仰角p为:

其中,x为被检测人脸的实际宽度,y为被检测人脸的实际厚度,harc为被检测人脸正脸时的脸弧度,δlb为检测到的人脸宽度;然后从照片中检测到δlb后,即可通过上述公式解算出侧脸角。

其中,pe为剪切角。

另有,本发明提供的该情绪感知自主服务机器人,包括:

采集模块,预置有上述提到的基于视觉的侧脸姿态解算方法,该采集模块实时采集人脸图像信息,得到人脸图像在实时状态下的侧脸角h和俯仰角p;

导航模块,根据采集模块得到的侧脸角h和俯仰角p的值,控制机器人运动到正对人脸的地方采集人脸的正脸图像;

以及人脸识别和情绪感知模块,该模块预存有被检测的人在喜怒哀乐状态下的人脸图像信息,通过深度学习算法实现导航模块控制下采集模块采集到的被检测人脸的正脸图像的身份识别及情绪检测。

本发明提供的基于视觉的侧脸姿态解算方法及情绪感知自主服务机器人,具有以下有益效果:

(1)本发明设计了一种具有情绪感知能力的自主移动服务机器人,像真正的人类仆人一样,通常位于主人的侧方,能够自主移动到主人的正面、通过视觉感知主人的情绪。主要模块有:基于视觉的侧脸姿态检测模块、机器人自主导航运动模块、人脸识别和情绪感知模块。其中,后两个模块可以直接是成熟的产品。本专利的重点是研制了基于视觉的侧脸姿态识别模块,这个姿态识别模块可以从机器人视觉中分割出人脸。根据人脸的形状检测出侧脸的姿态角(侧脸角和俯仰角),然后控制机器人运动到主人的正面、获取主人的正脸信息,然后调用人脸识别和情绪识别来识别人的身份和当前的情绪。本专利的方法解决了侧脸时无法识别人的身份和情绪的问题、可以极大拓展服务机器人的应用范围;

(2)解决了侧脸时无法识别人的身份和情绪的问题。目前的人脸识别和情绪识别都是针对正脸的特征(五官没被侧脸遮挡时),侧脸时无法使用这些识别方法。因此本发明设计了基于视觉的侧脸姿态识别方法,能够检测侧脸时的人脸姿态(侧脸角和俯仰角),在五官被侧脸遮挡时也能检测人脸姿态。检测出人脸姿态后,可以控制机器人按照侧脸角反向运动到能够看到人正脸的位置,按照俯仰角反向改变摄像头俯仰姿态,调整到能够拍摄主人正脸的角度拍摄主人的正脸照片,然后调用人脸识别和情绪识别模块。

(3)基于视觉的侧脸姿态识别方法包括三个主要部分:脸部面积的姿态变化模型、脸部在照片中的剪切角模型和基于剪切角消除的侧脸角和俯仰角解算模型。通过消除剪切角带来的干扰,可以准确根据人脸的形状解算出人脸姿态(侧脸角和俯仰角)。

附图说明

图1是本发明实施例展示的情绪感知自主移动服务机器人自主移动拍摄正脸人脸的工作示意图;

图2是本发明实施例情绪感知自主移动服务机器人的设计方案;

图3是常见的转头与俯仰头时检测到的人脸剪切角随侧脸角h和俯仰角p的变化过程;

图4本发明实施例中待检测人脸侧视时的脸部平面;

图5本发明实施例中待检测人脸仰视时的脸部平面;

图6本发明实施例中待检测人脸俯视时的脸部平面;

图7本发明实施例中检测到的人脸的原始图像照片;

图8是对图7中人脸根据人脸五官平面解算出的剪切角反方向旋转得到的图像照片;

图9是从图8中提取的人脸图像;

图10是本发明实施例中检测到的人脸消除剪切畸变后归一化的脸宽度与侧脸角h和俯仰角p的关系;

图11是本发明实施例中被检测人脸水平前视(俯仰角p=0)时侧脸角的解算结果;

图12是本发明实施例中被检测人脸侧脸角和俯仰角都不为0时侧脸角的解算结果;

图13是本发明实施例中被检测人脸侧脸角和俯仰角都不为0时俯仰角的解算结果。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。

本发明采用机器人自主移动技术来解决侧脸情绪识别。就像仆人会走到主人面前观察主人的情绪一样,位于主人侧脸处的机器人观察到主人发出一些特征声音时(哭声、笑声、大喊等),自动移动到主人面前,识别主人的表情,即可为其提供准确有效的服务。

这需要两个关键技术:

(1)机器人要能根据观察到的侧脸解算出人侧脸的角度、俯仰角度,然后根据这两个角度自主运动到主人脸的正前方;

(2)机器人要有自主运动、自主导航功能,自主控制自己的运动(运动的距离和航向)。

自主导航运动,这一点目前的导航机器人都已经具备,关键问题是机器人如何根据有限的侧脸信息计算出人脸的姿态(侧脸的角度、低头抬头的角度)、根据这些姿态自主运动到人的正前方、拍摄人脸的正面。

目前已有一些人脸识别算法可以解算人脸的姿态,但只能在完整观察到五官时才能使用。这些算法首先检测出五官的位置,将五官作为特征点,并将下脸轮廓作为辅助特征,通过姿态角的变换矩阵计算出侧脸角(侧脸的角度)和俯仰角(低头抬头的角度)。如果五官无法都准确检测到,则这些算法将失效。而侧脸带来的最大问题就是五官无法都检测到,仅能检测一侧的眼鼻嘴。而且这些器官的形状会发生很大的变形(眼嘴鼻从对称图形变为了三角形),即使照片中有这些器官,传统的算法也未必能准确检测出来,更别说根据这些器官的位置解算人脸姿态了。

采用立体摄像机(双目相机、深度相机等),通过采集到的人头立体信息检测头部的姿态,是另一种常见的策略。但双目相机的距离分辨率比较差,难以准确检测出人脸上这种仅有1、2厘米的五官深度信息。深度相机的问题是,不能在自然光很强的环境中使用(如不能在户外使用)。但即使在室内环境中,也只能对一定距离范围内的景物解算深度信息(如kinect2只能检测0.8-4m内的景物)。而且深度相机的距离分辨率不足、会将整个人头作为一个整体物体检测出来、不能有效提取侧脸中深度差异并不明显的头部器官特征,当人头转动时,很难检测出侧脸角度。同时侧脸状态下不同人侧脸的形状轮廓会有一定差异,都会影响侧脸姿态检测的准确性。

有鉴于此,本发明将研制一种方法,仅使用普通的2d照片,通过检测脸部形状的特征、建立形状特征与侧脸角和俯仰角之间的数学模型,实现头部姿态的解算。并将这种方法与自主移动功能结合到一起,根据人头部的侧脸角和俯仰角,机器人即可先根据侧脸角运动到人的正前方,然后在根据俯仰角移动摄像头,确保机器人的摄像头正对人脸正面。

本发明根据人脸面积和轮廓解算姿态的方法属于粗测量,负责将机器人运动到人脸视角-10度~+10度范围内。不论是侧脸角还是俯仰角,只要运动到-10度~+10度范围内,即可采用目前技术成熟的人脸姿态解算算法获取更精准的姿态。下文中,通过两个模块设计及具体实施例对本发明做进一步说明。

(一)情绪感知自主移动服务机器人的设计与核心模块

本发明专利研制的情绪感知自主移动服务机器人的设计思路是:

(1)机器人具有自主移动自主定位自主路径规划的能力。

(2)当机器人视觉检测到人脸时,自动解算人脸的姿态角(侧脸角、俯仰角)。

(3)机器人根据解算出的航向角运动到人脸正前方,根据俯仰角调整机器人视觉的摄像头,使其正对人脸、可以拍到人脸的正面照片。

(4)得到人脸正面照片后,启动人脸识别程序,识别这是哪位主人的脸,然后启动人脸表情识别程序,判别主人的情绪。

据此,本发明一实施例提供了一种情绪感知自主服务机器人,包括:

采集模块,预置有基于视觉的侧脸姿态解算方法,可实现该采集模块实时采集人脸图像信息,并得到人脸图像在实时状态下的侧脸角h和俯仰角p;

导航模块,根据采集模块得到的姿态角(即侧脸角h和俯仰角p)的值,控制机器人运动到正对人脸的地方采集人脸的正脸图像;

以及人脸识别和情绪感知模块,该模块预存有被检测的人在喜怒哀乐状态下的人脸图像信息,通过深度学习算法实现导航模块控制下采集模块采集到的被检测人脸的正脸图像的身份识别及情绪检测。

本实施例中,设计的情绪感知自主移动服务机器人自主移动拍摄正脸人脸如图1所示,具体的方案如图2所示,包括三个主要模块:基于视觉的侧脸姿态解算模块、机器人自主导航运动模块和人脸识别和情绪感知模块,其中:

基于视觉的人脸姿态解算模块,即采集模块,预置有基于视觉的侧脸姿态解算方法,可实现人脸姿态解算。该模块负责检测人脸的姿态,主要测量的参数是侧脸角和俯仰角(本实施例中为了表述方便,将头部的航向角或相对于机器人视角的头部航向角称为侧脸角)。目前的方法多是根据五官位置测量这些姿态角,但当侧脸时,这些方法都无法有效使用,因此研制一种在侧脸明显时的侧脸姿态检测方法将是本发明及实施例的重点。

机器人自主移动导航模块根据测量出来的人脸侧脸角和俯仰角,自动运动到能够正对人脸的位置观察人脸。这种模块目前已有成熟的产品,本发明及实施例设计的方法中,直接拿来使用,与侧脸姿态解算方法结合到一起,当解算出侧脸时的姿态值后,机器人将根据人脸的侧脸角和俯仰角运动到正对人脸的地方识别人脸、检测人脸的表情,这样可以有效解决现有的人脸识别和情绪检测方法不能处理侧脸的问题。机器人自主移动导航模块是成熟的技术,本发明及实施例研制的情绪感知自主移动服务机器人采用成熟的机器人自主移动导航模块产品(激光雷达导航模块、觉导航模块都可选用)。

人脸识别和情绪感知模块的任务是识别主人的身份和识别主人的情绪。本发明及实施例的侧脸姿态检测方法可以最终使机器人拍摄到主人的正脸,因此可以直接采用针对正脸的人脸识别和情绪检测的成熟产品模块。采用基于深度学习的人脸识别,识别出某位主人的身份后,调出实现存储的该主人的喜怒哀乐的照片,再次采用深度学习情绪识别算法将这些喜怒哀乐照片与实时拍摄到的人脸正面照片匹配,可以很准确的识别主人现在的情绪。

因此,除了基于视觉的侧脸姿态解算模块,其它模块已有很成熟的产品可以直接应用。本发明及实施例只需研制出基于视觉的侧脸姿态解算方法,就可以开发出情绪感知自主移动服务机器人。

(二)基于视觉的侧脸姿态解算方法设计

目前对于人脸姿态解算算法,侧脸角±20度以内都能准确解算人脸姿态,相当于五官完全没被侧脸遮挡时。

而本发明及实施例的重点是解决侧脸角在20度~90度之间时实现人脸姿态解算,实现当五官被侧脸遮挡时也能检测出人脸的姿态。

由此,本发明另一实施例提供了一种基于视觉的侧脸姿态解算方法,该方法实时获取当前状态下检测到的人脸图像相对于该被检测人脸在正脸状态下的姿态角,其中,该姿态角包括绕脖子转动形成或相对于机器人视角的侧脸角h,范围为-90度~90度,和抬头低头形成的俯仰角p,范围为-45度~45度。

本发明及实施例中,基于视觉的侧脸姿态解算方法包括三个主要部分:脸部面积的姿态变化模型、脸部的剪切角模型以及基于剪切角消除的姿态角解算模型,以下对该三种模型的构造方法进行一一详述。

1、构造脸部面积的姿态变化模型,得到机器人检测到的人脸图像特征相对于该被检测人脸的正脸图像特征关于姿态角(即侧脸角h和俯仰角p)的函数关系,其中,图像特征包括图像中人脸区域的宽度、高度或深度。

人头的主要运动,或者可以等价表述为机器人拍摄到的人头姿态,是绕脖子转动或相对于机器人视角的头部角度(侧脸角)和抬头低头的头部角度(俯仰角)。因此脸部面积的姿态变化模型将主要围绕侧脸角h和俯仰角p进行推导(在导航领域h被称为航向角,但为了在本发明及实施例中表述方便,航向角被称作侧脸角)。人头运动时,这两个姿态角将引起拍摄到照片中的人脸形状和面积发生很大的变化。

由欧拉角的旋转公式可知,对于坐标点(x,y,z),经过俯仰和航向变化后,其新的坐标为(xb,yb,zb),二者的换算关系可以通过俯仰角p和侧脸角h的旋转矩阵得到,由此,构建脸部面积的姿态变化模型为:

其中,脸的高度方向是z轴、坐标用z表示,脸的宽度方向是y轴、坐标用y表示,脸的深度方向是x轴、坐标用x表示,(x,y,z)为被检测人脸在正脸状态下的坐标点,(xb,yb,zb)为检测到的人脸的坐标点。

公式(1)可以化简为:

一些实施例中,该被检测人脸的正脸状态和检测到的人脸均为照片形式呈现,本实施例中,照片呈现的是二维坐标yoz中脸的面积和形状的变化,因此只需求解算公式(2)中的yb和zb即可:

yb=xsinhcosp+ycosh+zsinhsinp(3)

zb=-xsinp+zcosp(4)

对于y轴方向,存在的变形量包括:宽度压缩量ycosh、宽度剪切错位量zsinhsinp、宽度变形量xsinhcosp。对于z轴方向,高度压缩量-xsinp+zcosp。

在这些变形中,造成影响最大的是宽度的剪切错位zsinhsinp,它出现在脸宽yb的计算公式中,导致脸的宽度会受到不同高度脸高的影响,将脸高和脸宽耦合到了一起。如果能消除脸的错切变形,直接根据脸的正面宽度和侧面厚度(对于大多数人脸,这两个参数差异不大、可近似为定值)就可以比较准确的根据公式(3)和每时刻检测到的脸的面积求出侧脸角h和俯仰角p。

因此本发明及实施例建立了照片中的脸部剪切角模型。能够根据被检测人脸的脸部特征,尤其是侧脸时的特征,求出剪切畸变产生的脸部图像剪切角。并设计了基于剪切角消除的侧脸角和俯仰角解算模型,可以有效解算出任意时刻机器人拍摄到的人脸的侧脸角和俯仰角。

本发明及实施例的方法能够处理任意角度脸的图像,甚至是侧脸90度时(仅能观察到半只眼睛半个鼻子和嘴的脸部图像),且此时五官不能被完全观察到,而目前公开报道的方法多是处理侧脸10到20度的人脸图像,在他们的方法中眼鼻嘴等五官还是能被观察到的,相比之下本发明及实施例提供的方法具有很强的实用价值。

2、构造脸部在照片中的剪切角模型,根据检测到的人脸图像特征以及该被检测人脸的正脸图像特征,利用上述函数关系,得到该检测到的人脸图像的姿态角,然后根据该姿态角得到该检测到的人脸图像剪切畸变产生的剪切角pe。

当俯仰角p≠0时,人脸的侧脸角会引起y轴方向的图像发生剪切变形zsinhsinp,该变形与脸上每个点的高度z相关,剪切变形会导致脸从低向高朝一个方向(朝左、或朝右)歪去,偏离脸部中心线。剪切造成的旋转量为:

即侧脸角(航向角)越大、俯仰角越大,则剪切量越大。在本发明及实施例中,剪切量的大小用剪切角pe表示,计算公式为:

受限于人的身体结构,人头的俯仰角通常大约在-45度~45度之间,侧脸角在-90度~90度之间。这也是服务机器人通常能够观察到的人脸姿态范围。当机器人位于主人的一侧时,以它自己为参照物,它此时观察到的人脸姿态角就是±90度,此时再出现低头仰头动作、则俯仰角为±45度。

可进一步推导出剪切角的计算公式为:

pe=tg-1(sinh·tgp)(9)

其中,h为上述检测到的人脸图像的侧脸角,p为上述检测到的人脸图像的俯仰角,pe为上述检测到的人脸图像的剪切角。当侧脸角在0~90度之间、俯仰角在-45度~45度之间时,剪切角的变化近似线性。图3显示了最常见的转头从0~90度,同时头从0度低至-45度时,剪切量与二者的变化关系。

3、构造基于剪切角消除的姿态角解算模型,根据上述剪切角pe对上述检测到的人脸图像进行反向旋转,得到消除剪切畸变的该检测到的人脸图像,再根据该消除剪切畸变的人脸图像得到该检测到的人脸图像消除剪切畸变的姿态角(即侧脸角h和俯仰角p)。

如果能消除剪切畸变的影响,就可以比较准确的求取侧脸角和俯仰角了。为了实现这一目标,本发明及实施例设计的方法包括:

人脸特征提取,获取检测到的人脸图像;

基于脸部的剪切角模型得到的剪切角,对该检测到的人脸图像进行反向旋转校正,消除剪切畸变;

对校正后的人脸图像进行归一化处理;

根据该归一化的人脸图像计算侧脸角h和俯仰角p。

进一步详述为:

(1)人脸区域提取。

在求解剪切角前,还需要做一项预处理是自适应提取人脸区域。因为亚洲人脸为黄色肤色,采用ycbcr颜色模型提取人脸。首先将人脸和背景图像一起从常见的rgb格式变为ycbcr格式。设定阈值为145<cb<170且95<cr<115,同时满足这两个条件的为人脸,可以比较准确的分割出人脸区域。根据预先拍摄的要服务的老人的头像照片,阈值可以在小范围内自适应调整。

(2)基于剪切角解算方法,对人脸图像进行剪切畸变校正。

如果将图像反向旋转pe=tg-1(sinh·tgp)度,可以消除剪切畸变造成的脸部影响,让眼睛变成“朝前看”,此时z和y被校正为ye和ze:

结果为:

其中,(yb,zb)为上述检测到的人脸图像的坐标点,(ye,ze)为上述检测到的人脸图像消除剪切畸变后的坐标点,pe为剪切角。相比于原始照片中脸部的宽度yb=xsinhcosp+ycosh+zsinhsinp,对于校正后的脸部宽度高度z造成的脸部变形的影响已经消失,公式中只有脸的宽度y和厚度x对照片中的y上的脸的宽度产生影响。

本发明及实施例中,上述构造的脸部的剪切角模型和基于剪切角消除的姿态角解算模型提供了一种剪切角解算方法,该剪切角解算方法根据脸部面积的姿态变化模型提供的函数关系实现,然后基于该函数关系根据脸部的特征来解算出剪切角的大小,关于该函数关系中被检测人脸的正脸图像特征显然可以很容易得到,而其中机器人检测到的人脸图像特征可以根据后续方法最终得到,现对该方法的内容进行详细说明。

尽管人头大致是一个椭球结构,但在脸部区域(脸、眼睛、鼻子、嘴)中的部分器官可以近似构成为一个平面,这个平面在侧视时非常明显,如图4中黑线所示。当发生一定转头和低头后依然很明显,如图5和图6中黑线所示。这要测定该平面的倾斜就是由剪切角造成的、倾斜角的值就是剪切角。而人脸的其它区域的边界都是圆弧状的曲线,很容易与该平面区分,由此得到上述的机器人检测到的人脸图像特征。因此本发明及实施例采用hough变换,求取人脸区域的边界中不同方向的直线段含量,哪个方向的直线段总量越多、则该方向就是人正脸所在的平面,该方向的角度就是人脸剪切角。

根据检测出的剪切角和根据剪切角旋转后提取的人脸如图7-图9所示。图中,根据人脸五官平面计算出的剪切角反向旋转,将原先朝下看的人脸校正为了朝前看的人脸(如图8和图9所示),此时的人脸与俯仰角为0度时的人脸相差不大了。

考虑到拍摄距离的不同,人脸在照片中可能会很大,也可能会很小,这不利于后续根据人脸宽度识别人脸的姿态。因此当完成剪切角消除,将人脸校正回到俯仰角为0时的状态后,就可以实施归一化处理了。

(3)对校正后的人脸图像进行归一化处理。

选取人脸图像,如图9中,依次扫描每行,得到人脸的最大宽度。由于头发对人头呈现上密下松的现象,人脸的最大宽度在鼻子下边、下巴上边这个区域。归一化后,每幅照片中的人脸所占的像素点就基本一致了。

(4)根据该归一化的人脸图像计算侧脸角h和俯仰角p。

经过归一化后,公式(11)变为:

ye=xsinh+ycoshcosp(12)

在俯仰角p=0时,yb=xsinh+ycosh,这与旋转矩阵推导的结果一致。

对于水平正视的人脸,由于头发遮挡,脸只会露出一部分,令这部分的弧度为harc,考虑到人脸近似为一个椭圆体,则该弧度在照片中正视时(即p=0),人脸在照片宽度方向的尺寸为:

其中

由于人脸露出来的弧度harc与脸宽y和脸深x之间存函数关系因此:

所以公式(13)可以化简为:

化简后,就可以得到侧脸角:

只要针对每个人采集正面和侧面得到人脸的宽度y和厚度x、正脸时的脸弧度harc,根据照片中脸部宽度δlb,就可以解算出侧脸角h的值。

人脸呈对称椭球状,公式(15)(16)表明,照片中脸部宽度δlb和侧脸角最佳的头部区域是头部弧度为时,照片中人脸宽度δlb与侧脸角h呈余弦关系(即h和δlb呈现一对一的单调关系),在侧脸角比较大接近90度时二者的关系设置可以达到近似线性。因此本发明及实施例选取脸部弧度最接近的脑门区作为检测侧脸角h的人脸区域,此区域弧度短,而且没有眼镜、胡子、口罩的干扰。当通过肤色提取出人脸和剪切角消除之后,只需要按照人头高度沿z轴方向从头发与皮肤边界处开始向下提取1/4脸长区域就是脑门区域。

以上情况是平视时(俯仰角p为0度)的侧脸角h的解算公式,下边讨论俯仰角不为0,更一般的情况下的侧脸角h和俯仰角p的解算公式。

当存在头部俯仰角时,脸在照片宽度方向的尺寸变得复杂,由公式(13)可以推导出数学模型为:

侧脸角的解算公式为:

其中,δle为剪切角校正后归一化的脸宽度,侧脸角的计算公式为:

可以看出,当俯仰角p=0时,公式(18)就变回为了公式(16)。俯仰角在-45度~45度角之间时cosp的改变量不大,公式(18)与公式(16)相接近。依然选择弧度接近的脑门处人脸区域,此区域处照片中脸的宽度与侧脸角接近90度,在侧脸角很大的区域二者关系近似线性,如图10所示。带入正脸时的脸宽度和侧脸时的脸深度,即根据每个时刻实测照片中脑门处脸部宽度δlb可求取任意时刻侧脸角。

当脸部宽度和深度之比越大时,公式(18)中的越小,对俯仰角解算结果的影响越也小。因此本发明及实施例选取靠近脑门处的人脸作为处理对象,此处脸部弧度接近而且没有眼镜、胡子、口罩的干扰。当通过肤色提取出人脸之后,只需要按照人头高度沿z轴方向从头发与皮肤边界处开始向下提取1/4脸长区域就是脑门区域。

根据侧脸角h和剪切角pe、及剪切角计算公式(9),可以得到俯仰角p:

(三)基于上述实施例,有以下实验结果

上述的数学模型可以通过下边的实验进行验证。

实验1

首先验证水平前视俯仰角p=0这种情况,实验时老人前视,机器人从老人侧面运动到了老人正面(侧脸角相当于从90度变为0度),图中的实验包括361次人脸照片图像采集,按照公式(16)解算得到侧脸角的结果如图11所示。

实验2

实验中的老人从低头-25度逐渐抬头恢复为水平0度,同时,机器人从老人的侧面运动到老人的正面(侧脸角相当于从90度变为0度),图中的实验包括273次数据采集。

由于脑门区域并非一个严格的椭圆体,其弧度与真实的圆弧有差异,因此姿态计算结果中存在一些误差,如图12和图13所示。

在实际应用中,侧脸角h和俯仰角p都会发生改变,因此实验2更具有实际应用价值,本专利将实验2中的方法作为侧脸姿态识别方法,侧脸角h和俯仰角p将通过公式(18)(20)进行计算。

侧脸角h和俯仰角p之间在解算公式(18)(20)无法完全解耦,存在误差(±10度)。但本发明及实施例设计的情感识别自主移动机器人允许出现较大的侧脸姿态误差,因为目前的正脸的姿态识别和人脸识别算法可确保在转头俯仰±20度角以内时都能实现人脸识别和表情识别,因此本发明及实施例设计的侧脸姿态解算方法只要能实现对侧脸角和俯仰角测量误差小于20度,就能控制机器人自主移动到主人面前,此时可以根据五官位置做进一步的侧脸角和俯仰角解算,此类方法很多精度也很高,在本发明及实施例中不再赘述。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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