当前位置:   article > 正文

人脸姿态估计(一)之欧拉角理解_人脸欧拉角

人脸欧拉角

                                                                人脸姿态估计(一)之欧拉角理解

目录

1.欧拉角定义:

2.根据人脸68关键点转欧拉角:

3.根据欧拉角,在图像上可视化:

(1)根据欧拉角计算旋转矩阵

(2)根据旋转矩阵计算旋转后坐标

(3)将三维坐标系投影到2维图像上


1.欧拉角定义:

pitch(俯仰角-围绕X轴旋转),yaw(偏航角-围绕Y轴旋转) 和 roll(滚转角-围绕Z轴旋转);对应人脸分别为抬头、摇头和转头。

欧拉角、旋转矩阵都是基于空间坐标系,默认3D坐标系

一般默认为右手准则;且默认矩阵右乘规则

 

红色代表X轴-脸侧方向,绿色代表Y轴-脸下方向,蓝色代表Z轴-脸正前方向(以论文说明为主);

 

2.根据人脸68关键点转欧拉角:

省略,网上一堆教程;

3.根据欧拉角,在图像上可视化:

hopenet可直接预测人脸的欧拉角,不需要根绝关键点进行欧拉角的复杂计算,那么根据关键点计算欧拉角,就不过多涉及了。但请记住核心:根据欧拉角->旋转矩阵->XY平面投影【本质是 对3个方向点进行旋转,再投影,可以不用投影,那么姿态方向是3维的,但是3维在图像上可视化不出,所以才投影2D】

(1)根据欧拉角计算旋转矩阵

https://en.wikipedia.org/wiki/Euler_angles

https://en.wikipedia.org/wiki/Rotation_matrix#Ambiguities

基础旋转矩阵:

组合旋转矩阵:

不同顺序的组合旋转矩阵:

注意

(1)按照轴旋转角度的先后顺序,进行R的相乘,得到组合旋转矩阵;eg:先ZXY,那么R=RzRxRy

(2)欧拉角转旋转矩阵,X轴单位向量是x=[1,0,0] (也是坐标点) 旋转后的x'=[x1,y1,z1],其依旧在原始3D坐标系下,同理:Y轴单位向量是y=[0,1,0] 旋转后y'=[x2,y2,z2],Z轴单位向量是[0,0,1] 旋转后z'=[x3,y3,z3];

则:Rx = x'  ; Ry = y' ;Rz = z' ;

(2)根据旋转矩阵计算旋转后坐标

核心理解人脸姿态估计可视化是3个箭头,也就是3个坐标点,每个坐标点都是在各自轴上(其它轴为0),需要计算的是这3个点旋转后的坐标点,所以需要计算3次。R*[x,0,0]  R*[0,y,0]  R*[0,0,z] xyz可以视为1!

[x,y,z]=x*[1,0,0] + y*[0,1,0] + z*[0,0,1];旋转前3D坐标为[x,y,z],旋转后3D坐标是R*[x,0,0]+R*[0,y,0]+R*[0,0,z]

(3)无论轴旋转顺序如何变化ZXY先后,旋转矩阵对应顺序依旧是[X,Y,Z]

R_{ZXY}=\begin{bmatrix} X & Y & Z\\ cs& cs & cs\\ cs& cs & cs\\ cs& cs & cs \end{bmatrix}R= \begin{bmatrix} x1& x2 &x3 \\ y1& y2 &y3 \\ z1& z2 &z3 \end{bmatrix}Rx=x' 等价于:\begin{bmatrix} x1& x2 &x3 \\ y1& y2 &y3 \\ z1& z2 &z3 \end{bmatrix}\begin{bmatrix} 1\\ 0\\ 0 \end{bmatrix}= x',即:x'=\begin{bmatrix} x1\\ y1\\ z1 \end{bmatrix}

(3)将三维坐标系投影到2维图像上

投影本质,[x',y',z']投影到x’y‘平面上,那么投影点坐标是:[x',y']。直接去掉取消的轴即可!

至此,hopenet人脸姿态估计根据欧拉角在2D图像上可视化代码:也就好理解了

将hopenet欧拉角可视化代码中的旋转矩阵提取出来,按照右乘进行提取[x1,y1,z1]对应[1,0,0]即X轴;以此类推。

那么R是按照XYZ轴顺序旋转的,根据对比得到1=pitch,2=yaw,3=roll,则与文章首呼应:

pitch(俯仰角-围绕X轴旋转),yaw(偏航角-围绕Y轴旋转) 和 roll(滚转角-围绕Z轴旋转);实际应用yaw朝下,因此取负,并投影到XY轴上。

可视化的本质是:五角星 = 3个圆圈的坐标,那么对五角星的旋转,可等价于对圆圈的旋转,根据旋转矩阵得到3个圆圈旋转后的坐标,再投影到XY平面上。由于人脸姿态是3个方向,对于原始的3D坐标系是如图3个箭头方向,那么经过旋转后的3个方向点是Rx  Ry  Rz ,再投影到XY平面,这样就得到了图像上的人脸姿态了。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/404304
推荐阅读
相关标签
  

闽ICP备14008679号