基于模型的估计方法的前提是,手头必须具备两样东西,一个是人脸特征点(眼镜,嘴巴,鼻子等处的像素位置),另外一个,是需要自己制作一个3维的,正面的“标准模型”。
method1: 一种比较经典的 Head Pose Estimation 算法的步骤一般为:2D人脸关键点检测;3D人脸模型匹配;求解3D点和对应2D点的转换关系;根据旋转矩阵求解欧拉角。
method2: SVM(SVR)训练和预测;
method3: 深度学习版
why do so can get Roll, Yaw, Pitch Angles?
answer:
linear regression, MatrixA denotes facial landmarks(as a 14d vector), MatrixW(that is estimateHeadPose2dArray2) means weights(as a 14X3 matrix), then we can get angles from MatrixAngle(3d vector) = MatrixA*MatrixW;
参考
https://github.com/chengzhengxin/sdm/issues/1
https://docs.opencv.org/trunk/d9/d0c/group__calib3d.html#gaaae5a7899faa1ffdf268cd9088940248
https://docs.opencv.org/trunk/d9/d0c/group__calib3d.html#ga549c2075fac14829ff4a58bc931c033d
OpenCV相机标定calibrateCamera坐标系详解
完