当前位置:   article > 正文

姿态估计之Yaw Pitch Roll_卡尔丹角

卡尔丹角

前言

姿态通常是物体自身坐标系相对某个约定的参考坐标系的一个状态,日常生活中描述姿态一般都是相对地面坐标系而言的,因为这更符合人的直观感受。在生活中较为常见的是飞机在空中时的姿态描述,这能辅助描述飞机的状态定位和状态调整。
在这里插入图片描述

姿态估计

姿态简单来说就是物体坐标系到大地坐标系之间的状态。而姿态估计则是采用某种方法估计出某一三维目标物体的方位指向问题。姿态估计在机器人视觉、动作跟踪和单照相机定标等很多领域都有应用。常见的姿态估计问题有人体姿态估计、人脸姿态估计等。

在这里插入图片描述在这里插入图片描述

欧拉角与姿态角

欧拉角是一种最直观的姿态描述方式,它的核心思想是一个坐标系到另一个坐标系的变换可以通过绕不同坐标轴的三次连续转动来实现。这三次的转动角度统一称为欧拉角。

而欧拉角只是说明了两种坐标系之间的变换关系,实际上我们在姿态估计中使用的姿态角是欧拉角中的一种,是人为约定的一种。通常被用在航空领域,被称为航空次序欧拉角,也叫卡尔丹角。其定义欧拉角的特定转动顺序为Z-Y-X。其中绕Z轴转动的角度为偏航角(Yaw),绕Y轴转动的角度为俯仰角(Pitch),绕X轴转动的角度为横滚角(Roll)。

在这里插入图片描述

Yaw

偏航角(Yaw),调整飞机头部左右朝向。机体坐标系X轴(Roll轴)投影到水平面与地面参考系X轴的夹角,顺时针旋转为正。
在这里插入图片描述

Pitch

俯仰角(Pitch),调整飞机头部上下朝向。机体坐标系Z轴(Yaw轴)与水平面的夹角,抬头为正。

另外,Pitch有颠簸的意思,也能反映出飞机在气流作用下上下颠簸的状态。
在这里插入图片描述

Roll

横滚角(Roll),机体坐标系Z轴(Yaw轴)与通过机体坐标系X轴(Roll轴)的铅垂面间的夹角,机体右旋为正。
在这里插入图片描述

其他场景姿态角示例

在这里插入图片描述

人脸姿态估计方法和应用

Hopenet

deep-head-pose: Deep Learning Head Pose Estimation using PyTorch
在这里插入图片描述
(注:图片来源https://github.com/natanielruiz/deep-head-pose

Face-Pose-Net

FacePoseNet: Making a Case for Landmark-Free Face Alignment
在这里插入图片描述
(注:图片来源https://github.com/fengju514/Face-Pose-Net

FacePose_pytorch

The pytorch implement of the head pose estimation(yaw,roll,pitch) and emotion detection in real time.
在这里插入图片描述
(注:图片来源https://github.com/WIKI2020/FacePose_pytorch

从人脸关键点估计姿态代码示例

import numpy as np
import math
import cv2

def rotationMatrixToEulerAngles(R) :
    sy = math.sqrt(R[0,0] * R[0,0] +  R[1,0] * R[1,0])
    singular = sy < 1e-6
    if  not singular :
        x = math.atan2(R[2,1] , R[2,2])
        y = math.atan2(-R[2,0], sy)
        z = math.atan2(R[1,0], R[0,0])
    else :
        x = math.atan2(-R[1,2], R[1,1])
        y = math.atan2(-R[2,0], sy)
        z = 0
    return np.array([x, y, z])

def estimate_pitch_yaw_roll(aligned_landmarks, size):
    """
    aligned_landmarks: landmark3D 68
    size: image size
    returns pitch,yaw,roll [-pi/2...+pi/2]
    """
    shape = (size,size)
    focal_length = shape[1]
    camera_center = (shape[1] / 2, shape[0] / 2)
    camera_matrix = np.array(
        [[focal_length, 0, camera_center[0]],
         [0, focal_length, camera_center[1]],
         [0, 0, 1]], dtype=np.float32)

    (_, rotation_vector, _) = cv2.solvePnP(
        np.concatenate( (landmarks_68_3D[:27],   landmarks_68_3D[30:36]) , axis=0) ,
        np.concatenate( (aligned_landmarks[:27], aligned_landmarks[30:36]) , axis=0).astype(np.float32),
        camera_matrix,
        np.zeros((4, 1)) )

    pitch, yaw, roll = rotationMatrixToEulerAngles( cv2.Rodrigues(rotation_vector)[0] )
   
    half_pi = math.pi / 2.0
    pitch = np.clip ( pitch, -half_pi, half_pi )
    yaw   = np.clip ( yaw ,  -half_pi, half_pi )
    roll  = np.clip ( roll,  -half_pi, half_pi )

    return -pitch, yaw, roll
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

版权说明

本文为原创文章,独家发布在blog.csdn.net/TracelessLe。未经个人允许不得转载。如需帮助请email至tracelessle@163.com
在这里插入图片描述

参考资料

[1] Pitch, yaw, and roll - Simple English Wikipedia, the free encyclopedia
[2] Aircraft principal axes - Wikipedia
[3] Yaw (rotation) - Wikipedia
[4] pitch yaw roll是什么 - 简书
[5] 航空次序欧拉角_百度百科
[6] GitHub - natanielruiz/deep-head-pose: Deep Learning Head Pose Estimation using PyTorch.
[7] fengju514/Face-Pose-Net: Estimate 3D face pose (6DoF) or 11 parameters of 3x4 projection matrix by a Convolutional Neural Network
[8] WIKI2020/FacePose_pytorch: This is a pure python project predict head pose (yaw,roll,pitch).Easy to deploy, easy to use, and high accuracy
[9] ostadabbas/3d-facial-landmark-detection-and-tracking: Human 3D Facial Pose Estimation and Tracking (AffCom IJCAI2018)
[10] 人体姿态估计的过去,现在,未来 - 知乎
[11] 姿态篇:一.初识姿态估计 - 简书
[12] 估计姿态_hk121的博客-CSDN博客_姿态估计
[13] 学习《姿态引导的真实人脸旋转》论文 - 知乎
[14] dlib人脸姿态欧拉角_Cody的博客-CSDN博客_人脸欧拉角

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

闽ICP备14008679号