前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何通过图像消失点计算相机的位姿?

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

作者头像
点云PCL博主
发布于 2022-01-27 08:21:02
发布于 2022-01-27 08:21:02
4.7K0
举报
文章被收录于专栏:点云PCL点云PCL

基础知识

本文主要是个人在学习过程中的笔记和总结,如有错误欢迎留言指出。也欢迎大家能够通过我的邮箱与博主进行交流或者分享一些文章和技术博客。

首先我们来学习一下在自动驾驶领域中常见的坐标系之间的关系,如图所示:

自动驾驶中坐标系的一般定义如图所示

默认摄像头的坐标系对应于车辆的“右”、“下”和“前”方向

这里首先描述一下如何在世界坐标和相机坐标之间进行变换,但上述任意两个参考帧之间的变换也适用相同的数学原理,世界坐标系中的点(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,我们得到:

因此,我们从消失点推导出了俯仰角和偏航角!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于先验时间一致性车道线的IPM相机外参标定
文章:Online Extrinsic Camera Calibration for Temporally Consistent IPM Using Lane Boundary Observations with a Lane Width Prior
点云PCL博主
2022/02/10
1.9K0
基于先验时间一致性车道线的IPM相机外参标定
SensorX2car:在道路场景下的完成传感器到车体坐标系标定
文章:SensorX2car: Sensors-to-car calibration for autonomous driving in road scenarios
点云PCL博主
2023/08/21
9200
SensorX2car:在道路场景下的完成传感器到车体坐标系标定
泊车必备 | 一文详解AVM环视自标定
AVM环视系统中相机参数通常是汽车出厂前在标定车间中进行的离线阶段标定。很多供应商还提供了不依赖于标定车间的汽车自标定方法。自标定指的是:汽车在马路上慢速行驶一段路,利用车道线等先验信息标定出相机的外参。
3D视觉工坊
2023/04/30
3.2K0
泊车必备 | 一文详解AVM环视自标定
基于消失点的相机自标定(1)
标题:Camera calibration using two or three vanishing points
点云PCL博主
2020/12/17
4.1K0
基于消失点的相机自标定(1)
【教程】详解相机模型与坐标转换
由于复制过来,如果有格式问题,推荐大家直接去我原网站上查看: 相机模型与坐标转换 - 生活大爆炸
小锋学长生活大爆炸
2024/05/25
7890
【教程】详解相机模型与坐标转换
关于飞机姿态角的学习分享
飞机姿态角是按欧拉概念定义的,故亦称欧拉角。飞机姿态角是由机体坐标系与地理坐标系之间的关系确定的,用航向角、俯仰角和横滚角三个欧拉角表示。
用户7053485
2020/03/19
6.8K0
三维空间的刚体运动
一个刚体在三维空间中的运动如何描述? 我们知道是由旋转加平移组成的,平移很简单,但是旋转有点麻烦。 三维空间的刚体运动的描述方式:旋转矩阵、变换矩阵、四元数、欧拉角。 刚体,不光有位置,而且还有姿态。相机可以看成是三维空间的一个刚体,位置指的就是相机在空间处于哪个地方?而姿态指的是相机的朝向(例如:相机位于(0, 0,0)点处,朝向正东方)但是这样去描述比较繁琐。
Albert_xiong
2021/06/21
1.2K0
三维空间的刚体运动
从零开始学习自动驾驶系统(八)-基础知识之车辆姿态表达
辆位置和姿态是自动驾驶中的一个基础问题,只有解决了车辆的位置和姿态,才能将自动驾驶的各个模块关联起来。车辆的位置和姿态一般由自动驾驶的定位模块输出。
YoungTimes
2022/04/28
2.9K0
从零开始学习自动驾驶系统(八)-基础知识之车辆姿态表达
自动驾驶入门之视觉定位坐标转换
  世界坐标系是在环境当中选定的一个三维坐标系,用于描述环境中任何物体的位置,符合右手坐标系。相机坐标系的原点位于镜头的光心,x,y轴分别与相机的边缘平行,z轴为垂直于成像平面的光轴。世界坐标系到相机坐标系属于刚体变换,即只发生平移及旋转,属于3D到3D的转换。
猫叔Rex
2020/06/30
2.3K0
自动驾驶入门之视觉定位坐标转换
四旋翼姿态解算之理论推导
对于每个像我一样入坑四轴飞行器不久的新手来说,最初接触也颇为头疼的东西之一就是四轴的姿态解算。由于涉及较多的数学知识,很多人也是觉得十分头疼。所以,我在这里分享一些我学习过程中的笔记和经验,以便大家学习。
努力努力再努力F
2018/09/11
1.4K0
四旋翼姿态解算之理论推导
Self-Driving干货铺4:坐标转换
如下图所示,无人车上有很多传感器,每个传感器都部署在车上不同的位置,但传感器采集的数据都是基于自身坐标系的数据。
Defry
2022/04/19
6470
Self-Driving干货铺4:坐标转换
基于语义分割的相机外参标定
文章:Extrinsic Camera Calibration with Semantic Segmentation
点云PCL博主
2022/09/13
9040
基于语义分割的相机外参标定
基于OpenCV的位姿估计
单应性是一种平面关系,可将点从一个平面转换为另一个平面。它是一个3乘3的矩阵,转换3维矢量表示平面上的2D点。这些向量称为同质坐标,下面将进行讨论。下图说明了这种关系。这四个点在红色平面和图像平面之间相对应。单应性存储相机的位置和方向,这可以通过分解单应性矩阵来检索。
小白学视觉
2020/11/05
1.8K0
基于OpenCV的位姿估计
激光雷达和相机联合标定
本次推送给大家带来的是一种激光雷达和相机的外参标定方法,主要利用了ROS中 dynamic_reconfigure 功能包提供的动态配置参数功能(代码在最后)。
3D视觉工坊
2020/12/11
1.6K0
激光雷达和相机联合标定
MLINE-VINS:基于光流曼哈顿与线特征的鲁棒单目视觉惯性SLAM
文章:MLINE-VINS: Robust Monocular Visual-Inertial SLAM With Flow Manhattan and Line Features
点云PCL博主
2025/03/19
990
MLINE-VINS:基于光流曼哈顿与线特征的鲁棒单目视觉惯性SLAM
【SLAM】视觉SLAM:一直在入门,从未到精通
上周的组会上,我给研一的萌新们讲解什么是SLAM,为了能让他们在没有任何基础的情况下大致听懂,PPT只能多图少字没公式,这里我就把上周的组会汇报总结一下。
小白学视觉
2022/05/22
1.9K1
【SLAM】视觉SLAM:一直在入门,从未到精通
基于自适应逆透视变换的车道线SLAM
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
点云PCL博主
2021/09/15
2.2K0
基于自适应逆透视变换的车道线SLAM
MPU6050姿态解算2-欧拉角&旋转矩阵
注:本篇中的一些图采用横线放置,若观看不方便,可点击文章末尾的阅读原文跳转到网页版
xxpcb
2020/08/26
3.5K0
MPU6050姿态解算2-欧拉角&旋转矩阵
第4章-变换-4.2-特殊矩阵变换和运算
在本节中,将介绍和导出对实时图形必不可少的几个矩阵变换和运算。首先,我们介绍了欧拉变换(连同它的参数提取),这是一种描述方向的直观方式。然后我们谈到从单个矩阵中反演一组基本变换。最后,导出了一种方法,可以绕任意轴旋转实体。
charlee44
2022/01/04
3.6K0
第4章-变换-4.2-特殊矩阵变换和运算
坐标转换与姿态描述
为了能够科学的反映物体的运动特性,会在特定的坐标系中进行描述,一般情况下,分析飞行器运动特性经常要用到以下几种坐标系统1、大地坐标系统;2、地心固定坐标系统;3、本地北东地坐标系统;4、机载北东地坐标系统;5、机体轴坐标系统。 其中3、4、5在我们建模、设计控制律时都是经常需要使用的坐标系,描述物体(刚体)位姿信息的6个自由度信息都是在这三个坐标系中产生的
小飞侠xp
2019/10/13
2.5K0
相关推荐
基于先验时间一致性车道线的IPM相机外参标定
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档