投影矩阵和内外参到底是啥关系?

公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

投影矩阵

投影矩阵能够实现3D点到2D坐标,结合和内参K和外参T,可以表达为P=K[R|t] 我们知道K是3*3的矩阵,我们在内参的基础上增加一列将其变成3*4矩阵。在ROS中我们将投影矩阵定义为内参加上一个baseline的位移。所以投影矩阵的左边3*3的矩阵是相机内参,所以如果是双目的左相机的投影矩阵,他的投影矩阵的最后一列的tx,ty就是0。

当使用x=P*X进行投影时,得到的x是3*1维,此时最后一位不一定是1,一定要进行归一化,即x中的值全部除以最后一位。此时的x和y才能做为图像上的点。

根据ROS中对投影矩阵的定义:http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/CameraInfo.html

根据约定此矩阵表示处理过的,也就是经过矫正的图像内参矩阵,矩阵的左上角3*3的部分是矫正图像的常规内参矩阵。

对于单目相机来说,它通过焦距 fx′、fy′和主点 cx′、cy′将相机坐标系中的 3D 点投影到 2D 像素坐标中。这些参数可能与矩阵K中的值不同。对于双目相机来说,第四列 [Tx Ty 0]′表示第二个相机光心在第一个相机坐标系中的位置。通常假设 Tz=0即两个相机位于同一立体图像平面。第一个相机的 Tx=Ty=0,对于水平排列的双目相机的右侧(第二个)相机,Ty=0,且 Tx=−fx′×B,其中 B 是两个相机之间的基线距离。

给定一个 3D 点 [X Y Z]′,该点在校正图像上的投影 (x,y)通过以下公式计算:

[u v w]' = P * [X Y Z 1]'

 x = u / w

 y = v / w

投影矩阵左上角3*3矩阵和内参值不一样的原因

理论上投影矩阵左上角3*3矩阵和内参值是应该一样的,但实际场景中投影矩阵 (Projection Matrix, P) 和相机内参矩阵 (K) 的左上角 3×3 部分在一些场景中可能存在差异,这是由以下几种原因导致的,且有理论依据和推导。

1

校正过程的影响

在相机标定和图像校正 (rectification) 过程中,相机内参矩阵 K是从原始相机参数标定得到的,用于描述未校正图像中的内参。而校正后图像的内参通常会被调整,以适应校正后的坐标系。未校正图像的内参矩阵 K:

其中 fx,fy是焦距,cx,cy是主点位置,ss 是像素的非正交系数。校正图像的投影矩阵左上角部分(即校正后的内参):校正图像通常假设像素是正交的,因此会调整 s=0零畸变),主点位置和焦距也可能稍有变化。

这种调整的目标是将畸变校正后的图像变换到一个理想化的相机模型,从而简化后续处理。

2

双目相机的基线校正

对于双目相机,投影矩阵 P包含了内参矩阵和外参(平移)的结合部分:

这里的 K 不一定等于原始的内参矩阵,因为:

  (1) fx′和 fy可能被调整以适应校正后的像素单位。

  (2) cx′和 cy′可能被调整以匹配新的校正坐标中心。

对于右相机,额外的平移 Tx=−fx′×B(B为基线)会被包含在投影矩阵中。

3

坐标系变换

投影矩阵的推导涉及多个坐标系转换:

(1)相机坐标系 → 图像平面坐标系,使用内参矩阵 K

u,v 是像素坐标,Xc,Yc,Zc是相机坐标。

(2)世界坐标系 → 相机坐标系:

R 是旋转矩阵,t是平移向量。

将这两步结合,得到投影矩阵 P:

校正后的图像因为引入新的虚拟坐标系,从而导致内参矩阵变化。

在立体视觉中,投影矩阵的调整有助于满足校正图像的以下目标:

  • 使左右相机的图像平面严格对齐(即同一水平线上的像素具有相同的垂直坐标)。

  • 简化双目匹配算法的计算,保证左右图像是校正后的理想化模型。

这些目标可能需要在校正过程中对内参矩阵进行优化,因此 P[1:3,1:3]和原始 K 会有所不同。

4

实例对比

未校正图像内参矩阵 K:

校正图像的投影矩阵 P:

这里的差异可能来源于焦距和主点的微调。

所以投影矩阵的左上角 3×3和内参矩阵可能不同,主要是因为校正、坐标系变换以及双目相机的调整。理论上,这种差异可以通过相机标定、图像校正和投影矩阵的推导来解释,是为了适应新的图像坐标系或简化特定应用需求而设计的。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

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

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

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

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

SLAM和AR综述

常用的3D深度相机

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

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

Kimera实时重建的语义SLAM系统

易扩展的SLAM框架-OpenVSLAM

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云PCL公众号博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值