APP下载

RGB-D传感器的标定实验分析

2015-06-15王国胜

装甲兵工程学院学报 2015年1期
关键词:彩色图像角点位姿

刘 峰, 吕 强, 王国胜, 郭 峰

(装甲兵工程学院控制工程系,北京 100072)

RGB-D传感器的标定实验分析

刘 峰, 吕 强, 王国胜, 郭 峰

(装甲兵工程学院控制工程系,北京 100072)

分析了RGB-D传感器的标定模型及标定方法,利用标定棋盘和Matlab工具箱对RGB-D传感器进行了标定。采用摄像机标定方法计算了彩色摄像机和深度摄像机的初始化参数,根据标定棋盘和标定板的共面关系计算了相对位姿的初始估计值,并采用非线性最小化方法对标定参数进行了优化。实验结果表明:标定后的彩色图像和深度图像的重投影误差较小,深度测量不确定性标准差比标定前约减小了1/2,有效地提高了RGB-D传感器的测量精度。

RGB-D传感器;摄像机标定;彩色图像;深度图像

与传统的ToF摄像机和激光雷达等深度测量传感器相比, RGB-D传感器[1]可以同时获得环境的彩色图像和深度图像,具有成本低、速度快、感知信息丰富等优点。RGB-D传感器作为一种新型的视觉传感器,在移动机器人视觉定位与导航[2-4]、3D场景重建[5-6]、目标识别[7]和医疗辅助[8]等领域具有广泛的应用前景。

RGB-D传感器采用常规的RGB摄像机捕获彩色图像,利用红外投射器投射光斑并由红外摄像机捕获深度图像。由于摄像机的装配和镜头畸变等多种原因,其输出的彩色图像和深度图像并不是一一对应的,而彩色图像与深度图像的精确对应是3D场景重建等各种应用的基础。尽管RGB-D传感器已经过工厂标定,但是在一些要求精度高的应用中,仍需进行更精确的标定[9]。

目前,国内外学者深入研究了RGB-D传感器的深度测量原理和标定模型,提出了RGB-D传感器的各种标定方法。常规的方法是分别对彩色摄像机和深度摄像机进行标定,然后标定两摄像机的相对位姿。Smisek等[10]采用传统的RGB摄像机标定棋盘,在遮挡红外投射器并使用卤素灯光照射标定棋盘的情况下获取红外图像,同时通过在彩色图像和红外图像中提取标定棋盘的角点特征来对Kinect进行标定。Herrera等[11]分析认为:对RGB-D传感器的2个摄像机和相对位姿同时进行标定可以获得更高的测量精度。Raposo等[12]在此基础上采用平面拟合方法和平面配准方法分别对深度摄像机初始参数标定和相对位姿标定过程进行优化,有效减少了标定图像的数量和标定时间。上述标定方法均使用2维标定棋盘进行标定。Li等[13]根据深度图像的特征设计了一种3维标定板对Kinect进行了标定;Liu等[14]使用1维的直杆进行标定。除了标定彩色摄像机和深度摄像机的内参和相对位姿外,Yamazoe等[15]同时还建立了红外投射器的误差模型,并对投射器的畸变参数进行了标定,进一步减小了深度测量的误差。

虽然3维标定板可以提供深度图像中的角点信息,但RGB-D传感器的深度测量噪声较大,因此本文在文献[11]的RGB-D传感器标定模型以及标定方法的基础上,利用Matlab工具箱对Kinect传感器进行了标定,有效地提高了测量精度。

1 RGB-D传感器标定参数

RGB-D传感器的标定参数主要包括彩色摄像机内参、深度摄像机内参、深度测量参数以及彩色摄像机和深度摄像机之间的相对位姿。

1.1 彩色摄像机内参

假设彩色摄像机坐标系中某点Xc的坐标为Xc=(xc,yc,zc)T,令Xn=(xn,yn)T=(xc/zc,yc/zc)T,则彩色摄像机的切向畸变和径向畸变分别为

(1)

(2)

基于方程(1)、(2),则彩色摄像机坐标系中点Xc投影到彩色图像坐标系中对应点pc的坐标为

(3)

式中:xk=xr+xg;fc=(fcx,fcy),为彩色摄像机的焦距;p0c=(u0c,v0c)T,为彩色摄像机的主点坐标。

综上可知:彩色摄像机所需标定内参包括焦距、主点坐标和畸变系数,可简记为

1.2 深度摄像机内参

假设深度摄像机坐标系中一点Xd的坐标为Xd=(xd,yd,zd)T,其对应的深度图像坐标系中点pd的坐标为pd=(ud,vd)T,按照上述计算彩色摄像机内参的相同方法,可知深度摄像机所需标定内参为

