如何通过图像消失点计算相机的位姿?
Posted Being_young
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过图像消失点计算相机的位姿?相关的知识,希望对你有一定的参考价值。
论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。
基础知识
本文主要是个人在学习过程中的笔记和总结,如有错误欢迎留言指出。也欢迎大家能够通过我的邮箱与博主进行交流或者分享一些文章和技术博客。
首先我们来学习一下在自动驾驶领域中常见的坐标系之间的关系,如图所示:
自动驾驶中坐标系的一般定义如图所示
默认摄像头的坐标系对应于车辆的“右”、“下”和“前”方向
这里首先描述一下如何在世界坐标和相机坐标之间进行变换,但上述任意两个参考帧之间的变换也适用相同的数学原理,世界坐标系中的点(Xw,Yw,Zw)T 通过旋转矩阵R(更精确地说,R∈SO(3))和平移向量t映射到相机坐标系中的点∈R3×3
再介绍旋转的偏航角(yaw)、俯仰角(pitch)和滚动(roll)的概念:实际的相机帧和默认相机帧之间的一般旋转可以通过以下方式描述:
首先围绕Zd轴旋转一个角度(称为滚动角度),然后旋转另一个角度(称为俯仰角度)围绕Xd轴,最后是围绕Yd轴的另一个角度(称为偏航角)。如下图所示:
如果我们将滚动角(roll)的余弦和正弦分别定义为cp和cr,则滚动旋转矩阵为
定义俯仰角(pitch)的余弦和正弦为cp和sp,偏航角(yaw)的余弦和正弦为cy和sy,俯仰和偏航旋转矩阵为
那么最终的旋转矩阵则可以通过横滚、俯仰和偏航矩阵相乘表示为
消失点计算俯仰角和偏航角
我们知道,车辆行驶轨道或车道线基本上是平行的,但是,如果我们用相机拍摄轨道或道路的图像,我们会发现图像中的轨道线或车道并不平行。这些线在图像中相交的点称为消失点。
使用这种消失点方法来计算相机位姿,实际上我们只能恢复相机的偏航和俯仰,从直觉上讲,消失点方法无法恢复横滚角和平移,因为消失点不受这两种方法的影响!
默认的车辆俯仰角和偏航角横滚角的定义
不同roll角的图像可视化:
roll =20度
roll =0度
roll =-20度
我们知道在世界坐标系中,这些平行线永远不会相交,所以我们说消失点在无穷远处,假设汽车的前进方向与车道线对齐,我们可以说车道线的相交点的坐标的Z=∞, 其中(X,Y,Z)是道路参考坐标系中一点的坐标。
我们刚刚所做的假设非常非常重要:车辆与车道对齐,车道笔直,然后,图像中车道线的交点(消失点)将为我们提供有关摄像头安装的位姿信息,即摄像头相对于车辆的方向,否则,它只能告诉我们车辆相对于车道线的方向。
公式推导
首先根据相机的投影方程
因为这是齐次坐标中的一个方程,我们可以将两边乘以1/Z,并将这个数字换算到左边的λ中:
如果让Z为无穷大,则得到图像空间中消失点的坐标(u,v):
我们定义p∞=(u,v,1)T作为消失点,我们将变换矩阵的分量表示为
现在,将变换矩阵与(0,0,1,0)T相乘将消除第1、2和4列,只剩下第3列,其值为Rxz、Ryz和Rzz。让我们用r3表示该列。然后
旋转矩阵的列始终是长度为1的向量(单位向量),因此∥r3∥=1.因此,λ等于
最终得到r3 表达式
用于相机位姿估计的消失点方法的思想如下:首先确定图像中的消失点(u,v),因为该点是车道线相交的点,这就产生了p∞=(u,v,1)T,由于我们知道内参矩阵K,我们可以使用上面的公式计算r3。当然,r3只是旋转矩阵三列中的一列,但正如计算结果r3显示的,其包含足够的信息来确定旋转的偏航角和俯仰角,如果我们假设滚动角为零(当然是近似值),我们是可以计算整个旋转矩阵的。
我们对r3进行进一步的推导和分解
根据横滚、俯仰和偏航矩阵表达相机的旋转矩阵
此旋转矩阵的第三列为
如果我们确定图像中的消失点(u,v),我们就知道p∞=(u,v,1)T,因此我们可以计算r3=(Rxz,Ryz,Rzz)T的值,根据上面r3的公式,对于α和β,通过求解等式r3,我们得到:
因此,我们从消失点推导出了俯仰角和偏航角!
资源
三维点云论文及相关应用分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)
PCL中outofcore模块---基于核外八叉树的大规模点云的显示
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:
如果你对本文感兴趣,请点击“原文阅读”获取知识星球二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
分享及合作:群主微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。
点一下“在看”你会更好看耶
以上是关于如何通过图像消失点计算相机的位姿?的主要内容,如果未能解决你的问题,请参考以下文章