基于残差网络的实时头部姿态估计方法研究与应用

2023-07-14 16:46欧琪王剑雄孙歌等
计算机应用文摘 2023年12期
关键词:欧拉角

欧琪 王剑雄 孙歌等

摘要:头部姿势估计是使用计算机视觉和模式识别技术来推断数字图像中人体头部转动方向的过程,文章提出的改进后的基于残差网络的头部姿态估计模型在人脸检测模块的VGG16网络不同大小的卷积层后面加入了3个小检测模块,每个小检测模块都会进行检测和分类处理,间接实现了多尺度的人脸检测;在欧拉角的计算过程中融入回归和分类损失,利用交叉熵损失和均方差损失来计算模型估计的欧拉角,可以有效提高欧拉角的预测精度,从而提高头部姿态估计的准确率,使其在应用中得到更加有效的结果。

关键词:头部姿态估计;欧拉角;残差网络;交叉熵损失

中图法分类号:TP391 文献标识码:A

1 引言

近年来,计算机技术发展迅速,各种电子科技产品进入人们的日常生活,如何合理开发和应用计算机在各个领域的功能,成为当前重要的研究工作之一。

在计算机领域,计算机视觉技术(Computer Vision,CV)发展迅猛且应用广泛,其中头部姿态估计作为关键技术之一,也受到了广泛的关注和研究[1] 。头部姿势可以传达不同的信息,人的面部表情和头部动作可以最直观地表达一个人的想法或情绪。除了表达情绪和观点外,面部方向、眼睛方向等也可以表达一个人当前的注意力集中位置。

另外,头部姿势估计也在不同的生命科学领域中取得了重大突破,如医疗、无人驾驶或疲劳驾驶、身份识别等领域[2] 。本文提出的改进的基于残差网络的头部姿态估计模型,在牛津大学视觉几何组(VGG)网络上的人脸检测模块的不同大小的卷积层后面增加了3 个小检测模块,每个小检测模块将进行检测和分类处理。通过检测不同大小的特征图,间接实现多尺度人脸检测;在欧拉角的计算过程中融入回归和分类损失,利用交叉熵损失和均方差损失来计算模型估计的欧拉角,经过实验结果分析,可以有效提高欧拉角的预测精度,从而提高头部姿态估计的准确率,使其在应用中得到更加有效的结果。

2 VGG16 网络与残差网络

2.1 VGG16 网络

VGGNet 取得了2014 年ImageNet 图像分类的好成绩,其中VGG16 是VGGNet 中分类性能最好的网络之一[3] 。为捕捉细节变化以获得更好的非线性,减少参数数量,每个卷积层使用3×3 卷积核,使网络结构更加简单,必要时3×3 卷积核的堆叠可以替代5×5 和7×7 等较大的卷积核。在5 个卷积段的尾部各连接一个最大池化层。这个池化层采用2×2 的池化核,可以减少卷积层参数误差造成的估计平均值的偏移,更容易捕捉到图像和梯度的变化,并有利于保留纹理等细节信息。

綜上所述,VGG16 网络通过逐层抽象,能够从低层到高层不断学习特征,并且具有较强的非线性表达能力,能够表达更丰富的特征,适合更复杂的输入特征。另外,VGG16 网络开始时有64 个3×3 的卷积核,随着网络的加深,卷积核的数量逐渐从64 个增加到128 个,256 个和512 个,从而使其具有更大的网络宽度,这使网络在每一层都能学习到更丰富的特征。

2.2 残差网络

残差网络(Residual Network,ResNet)[4] 是微软亚洲研究院研究员何凯明等在2015 年继AlexNet,GoogleNet,VGG 3 个经典的卷积神经网络之后提出的具有影响力的网络模型。

在深度神经网络的训练过程中,梯度分散或爆炸的问题使得模型训练难以收敛,但标准初始化和中间层正规化方法在一定程度上有效控制了这一问题,使深度神经网络能够收敛。在模型训练过程中,即使在相同的训练水平下,退化网络的错误率也要高于略浅层的网络。随着网络深度的增加,模型会出现退化现象,这不是过拟合造成的,而是冗余网络层的学习参数不是恒等映射的参数造成的。

通过对现有深度神经网络退化问题的了解,解决网络模型不退化问题的根本方法是恒等映射。残差网络很好地解决了深度神经网络的网络退化问题,取得了较好的结果。本文的头部姿态估计框架是基于ResNet50 来设计的,一共有50 层,采用了残差结构,将检测到的人脸裁剪下来,经过一系列的缩放裁剪调整尺寸,放入残差网络,最后网络会输入3 个方向的欧拉角,全程为端到端的实现,十分便捷。

3 改进的头部姿态估计模型

3.1 人脸检测

本文提出的人脸检测模块是基于VGG16 网络进行修改的,和多任务级联网络(Multi?task CascadedConvolutional Networks,MTCNN) 方法不同,本文只使用一张大小的图像作为输入,不需要分别对不同尺度的图像进行预测。具体实现方法是在VGG 网络的不同大小的卷积层后面增加3 个小检测模块(M1,M2,M3),每个小检测模块会进行一次检测和分类。通过检测不同大小的特征图,间接实现多尺度人脸检测。

