一、相机
1、双目相机的D、P、K、R矩阵是相机标定时得到的一组重要参数,它们分别代表以下含义:
-
D矩阵:畸变矫正参数矩阵。它包含了相机图像坐标系下的径向畸变和切向畸变系数,用于将畸变像素坐标转化为无畸变的像素坐标。对每个相机而言都有一个D矩阵。
-
P矩阵:投影矩阵。它包含了左右两个相机的内参数和外参数信息,可以把3D空间中的点映射到左右两个相机图像平面上的像素坐标。对每个相机而言都有一个P矩阵。
-
K矩阵:内参矩阵。它描述了相机光轴、焦距、光心等内部参数。对每个相机而言都有一个K矩阵。
-
R矩阵:旋转矩阵。它描述了左相机坐标系到右相机坐标系的旋转关系。也就是说,当我们在左相机拍摄一张图像时,R矩阵可以将同一个场景在右相机下的对应点的坐标姿态与左相机下的对应点的坐标姿态联系起来。
-
相机的投影矩阵P可以通过相机参数来计算得到。一般来说,相机参数包括内参和外参两个部分,其中内参表示相机的内部参数,如焦距、像素大小等,而外参则表示相机在空间中的位置和朝向。
对于透视投影,相机的投影矩阵可以使用以下公式进行计算
P = K [R | t]
其中,
K
是内参矩阵,R
是旋转矩阵,t
是平移向量。将它们组合成外参矩阵[R|t]
,然后再乘以内参矩阵K
,就得到了相机的投影矩阵P
。如果相机已经标定好了,那么它的内参矩阵和外参矩阵都可以通过标定得到。如果没有标定,则需要根据实际情况自行估计这些参数。
二、计算相机运动
- 单目相机:只知道2D像素坐标,根据两组2D点估计运动。使用对极几何解决。
- 相机为双目、RGB-D时,或者获取了距离信息,那么问题就是根据两组3D点估计运动。通常用ICP求解。
- 若一组为3D,一组为2D,即得到一些3D点和它们在相机的投影位置,也能估计相机运动,通过PnP求解。
对极几何2D-2D
对极约束:
对极约束简洁地给出了两个匹配点的空间位置关系。相机位姿估计问题简化为一下两步:
- 根据配对点的像素位置求出E或者F。
- 根据E或者F 求出R,t.
相机内参已知,求解E更简单。
根据已经求出的本质矩阵E,恢复出相机的运动R,t. 可通过奇异值(SVD)分解得到。
从E分解到R, t的过程中,如果相机发生纯旋转,导致t为0,那么,得到的E也将为0,这将导致无法求解R。可以依靠H(单应矩阵)求取旋转,但仅有旋转时,无法用三角测量估计特征点的空间位置。
单目初始化不能只有旋转,必须要有一定长度的平移。
在单目SLAM中,需要通过三角测量(Triangulation)的方法估计地图点的深度。(必须有平移)
三角测量:通过对不同位置同一个路标点进行观察,从观察到的位置推断路标点的距离。
提高三角化的精度有两种办法:
- 提高特征点的精度,即提高图像分辨率
- 使平移量增大。
平移太大可能呆滞匹配失效;平移太小,则三角化精度不够。这个问题也叫“视差”。
3D-2D:PnP
PnP使求解3D到2D点对运动的方法。特征点的3D位置可以由三角化或者RGB-D相机的深度图确定。
- 在双目或RGB-D的视觉里程中,我们可以直接使用PnP估计相机运动。
- 在单目视觉里程计中,必须先进性初始化,才能使用PnP。
3D-2D方法不需要使用对极约束,又可以在很少的匹配点中获得较好的运动估计,是一种最重要的姿态估计方法。
PnP求解方法:直接线性变换(DLT)、EPnP、UPnP、构建最小二乘法并迭代求解(光束平差法Bundle Adjustment,BA)
Bundle Adjustment
重投影误差的非线性最小二乘问题。这一类把相机和三维点放在一起进行最小化的问题。统称为Bundle Adjustment。文章来源:https://www.toymoban.com/news/detail-437670.html
如果相机是连续运动的,也可以直接使用BA求解相机位姿。文章来源地址https://www.toymoban.com/news/detail-437670.html
到了这里,关于视觉里程计学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!