《QuatNet: Quaternion-based Head Pose Estimation with Multi-regression Loss》 2018,Heng-Wei Hsu et al. QuatNet
提出了multi-regression loss function来使用CNNs进行头部姿态估计,输入采用RGB,并没有深度(Depth)信息。损失函数为L2 regression loss结合ordinal regression loss。
1) ordinal regression loss是被用于去处理non-stationary property,学习鲁棒的特征。
The non-stationary property:不同的头部姿态角度面部的特征将会发生变化。
Ordinal regression learns去预测labels的排序,而非label值本身,当labels的顺序扮演着更加重要的角色相比于它们实际的数值,这是非常重要和有效的。
2) L2 regression loss利用特征去提供更加精确的角度预测
3) Label:本文使用Euler angle和quaternions作为网络回归的结果,发现基于四元数的效果更好,因此论文题目为:QuatNet。
《Fine-Grained Head Pose Estimation Without Keypoints》 2018,Nataniel Ruiz Eunji Chong James M. Rehg. multi-loss
本文提出了一种简洁和鲁棒的方式来确定姿态,通过训练一个multi-loss的卷积神经网络。 直接使用RGB结合分类和回归损失来预测Euler angles(yaw,pitch and roll)。
Supervised Descent Method and its Applications to Face Alignment,CVPR 2013
代码1
代码2
论文笔记
主要提出了一种名为SDM(Supervised Descent Method)的方法,用来最小化非线性最小二乘(Non-linear Least Squares)目标函数,即目标函数是均方误差。SDM方法通过学习得到一系列下降的方向和该方向上的尺度,使得目标函数以非常快的速度收敛到最小值,回避了求解Jacobian矩阵和Hessian矩阵的问题。
用于人脸对齐,但附带了姿态估计的方法。
解析 + C++代码
python代码已经下载到本地
人脸姿态估计主要是获得脸部朝向的角度信息。本文获得的人脸姿态信息用三个欧拉角(pitch,yaw,roll)表示。
首先定义一个6关键点的3D脸部模型(左眼角,右眼角,鼻尖,左嘴角,右嘴角,下颌),然后采用Dlib检测出图片中对应的6个脸部关键点,采用OpenCV的solvePnP函数解出旋转向量,最后将旋转向量转换为欧拉角。