IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度相机Kinect2.0三维点云拼接实验(三) -> 正文阅读

[人工智能]深度相机Kinect2.0三维点云拼接实验(三)

概要

??Kinect2.0是微软推出的一款RGB-D相机,它即支持普通相机的拍摄,也支持脉冲测量深度信息。本系列文章基于该传感器给出基本的环境搭建、原理讲解、点云数据捕捉、三维点云拼接等开发源码,当然也会总结经验帮大家排雷避坑。本小节介绍相机外部参数相关的理论,为后续文章打基础。

刚体空间旋转的描述

??在深度相机Kinect2.0三维点云拼接实验(一)的式(6)中, P P P是在相机坐标系下的坐标,由于拼接的两幅图像是相机不同的姿态进行获取的,所以在进行拼接的时候需要通过相机的姿态信息把图像变换到同一坐标系下进行处理,所以需要一种数据格式用来描述相机坐标系的变换。描述相机在三维空间运动的数据格式有很多种比如:旋转矩阵、旋转向量、欧拉角、四元数等。这里讨论计算机易于存储的四元数格式和易于计算的旋转矩阵格式以及它们之间的相互变换,为之后的点云拼接作铺垫。

旋转矩阵

??旋转矩阵是在乘以一个向量的时候有改变向量的方向但不改变大小的效果并保持了手性的矩阵。由于推导过程比较繁琐,这里我们直接给出三维空间内绕xyz三个轴旋转时的旋转矩阵,如下图所示:
三维旋转矩阵
如果是反向旋转,就是相应旋转矩阵的逆矩阵,由于旋转矩阵是正交矩阵,也就是相应的旋转矩阵的转置矩阵。坐标系的正向旋转实际就是该坐标系里的向量绕相应的轴做反向旋转,根据上面的结论,也就是三个向量的旋转矩阵的转置矩阵。坐标系的反向旋转时正向旋转下的转置,与向量绕轴正向旋转一样。

PS: 旋转矩阵的推导,推荐3维旋转矩阵推导与助记这篇文章讲的很棒!

欧拉角

欧拉角也是一种表示三维旋转的描述方法,欧拉角的计算需要借助旋转矩阵,它的描述方式是按照绕三个轴的旋转的角度进行表示,设绕 x , y , z x,y,z x,y,z轴的旋转角度分别为 α , β , γ \alpha,\beta,\gamma α,β,γ,假设描述一个刚体旋转按照 X Y Z XYZ XYZ次序的一组欧拉角为 ( α 0 , β 0 , γ 0 ) T (\alpha_{0}, \beta_{0}, \gamma_{0})^T (α0?,β0?,γ0?)T,同理,别的次序也一样,一共有六种次序,即:XYX、XYZ、YXZ、YXY、ZXY、ZYX。一般我们确定下描述的次序,那么就可以用三个角度来描述刚体的旋转。

四元数

旋转矩阵用矩阵的方式描述旋转便于计算机运算,但是如果按照旋转矩阵存储则会显得冗余,考虑到单位复数可以描述二维平面的旋转,那么在三维空间中可以用类似于复数的形式描述旋转,即单位四元数,它只有四个数即可描述刚体的旋转信息,所以非常适合计算机存储。四元数的格式为:
q ? = w + x i + y j + z k \vec{q} = w+xi+yj+zk q ?=w+xi+yj+zk

假设某个旋转绕单位向量 n ? = ( x 0 , y 0 , z 0 ) T \vec{n}= (x_0,y_0,z_0)^T n =(x0?,y0?,z0?)T进行了角度为 的旋转,那么用四元数可以表示为:

q ? = ( c o s θ 2 , n x s i n θ 2 , n y s s i n θ 2 , n z s i n θ 2 ) T \vec{q} = (cos\frac{\theta}{2},n_xsin\frac{\theta}{2},n_yssin\frac{\theta}{2},n_zsin\frac{\theta}{2})^T q ?=(cos2θ?,nx?sin2θ?,ny?ssin2θ?,nz?sin2θ?)T

刚体空间平移的描述

刚体空间的平移可以用方向+距离的方式进行描述,在 O ? x y z O-xyz O?xyz空间中,用一个向量 n ? = ( x 0 , y 0 , z 0 ) \vec{n}= (x_0,y_0,z_0) n =(x0?,y0?,z0?)的方向表示平移的方向,用它的模长表示平移的距离,即距离 L = x 0 2 + y 0 2 + z 0 2 L=\sqrt{{x_0}^2+{y_0}^2+{z_0}^2} L=x0?2+y0?2+z0?2 ?

总结

?? 获取相机外部参数的传感器有很多,如里程计、陀螺仪等,只有获取相机外参我们才知道拍摄的角度,这在后面的图像拼接非常重要。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:47:25  更:2022-03-13 21:48:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:43:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码