图1 为人脸检测框架的示意图。

根据图1 所示,可以看到每个分支都会有1 个检测模块,为了获得更大的感受,首先使用多重3×3 卷积代替7×7 卷积可以增加网络深度,在一定条件下可以有效提高神经网络的效果。然后融合2 条路径的特征图,完成分类任务和回归任务。最后,该模块连接到VGG16 的3 个不同的卷积层,以对应不同大小的特征图,从而有效提高网络模型效果。

3.2 欧拉角

在计算机视觉中,头部姿态估计可以解释为人体头部相对于相机的方向。人体头部的姿势受限于3个自由度,分别为俯仰角、旋转角和偏转角,它们统称为欧拉角[5] ,如图2 所示。

传统的头部姿态估计算法首先检测2D 人脸的关键点,其次构建3D 人脸匹配模型以获得更全面的信息,然后计算3D 点与2D 点之间的变换关系,最后通过矩阵相关运算获得关键值欧拉角的角度。但是,传统的头部姿势估计方法对面部关键点提取的准确性要求较高,因此不适用于某些场景中的小脸,如教室场景下的人脸。

3.3 融入回归和分类损失

本文提出的头部姿态估计框架是基于ResNet50来设计的,一共有50 层,采用了残差结构。上文提出的人脸模块得到的数据文件已经保存了每个人脸的相关坐标,姿态估计模块会依次读取数据文件的每一列,通過缩放和裁剪来切割人脸区域,调整人脸的大小,进入下一层网络。最后,网络会计算并输出3 个方向的欧拉角。整个过程是端到端的实现, 非常便捷。

本文建立的改进后的头部姿态估计模型为每个欧拉角设置了2 个损失函数,以改进欧拉角的计算。

首先可以根据角度区间对头部的欧拉角进行分类。

其次将分类结果转换成度数,将实际度数与标注度数进行比较,计算回归损失。最后将回归损失和分类损失相结合,得到最终损失。计算方法为:

其中,n 为批处理样本数,y 为真实值,y′为预测值。

当模型开始训练时,会对一些数据进行数据过滤,然后选取不同角度的图片作为训练数据集。结合本文提出的回归损失和分类损失相结合的计算方法,可以有效提高欧拉角的预测精度。

本文提出的改进后的头部姿态估计框架基于pointing04 数据集上所训练出来的模型,在分析人体头部姿态估计的欧拉角中具有良好的性能,同时在其他的测试集上有着可扩展性和鲁棒性。实验结果如图3 所示,在控制台输出了3 个方向的欧拉角。

4 结束语

头部姿态估计在计算机视觉领域有着广阔的应用前景。例如,在一些辅助驾驶系统中,需要估计驾驶员的头部姿态来确定驾驶员是否有危险的驾驶行为,或者在一些在线教学系统中,以同样的方式来确定学生的学习状态,并且它在人脸矫正中起着重要的作用。在VR 虚拟现实等相关研究中,根据头部姿态估计可以判断出体验者的意图从而有更好的体验效果。本文提出的改进后的基于残差网络的头部姿态估计模型在欧拉角的计算过程中融入回归和分类损失,利用交叉熵损失和均方差损失来计算模型估计的欧拉角,经过实验结果分析,可以有效提高欧拉角的预测精度,从而提高头部姿态估计的准确率,使其在应用中得到更加有效的结果。

参考文献:

[1] 王铁胜.计算机视觉技术的发展及应用[J].信息系统工程,2022(4):63?66.

[2] 柯泽冉.三维人脸重建及其在头部姿态估计中的应用[D].武汉:华中师范大学,2021.

[3] 齐永锋,马中玉.基于深度残差网络的多损失头部姿态估计[J].计算机工程,2020,46(12):247?253.

[4] HE K M,ZHANG X Y,REN S Q.Deep Residual Learning forImage Recognition[C]∥2016 IEEE Conference on ComputerVision and Pattern Recognition (CVPR),2016:27?30.

[5] 刘成攀,吴斌,杨壮.基于联合损失和恒等映射的动态人脸识别[J].传感器与微系统,2021,40(9):153?156.

作者简介:

欧琪(1998—),硕士,研究方向:人工智能。

王剑雄(1975—),硕士,教授,研究方向:人工智能( 通信作者)。

猜你喜欢
欧拉角
浅析欧拉角的定义及应用
基于多传感器融合的老人跌倒检测
Unity3D中的最短旋转研究
四旋翼无人机飞行控制中四元数与欧拉角的转换
欧拉角和等效轴角参数表示下机械腕的轨迹规划和奇异性分析
基于弹载捷联惯性导航系统精确导航的双欧拉全姿态方法
从CATIA位置矩阵求解欧拉角的计算方法分析
一种基于EGI和标准人脸模板的三维人脸点云拼合算法
坐式垂直起降无人机的一种姿态解算算法的设计
基于单位四元数的单独像对相对定向