头部姿态估计方法及机器可读存储介质与流程

文档序号:16309633发布日期:2018-12-19 05:13阅读:222来源:国知局
头部姿态估计方法及机器可读存储介质与流程

本发明涉及图像处理领域,具体地涉及一种头部姿态估计方法及机器可读存储介质。

背景技术

头部姿态估计是从数字图像或视频图像中推断出人的头部偏转角度的过程。头部姿态估计属于人脸标定与识别的细分领域,主要用于辅助人脸关键点的标定与侧脸图像识别等相关任务。

在人脸识别的过程中,通常如果能在检测到人脸之后,在人脸上自动标注出关键点在图像上的像素位置之前,给出一个人脸的较为精确的朝向(即头部姿态)的话,对人脸的关键点标定就会变得更加简单和准确。具体地,在人脸识别问题上,侧脸与正脸的对比识别一直是一个技术难点,而如果在进行人脸识别之前就能够预先知道人脸的朝向的话,便可以从数据库中调取已存好的与输入人脸的朝向大致相同的已有人脸图像,并进行比对,从而大幅度地提高人脸识别算法的判别精度。

除了配合其他复杂算法以提升算法性能之外,对人脸图像进行头部姿态估计还可以用来完成某些特定任务。例如在行车过程中,对驾驶员的面部朝向的估计可以用于判断该驾驶员当前的视角方向,及时提醒其注意前方的可能危险。在教学场景中,对学员的头部姿态估计可以用来评估学员听课的专心程度,帮助讲师更好地进行课堂管理工作。

目前主流的头部姿态估计算法,其一,是基于彩色rgb图片进行直接估计,这一类方法由于只含有平面信息,且易受光照、复杂背景等外部因素的影响,因此精度普遍不高;其二,是通过预先标定人脸关键点来进行的,即通过关键点的位置信息和几何关系来估计出人脸的朝向,但人脸关键点标定的过程一般较为缓慢,且头部姿态的估计精度直接取决于关键点的标定精度,致使其的实用性不高;其三,通过光流图技术,即基于视频流中两帧图像之间的光流图来实现对头部姿态的精确估计,但由于该方法使用了光流图,因此只能用于视频数据,无法用于单帧图像,且该方法的深度学习模型设计的非常大,导致处理速度较慢而无法使用cpu进行实时运算。



技术实现要素:

本发明实施例的目的是提供一种头部姿态估计方法及机器可读存储介质,用以至少解决目前相关技术中的头部姿态估计方法所存在的精度不够、实用性不强和处理速度缓慢的问题。

为了实现上述目的,本发明实施例提供一种头部姿态估计方法,包括:获取待进行头部姿态估计的三基色彩色图像与深度图像;从所述三基色彩色图像中提取出人脸区域,并基于所提取的人脸区域生成对应于所述三基色彩色图像的人脸灰色图像和对应于所述深度图像的人脸深度图像;提取所述人脸灰色图像所对应的人脸轮廓图像;以及将所述人脸灰度图像、所述人脸轮廓图像和所述人脸深度图像输入至头部姿态估计模型,以由该头部姿态估计模型输出头部姿态估计结果。

本发明实施例另一方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请上述的头部姿态估计方法。

通过上述技术方案,提出了采用三基色彩色图像和深度图像结合的方式进行头部姿态估计的方法,其中包括基于三基色彩色图像和深度图像提取关于人脸区域的三种可用图像数据(灰度,轮廓,深度),并应用头部姿态估计模型输出相应的头部姿态估计结果。由此,相比于目前的相关技术至少存在如下的改进:其一,相对于应用彩色rgb图片直接进行估计头部姿态,本申请技术方案中滤除了对头部姿态估计任务不是必须的色彩信息,即灰度图,使得估计任务能够更有效地进行,并且引入了深度图和轮廓图数据,大大提高了估计精度;其二,相对于预先标定人脸关键点估计技术,本申请技术方案中不需要标定关键点,大大提高了识别的实用性;其三,相对于光流图技术,本申请技术方案能够应用于单帧人脸图像中,使得处理速度更快并能够达到实时姿态估计的效果。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明一实施例的头部姿态估计方法的流程图;

图2是图1的头部姿态估计方法中的s12的示例性的执行原理流程图;

图3是图1的头部姿态估计方法中的s13的示例性的执行原理流程图;

