分享

如何通过图像消失点计算相机的位姿?

 点云PCL 2021-11-22

论文阅读模块将分享点云处理,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目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多