gpt4 book ai didi

python - 计算 Python 中的 Yaw 和 Roll 头部姿势估计 MTCNN

转载 作者:行者123 更新时间:2023-12-03 18:48:49 24 4
gpt4 key购买 nike

我遇到过 MTCNN 网络的实现,它能够检测我们的头部在 3 个轴上的运动,称为 Yaw、Roll 和 Pitch。

以下是关键要素:

bbox, points = detector.detect_faces(frame)

点数给我网络推导的关键点列表,例如:

enter image description here

绘图函数:

def draw_landmarks(frame, bb, points):
# draw rectangle and landmarks on face
cv2.rectangle(frame,(int(bb[0]),int(bb[1])),(int(bb[2]),int(bb[3])),green,2)
cv2.circle(frame, (points[0], points[5]), 2, (255,0,0), 2)# eye
cv2.circle(frame, (points[1], points[6]), 2, (255,0,0), 2)
cv2.circle(frame, (points[2], points[7]), 2, (255,0,0), 2)# nose
cv2.circle(frame, (points[3], points[8]), 2, (255,0,0), 2)# mouth
cv2.circle(frame, (points[4], points[9]), 2, (255,0,0), 2)

现在要检测不同轴上的一些头部运动,定义了 Yaw 和 Roll 函数。

def Roll(points):
return points[6] - points[5]

def Yaw(points):
le2n = points[2] - points[0]
re2n = points[1] - points[2]
return le2n - re2n

话虽如此:

“Roll 是绕 x 轴的旋转(介于 -180 和 180 度之间)
Yaw 是绕 z 轴的旋转(在 -180 到 180 之间)。”

偏航功能在这里究竟是如何工作的?
Github: https://github.com/fisakhan/Face_Pose/blob/master/pose_detection_mtcnn.py

最佳答案

Yaw、Roll 和 Pitch 是欧拉角 - 下图显示了一个更容易理解的示例,重要的是要注意旋转与全局轴无关,但实际上与对象轴相关,这就是为什么一架飞机是一件值得考虑的好事。还有几种不同格式的欧拉角可以更好地理解 wiki

查看您提供的 github 链接,我发现了以下内容:

  1. 点包含帧内不同面部特征的坐标,其中:

    X=点[0:5]Y=点[5:10]

  2. 他们不以度为单位测量这些角度:

滚动:-x 到 x(0 为正面,正为顺时针,负为逆时针)

偏航:-x 到 x(0 是正面,正向右看,负向左看)

间距:0 到 4(0 向上看,1 直视,>1 向下看)

  1. Yaw、Roll 和 Pitch 函数不返回角度:

Roll返回的是左眼y坐标减去右眼y坐标

偏航 本质上是计算噪声沿 x 轴更靠近哪只眼睛 - 当您转动头部时, Nose 看起来更靠近观察者的一只眼睛

  1. find_pose 可能有您正在寻找的内容,但我需要进一步研究 xfrontal 和 yfrontal 的含义 - 您可能需要直接向 github 上的人提出问题

http://www.chrobotics.com/library/understanding-euler-angles

更新:在直接向开发人员提出问题后,他们的回复如下:

Roll、Yaw 和 Pitch 以像素为单位,提供面部注视位置的估计值。如果 mtcnn Roll 是(-50 到 50),Yaw 是(-100 到 100)。间距是 0 到 4,因为您可以将眼睛和嘴唇之间的距离分成 4 个单位,其中一个单位是嘴唇到鼻尖之间的距离,3 个单位是鼻尖到眼睛之间的距离。

Xfrontal 和 Yfrontal 分别提供沿 X 轴和 Y 轴的角度(以度为单位)的姿势(仅 Yaw 和 Pitch)。这些值是在补偿滚动(水平对齐双眼)后获得的。

https://github.com/fisakhan/Face_Pose/issues/2

关于python - 计算 Python 中的 Yaw 和 Roll 头部姿势估计 MTCNN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67283184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com