摄影测量与计算机视觉坐标系统转换和一些基本量的关系
本博客试图用一些最直观,形象,实例的方式解释相关概念
对于一个摄影测量学(photogrammetry)或者三维计算机视觉(3D computer vision)的学习者来说,第一个要接触的应该就是各种坐标系之间的转换,摄影测量领域有一套自己的坐标系统规则,计算机视觉也有一套自己的规则。下面就让我们看看到底它们之间是如何转换的?摄影测量中的旋转欧拉角构成的旋转矩阵 RR (rotation),基线 (baseline) BB 和计算机视觉中的旋转矩阵 (camera rotation) RR ,平移向量 (camera translation) TT ,相机位置 (camera position) CC 之间到底是什么关系?
为了回答这些问题,首先我们给出两个非常直观的例子来理清楚三维空间中的旋转问题.
当谈及到空间中的旋转,我们需要特别注意两个问题:
(1)旋转的方向,即从 AA 旋转到 BB 还是从 BB 旋转到 AA;
(2)旋转是顺时针 (clockwise) 还是逆时针 (counter-clockwise).
当然,它们都是相对的关系,顺时针从 AA 到 BB 就是逆时针 从 BB 到 AA 。好了,说的这么抽象,看一个简单的二维坐标系的例子:
假设 PP 点的在 O−XYO-XY 坐标系下的坐标是 (1,1)(1,1),那么 PP 点在 o1−XYo_1-XY 坐标系下的坐标是多少呢?从图中我们可以直接看出是 (1,−1)(1,-1)。但是从理论上是如何计算出来的呢?我们知道 PP 点在 o1−XYo_1-XY 下的坐标是将 o−XYo-XY 坐标系逆时针旋转 π2\frac{\pi}{2} 得到的,这里需要注意的是,在旋转坐标系的时候,PP 点并没有变化,我们要得到的仅仅是 PP 点在不同坐标系下的表示,那么如何用矩阵来表示这一过程呢?
这里,我们首先直接给出二维坐标系顺时针旋转 θ\theta 的公式(这里就不做推导,有兴趣可以自己推导,也很简单)。
\begin{bmatrix}cos\theta & -sin\theta \\sin\theta & cos\theta \end{bmatrix}
所以上述旋转过程用矩阵表示即为:
\begin{bmatrix}0 & -1 \\1 & 0 \end{bmatrix}^{-1}\begin{bmatrix}1 \\1 \end{bmatrix}=\begin{bmatrix}1 \\-1 \end{bmatrix}
因为是逆时针旋转与公式中的顺时针刚好相反,所以要用逆,用转置也可以,对于旋转矩阵有这样的性质,就是: RRT=IRR^T=I,所以旋转矩阵的逆和转置是一样的。
上面给的是一个二维坐标下的旋转问题,当扩展到三维坐标,会稍稍复杂一些,会涉及到旋转轴的顺序。在这里统一使用欧拉角(Euler Angle)的表示方法,三维空间表示还有其他表示方法(如,四元数(Quaternion)和轴角(Axis-Angle)表示法),这里先不做讨论。这里统一按顺时针绕 X(ω)−Y(ϕ)−Z(κ)X(\omega)-Y(\phi)-Z(\kappa) 的顺序(注意,这里的角是从相机坐标系旋转到坐标系的角)。这个一般是国外摄影测量采用的标准,而国内摄影测量的标准采用的为 Y(ϕ)−X(ω)−Z(κ)Y(\phi)-X(\omega)-Z(\kappa),而且绕 YY 轴为逆时针,XX和 ZZ 轴还是顺时针旋转。这篇文章中,均采用的是国际摄影测量标准。
如图,假设点 O1O_1 在 O−XYZO-XYZ 坐标系下的坐标为 (1,0,0)(1,0,0),那么点 O1O_1 在 O1−X1Y1Z1O_1-X_1Y_1Z_1 下的坐标为多少呢?从图中可以看出是 (0,0,0)(0,0,0),如果用矩阵的形式该如何表示呢?这里,我们也先给出三维坐标系下,绕旋转轴顺时针旋转的公式:
R_x(\omega) =\begin{bmatrix}1 & 0 & 0 \\0 & cos\omega & -sin\omega \\0 & sin\omega & cos\omega\end{bmatrix}
R_y(\phi) =\begin{bmatrix}cos\phi & 0 & sin\phi \\0 & 1 & 0 \\-sin\phi & 0 & cos\phi\end{bmatrix}
R_z(\kappa) =\begin{bmatrix}cos\kappa & -sin\kappa & 0 \\sin\kappa & cos\kappa & 0 \\0 & 0 & 1\end{bmatrix}
所以最终的旋转矩阵为:
R=R_z(\kappa)R_y(\phi)R_x(\omega)=\begin{bmatrix}r_{00} & r_{01} & r_{02} \\r_{10} & r_{11} & r_{12} \\r_{20} & r_{21} & r_{22}\end{bmatrix}
\begin{align} r_{00} &= cos\phi \cdot cos\kappa \\ r_{01} &= -cos\phi \cdot sin\kappa \\ r_{02} &= sin\phi \\ r_{10} &= cos\omega \cdot sin\kappa + sin\omega \cdot sin\phi \cdot cos\kappa \\ r_{11} &= cos\omega \cdot cos\kappa - sin\omega \cdot sin\phi \cdot sin\kappa \\ r_{12} &= -sin\omega \cdot cos\phi \\ r_{20} &= sin\omega \cdot sin\kappa - cos\omega \cdot sin\phi \cdot cos\kappa \\ r_{21} &= sin\omega \cdot cos\kappa + cos\omega \cdot sin\phi cdot sin\kappa \\ r_{22} &= cos\omega \cdot cos\phi \end{align}
摄影测量与计算机视觉坐标系统转换和一些基本量的关系相关推荐
- 摄影测量与计算机视觉--相机模型与成像几何
前言 总体而言,摄影测量与计算机视觉在相机模型和成像几何上有许多的共通之处,尤其是在CCD/CMOS普及之后两者的差别逐渐变小.然而由于摄影测量发源于胶片相机时代并且摄影测量通常是俯视拍摄(即利用航空 ...
- 摄影测量学和计算机视觉,科学网—摄影测量与计算机视觉——系列1 光与视觉 - 季顺平的博文...
摄影测量与计算机视觉 (1)光与视觉 1.要有光 137亿年前,婴儿宇宙仅仅存在了三分钟.这是一个核熔炉,空间充满了疯狂的等离子体.电磁力已从超力中分离出来:作为电磁力的信使,光子,随之诞生.然而,在 ...
- 谷歌地图如何将地球经纬度坐标系统转换成平面2D坐标系统
一.赤道 二.本初子午线 三.经纬坐标如何将地球经纬度坐标系统转换成平面2D坐标的? 经纬度坐标转bai平面二维du坐标,是通过坐标投影zhi,将经dao纬度的曲面坐zhuan标值,投影变换为平面sh ...
- SEO索引量和收录量的关系
对一些初学SEO的来说,可能还不知道SEO索引量和收录量的关系吧,今天深圳智汐科技小编xxh来给大家简单的介绍这两个专业术语的关系. 百度收录量作为SEO的参考依据,用site指令查询到的收录条数就是 ...
- 股票量价关系基础知识5
图解各阶段量价关系:价涨量增 价涨量增是指股价上涨的同时成交量也放大.它是最常见的多头进攻模式,说明价量配合良好,反映投资者买卖情绪高涨.成交量放大说明有资金流入,做多力量增强,后市看涨. 注意:1. ...
- 关于百度指数和实际搜索量之间关系的调查
相信绝大多数的 SEO人员都会关键词查百度指数的习惯,正如和你们一样,漂石也是一样.通常只要关键词的检索量还可以的情况下百度指数都会给与一定的数值,那么这个数值和关键词的实际的搜索量之间呈什么关系?关 ...
- 股票量价关系基础知识7----图解各阶段量价关系:价涨量缩
图解各阶段量价关系:价涨量缩 价涨量缩是指股价上涨,成交量却萎缩的一种价量背离走势.它通常反映上涨力道不足,预示股价可能反转向下. 一.上涨初期的价涨量缩 (一)形态分析 股价经过一轮下跌后止跌回升, ...
- 摄影测量与计算机视觉--几何差异和转换
随着计算机视觉的发展,摄影测量和计算机视觉逐渐交叉融合,两个不同学科之间的差异逐渐变小.但是在此处,博主仍旧想记录一下两个学科在几何关系描述上的一些本质差异. 一.坐标的几何表示 首先,对于两个领域来 ...
- 摄影测量与计算机视觉--历史与发展
摄影测量学是测绘领域中使用二维影像进行三维测量的一个学科:而计算机视觉则是利用影像形成对周围世界的认识,其中一个重要的研究课题就是恢复影像中的三维信息.因此可以发现,两个学科的研究目标是具有一定程度的 ...
最新文章
- Ubuntu 下面部署Django 项目
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- HTML+CSS+JS实现月球上行走的宇航员网页设计
- mysql5.6 二进制免编译安装
- world: 对比两个文档
- Mysql mysqld_safe启动与myslqd启动坑
- java linux socket编程_linux下socket编程实例?javasocket编程流程?java socket编程实例代码讲解...
- HTML中嵌入视频和音频代码
- HTML页面楷体gb2312字体,楷体gb2312
- c语言 步进电机 程序,两相5、6线步进电机C语言程序
- Win10smb2.0共享至android速度慢问题解决
- excel信息表怎么转换成word形式?在线免费转换2步完成
- 伪指令dd 和 操作符dup
- 关于使用Python——写最佳体重测试
- 分布式计算原理之分布式协调与同步(1)——分布式事务
- Paper之ICASSPIEEEAUDIOSPE:2018~2019年ICASSP国际声学、语音和信号处理会议IEEE-ACM T AUDIO SPE音频、语音和语言处理期刊最佳论文简介及其解读
- 英特尔携手百度飞桨,共创软硬一体人工智能生态
- 劝人自杀情绪多变,人工智能真不是个“东西”
- 干货!JVM 基础面试题总结(持续更新)
- QT程序启动画面gif动画有静止背景的解决方法
热门文章
- CVE-2021-1732:Windows Win32k提权
- page_fault_in_nonpaged_area(win32k.sys)错误解决方法
- 大学生毕业前必须做的20件事
- 驾考计算机播报原理,驾考科二电脑语音提示
- 我方卧底发自美团的真实Android资料
- tf.train. string_input_producer QueueRunner add_queue_runner Coordinator start_queue_runners
- PowerPC简介及编程
- 最新的WidowsXP快捷键操作
- 每月成长一步步_如何搭建个人云盘(NextCloud搭建篇,适用于Ubuntu)
- 百度网盘配合插件脚本使用IDM下载设置