相机位姿估计入门

相机位姿估计是指给定若干图像,估计其中相机运动的问题。求解方法通常分特征点法和直接法两种。下面主要介绍特征点法。

特征点法的思路是先从图像当中提取许多特征,然后在图像间进行特征匹配,这样就得到许多匹配好的点,再根据这些点进行相机位姿的求解。根据传感器形式的不同,可以分成三种情况:

在两帧各自的相机坐标系中,设P点的相机坐标系的坐标分别为$P_1$、$P_2$,如图1所示。

其中:

$$P_{1}=\begin{pmatrix}X_{1}\Y_{1}\Z_{1}\end{pmatrix},P_{2}=\begin{pmatrix}X_{2}\Y_{2}\Z_{2}\end{pmatrix}$$

相机从第一帧移动到第二帧,其旋转矩阵设为R,平移向量设为t。这里的R表示的旋转是相对于第一帧的姿态改变量。那么有:

$$P_{2}=RP_{1}+t \tag{1}$$

相机位姿估计的最终目的就是要根据这个运动方程,求解出相机的运动,也就是R、t。注意这里的R、t并不是相机外参!

由于$P_1$、$P_2$的坐标未知,但其在像素坐标系的坐标$p_1$、$p_2$已知,因此,根据小孔成像模型寻找$p_1$、$p_2$和$P_1$、$P_2$之间的关系。

小孔成像模型的示意图如图2所示。设P点在世界坐标系下坐标为$P_w$在相机坐标系下坐标为$P_c$,物理成像平面对应坐标为 $P’$, 像素平面对应坐标为p, 有:

$$p=\begin{pmatrix}u\v\end{pmatrix},P^{‘}=\begin{pmatrix}X^{‘}\Y^{‘}\Z^{‘}\end{pmatrix},P_c=\begin{pmatrix}X_c\Y_c\Z_c\end{pmatrix},P_w=\begin{pmatrix}X_w\Y_w\Z_w\end{pmatrix}$$

根据小孔成像模型,有如下公式:

$$\begin{pmatrix}u\v\1\end{pmatrix}=\frac{1}{Z_{c}}\begin{pmatrix}f_{x} & 0 & c_{x}\0 & f_{y} & c_{y}\0 & 0 & 1\end{pmatrix}\begin{pmatrix}X_{c}\Y_{c}\Z_{c}\end{pmatrix} \tag{2}$$

该公式给出了点P相机坐标系下坐标与像素平面坐标之间的关系。

设相机内参矩阵为K,即

$$K=\begin{pmatrix}f_{x} & 0 & c_{x}\0 & f_{y} & c_{y}\0 & 0 & 1\end{pmatrix}$$

将公式(2)代入公式(1),则

$$K^{-1}Z_{2}p_{2}=RK^{-1}Z_{1}p_{1}+t \tag{3}$$

内参矩阵K短期内不变,但$Z_1$很明显一般情况下不等于$Z_2$,除非是相机绕着P点为圆心旋转。现在已知的是K、p1、p2,待求R,t。 然而这里还有$Z_1$、$Z_2$是未知的,因此必须想办法将$Z$消去。

将相机坐标系下坐标$P_c$归一化,即

$$P_{c}^{‘}=\begin{pmatrix}{X_{c}}/{Z_{c}}\{Y_{c}}/{Z_{c}}\1\end{pmatrix}$$

由公式(2)可得:

$$\begin{pmatrix}u\v\1\end{pmatrix}=\begin{pmatrix}f_{x} & 0 & c_{x}\0 & f_{y} & c_{y}\0 & 0 & 1\end{pmatrix}\begin{pmatrix}{X_{c}}/{Z_{c}}\{Y_{c}}/{Z_{c}}\1\end{pmatrix} =K\begin{pmatrix}{X_{c}}/{Z_{c}}\{Y_{c}}/{Z_{c}}\1\end{pmatrix} \tag{4}$$

将公式(4)代入公式(1),则有:

$$K^{-1}p_{2}=RK^{-1}p_{1}+t$$

