帧间信息导向的头部姿态估计优化方法*
2019-12-20于学峰沈海斌
于学峰, 沈海斌
(浙江大学 超大规模集成电路设计研究所,浙江 杭州 310027)
0 引 言
头部姿态估计[1]是计算机视觉中一个比较热门的研究方向,其广泛应用于人机交互、疲劳驾驶检测、视线注意力辅助判断等场景。准确性、实时性、易用性等都是评价头部姿态估计方法的指标,目前很多研究工作以此为中心开展。文献[2]利用激光扫描仪获得精确的头部三维模型,进而利用仿射关系对人脸进行姿态跟踪,这种方法解决了模型的描述问题,但依赖专业设备,可用性不强;文献[3]对上述情况进行了改进,使用通用的人脸三维模型,结合Viola-Jones人脸检测算法[4]和主动表观模型去检测和跟踪头部姿态,但其运算仍较为复杂,精度取决于图像特征点定位的准确性;为了提高处理性能,文献[5]通过比较帧间对应点特征向量相似度来判别剔除不准确的特征点,以减少误差引入,虽然精度有所提高,但实时性仍显得不足。
为了进一步利用帧间信息来提高处理性能,本文提出了一种帧间信息导向的头部姿态估计优化方法,引入前的人脸框位置信息来约束搜索范围,在识别率较高的情况下大幅提升了实时性。而在求解参数时,本文根据前帧的姿态角是否超过设置的阈值,预剔除一些坏点来提高准确性,同时将前帧求解得到的最优参数矩阵作为当前帧非线性迭代估计的初值矩阵,省去了直接线性变换(direct linear transformation,DLT)和奇异值分解(singular value decomposition,SVD)步骤,加快了求解的过程。
1 方法框架
本文使用了基于模型的头部姿态估计方法,其过程包括人脸检测、人脸对齐以及转动估计,如图1所示。
图1 帧间信息导向的头部姿态估计优化方法
人脸检测从图像中提取出有效的人脸位置,其速度和准确性为整个方法奠定了基础。考虑到应用场景,要求人脸检测算法对头部姿态转动有一定的鲁棒性,在保证准确率的前提下尽可能提高实时性。
人脸对齐是在人脸检测提取出的人脸上标记人脸特征点。通过人脸对齐可以获得人脸特征点的二维图像坐标,其坐标的准确性会影响到后续的转动估计。
转动估计借助针孔透视成像的原理,根据人脸对齐得到的二维图像坐标与头部三维坐标信息建立矩阵方程,经过运算最终得到头部姿态角。
2 帧间信息导向的优化方法
2.1 人脸检测
基于梯度方向直方图(histogram of gradient,HOG)的人脸检测算法[6]对于光照和几何旋转的鲁棒性较强,而Viola-Jones算法对于多姿态的检测效果不佳[7],本文选择了基于HOG特征的人脸检测算法。一般的方法是对整幅图像进行HOG特征的运算并搜索人脸,实时性很差,本文基于帧间信息提出了改进的人脸搜索策略,如图2所示。通过引入前帧的人脸框位置对人脸检测进行实时性上的优化。考虑到头部姿态运动的无规则性以及在前后帧位移不会过大的特点,本文以前帧人脸框为中心进行适度扩大生成候选框,作为当前帧优先搜索人脸的范围。在视频序列的前帧已经准确定位人脸的情况下,可以参照前帧去除大部分的非人脸区域,在前帧未检测出人脸的情况下才会对整幅图像进行搜索。由于基于HOG特征的人脸检测算法识别率很高,所以,很少需要对整幅图像进行搜索,大幅减少了搜素时间,达到了在视频序列中实时检测的目的。本文首先通过前帧的信息对人脸大致定位,减少搜索时间,再利用HOG检测算法进行二次精确定位,从而保障了实时性和准确性。
图2 结合候选框的人脸搜索策略
2.2 人脸对齐
本文使用了基于级联回归树的人脸对齐算法[8],其准确性和实时性均优于文献[4]所使用的方法。该算法类似于串行结构的随机森林,根据初始的人脸形状上的像素点灰度值与已经训练好的级联回归树叶子结点中的残差,逐步回归到真实的人脸形状,最终收敛得到人脸上的68个特征点。用于转动估计的特征点越多,估计的姿态角越精确,但同时也会加重运算负担[9]。考虑到68个特征点定位的稳定性有差异,以及人脸特征点需要与三维头部模型相对应,本文预选取了14个稳定的特征点。本文使用的通用头部三维模型来自科英布拉大学系统与机器人研究所,如图3。
图3 特征点的选取
2.3 转动估计
根据针孔透视成像模型,可以得到
sm′=A[R|t]M′
(1)
(2)
式中s为尺度因子,m′为图像点的齐次坐标,A为相机内参数,R为旋转矩阵,通过转换可得到头部姿态的3个欧拉角,t为平移向量,M′为空间点在世界坐标系中的齐次坐标。已知n组对应点时,可通过DLT和SVD运算得到[R|t]。
为减少噪声干扰,得到最优解,使用非线性迭代算法对上述得到的矩阵进一步优化,其目标代价函数为
(3)
当n组三维坐标点的反投影点与对应的二维图像坐标点距离的平方和达到最小时,认为此时的[R|t]为最优参数矩阵[10]。
2.3.1 基于前帧姿态角的特征点筛选
尽管非线性迭代算法能在一定程度上减小噪声误差,但特征点漂移过大显然会影响求解的准确性。在多数情况下,人脸对齐能获得较为准确的特征点位置,但在头部姿态偏转较大时,一些特征点会发生漂移,需要剔除,如图4。
图4 特征点漂移
故本文提出了引入前帧的姿态角信息筛选特征点的方法。正常姿态下特征点的定位较为准确,14组点对能保证迭代算法得到较为准确的数值解,而在姿态角左右偏转超过阈值时,14组点对中部分的点(图3中的1,5,6或者4,7,8)出现漂移的可能性增大,如果全部用于估计反而容易引起误差偏大,所以,预先对坏点进行剔除,再估计当前帧的姿态角可以减小误差。
2.3.2 引入前帧参数矩阵的非线性迭代优化
本文同时将前帧求解得到的最优参数矩阵作为当前帧的初值矩阵,直接用依据式(3)的代价函数进行非线性迭代,省去了DLT和SVD的步骤,本文使用了列文伯格—马夸尔特(Levenberg-Marquardt,LM)经典迭代算法[11],可变的阻尼系数使其在远离目标点时具备最速下降法缓慢而可收敛的特性,而在接近目标点时可以像高斯牛顿法一样快速收敛。由于前帧的最优参数矩阵一般很接近当前帧的最优值,避免了迭代算法初始阶段缓慢寻优的过程,在保证求解参数准确的同时对实时性有一定的提升。
3 实验与结果分析
本文随机选取了EyeDiap数据库中的10段分辨率为640×480时长2.5 min的不同人物头部姿态运动的视频进行实验。EyeDiap数据库是IDIAP研究院用于测试视线和头部姿态的数据集,其中有已经标定好的相机内参数以及可供参考比对的头部姿态数据。
本文算法与文献[4,6]的识别速度和识别率对比为:8.94 s,94.18 %;16.16 s,89.23 %;72.42 s,93.84 %。
文献[4]为Viola-Jones人脸检测方法,文献[6]为基于HOG特征的人脸检测方法,本文方法在文献[6]的基础上预缩放尺度0.8倍,而后以前帧人脸框2倍大小生成当前帧的候选框,改进了人脸搜索策略。实验表明,本文提出的方法可以明显提高检测速度并维持准确的识别率。
在转动估计阶段,本文引入前帧的姿态角对当前所用特征点进行筛选,优化效果如表1所示,表中数据为整段视频实测姿态角与真实值的平均绝对误差。本文以文献[1]建立头部姿态坐标系,pitch为俯仰角,yaw为偏航角,roll为翻滚角。由于实际的应用场合中,头部的左右偏转是相对重要的信息,故本文针对偏航角过大的情况设置阈值来剔除漂移的坏点,表中数据表明本文提出的方法能降低偏航角的误差,三个姿态角的总体平均角度绝对误差也有一定的减小。
本文通过引入前帧的参数矩阵直接作为LM迭代算法的初值,与文献[10]依次使用DLT,SVD和LM求解的原始方法相比,求解的精度一致,而实时性能得到了优化。本文的方法实时性(平均0.500 4 ms)相比文献[10](平均0.404 4 ms)能有效减少约19.2 %的运算时间。
表1 特征点筛选前后的误差
结合人脸检测的平均时间8.94 ms和人脸对齐的平均时间3.54 ms,本文提出的帧间信息导向的头部姿态估计优化方法完成1次估计的平均时间为12.88 ms,帧率能达到77.6,显著高于其他一般的方法[3,4],能满足实时性要求较高的场合。
4 结束语
本文通过引入前帧的人脸框信息优化搜索策略,大幅提高了人脸检测的速度,而在转动估计阶段基于前帧姿态角信息剔除坏点,减小了特征点漂移引入的误差,同时引入前帧最优参数矩阵优化了求解过程。实验表明:本文提出的帧间信息导向的头部姿态估计优化方法能有效提高实时性和准确性。