式中:fd、p0d、kd分别为深度摄像机的焦距、主点坐标和畸变系数。

原始深度图像的实际深度值zd为

(4)

式中:c1和c0为深度摄像机的内参;

(5)

为畸变修正后的视差,其中d为视差,Dδ为视差畸变,α=(α0,α1)为畸变衰减。

将式(5)代入式(4),可得视差对应的深度。但在计算重投影误差时,需要将式(4)中深度换算成畸变修正后视差:

(6)

将方程(6)代入式(5),可由dk计算视差d。

综上所述,可将RGB-D传感器的深度测量模型参数简记为

综合深度摄像机所需标定内参Ld1,可知深度摄像机的模型参数为Ld1∪Ld2。因此可将深度摄像机的模型参数简记为

1.3 彩色摄像机和深度摄像机之间的相对位姿

RGB-D传感器标定过程中使用的4个坐标系如图1所示,其中{C}和{D}分别为彩色摄像机和深度摄像机的参考坐标系,{V}为标定平板参考坐标系,{W}为标定棋盘参考坐标系。假设{C}、{D}、{V}和{W}中任意2个坐标系间的相对位姿矩阵记为T={R,t},则一个坐标系中的点可通过相对位姿矩阵变换到另一个坐标系。以坐标系{D}和{C}为例,{D}中一点Xd变换到彩色摄像机坐标系{C}中对应的坐标Xc为

(7)

式中:Rr为旋转变换矩阵;tr为平移向量。

图1 参考坐标系及变换关系

针对图1中不同的标定图像,坐标系{C}和{D}间的相对位姿Tr为固定的常数矩阵,而坐标系{W}和{C}间的相对位姿Tc以及坐标系{V}和{D}间的相对位姿Td是不同的。因此,彩色摄像机和深度摄像机之间的相对位姿参数记为

2 RGB-D传感器标定方法

图2 RGB-D传感器标定流程

2.1 基于角点的标定

利用坐标系间的变换关系,彩色图像坐标系中的点(uc,vc)T和标定棋盘坐标系中的点(Xq,Yq)T之间的投影关系可写为[16]

(8)

2.2 相对位姿估计

利用参考坐标系{V}和{W}的共面关系,计算彩色摄像机和深度摄像机之间的相对位姿Tr,计算每幅图像中标定板的平面方程并将其视为约束方程。通过nTx-δ=0定义平面方程,其中n为单位法向量,δ为平面到坐标系{C}原点的距离。

将坐标系{C}和{D}间的旋转变换矩阵写成列向量的形式,即Rr=(r1,r2,r3),并指定2个坐标系间的平面系数为

(9)

根据多幅图像的约束关系,求出相对位姿的解析解。将每幅图像的平面系数串联成矩阵形式:

对于深度图像,平面系数为Md和bd。相对变换可写成

(10)

(11)

2.3 非线性最小化

(12)

方程(12)高度非线性且含大量参数(Dδ有307 200个元素)。为了分离视差畸变参数,将方程(12)改写为

(13)

对方程(13)的优化过程可分为如下3个步骤完成:

1) 先保持其他参数不变,只对参数Ld和Lr进行优化;

2) 保持Dδ为常量,采用最小二乘法优化方程(13);

3) 对每个像素单独优化视差畸变Dδ,交替迭代步骤2)和3),直到残差稳定。

2.4 视差畸变估计

视差畸变Dδ中的所有元素是相互独立的,而Dδ(u,v)的估计仅与像素(u,v)的测量值有关。因此,单独对Dδ进行优化即可。当其他参数固定时,可求得Dδ(u,v)的解析解。针对Dδ,优化方程(13)等价于优化如下代价函数:

(14)

方程(14)是关于Dδ(u,v)的齐次方程,求解该方程可得Dδ(u,v)的最优值。

3 RGB-D传感器标定实验与结果分析

3.1 实验条件

在室内环境良好光照条件下进行RGB-D传感器标定,实验中采用9×7的标定棋盘,黑白方格边长为4 cm。将RGB-D传感器静置于桌面,调整标定棋盘的位姿,采用libfreenect库提供的函数在不同的距离处获取不同方向的标定图像。在距离传感器0.6~4 m范围内采集了60组深度图像和彩色图像,其中40组用于标定,20组用于验证标定结果。标定软件使用Matlab工具箱Kinect Calibration Toolbox[17],在内存4 GB的2.4 GHz酷睿双核笔记本电脑上运行。

3.2 RGB-D传感器标定实验

