当前位置: 代码迷 >> 综合 >> 《Fine-grained head pose estimation without keypoints》论文笔记
  详细解决方案

《Fine-grained head pose estimation without keypoints》论文笔记

热度:98   发布时间:2024-02-24 18:43:43.0

文章目录

  • 摘要
  • 一、准备工作
    • 1.开源代码
    • 2.数据集
  • 二、网络架构
    • 1.架构图
    • 2.打印网络结构
    • 3.损失函数
  • 总结


摘要

头部姿态的估计是一个非常重要的问题,它有着大量的应用,如辅助视线估计、注意力建模、3D模型与视频的拟合以及面部对齐等。传统的头位计算方法是根据头位的关键点进行估计。利用平均人头模型得到人脸并解决二维到三维的对应问题。我们认为这是一个脆弱的方法,因为它完全依赖于地标检测性能,额外的头部模型和一个特别的拟合步骤。我们提出了一种优雅而鲁棒的抑制mine pose的方法:在一个大型综合扩展数据集300W-LP上训练一个多损失卷积神经网络,通过联合binned pose分类和回归,直接从图像强度中预测固有的欧拉角(偏航、俯仰和横摇)。我们对常见的野外姿态基准数据集进行了经验测试,显示了最先进的结果。此外,我们在通常使用深度进行位姿估计的数据集上测试了我们的方法,并开始缩小与最先进的深度位姿方法的差距。我们开源了我们的培训和测试代码,并发布了我们预先培训过的模型


一、准备工作

1.开源代码

https://github.com/natanielruiz/deep-head-pose

2.数据集

AFLW、AFLW2000、300W-LP、BIWI数据集

二、网络架构

1.架构图


三个全连接层之后,就输出了预测值。三个全连接层之前共享一个卷积层。

2.打印网络结构

3.损失函数

使用三种不同的损耗,每个角度一个。每个损失都是两个分量的组合:一个位姿分类分量和一个回归分量。任何骨干网络都可以用预测角度的三层全连通层来扩充。这三个完全连接的层共享之前的网络卷积层这种方法背后的想法是,通过执行bin分类,我们使用非常稳定的softmax层和交叉熵,因此网络学习以鲁棒的方式预测姿态的邻域。通过三个交叉熵损失,每个欧拉角都有一个,我们就有了三个信号,它们被反向传播到网络中,从而提高了学习效率。

在进行训练数据准备的时候,对于输入的训练数据[ pitch, yaw, roll],作者将[0,180]度分成66个bins,然后根据三个角度所处的bin生成label,并用来训练分类层;根据分类层出来的概率分布,和66个bins的值求期望得出回归的值,最后以加权的方式来整合分类损失和回归损失。在这里插入图片描述
式中,H和MSE分别表示交叉误差损失函数和均方误差损失函数。

总结

使用了ResNet50做前置网络,后使用了完全独立的三个全连接层,将数据可化为66维,然后使用66个bins的值求期望得出回归的值,最后以加权的方式来整合分类损失和回归损失。 感谢作者,提供了一个很好的思路,以非常优雅的方式同时处理了刻画数据分布和回归两个任务。
  相关解决方案