位姿估计

时间:2024-05-21 15:31:19

计算机视觉-位姿估计

1. 简述仿射变换和透视变换的基本概念,并用实例说明。

仿射变换:
计算机视觉中的仿射变换一般指:平移,比例缩放,旋转变换都是一种称为仿射变换的特殊情况。
仿射变换的性质:
1.仿射变换有6个*度(对应变换中的6个系数:空间平移xyz,以及旋转变换三轴)应此仿射变换后互相平行直线仍然为平行直线,三角形映射后仍是三角形。但却不能保证将四边形上的多边形映射为等变数的多边形。
2.仿射变换的乘积和逆变换仍是仿射变换*
3.仿射变换能够实现平移、旋转、缩放等几何变换。
举例
旋转:
位姿估计
平移:
位姿估计
仿射变换一般表达式:
位姿估计
透视变换
透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。
简单来说透视变换就是把三维图像变为二位表示的过程,其表达式为
位姿估计
1.透视变换也是一种平面映射 ,并且可以保证任意方向上的直线经过透视变换后仍然保持是直线。
2.透视变换具有9个*度(其变换系数为9个),故可以实现平面四边形到四边形的映射。
举例
位姿估计
对于透视投影,一束平行于投影面的平行线的投影可保持平行,而不平行于投影面的平行线的投影会聚集到一个点,该点称为灭点

2. 结合图简述图像坐标系、相机坐标系和世界坐标系的定义,并说明三者之间的变换关系。

接下来了解相机标定中要用到的各种坐标系:它们分别为世界坐标系,相机坐标系,图像坐标系,像素坐标系。
世界坐标系(world coordinate system)
用户定义的三维世界的坐标系,未来描述目标物在真实世界里的位置而被引入。单位为m。
相机坐标系(camera coordinate system)
在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系的图像/像素坐标系的中间一环。单位为m。
图像坐标系(image coordinate system)
为了描述成像过程中物体从相机坐标系到图像坐标系的投影投射关系而引入,方便进一步得到像素坐标系下的坐标。单位为m。
像素坐标系(pixel coordinate system)
为了描述物体成像后像点在数字图像上(相片)的坐标而引入,是我们真正从相机读取信息所在的坐标系。单位为m。
位姿估计
上面这张图上可能更易于理解他们之间的关系
世界坐标系:Xw、Yw、Zw。相机坐标系: Xc、Yc、Zc。图像坐标系:x、y。像素坐标系:u、v。
其中,相机坐标系的轴与光轴重合,且垂直于图像坐标系平面并通过图像坐标系的原点,相机坐标系与图像坐标系之间的距离为焦距f(也即图像坐标系原点与焦点重合)。像素坐标系平面u-v和图像坐标系平面x-y重合,但像素坐标系原点位于图中左上角(之所以这么定义,目的是从存储信息的首地址开始读写)。
变换关系
位姿估计
位姿估计
位姿估计

3. 什么是相机的内、外参数矩阵?实际中你能结合身边的实例(如电脑摄像头、手机镜头)说明这些参数的大致值么?

相机的内参
相机的内参是:1/dx、1/dy、r、u0、v0、f
opencv中的内参是4个,分别为fx、fy、u0、v0。其实opencv中的fx也就是FSx,其中F是焦距上面的f,Sx是像素/每毫米也就是上面的1/dx。
dx和dy表示x方向和y方向的一个像素分别占多少个单位,是反映现实中的图像物理坐标关系与像素坐标系转换的关键(我理解的是可以反映像元密度)。
u0,v0代表图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数
相机的外参
相机的外参是6个,三个轴的旋转参数分别是(w、δ、θ),把每个轴的33旋转矩阵进行组合(矩阵之间相乘),得到集合三个轴旋转信息的R,其大小还是33;T的三个轴的平移参数(Tx、Ty、Tz)。R、T组合成3
4的矩阵,其是转换到标定纸坐标的关键。
例子
佳能 70D相机:
参数:
采用焦距f​:50 mm
分辨率采用:1920x1080
传感器尺寸:22.5x15 mm
计算内参数:
u0=1920/2=960​、v0=1080/2=540​、dx=22.5/1920=0.0117​、dy=15/1080=0.0139
ax=fdx=4,273、ay=fdy=3,597

4. 说明使用线性法求解相对位姿时的要求输入和输出,以及求解的基本思想。

(1)基于空间多点的相对位姿估计测量算法
相对位姿估计的基本问题
已知:相机内参数;多个空间上的特征点(非共面)在目标坐标系(3D)和相平面坐标系(2D)坐标
输出:目标坐标系相对相机坐标系的位置和姿态
求解基本思路:
已知相机的内参数,写出内参数矩阵,对于单个特征点来说通过线性求解计算相机的外参数矩阵的平移向量和旋转向量。拓展到多个特征点,不在同一平面上的点就要计算出关于平移向量和旋转向量的向量矩阵,利用矩阵的QR分解,得到最终的旋转矩阵非奇异矩阵P的正交三角分解:P=QR,其中Q(维数n*s):正交阵;R:上三角阵,得到最终的旋转矩阵和平移矩阵,最后通过旋转矩阵计算旋转角,使得相机坐标系和世界坐标系完全平行。
在实现过程中,一般使用solvePnP方法进行计算,传入参数:目标坐标系的3D点,图像平面点坐标,相机内参数,畸变系数,最后就可以得到旋转向量和平移向量。
(2)基于平面特征点的位姿测量
已知:相机内参数;多个平面上的特征点在目标坐标系(3D)和相平面坐标系(2D)坐标;
输出:目标坐标系相对相机坐标系的位置和姿态
基本思想:
基本思想与空间多点的位姿测量相似;要注意的是,在已知至少四个平面点三维点坐标的条件下,可通过点的图像坐标及相对位姿估计算法计算相对位姿

5. 说明使用Zhang方法进行相机标定需要的输入条件和得到的具体输出量,以及Zhang方法的主要步骤

输入条件
使用张氏标定法,拿标定棋盘格来举例,需要输入30张不同角度拍摄的棋盘格照片,然后进行棋盘格标定
具体输出量
相机标定相机的没参数,输出相机的内外参数矩阵
zhang方法主要步骤
(1) 对一个pose,计算单应矩阵(类似M矩阵)
求解单应矩阵—基本方程
位姿估计
求解单应矩阵—建立内参数方程
位姿估计
(2) 有三个以上Pose,根据各单应矩阵计算线性相机参数;
求解内参数—建立方程
位姿估计
求解内参数—建立内参数方程
位姿估计
求解内参数—内参数求解
位姿估计
求解内参数—外参数求解
位姿估计
(3) 使用非线性优化方法计算非线性参数
非线性畸变参数求解
位姿估计