一种彩色相机和深度相机的联合校准和失真矫正算法
摘要:文章提出了一种同时校准两个彩色相机、一个深度相机以及它们之间的相对位置的算法。该方法有三个主要的特点:精确、实用、适用于大多数的传感器。该方法只需要从不同方向拍摄同一平面,不要求深度图像的连续性,因此适用范围广,鲁棒性好。通过实验证明,相对于制造商的标定方法而言,该方法有着更好的准确性。
关键词:相机校准;深度相机;相机组;失真;Kinect中图分类号:TP391.41 文献标识码:A 文章编号:1673-1131(2015)10-0054-02.
0 引言
彩色信息和深度信息可以在描述一个场景时进行互补。
许多应用程序如场景重建和基于图像的渲染,需要同时使用两者作为输入信息。这就使得需要使用至少两个传感器,没有单一的传感器能够同时捕获这两种信息。用于场景重建的基本装置为深度和彩色相机组,该装置将彩色摄像机刚性地连接到一个深度传感器。
为了使得场景重建的效果更加真实,那么就需要对深度和彩色相机组获得的数据进行校准。其中包括每个相机的校准和相机之间的校准。彩色相机数据的校准已被广泛研究[1] [2]
,而深度传感器在不同的技术应用也有着不同的校准方法。大多数的结构光设备可以单独地校准投影机和摄像机。
而且设备的内部装置是封闭的,所以我们不能得到原始强度的图像。此外单个相机的单独校准不能给出最佳的系统参数,对整个系统作为一个整体,通过所有信息进行校准比较准确。
由于处理和制造过程中的不可避免的误差,深度相机有着复杂的几何畸变。径向和切向畸变模型足以校正彩色图像中 2D像素的位置,而深度相机需要一个更复杂的模型来校正3D 测量数据。
1 校准模型
我们使用的实验设备是由一个深度相机和彩色相机组以及一个可调节的高分辨率的彩色相机刚性地连接在一起。虽然 Kinect 设备中的相机组有着足够的精度,但是它的分辨率比较低。那么为了获得高精度的深度图像和彩色图像,我们需要使用其他的外接设备。我们使用 Kinect 传感器作为相机组,外部摄像机使用的是佳能 EOS 5D Mark II。
1.1 彩色相机内部校准
我们使用了类似于 Heikkila[1]提出的固有模式,包括径向和切向失真校正的针孔模型。点在彩色相机坐标系的坐标转换为彩色图像坐标 是遵循下列公式的。点坐标首先通过 进行标准化。畸变公式如下所示:
其中 是有畸变系数构成的矢
量。
最后,彩色坐标系遵循如下公式 其中, 是焦距,而 表示的是基点。
这些模型对于彩色相机和外部摄像机都是适用的。
1.2 深度相机的内部校准
我们使用的是 Kinect 设备作为深度相机,但是我们的方法适合不同类型的深度传感器。Kinect 的深度相机是由一个红外投影仪发出图案、一个红外摄像机进行接收的方式来得到深度数据。
深度相机坐标系到深度图像坐标系之间的转换和彩色相机之间有着相同的模型。如果将公式(3)中的参数换为 fd 和 pd就可以得到深度图像的公式。深度相机的几何失真模型可以通过转换公式(1)和(2)中的 xk 和 xn得到。
差值 d 和深度 zd 之间的关系有两方面:成反比和失真校正。它们之间的反比例如下公式:
其中 c0 和 c1 是深度相机本身的自带参数,dk 是校准之后的差值。由于 Kinect 的内部运算法则是封闭的,所以我们不可能查明这种失真的确切性质。但是我们可以通过观测来修改这种失真。因此,有人[3]提出了如下所示的公式:
其中 d 是 Kinect 返回的误差值,D 指空间变化的图像,表示偏移量的变化。将公式(4)进行转换,得到下列公式:
根据欧米伽函数[4],我们就可以得到如下所示的公式:
1.3 外部校准
在图 1 中,我们可以看到一个场景中存在着不同的坐标系及之间的转换。一个坐标系中的点的坐标到另一个坐标系的转换可以表示为 ={R,t} ,其中 R 表示旋转,t 表示变换。例如,世界坐标系{W} 中某点xw 转换到彩色相机坐标系{C} 中可以表示为: 。
参考系 {Vi}位于图像i 标准平面的角落,并且它只是用来进行初始化。转换形态是不会发生变化的,而且每个图像具有自己的转换形态 。 2 校准方法2.1 基于角的校准彩色摄像机的校准是一个很好的研究问题,我们使用张正友[2]的方法来初始化相机的参数。首先,我们从高清晰度的图像中提取西洋棋盘的角,然后通过已知的角在世界坐标系{Wi} 中的位置和图像中测量位置来计算每张图的单应性。然后加单应性放入到求解摄像机参数约束的线性方程中。其中初始畸变参数设置为 0。
同样的方法也可以用来初始化深度相机的参数。但是因为在深度图像中西洋棋盘不是很清晰,我们提取了参考平面的四个角。我们使用张正友的方法[2]来计算{Vi}和{D}之间的单应性、初始化焦距、基点和 转换。通过这些我们计算出这些角的理论深度。将理论深度和测量误差代入公式(4)中我们可以得到理论上的初始深度参数(c0,c1)。
2.2 相对位置的估算
由于外部摄像机和彩色相机相对于同一参考面{W} 的位置是已知的,我们可以计算出它们之间的相对位置。而深度相机相对于 {V}的位置是已知的,由于{V} 和{W} 是共面的,所以我们可以计算出相对位置 CTD 。我们通过公式 nt- =0 来设定一个平面,其中 n 表示单位向量, 表示到原点的距离。
如果我们将 R=[r1,r2,r3] 作为旋转矩阵,并且将 n 设定为[0,0,1]T , 设定为 0。那么该平面在相机坐标系中的参数是:
n=r3 ,=r3Tt(9)。彩色相机的可以表示为 ,深度相机的表示为 。
正如 Unnikrishnan 和 Hebert[5]提到的,相对位置可以从不同 图 像 中 获 得。将 每 个 平 面 的 参 数 放 到 一 起 得 到。同样深度图像中也可以得到并表示为 Md和 bd。
2.3 非线性最小化
校准的目的是为了得到所有参数的投影误差的平方加权和的最小值。彩色相机的误差是角的测量位置 和它的投影位置 pc 之间的欧式距离,外部摄像机的误差是 和 pe 之间的欧式距离。深度相机的测量误差 和理论误差 d 之间有着差别,理论误差是通过计算沿校准平面的光学射线的距离并且根据公式(7)和公式(8)计算得到。由于这些误差有着不同的单位,所以我们使用它们的度量衡方差( )的倒数进行加权计算。具体式子如下:
2.4 误差畸变判定
由于 D 中的每个条目是彼此独立的并且 D(u,v)的估算只需要得到像素 的测量值,所以单独优化 D 会更有效。此外其他参数是固定的,我们可以封闭式地求解 D(u,v)。
在公式(6)中最先对测量误差 进行矫正。我们构建了 如下公式用来求解畸变系数:
(10)
为了做一个对比,我们也使用了 Smisek[3]提出的方法。具体表达式如下:
3 实验及结果分析
在实验中,我们使用 Kinect获得的是 1280x1024 的图像,外界摄像机获得的是 2784x1856 的图像。我们将自己的方法与 Smisek 提出的方法进行比较,得到了表一。其中 A1,A2 使用的是同一个 Kinect 传感器,而 B2 使用的不同的传感器。
表 1 不同失真模型的标定
我们使用实验设备来获取一个被挖空的立方体中,它的三个面各成 90 度角。我们可以从表 2 中看到图像中每个边成的角的大小与 90 度角的差距。结果显示,我们的方法可以得到更好的重建效果。
表 2 重建后的角度与现实角度的差距
4 结语
文中提出了一种关于彩色相机和深度相机组的校准算法。
该算法将颜色特征和深度特征当做一个整体来提高相机组的整体精度。实验结果表明,我们的方法对 Kinect 的校准比制造商提供的方法更加精确。误差畸变矫正模型也比以前所提出的模型在重建方面具有更好的精度。
此外,文中的算法具有足够的灵活性,可以通过改变深度相机的内在特征模型来使其可以运用到其它类型的深度设备。
文中提到的约束适用于所有的深度传感设备。未来将研究ToF相机和彩色相机组的校准。
参考文献:
[1] Z. Zhang, Flexible camera calibration by viewing a planefromunknown orientations, in: ICCV, 1999, pp. 666-673.
[2] J.Smisek, M. Jancosek,T.Pajdla,3D with Kinect,in: IEEEWorkshop on Consumer Depth Cameras for Computer Vision,2011.
[3] D. Barry, J.-Y. Parlange, L. Li, H. Prommer, C. Cunningham,F. Stagnitti, Analytical approximations for real valuesof theLambert W-function, Mathematics and Computers inSimulation 53 (1-2) (2000) 95-103.
[4] R. Unnikrishnan, M. Hebert, Fast extrinsic calibration ofalaser rangefinder to a camera, Tech. Rep. CMU-RITR-05-09,Robotics Institute, Pittsburgh (2005).
作者简介:李浩宇,男,山西运城人,硕士,研究方向为图像与图形处理。