劉 峰, 呂 強, 王國勝, 郭 峰
(裝甲兵工程學院控制工程系,北京 100072)
RGB-D傳感器的標定實驗分析
劉 峰, 呂 強, 王國勝, 郭 峰
(裝甲兵工程學院控制工程系,北京 100072)
分析了RGB-D傳感器的標定模型及標定方法,利用標定棋盤和Matlab工具箱對RGB-D傳感器進行了標定。采用攝像機標定方法計算了彩色攝像機和深度攝像機的初始化參數(shù),根據(jù)標定棋盤和標定板的共面關系計算了相對位姿的初始估計值,并采用非線性最小化方法對標定參數(shù)進行了優(yōu)化。實驗結果表明:標定后的彩色圖像和深度圖像的重投影誤差較小,深度測量不確定性標準差比標定前約減小了1/2,有效地提高了RGB-D傳感器的測量精度。
RGB-D傳感器;攝像機標定;彩色圖像;深度圖像
與傳統(tǒng)的ToF攝像機和激光雷達等深度測量傳感器相比, RGB-D傳感器[1]可以同時獲得環(huán)境的彩色圖像和深度圖像,具有成本低、速度快、感知信息豐富等優(yōu)點。RGB-D傳感器作為一種新型的視覺傳感器,在移動機器人視覺定位與導航[2-4]、3D場景重建[5-6]、目標識別[7]和醫(yī)療輔助[8]等領域具有廣泛的應用前景。
RGB-D傳感器采用常規(guī)的RGB攝像機捕獲彩色圖像,利用紅外投射器投射光斑并由紅外攝像機捕獲深度圖像。由于攝像機的裝配和鏡頭畸變等多種原因,其輸出的彩色圖像和深度圖像并不是一一對應的,而彩色圖像與深度圖像的精確對應是3D場景重建等各種應用的基礎。盡管RGB-D傳感器已經(jīng)過工廠標定,但是在一些要求精度高的應用中,仍需進行更精確的標定[9]。
目前,國內(nèi)外學者深入研究了RGB-D傳感器的深度測量原理和標定模型,提出了RGB-D傳感器的各種標定方法。常規(guī)的方法是分別對彩色攝像機和深度攝像機進行標定,然后標定兩攝像機的相對位姿。Smisek等[10]采用傳統(tǒng)的RGB攝像機標定棋盤,在遮擋紅外投射器并使用鹵素燈光照射標定棋盤的情況下獲取紅外圖像,同時通過在彩色圖像和紅外圖像中提取標定棋盤的角點特征來對Kinect進行標定。Herrera等[11]分析認為:對RGB-D傳感器的2個攝像機和相對位姿同時進行標定可以獲得更高的測量精度。Raposo等[12]在此基礎上采用平面擬合方法和平面配準方法分別對深度攝像機初始參數(shù)標定和相對位姿標定過程進行優(yōu)化,有效減少了標定圖像的數(shù)量和標定時間。上述標定方法均使用2維標定棋盤進行標定。Li等[13]根據(jù)深度圖像的特征設計了一種3維標定板對Kinect進行了標定;Liu等[14]使用1維的直桿進行標定。除了標定彩色攝像機和深度攝像機的內(nèi)參和相對位姿外,Yamazoe等[15]同時還建立了紅外投射器的誤差模型,并對投射器的畸變參數(shù)進行了標定,進一步減小了深度測量的誤差。
雖然3維標定板可以提供深度圖像中的角點信息,但RGB-D傳感器的深度測量噪聲較大,因此本文在文獻[11]的RGB-D傳感器標定模型以及標定方法的基礎上,利用Matlab工具箱對Kinect傳感器進行了標定,有效地提高了測量精度。
RGB-D傳感器的標定參數(shù)主要包括彩色攝像機內(nèi)參、深度攝像機內(nèi)參、深度測量參數(shù)以及彩色攝像機和深度攝像機之間的相對位姿。
1.1 彩色攝像機內(nèi)參
假設彩色攝像機坐標系中某點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,為彩色攝像機的主點坐標。
綜上可知:彩色攝像機所需標定內(nèi)參包括焦距、主點坐標和畸變系數(shù),可簡記為
1.2 深度攝像機內(nèi)參
假設深度攝像機坐標系中一點Xd的坐標為Xd=(xd,yd,zd)T,其對應的深度圖像坐標系中點pd的坐標為pd=(ud,vd)T,按照上述計算彩色攝像機內(nèi)參的相同方法,可知深度攝像機所需標定內(nèi)參為
式中:fd、p0d、kd分別為深度攝像機的焦距、主點坐標和畸變系數(shù)。
原始深度圖像的實際深度值zd為
(4)
式中:c1和c0為深度攝像機的內(nèi)參;
(5)
為畸變修正后的視差,其中d為視差,Dδ為視差畸變,α=(α0,α1)為畸變衰減。
將式(5)代入式(4),可得視差對應的深度。但在計算重投影誤差時,需要將式(4)中深度換算成畸變修正后視差:
(6)
將方程(6)代入式(5),可由dk計算視差d。
綜上所述,可將RGB-D傳感器的深度測量模型參數(shù)簡記為
綜合深度攝像機所需標定內(nèi)參Ld1,可知深度攝像機的模型參數(shù)為Ld1∪Ld2。因此可將深度攝像機的模型參數(shù)簡記為
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為固定的常數(shù)矩陣,而坐標系{W}和{C}間的相對位姿Tc以及坐標系{V}和{D}間的相對位姿Td是不同的。因此,彩色攝像機和深度攝像機之間的相對位姿參數(shù)記為
圖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個坐標系間的平面系數(shù)為
(9)
根據(jù)多幅圖像的約束關系,求出相對位姿的解析解。將每幅圖像的平面系數(shù)串聯(lián)成矩陣形式:
對于深度圖像,平面系數(shù)為Md和bd。相對變換可寫成
(10)
(11)
2.3 非線性最小化
(12)
方程(12)高度非線性且含大量參數(shù)(Dδ有307 200個元素)。為了分離視差畸變參數(shù),將方程(12)改寫為
(13)
對方程(13)的優(yōu)化過程可分為如下3個步驟完成:
1) 先保持其他參數(shù)不變,只對參數(shù)Ld和Lr進行優(yōu)化;
2) 保持Dδ為常量,采用最小二乘法優(yōu)化方程(13);
3) 對每個像素單獨優(yōu)化視差畸變Dδ,交替迭代步驟2)和3),直到殘差穩(wěn)定。
2.4 視差畸變估計
視差畸變Dδ中的所有元素是相互獨立的,而Dδ(u,v)的估計僅與像素(u,v)的測量值有關。因此,單獨對Dδ進行優(yōu)化即可。當其他參數(shù)固定時,可求得Dδ(u,v)的解析解。針對Dδ,優(yōu)化方程(13)等價于優(yōu)化如下代價函數(shù):
(14)
方程(14)是關于Dδ(u,v)的齊次方程,求解該方程可得Dδ(u,v)的最優(yōu)值。
3.1 實驗條件
在室內(nèi)環(huán)境良好光照條件下進行RGB-D傳感器標定,實驗中采用9×7的標定棋盤,黑白方格邊長為4 cm。將RGB-D傳感器靜置于桌面,調(diào)整標定棋盤的位姿,采用libfreenect庫提供的函數(shù)在不同的距離處獲取不同方向的標定圖像。在距離傳感器0.6~4 m范圍內(nèi)采集了60組深度圖像和彩色圖像,其中40組用于標定,20組用于驗證標定結果。標定軟件使用Matlab工具箱Kinect Calibration Toolbox[17],在內(nèi)存4 GB的2.4 GHz酷睿雙核筆記本電腦上運行。
3.2 RGB-D傳感器標定實驗
用A4紙打印出黑白方格的標定棋盤并粘貼在一個平板上,在Ubuntu系統(tǒng)中利用libfreenect庫提供的函數(shù)獲取RGB-D傳感器的原始彩色圖像和深度圖像。圖像序列包括4種類別:不同距離處的正面圖像、繞x軸旋轉的圖像、繞y軸旋轉的圖像以及標定板鋪滿整個視場的圖像,如圖3從左到右依次所示。
圖3 用于標定的4類圖像
3.2.1 RGB圖像角點提取
采用隨工具箱提供的角點檢測方法,在彩色圖像中提取出棋盤4個頂點處的角點,劃定自動角點檢測的區(qū)域,自動檢測出棋盤的角點。RGB圖像的角點提取結果如圖4所示。
圖4 自動角點檢測
3.2.2 深度圖像標定平面選取
在每幅深度圖像中,手動選擇標定板頂點附近的4個點,確定標定平面,如圖5所示。由于標定板邊界處的深度測量噪聲較大,為減小噪聲對標定平面參數(shù)的影響,選取的標定平面應略小于標定板的大小。
圖5 選取標定平面
3.2.3 標定參數(shù)初始化
采用基于角點和基于標定平面的攝像機標定方法分別得到RGB攝像機和深度攝像機的初始化參數(shù),利用標定棋盤和標定板共面的關系獲得相對位姿的初始估計。標定參數(shù)的初始化結果如下:
αo=(0, 0),
3.2.4 參數(shù)優(yōu)化
由3.2.3節(jié)得到的標定參數(shù)初始值,根據(jù)代價函數(shù)采用非線性最小化方法對標定參數(shù)進行優(yōu)化,最終得到的標定參數(shù)如下:
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。優(yōu)化前的角點重投影誤差均值為-0.000 002,標準差為0.145 077。正如文獻[18]中所述,深度攝像機模型參數(shù)的優(yōu)化會導致RGB攝像機的重投影誤差增加。
圖7 標定后的彩色圖像角點重投影誤差
圖8 標定后的彩色圖像角點重投影誤差直方圖
圖9為標定前后的深度圖像視差重投影誤差分布,可知:標定前的重投影誤差均值為0.325 011,標準差為1.536 120;標定后的重投影誤差均值為0.019 643,標準差為0.680 898。圖10為標定前后深度測量的不確定性曲線,可以看出:在0.5~1.5 m范圍內(nèi),標定后的深度測量不確定性標準差比標定前約減小了1/2;1.5 m后的深度測量不確定性相差不大。標定后擬合的深度測量不確定性函數(shù)為
圖9 標定前后的深度圖像視差重投影誤差分布
e(z)=2.859z2-1.57z+1.448。
圖10 標定前后深度測量不確定性
本文分析了RGB-D傳感器的標定模型和標定方法,使用Matlab工具箱Kinect Calibration Toolbox進行了標定實驗,結果表明:在0.5~1.5 m范圍內(nèi),標定后的深度測量不確定性標準差比標定前約減小了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