前言

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

姿态估计

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

欧拉角与姿态角

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

而欧拉角只是说明了两种坐标系之间的变换关系,实际上我们在姿态估计中使用的姿态角是欧拉角中的一种,是人为约定的一种。通常被用在航空领域,被称为航空次序欧拉角,也叫卡尔丹角。其定义欧拉角的特定转动顺序为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 cv2def rotationMatrixToEulerAngles(R) :sy = math.sqrt(R[0,0] * R[0,0] +  R[1,0] * R[1,0])singular = sy < 1e-6if  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 = 0return np.array([x, y, z])def estimate_pitch_yaw_roll(aligned_landmarks, size):"""aligned_landmarks: landmark3D 68size: image sizereturns 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.0pitch = 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

版权说明

本文为原创文章,独家发布在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博客_人脸欧拉角

姿态估计之Yaw Pitch Roll相关推荐

  1. 机器人中的yaw/pitch/roll

    1.yaw(pan)/pitch(tilt)/roll 我认为,yaw/pitch/roll绕哪个轴旋转,是要看坐标系的朝向的,如果坐标系的轴如下图,则对应关系是yaw(z轴).pitch(x轴).r ...

  2. Yaw Pitch Roll的变换顺序问题

    今天花了不少时间去理解Yaw Pitch Roll的变换顺序 比如给定一个旋转(15, 30, 60),那么物体应该先围绕哪个轴转呢?总得有个顺序吧? 解决这个问题的第一个天坑就是:网上的资料坐标系都 ...

  3. yaw公式_坐标系和yaw, pitch, roll等基础概念

    坐标系 右手坐标系:把右手拇指食指中指伸直并正交,拇指X,食指Y,中指Z.一般无特殊说明,都是右手坐标系. 右手坐标系的旋转正方向:从轴的正方向看向原点,逆时针方向即是旋转正向.或者,伸出右手,拇指指 ...

  4. 姿态角(Euler角):yaw pitch roll

    姿态角和自由度相关联: 姿态角在控制,机械领域广泛使用: 这里,简单了解一下: 什么是姿态角(Euler角)? yaw,pitch,roll的识别? 步骤阅读 百度经验:jingyan.baidu.c ...

  5. YAW PITCH ROLL 定义

     百度上居然搜不到俯仰滚转和偏航的定义,可见大家的浮躁了,没事摇一摇都不干正事了,整理了一下资料,公布给大家. 要了解飞机姿态,需要首先知道什么是地面坐标系和机体坐标系. ■地面坐标系( eart ...

  6. 航空摄影测量中yaw,pitch,roll

    在航空摄影测量中,pitch, yaw, roll含义如下图: pitch是围绕X轴旋转,也叫做俯仰角: yaw是围绕Y轴旋转,也叫偏航角: roll是围绕Z轴旋转,也叫翻滚角: yaw 旋转     ...

  7. HeadPose Estimation头部姿态估计头部朝向(Android)

    HeadPose Estimation头部姿态估计头部朝向(Android) 目录 HeadPose Estimation头部姿态估计头部朝向(Android) 0.前言 1.HeadPose 2.p ...

  8. 姿态估计1-05:FSA-Net(头部姿态估算)-训练测试数据制作-预处理代码讲解

    以下链接是个人关于FSA-Net(头部姿态估算) 所有见解,如有错误欢迎大家指出,我会第一时间纠正.有兴趣的朋友可以加微信:17575010159 相互讨论技术.若是帮助到了你什么,一定要记得点赞!因 ...

  9. Hopenet人脸姿态估计

    Fine-Grained Head Pose Estimation Without Keypoints-论文解读 代码 论文 Abstract 传统的头部姿态计算方法是通过人脸上关键点求解二维到三维对 ...

  10. yaw pitch row欧拉角理解

    飞行中的飞机可以在三维空间中自由旋转 --------------------------------------------------------------------------------- ...

最新文章

  1. C++关键字积累——持续更新
  2. 如何获取Oracle数据库中某表及索引、约束、触发器、对象权限的创
  3. select选择框变得可以输入、编辑
  4. WIN10 开启右键 命令提示符
  5. java 模拟qq空间登陆_java最新完美实现模拟登录QQ登录QQ空间获取说说
  6. Spring+Hessian搭建远程方法调用
  7. LinkedList 方法知识点
  8. vue极致打包_vue 各种打包坑
  9. 【MySQL】MySQL 中的 dual表
  10. xcodebuild -exportArchive -allowProvisioningUpdates
  11. Win7任务栏图标大小调整为等宽
  12. 最新!中科院分区发布2021年期刊重大调整
  13. linux rzsz安装
  14. 计算机对用户的操作做出反应,云南省计算机二级VB考试真题题库
  15. 13款国内外知名PHP集成环境的优缺点分析,PHP集成环境推荐、PHP绿色集成环境推荐
  16. 520,张一鸣宣布卸任字节跳动CEO!
  17. 5G学习笔记之NG-RAN系统架构(2)
  18. 喜羊羊与灰太狼java_java swing实现喜羊羊与灰太狼推箱子游戏附带视频开发教程...
  19. 关于前端video标签视频无法拖动进度条快进问题(Django)
  20. 学人工智能好就业吗?AI职业前景分析

热门文章

  1. 长沙理工大学c语言编程题,长沙理工大学2014年上期期末c语言编程题库.doc
  2. CEC2018:动态多目标测试函数DF1~DF5的PS及PF
  3. 使用mingw编译log4cpp--问题整理
  4. 小米Mi 11手机电路原理图+主板元件位号图
  5. 数据通信原理_卫星通信系统原理什么 卫星通信系统原理介绍【图文】
  6. Android中的内存泄露问题
  7. 一位平凡毕业生的大学四年
  8. 深扒洪恩教育招股书:研发含金量低,三年亏3亿,池宇峰再闯美股
  9. Chapter 2 大规模MIMO系统信息论基础及信道容量分析
  10. vfp邮件.html格式,VFP 实现自动发邮件代码