用A4纸打印出黑白方格的标定棋盘并粘贴在一个平板上,在Ubuntu系统中利用libfreenect库提供的函数获取RGB-D传感器的原始彩色图像和深度图像。图像序列包括4种类别:不同距离处的正面图像、绕x轴旋转的图像、绕y轴旋转的图像以及标定板铺满整个视场的图像,如图3从左到右依次所示。

图3 用于标定的4类图像

3.2.1 RGB图像角点提取

采用随工具箱提供的角点检测方法,在彩色图像中提取出棋盘4个顶点处的角点,划定自动角点检测的区域,自动检测出棋盘的角点。RGB图像的角点提取结果如图4所示。

图4 自动角点检测

3.2.2 深度图像标定平面选取

在每幅深度图像中,手动选择标定板顶点附近的4个点,确定标定平面,如图5所示。由于标定板边界处的深度测量噪声较大,为减小噪声对标定平面参数的影响,选取的标定平面应略小于标定板的大小。

图5 选取标定平面

3.2.3 标定参数初始化

采用基于角点和基于标定平面的摄像机标定方法分别得到RGB摄像机和深度摄像机的初始化参数,利用标定棋盘和标定板共面的关系获得相对位姿的初始估计。标定参数的初始化结果如下:

αo=(0, 0),

3.2.4 参数优化

由3.2.3节得到的标定参数初始值,根据代价函数采用非线性最小化方法对标定参数进行优化,最终得到的标定参数如下:

fc=(521.03, 519.41),

kc=(0.244 9,-0.807 6, 0.001 5, 0.002 8, 0.905 6),

fd=(582.38, 577.90),

tr=(-0.023 58, -0.001 01, -0.003 62)T。

3.3 标定结果分析

标定前后的彩色和深度叠加图像如图6所示,可以看出:标定前深度图像的边沿显示出一定的畸变,物体边沿处的彩色图像和深度图像存在一定偏差;标定后畸变得到了修正,彩色图像和深度图像基本吻合。

图6 标定前后的彩色和深度叠加图像

标定后的彩色图像中角点的重投影误差及其直方图分别如图7、8所示。可知: 标定后,角点的重投影误差均值为0,最大值不超过2像素,标准差为0.157 585。优化前的角点重投影误差均值为-0.000 002,标准差为0.145 077。正如文献[18]中所述,深度摄像机模型参数的优化会导致RGB摄像机的重投影误差增加。

图7 标定后的彩色图像角点重投影误差

图8 标定后的彩色图像角点重投影误差直方图

图9为标定前后的深度图像视差重投影误差分布,可知:标定前的重投影误差均值为0.325 011,标准差为1.536 120;标定后的重投影误差均值为0.019 643,标准差为0.680 898。图10为标定前后深度测量的不确定性曲线,可以看出:在0.5~1.5 m范围内,标定后的深度测量不确定性标准差比标定前约减小了1/2;1.5 m后的深度测量不确定性相差不大。标定后拟合的深度测量不确定性函数为

图9 标定前后的深度图像视差重投影误差分布

e(z)=2.859z2-1.57z+1.448。

图10 标定前后深度测量不确定性

4 结论

本文分析了RGB-D传感器的标定模型和标定方法,使用Matlab工具箱Kinect Calibration Toolbox进行了标定实验,结果表明:在0.5~1.5 m范围内,标定后的深度测量不确定性标准差比标定前约减小了1/2,有效提高了RGB-D传感器的测量精度。该方法的不足之处在于:图像中的部分角点需要人工选取,占用了大量的时间。下一步,将研究在2种图像中自动提取角点的方法。

[1] Microsoft. Kinect for X-BOX 360[EB/OL].(2010-06-14)[2014-09-02].http://www.xbox.com/en-US/kinect

[2] Klussendorff J H, Hartmann J, Forouher D, et al. Graph-based Visual SLAM and Visual Odometry Using an RGB-D Camera[C]∥Proceedings of the 9th International Workshop on Robot Motion and Control. Kuslin: IEEE, 2013: 288-293.

[3] Kerl C, Sturm J, Cremers D. Dense Visual SLAM for RGB-D Cameras[C]∥Proceedings of the International Conference on Intelligent Robot Systems (IROS). Tokyo: IEEE, 2013: 2100-2106.

[4] Kerl C, Sturm J, Cremers D. Robust Odometry Estimation for RGB-D Cameras[C]∥Proceedings of 2013 IEEE International Conference on Robotics and Automation (ICRA). Karlsruhe, Germany: IEEE, 2013: 3748-3754.

[5] Endres F, Hess J, Sturm J, et al. 3D Mapping with an RGB-D Camera[J]. IEEE Transactions on Robotics, 2014, 30(1): 177-187.