图4是图1的头部姿态估计方法中将图像数据输入头部姿态估计模型之前的优化处理操作的示例性的执行原理流程图;

图5是图1的头部姿态估计方法中通过头部姿态估计模型生成头部姿态估计结果的示例性的原理流程图;

图6是本发明一实施例的头部姿态估计方法的原理流程示意图;

图7a是训练图1的头部姿态估计方法中所使用的头部姿态估计模型的原理流程图;

图7b是图1的头部姿态估计方法中所使用的头部姿态估计模型结构示意图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

如图1所示,本发明一实施例的头部姿态估计方法,包括:

s11、获取待进行头部姿态估计的三基色彩色图像与深度图。

关于本发明实施例的实施客体,其可以是专用于头部姿态估计的终端(例如增强现实/虚拟现实(ar/vr)头戴配件,诸如头盔、眼镜等),还可以是各种通用型终端(例如智能手机或计算机等)上,且都属于本发明的保护范围内。

具体的,三基色彩色图像与深度图像可以是以采集的方式所获取的并据此进行头部姿态估计,例如:首先通过rgb(三基色)摄像头和深度传感器分别采集rgb彩色图像和对应的深度图像,然后将rgb图像和深度图像等比例缩小到一个固定的尺寸(例如从一般性摄像头的640*480分辨率缩小到320*240),以减少之后的计算量。

需说明的是,由于三基色彩色图像与深度图像具有相同的照相机视点(rgb摄像头和深度传感器在相同的位置上进行拍摄),因此这两张图片中的像素是一一对应的,同一物体在两张图片中处于相同的位置。

可以理解的是,深度图(depthimage)是由带有景深传感器的rgb摄像头所拍摄出来的图片,该类型图片被存储为单通道图片,相当于一个二维矩阵,矩阵中的每一个像素值等于被拍摄的目标点到摄像头的距离。

s12、从三基色彩色图像中提取出人脸区域,并基于所提取的人脸区域生成对应于三基色彩色图像的人脸灰色图像和对应于深度图像的人脸深度图像。

具体的,如图2所示,关于人脸区域的提取步骤可以包括:s121、基于人脸检测算法模型,检测并标记人脸在三基色彩色图像中的像素位置以提取出人脸区域;例如,可以使用深度学习中的人脸检测算法模型(诸如mtcnn模型)检出人脸在rgb图像中的像素位置,并用方框框出。在本实施例中,可利用深度学习的人脸检测算法中的mtcnn(multi-taskconvolutionalneuralnetworks)算法模型,从rgb图像中检测出人脸的像素位置,其可以是一个包含了人脸的方框。mtcnn是一种级联型的端到端网络模型,分为p-net、r-net和o-net三个部分,通过多级过滤的方式进行人脸检测,且可以在检测人脸的同时自动给出五个人脸关键点的位置,具有很强的实用性。进一步的,在从rgb图片中检测到人脸之后,按照mtcnn模型给出的人脸框的位置在深度图片中将对应的区域剪裁出来,以用于之后估计流程的计算。s122、将所提取的人脸区域进行灰度转换,以生成所述人脸灰色图像;一方面,人脸灰色图像的提取过程可以是通过将所提取的人脸区域进行灰度转换来实现的,对于头部姿态估计任务来说,色彩信息并不是必须的,因此可以将三通道的rgb图像转化为单通道的灰度图像,转换后的灰度图像更容易被保存和处理;关于rgb图像和灰度图像的转换,实际上是从人眼对彩色的感知到对亮度的感知的转换,具体可以是读取所提取的人脸区域的三基色的颜色值,并根据所读取的三基色的颜色值结合预配置的针对三基色的颜色值的灰度权重,生成对应于所提取的人脸区域的人脸灰色图像,具体的人脸灰色像素点的转换公式如下:

grey=0.299*r+0.587*g+0.114*b

根据这个公式,依次读取rgb图像中每个像素点的r,g,b值,并借助其各自所配置的示例性的灰度权重0.299、0.587和0.114,就可以算出对应的灰度值grey(转换为整型数),将灰度值赋值给新图像的相应位置,就完成了由rgb图像到灰度图像的转换。s123、将所提取的人脸区域的像素位置映射至所述深度图像以生成相应的人脸深度图像;由此,可以利用图像像素之间的对应关系,通过将所提取的人脸区域的像素位置映射至深度图像来实现提取人脸深度图像。

