当对双目相机进行初次标定后,若双目相机没有发生过于激烈的摔碰,之后的标定过程可简化,即可以省略标定过程中的某些步骤。为阐述具体简化了哪些步骤,这里先阐述完整的双目标定步骤。

 

完整的双目标定流程为:

(1)分别对左右相机进行单目标定,得标定投影矩阵M1、M2和畸变向量D1、D2

(2)执行双目标定(要用M1、M2和D1、D2作为初值),得左右相机之间的旋转矩阵R和平移向量t及本质矩阵E(可选)和基础矩阵F(可选)。双目标定过程中可固定M1、M2和畸变向量D1、D2,即LM算法的优化变量只有R和t。也可以将M1、M2、D1、D2都作为优化变量一起优化。若给定的M1、M2、D1、D2较精确,通常只优化R和t即可,这也是简化二次双目标定的来源。

(3)执行双目矫正,得旋转矩阵R1、R2和重投影矩阵P1、P2及三维重建矩阵Q(可选)

 

简化的双目标定流程就是不执行左右相机的单目标定。因为没有发生激烈摔碰或经历过大温差,相机的内参通常是不会发生变化的。

 

此外,在没有发生激烈摔碰时,左右相机之间的平移矩阵(核心量是baseline)的改变也是可忽略的。于是,二次双目标定的关键变量就是左右相机的旋转矩阵R。的确,相对而言,旋转矩阵R是最容易发生改变。

 

虽然二次标定的关键量是R,但调用LM算法时仍要使用R和t,只是标定后的t可使用也可不使用。既然可不使用,这就带来一个好处,给定的世界坐标不需要是真实的尺寸,只要是真实尺寸的等比例缩放即可。

 

于是对于双目相机的标定,我们只需要在初次标定时,使用真实尺寸已知的标定板,之后的标定,只需要相对尺寸的标定板即可。当然,这仅限于双目相机没有经历激烈摔碰的情形。若真是经历了激烈摔碰,还是要使用真实尺寸已知的标定板的,因为激烈摔碰后,左右相机的baseline已经发生较大改变,此时需要重新标定左右相机之间的平移矩阵。

 

当用电脑屏幕作为标定时,通常希望实时地知道相机对准了屏幕的哪个位置,即光轴(z轴)与屏幕的交点。既然是光轴与屏幕的交点,显然所成像的图像的中心点位置对应的物理位置就是光轴与屏幕的交点。那如何得到此物理位置的物理坐标了?

假设屏幕中心是标定板的世界坐标原点,由solvePnP可解得R,t。其中,t是世界坐标原点在相机坐标系中的坐标。

由Pcam=Pworld*R+t可得Pworld=R-1*Pcam-R-1*t

于是to=R-1*t是相机坐标原点在世界坐标系中的坐标。根据光轴与屏幕相交可得方程:

。这里取得是R-1的第三列,也可以取R第三行,两者是相等的。

由此可解得x和y,即光轴与屏幕的交点。

可通过图像的中心点对应到屏幕的物理位置,测量此物理位置的实际物理坐标,将此物理坐标与解得x和y对比,达到验证所解得的x和y是否正确的目的。

将x减baseline/2可得双目相机的光轴与屏幕的交点的物理坐标。

将物理坐标与屏幕分辨率对应即可得到双目相机与屏幕交点在屏幕上的具体位置。

 

以上是计算双目相机光轴与屏幕交点的方法之一。

也可以在左或右相机与世界坐标系的位姿矩阵后(即solvePnP后)直接得到双目相机与世界坐标系的位姿关系(就对平移的x部分加或减baseline/2而已),之后过程与前相机。

也可以分别求得左右相机光轴与屏幕的交点后,再将两交点之和的平均值作为双目相机光轴与屏幕交点