这样便能求解了。但是也导致了一个问题,因为不同帧对应的相机坐标系中P的Z值并不相等。在实际操作中分别除以其本身从而将Z分量归一化为1,这其实就丢失了真实的位置信息,不同帧的缩放是不等的!从而导致2D-2D估计两两帧之间,每次估计的尺度都是不同的。这也就是单目SLAM的尺度不确定性。

通过2D-2D,最终可获得P点像素坐标 $p$ 对应相机坐标系下归一化坐标$P_{c}^{‘}$。

三角测量在三角学与几何学上是一借由测量目标点与固定基准线的已知端点的角度,测量目标距离的方法。而不是直接测量特定位置的距离(三边量测法)。当已知一个边长及两个观测角度时,观测目标点可以被标定为一个三角形的第三个点。

假设一量测目标点及两个已知座标的参考点可形成一个三角形,则借由计算三角形其中参考边的长度,量测两参考点与目标点形成的角度,即可找出目标点的距离及座标。

三角测量可用来计算岸边与船只之间的距离及座标。A顶点的观察者测量岸边与船只之间的角度α,B点的观察者则依同理测量出角度β,由长度l或已知的A及B点座标,则可由正弦定理取得在C点船只的座标及距离d。

计算过程如下:

$$ \ell = \frac{d}{\tan \alpha} + \frac{d}{\tan \beta}$$

根据三角恒等式${\displaystyle \tan \alpha ={\frac {\sin \alpha }{\cos \alpha }}}$和${\displaystyle \sin \left(\alpha +\beta \right)=\sin \alpha \cos \beta +\cos \alpha \sin \beta }$,此式可等于:

$${\displaystyle \ell =d\left({\frac {\cos \alpha }{\sin \alpha }}+{\frac {\cos \beta }{\sin \beta }}\right)}$$

$${\displaystyle \ell =d\ {\frac {\sin(\alpha +\beta )}{\sin \alpha \sin \beta }}}$$

因此,

$${\displaystyle d=\ell \ {\frac {\sin \alpha \sin \beta }{\sin(\alpha +\beta )}}}$$

由此便可简单定义出一未知点与观察点间的距离,以及与观察点往东西、南北向相差的位移量,终得完整座标。

2D-2D估计获得特征点在相机坐标系下的归一化3D坐标,结合三角测量,可获得特征点在相机坐标系下的深度,两者结合即获得特征点在相机坐标系下的3D坐标。

3D-2D估计本质是PnP一个问题,即给定世界坐标系中n个3D点及其在图像中的相应2D投影的情况下,估计校准相机的姿势的问题。相机姿势由6个自由度(DOF)组成,其由旋转(滚动,俯仰和偏航)以及相机相对于世界的3D平移构成。该问题源于相机校准,并且在计算机视觉和其他领域中具有许多应用,包括3D姿态估计、机器人和增强现实。 对于n = 3,存在一个常用的问题解决方案,称为P3P,并且许多解决方案适用于n≥3的一般情况。

P3P仅需要使用三对匹配点,就可以完成相机的位姿估计。

假设空间中有A,B,C三点,投影到成像平面中有a,b,c三点,在PnP问题中,A,B,C在世界坐标系下的坐标是已知的,但是在相机坐标系下的坐标是未知的。a,b,c的坐标是已知的。PnP的目的就是要求解A,B,C在相机坐标系下的坐标值。如下图所示。需要注意的是三角形abc和三角形ABC不一定是平行的。

根据余弦定理有:

$$OA^2 + OB^2 - 2OA \cdot OB \cdot \cos(a,b) = AB^2 \ OB^2 + OC^2 - 2OB \cdot OC \cdot \cos(b,c) = BC^2 \ OA^2 + OC^2 - 2OA \cdot OC \cdot \cos(a,c) = AC^2$$

记$x=\dfrac{OA}{OC}$,$y=\dfrac{OB}{OC}$,因为A,B,C在相机坐标系中的坐标未知,因此x,y是未知的。

另记$u=\dfrac{BC^2}{AB^2}$,$w=\dfrac{AC}{AB}$, 根据A,B,C的世界坐标,u,w是可以求出的。

通过一系列的转化可以得到两个等式:

$$(1-u)y^2-ux^2-\cos(b,c)y+2uxy \cos(a,b) +1 = 0 \ (1-w)x^2-wy^2-\cos(a,c)x+2wxy \cos(a,b) +1 = 0$$

该方程组是关于x,y的一个二元二次方程,可以通过吴消元法求解。最多可能得到四个解,因此在三个点之外还需要一组匹配点进行验证。

至此,通过x和y就可以求得A,B,C在相机坐标下的坐标值。因此3D-2D问题转变成了3D-3D的位姿估计问题。而带有匹配信息的3D-3D位姿求解非常容易。

假设某空间点坐标为$P_i = [X_i, Y_i, Z_i]$, 其投影的像素坐标为$p_i=[u_i,v_i]$。这些在PnP问题里都是已知的。在相机坐标系下有$c=[x_i, y_i, z_i]$,这个坐标通过P3P或者其他解法有了粗略的估计。根据针孔相机模型可得:

$$z_i p_i = KTP_i = K \exp([\xi]_{\times})P_i$$

根据这个等式可以构造出一个最小二乘问题:

$$\xi^* = \arg \min \limits {\xi} \dfrac{1}{2} \sum\limits _{i=1} ^n \begin{Vmatrix} p_i - \dfrac{1}{z_i} K \exp([\xi]{\times})P_i \end{Vmatrix} _2 ^2$$

该问题的误差项,是将像素坐标与3D点按照当前估计的位姿进行投影得到的位置相比较得到的误差,所以称之为重投影误差。如图5所示。

这个最小二乘问题主要优化两个变量,第一是对相机位姿的优化,也就是对李代数的优化,第二是对空间点P的优化,也就是P点的优化。

3D-3D的位姿估计问题是指,对于空间中的某一点,我们知道这个点在两个相机坐标系中的三维坐标,如何利用这两个三维坐标来求解这两个相机坐标系的运动就是3D-3D的位姿评估问题。这个问题通常用迭代最近点(Iterative Closest Point,ICP)求解。

假设空间中的一系列点在第一个相机坐标系下的三维坐标为$C={c_1,…,c_n}$,在第二个相机坐标系下匹配的三维坐标为$C’={c_1’,…,c’_n}$。则有:

$$\forall i, \ c_i=Rc_i’+t$$

对于ICP的求解主要分为两种方式:利用线性代数的求解和利用非线性优化方式求解。

构造误差项:

$$e_i = c_i - (Rc_i’+t)$$

将这个误差项构造成一个最小二乘问题:

$$\min \limits _{R,t} J= \dfrac{1}{2} \sum \limits _{i=1} ^n \begin{Vmatrix} c_i - (Rc_i’+t) \end{Vmatrix} _2 ^2$$

通过求解这个最小二乘问题,我们可以得到R和t。

相机位姿估计最终目标是获得表征相机运动的旋转矩阵R和平移向量t,可分成两种方法:一种是2D-2D估计加三角测量,另一种是3D-2D估计加3D-3D估计。

