通过MTCNN返回的landmarks来计算人脸头部姿态的函数,主要计算三种角度:俯仰角(Pitch):表示头部上下倾斜的角度。偏航角(Yaw):表示头部左右旋转的角度。滚转角(Roll):表示头部绕自身轴的旋转角度。
import numpy as np
def calculate_face_angles(landmarks, w, h):
# 获取关键点坐标
left_eye = landmarks[0]
right_eye = landmarks[1]
nose = landmarks[2]
mouth_left = landmarks[3]
mouth_right = landmarks[4]
# 计算眼睛中心的Y坐标
eye_center_y = (left_eye[1] + right_eye[1]) / 2 # 眼睛中心的Y坐标