300W_LP、AFLW2000
将与图片对应的.mat文件放入matlab中打开,在工作区双击"Pose_Para",前三个参数(pitch、yaw、roll)即为头部姿态角的俯仰、偏航和滚转角(以弧度的形式表示),将这三个数依次乘以180度再除以派(3.1415926),即可得到以度(°)为单位的头部姿态角。
注:
头往左偏,yaw为正
头往右偏,yaw为负
BIWI
计算BIWI数据集中图片的真值,计算程序来自FSA-Net开源程序(TYY_create_db_biwi.py)
frame_00015_pose.txt的格式如下:
0.957662 0.0259065 0.286726
-0.0410647 0.998051 0.0469789
-0.28495 -0.0567642 0.95686
78.0063 23.635 787.824
读_pose.txt文件计算欧拉角。
import numpy as np
# Load pose in degrees 计算头部姿态角
pose_annot = open(pose_path, 'r')
R = []
for line in pose_annot:
line = line.strip('\n').split(' ')
L = []
if line[0] != '':
for nb in line:
if nb == '':
continue
L.append(float(nb))
R.append(L)
R = np.array(R)
T = R[3,:]
R = R[:3,:]
pose_annot.close()
R = np.transpose(R) # 求矩阵的转置
roll = -np.arctan2(R[1][0], R[0][0]) * 180 / np.pi
yaw = -np.arctan2(-R[2][0], np.sqrt(R[2][1] ** 2 + R[2][2] ** 2)) * 180 / np.pi
pitch = np.arctan2(R[2][1], R[2][2]) * 180 / np.pi