THE END
0.武汉市第四十九初级中学八年级物理备课组开展“小孔成像”模型一个个灵活轻巧的小孔成像模型从他们的手中“诞生”了! 特别是初一的同学 带着自己准备的材料 在限定的时间内也独立完成了属于自己的“小孔成像”模型 效果十分明显 盲选评奖资鼓励 制作结束后 教研组长曾祥胜老师以及晏红老师、柏杨老师、詹慕鸣老师、汪彦祥老师 当场盲选评出“鲁班传人奖”、“光影达人奖”、“创意奇人奖”以及优秀奖jvzquC41yy}/onnrkct/ew46{6€uzjw
1.相机模型相机坐标系到图像坐标系的转换满足小孔成像模型(暂不考虑图像畸变),如下图所示(成像平面放在 轴原点前或后都可以,放在原点后侧则图像相反,此处以原点前侧为例),通过简单的相似三角形原理即可得到: 将相机坐标系中的三维坐标 映射到成像平面中得到 ,其中 jvzquC41yy}/lrfpuj{/exr1r16fhj:2e2j5d>
2.北师大版八年级物理上册知识点2、光在同种均匀的介质中沿直线传播,生活中应用光的直线传播的事例有:日食、月食,小孔成像,排队瞄准等。 八年级物理学习方法 重视思维方法 (1)方法迁移。 初学物理,你会读到《摆的故事的启示》,同时,你第一次接触了利用控制变量法“研究影响摆的周期的因素”。渐渐地,你从“研究声音的音调跟哪些因素有关”、jvzquC41yy}/qq6220ipo8|wnk572953894ivvq
3.基于Pix4Dmapper软件的运动结构恢复SFM无人机遥感影像三维模型重建其中,这一方法的知识基础包括相机成像模型、相机标定与多视几何等[1]。以下先分别对各知识基础所对应原理加以描述,并最终将各独立部分结合,得到运动结构恢复方法的完整原理。   在计算机视觉中,最常用的相机成像模型即小孔成像模型[7]。小孔成像原理如图1所示。jvzquC41yy}/lrfpuj{/exr1r1i57?98cc?8:B
4.经济学案例及分析汇总十篇本文通过实际经济活动―消费者购买行为研究作为教学案例,运用SPSS计算机软件具体操作和应用,而不是从概念到概念,抽象地讲解理论和方法。其目的在于使学生能够掌握并运用计量经济学方法和一般范式对实际实证项目进行分析与研究,能够让学生完成较高质量、有数据及数学模型支撑的“课程论文”或“毕业论文”,并达到教学效果的改jvzquC41yy}/z~jujw4dqv3ep1nbq€jp16>16>3jvor
5.入选论文解读:从虚拟数据学习可泛化的三维人体姿态估计模型图1. 小孔成像模型中的投影几何。影响深度估计的因素包括相机焦距、相机位姿、人的身高和姿态等。 现有的方法大多直接学习从图像到人体深度的映射关系,尽管它们能在公开数据集上取得比较好的效果,但由于数据集在相机位姿、人体姿态以及图像背景上缺乏多样性,训练出的模型的泛化性能较弱。 jvzquC41ehit0ypw0gjv0ls1pg}t1;929;6/j}r
6.光电智造摄像机标定技术及其应用——单目摄像机也就是将任意坐标平面通过旋转和平移映射到理想坐标平面上,对有畸变的图像进行校正,让它成为符合小孔成像模型的像平面。有了这种方法,我们只要确定转换算法、校正算法以及【1】式中的参数就可以实现三维空间中任意平面上尺寸与位置的测量。我们将这种确定参数的过程称之为标定。jvzquC41yy}/gny/ejooc7hqo1sq1j74;4870qyon
7.一种基于特征点不确定性的单目相机位姿估计方法.pdf5.根据权利要求4所述的基于特征点不确定性的相机位姿估计方法,其特征在于,根据 加权代数误差函数得到线性方程模型,包括: 在加权代数误差函数两边同时乘d,根据相机小孔成像模型, i T 中间参数e=[0 0 1],得到测量方程: 将测量方程改写为矩阵形式,得线性方程模型: 其中,M为系数矩阵,x由外参R和t组成,为误差项;jvzquC41oc~/dxtm33>/exr1jvsm1;5451732B4842;1696322712;50ujzn
8.自制小孔成像,如何制作简易的小孔成像模型1,如何制作简易的小孔成像模型 很简单,拿一个挡光板(什么板子都行,只要不透光就可以了),拿针在板上穿一个小孔(越小成的像越清晰,但所成像的亮度就会减小),晚上将挡光板平行靠近墙面(越十几厘米)你就会看到挡光板对面物体所成的像了,当然不能在日光灯下看,最好找个台灯照亮所观测的物体,效果挺明显的。我亲jvzq<84yyy4mk|ip0eun1vsul1ni||46867467mvon
9.针孔相机成像模型51CTO博客大部分相机成像原理都可以简化为小孔成像,如下图所示: 和以前课本上学习的一样,上图中蜡烛透过相机的针孔,在感光器上成倒立的像,这一个简单的模型即为针孔相机的成像模型。基于这个模型,我们最希望解决的问题是:蜡烛在现实世界中的位置和图片中蜡烛像素点之间有着怎样的关系呢? jvzquC41dnuh0>6evq4dqv4wa3;1:953619:79=;9