s13、提取人脸灰色图像所对应的人脸轮廓图像。

具体的,如图3所示,关于人脸轮廓图像的生成步骤包括:s131、直方图均衡化人脸灰度图像;通过对转换后的灰度图像进行直方图均衡化操作,增加了图像的对比度并调整图像中像素值的分布,从而降低之后的头部姿态估计任务的难度并提高估计的效率。s132、对该经直方图均衡化的人脸灰度图像进行平滑和锐化,以生成人脸轮廓图像;具体的,可以先对经均衡化的灰度图做高斯模糊,然后再进行sobel算子的一阶求导锐化,最终获得只含有轮廓信息的人脸图像。由于人脸轮廓图像含有较少的与头部姿态无关的信息,因此用于头部姿态估计时更容易获得较高的精度。

s14、将人脸灰度图像、人脸轮廓图像和人脸深度图像输入至头部姿态估计模型,以由该头部姿态估计模型输出头部姿态估计结果。

在一些实施方式中,在将人脸灰度图像、人脸轮廓图像和人脸深度图像输入至头部姿态估计模型之前可以对其作进一步的图像数据的优化处理操作,如图4所示,包括:s141、对人脸灰度图像进行光照补偿,由此减少光照因素对头部姿态估计算法所造成的影响;考虑到光照因素对图像算法的影响通常都是比较大的,为了能够尽量降低或者消除这种影响,在本发明实施例的优选实施方式中提出了可以对人脸灰度图像进行光照补偿,并将经光照补偿的人脸灰度图像输入至头部姿态估计模型,本发明实施例中的光照补偿措施可以只对灰度图像使用,具体方法为:(a)计算原始灰度图i的平均灰度,并记录其行数rows和列数cols;(b)按照一定大小,将原始灰度图分成n*m个方块,计算出每个方块的平均像素值,得到关于子方块的亮度矩阵d;(c)用矩阵d的每个元素减去原始灰度图的平均灰度,得到子块的亮度差值矩阵e;(d)用双立方插值法,将矩阵e插值成与原始灰度图一样大小的亮度分布矩阵r;(e)将原始灰度图i逐像素地减去亮度分布矩阵r,得到光照补偿后的图像。s142、对人脸深度图像进行双边滤波,由此改善人脸深度图像的质量;除了对灰度图像进行光照补偿之外,人脸深度图像也可以作进一步的处理,例如可以对人脸深度图像应用了双边滤波算法(bilateralfilters),该算法可以在人脸深度图像上实现保持边缘、降噪平滑的效果,有利于提高头部姿态估计算法的精度。s143、利用人脸灰度图像和人脸深度图像之间的像素对应关系,去除人脸灰度图像中的背景像素点;最后,通过结合深度图像与灰度图像二者在像素位置上对应的这一特点,实现了对人脸灰度图像中的背景区域的粗略去除(在深度图像中,背景点的像素值通常为零,而前景点的像素值通常为非零,对应到灰度图像中便可以去除背景像素了),进一步提高了头部姿态估计算法的精度。

另外,关于头部姿态估计结果的生成与输出,其可以是由深度学习的头部姿态估计模型直接输出的。其中,该头部姿态估计结果包括人脸欧拉角,可以理解的是,欧拉角(eulerangle)是一个物体的旋转方向可以用三个相互垂直的方向上的角度值来唯一确定,它们分别是左右旋转角yaw,上下旋转角pitch和侧向偏转角roll,这三个角度统称为欧拉角。当人的头部按照欧拉角的三个角度值进行旋转之后,人脸的朝向也就同时确定了。

在一些优选实施方式中,其可以是头部姿态估计模型包括灰度子模型、轮廓子模型和深度子模型,并通过如图5所示的流程来生成头部姿态估计结果:s51、由灰度子模型结合所输入的人脸灰度图像,确定相应的头部姿态的第一估计结果;s52、由轮廓子模型结合所输入的人脸轮廓图像,确定相应的头部姿态的第二估计结果;s53、由深度子模型结合所输入的人脸深度图像,确定相应的头部姿态的第三估计结果;s54、根据第一估计结果、第二估计结果和第三估计结果,生成头部姿态估计结果。由此,使用了三种可用图像数据(灰度,轮廓,深度),并通过三个独立的子模型分别实施估计,并最终将估计结果进行汇总和统计分析,能够得出最终的高精准度的头部姿态估计结果,该头部姿态估计结果可以是由头部姿态模型所输出的人脸欧拉角,例如其可以包括俯仰角、偏航角和翻滚角。