[6] Sturm J, Bylowb E, Kerla C, et al. Dense Tracking and Mapping with a Quadrocopter[EB/OL].(2013-09-04)[2014-09-02].http://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XL-1-W2/395/2013/isprsarchives-XL-1-W2-395-2013.pdf

[7] Gedik O S, Alatan A A. 3-D Rigid Body Tracking Using Vision and Depth Sensors[J]. IEEE Transactions on Cybernetics, 2013, 43(5): 1395-1405.

[8] Webster D, Celik O. Experimental Evaluation of Microsoft Kinect’s Accuracy and Capture Rate for Stroke Rehabilitation Applications[C]∥Proceedings of 2014 IEEE Haptics Symposium. Houston, TX: IEEE, 2014:455-460.

[9] Willow Garage. Intrinsic Calibration of the Kinect Cameras [EB/OL]. (2012-06-18)[2014-09-02].http://wiki.ros.org/openni_launch/Tutorials/IntrinsicCali bration

[10] Smisek J, Jancosek M, Pajdla T. 3D with Kinect[C]∥Proceedings of 2011 IEEE International Conference on Computer Vision Workshops.Barcelona: IEEE, 2011:1154-1160.

[11] Herrera D, Kannala J, Heikkil A J. Accurate and Practical Calibration of a Depth and Color Camera Pair[C]∥Proceedings of Computer Analysis of Images and Patterns. Seville, Spain: Springer Berlin Heidelberg, 2011:437-445.

[12] Raposo C, Barreto J P, Nunes U. Fast and Accurate Calibration of a Kinect Sensor[C]∥Proceedings of 2013 International Conference on 3D Vision. Seattle, WA:IEEE, 2013:342-349.

[13] Li S, Zhuo Q. A New Approach to Calibrate Range Image and Color Image from Kinect[C]∥Proceedings of 2012 4th International Conference on Intelligent Human-Machine Systems and Cybernetics(IHMSC). Nanchang, Jiangxi:IEEE,2012:252-255.

[14] Liu W H, Fan Y Y, Zhang Z, et al. A New Method for Calibrating Depth and Color Camera Pair Based on Kinect[C]∥Proceedings of 2012 International Conference on Audio, Language and Image Processing (ICALIP). Shanghai: IEEE, 2012: 212-217.

[15] Yamazoe H, Habe H, Mitsugami I, et al. Easy Depth Sensor Calibration[C]∥Proceedings of 2012 21st International Conference on Pattern Recognition (ICPR). Tsukuba: IEEE, 2012:465-468.

[16] Zheng Z Y. A Flexible New Technique for Camera Calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334.

[17] Herrera C D, Kannala J, Heikkila J. Joint Depth and Color Camera Calibration with Distortion Correction[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(10): 2058-2064.

[18] Karan B. Accuracy Improvements of Consumer-grade 3D Sensors for Robotic Applications[C]∥Proceedings of 2013 IEEE 11th International Symposium on Intelligent Systems and Informatics (SISY). Subotica: IEEE, 2013:141-146.

(责任编辑:尚彩娟)

Calibrating Experiment Analysis of RGB-D Sensor

LIU Feng, LÜ Qiang, WANG Guo-sheng, GUO Feng

(Department of Control Engineering, Academy of Armored Force Engineering, Beijing 100072, China)

The calibration model and method for RGB-D sensor are analyzed, the calibration experiment of RGB-D sensor is investigated by using a chessboard and Matlab toolbox. The initial parameters of color camera and depth camera are calculated by the calibrating method of camera. Then the initial relative pose position is estimated by the coplanarity of the calibrating chessboard and calibrating board. Finally, the calibrating parameters are optimized by a nonlinear minimum method. The results of the calibrating experiment show that, the re-projection errors of the color image and the depth image are smaller, the standard error of the depth measurement uncertainty after calibrating is one time smaller than before, and the measurement accuracy of RGB-D sensor is efficiently improved.

RGB-D sensor; camera calibration; color image; depth image

1672-1497(2015)01-0065-06

2014- 09- 26

刘 峰(1987-),男,博士研究生。

TP212

A

10.3969/j.issn.1672-1497.2015.01.013

猜你喜欢

彩色图像角点位姿
多支撑区域模式化融合角点检测算法仿真
基于二维直方图的彩色图像全局阈值分割方法研究
基于位置依赖的密集融合的6D位姿估计方法
船舶清理机器人定位基准位姿测量技术研究
角点检测技术综述①
基于FPGA的实时彩色图像边缘检测
基于灰度差预处理的改进Harris角点检测算法
优化ORB 特征的视觉SLAM
基于FAST角点检测算法上对Y型与X型角点的检测
基于单目视觉的工件位姿六自由度测量方法研究