如图6所示,其示例性地描述了本发明一实施例的头部姿态估计方法的原理流程图。在本发明实施例中,提出了采用rgb彩色图像和深度图像结合的方式进行头部姿态估计的方法,且专门对图像数据进行了一定程度的光照补偿,因此准确率相比目前已有的方法要高得多,对环境的适应性也比较强。除此之外,在本发明实施例中虽然使用了深度学习模型识别结果的方法,但由于经过了很精细地图像数据预处理操作,使得模型结构可以被设计的非常简单,故而算法整体所消耗的时间并不是很多,在实时性上要优于目前已有的方法。

在可附加的实施方式中,本发明申请还提出了针对头部姿态估计模型的训练步骤;作为示例,可以是针对头部姿态估计模型中的三个独立的子模型分别进行训练,并最终构建总的头部姿态估计模型,关于该头部姿态估计模型具体的训练和构建过程如图7a和7b所示:s71、获取待训练图像和其所对应的人脸欧拉角的实际真值,并确定关于待训练图像的人脸灰度图像、人脸轮廓图像和人脸深度图像;例如,可以是使用自己采集的人脸图像数据来训练深度学习模型,并将所有图像数据在输入到深度学习模型之前均要进行归一化以降低训练难度。s72、将人脸灰度图像、人脸轮廓图像、人脸深度图像和人脸欧拉角的实际真值,输入至头部姿态估计模型以训练头部姿态估计模型,包括:分别由灰度子模型、轮廓子模型和深度子模型估计对应所输入的人脸灰度图像、人脸轮廓图像、人脸深度图像的人脸欧拉角的第一估计值、第二估计值和第三估计值;基于正弦距离损失函数,并结合第一估计值、第二估计值、第三估计值和人脸欧拉角的实际真值,分别训练灰度子模型、轮廓子模型和深度子模型;例如,可以是将人脸灰度图像、人脸轮廓图像和人脸深度图像会分别分配至三个独立的深度学习子模型中进行训练,再对结果进行合并训练,然后使用正弦距离损失函数代替常用的欧氏距离损失函数对深度学习模型进行回归训练。由此,深度学习模型可以实现一次训练、多次使用的效果,训练完成后即可直接用于头部姿态估计任务,不需要再进行修改。

优选地,损失函数的设计对于基于深度学习的头部姿态估计模型的训练来说也至关重要。在本发明申请中提出了一新型的正弦距离损失函数来代替传统回归训练中的欧氏距离损失函数,应用该正弦距离损失函数和人脸欧拉角的估计值(包括所估计的上下旋转角、左右旋转角和侧向偏转角)来实现对应损失的计算,该正弦距离损失函数的示例如下:

loss=(sin(pitch)–sin(pitcht))2+(sin(yaw)–sin(yawt))2+(sin(roll)–sin(rollt))2

其中,loss是损失距离,pitch、yaw和roll分别是模型根据输入图片由估计模型所估计出的三个欧拉角,即分别表示上下旋转角、左右旋转角和侧向偏转角的值,以及pitcht、yawt和rollt则是输入到头部姿态估计模型的图片中的人脸的欧拉角的实际真值。在本发明实施例中所提出的损失函数将原本的对角度进行回归的问题转化成了对距离进行回归的问题,比直接使用欧氏距离损失函数进行角度回归的效果要更好,也更能促使深度学习模型快速地收敛。

在训练完头部姿态估计模型后,便可以利用该深度学习的头部姿态估计模型依据三基色彩色图像和深度图像,自动地输出代表了头部的三维旋转方向的三个欧拉角的数值,完成基于图像数据的对人的头部姿态进行估计的过程。

本发明实施例另一方面还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,其分别用于执行本申请上述由终端所执行的头部姿态估计方法的步骤,该机器可读存储介质所安装的终端可以是任意的终端,例如计算机、vr眼镜、ar头盔等,其具体的技术方案的细节和效果可以参照上文方法实施例的描述,在此便不赘述。

以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

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