劉陽, 謝宗武, 王濱, 劉宏, 蔡鶴皋
(哈爾濱工業(yè)大學(xué) 機(jī)器人技術(shù)與系統(tǒng)國家重點(diǎn)實(shí)驗(yàn)室, 黑龍江 哈爾濱150001)
?
基于OpenGL的模擬雙目建模平臺研究與仿真
劉陽, 謝宗武, 王濱, 劉宏, 蔡鶴皋
(哈爾濱工業(yè)大學(xué) 機(jī)器人技術(shù)與系統(tǒng)國家重點(diǎn)實(shí)驗(yàn)室, 黑龍江 哈爾濱150001)
針對空間機(jī)器人視覺伺服地面驗(yàn)證實(shí)驗(yàn)過程中相機(jī)無法獲取真實(shí)圖像問題,本文研究了相機(jī)成像的數(shù)學(xué)模型,搭建了基于OpenGL的模擬雙目建模平臺。該平臺能夠提高視覺算法的研究效率,并能排除實(shí)驗(yàn)條件下各種未知的不確定性因素。利用模擬棋盤圖像進(jìn)行相機(jī)標(biāo)定并與預(yù)先設(shè)定相機(jī)的內(nèi)外參數(shù)矩陣對比,驗(yàn)證了該平臺的正確性。
雙目視覺;虛擬現(xiàn)實(shí);OpenGL;立體重建;視覺伺服;相機(jī)標(biāo)定
據(jù)UCS(union of concerned scientists)數(shù)據(jù)庫統(tǒng)計(jì),截止2016年1月,已發(fā)射衛(wèi)星中約36%的衛(wèi)星為同步地球軌道衛(wèi)星。同步地球軌道始終與地球保持相對靜止,是一種珍貴的軌道資源,而其中僅有32%的衛(wèi)星處于受控狀態(tài)[1]。在軌服務(wù)通過補(bǔ)充燃料、軌道調(diào)整、ORU更換能夠?qū)崿F(xiàn)對失控衛(wèi)星的維修,挽回經(jīng)濟(jì)損失,同時避免潛在的碰撞危險。
視覺位姿測量是空間機(jī)器人執(zhí)行在軌服務(wù)的一個重要環(huán)節(jié)。失重條件下,空間機(jī)器人及目標(biāo)衛(wèi)星均處于自由運(yùn)動狀態(tài),視覺伺服控制技術(shù)是保證機(jī)械臂系統(tǒng)成功捕獲目標(biāo)的關(guān)鍵技術(shù)[2]。雙目立體視覺是指通過雙目圖像計(jì)算空間點(diǎn)在兩幅圖像中的視差,進(jìn)而計(jì)算該點(diǎn)的三維坐標(biāo)值。它無需合作靶標(biāo)或?qū)觽鞲衅骷纯赏瓿煞呛献髂繕?biāo)的在軌服務(wù)任務(wù),在機(jī)器人導(dǎo)航、三維測量及虛擬現(xiàn)實(shí)等領(lǐng)域具有較強(qiáng)的應(yīng)用價值[3]。
計(jì)算機(jī)視覺系統(tǒng)的各項(xiàng)閾值一般很難適應(yīng)外界條件的變化,比如光照、距離等條件。環(huán)境變化可能對結(jié)果產(chǎn)生不利的影響,這大大增加了空間環(huán)境下視覺伺服系統(tǒng)的設(shè)計(jì)與研發(fā)難度。利用計(jì)算機(jī)對實(shí)驗(yàn)環(huán)境進(jìn)行仿真模擬,一方面能夠降低系統(tǒng)的前期設(shè)計(jì)投入,另一方面還能加深對系統(tǒng)的整體認(rèn)知。同時,可排除實(shí)際環(huán)境下因鏡頭畸變、安裝工藝、電磁噪聲等無關(guān)因素的干擾,得到理想狀態(tài)下的相機(jī)成像結(jié)果。
OpenGL是一種三維圖形標(biāo)準(zhǔn)庫,也是一個高性能的圖形開發(fā)軟件包。它集成了曲面造型、圖形變換、光照、材質(zhì)等復(fù)雜的計(jì)算機(jī)圖形學(xué)算法,能夠生成虛擬場景下三維物體的仿真圖像[4-7]。張祖勛等分析了OpenGL成像機(jī)制,并給出真實(shí)場景與模擬場景的成像對比[8]。蘇國中等實(shí)現(xiàn)了靜態(tài)單幅影像、立體像對的模擬以及運(yùn)動目標(biāo)軌跡和姿態(tài)模擬[9]。喬甜設(shè)計(jì)了兩種成像實(shí)驗(yàn)方案,對成像實(shí)驗(yàn)的結(jié)果進(jìn)行精度分析,同時推導(dǎo)了基于相機(jī)基本運(yùn)動的測量模型[10]。Yao等分析了基于OpenGL的匯聚雙目投影模型及平行雙目投影模型[11]。閆龍等討論了虛擬成像過程中畸變的模擬[2]。張瀚等搭建了基于OpenGL的視覺伺服半物理仿真平臺[12]。付國強(qiáng)等分析了雙目視覺仿真系統(tǒng)的目標(biāo)模擬器的實(shí)現(xiàn)方法,并針對三角帆板支架研究了捕獲系統(tǒng)的視覺測量技術(shù)[13]。
本文搭建了基于OpenGL的模擬雙目建模平臺,能夠直接得到相機(jī)的內(nèi)外參數(shù)矩陣及位姿參數(shù)等信息,重點(diǎn)研究了成像過程中的坐標(biāo)變換,可用于雙目視覺伺服算法的校核。
1.1 坐標(biāo)系定義
圖1描述了相機(jī)成像過程中常用的坐標(biāo)系,物體坐標(biāo)依次由模型系轉(zhuǎn)換至世界系、攝像機(jī)系,并依據(jù)小孔成像原理轉(zhuǎn)換至裁切系,經(jīng)標(biāo)準(zhǔn)化后輸出至屏幕系顯示。
圖1 相機(jī)成像示意圖Fig.1 The camera imaging mechanism
圖1中Ob為模型系,坐標(biāo)軸定義與模型相關(guān),右手系;Ow為世界系,慣性坐標(biāo)系,右手系;Oc為攝像機(jī)系,原點(diǎn)位于投影中心,x正半軸水平向右,y軸垂直向上,右手系;Os為裁切系,原點(diǎn)位于相機(jī)投影中心,x、y軸與Oc系同向,左手系;On為標(biāo)準(zhǔn)化系,由Oclip標(biāo)準(zhǔn)化所得,左手系;Ov為屏幕系,原點(diǎn)在圖像窗口的左上角,x正半軸水平向右,y軸垂直向下,右手系。
假設(shè)空間點(diǎn)P在模型系及屏幕系下的坐標(biāo)分別為pb與pv,兩者之間的投影變換矩陣的定義為P=cMbbMv,其中,cMb稱為內(nèi)參數(shù)矩陣,bMv稱為外參數(shù)矩陣,下面將分別對其進(jìn)行推導(dǎo)。
1.2 外參數(shù)矩陣
空間點(diǎn)由模型系變換至攝像機(jī)系的變換矩陣稱為外參數(shù)矩陣,由模型矩陣及視圖矩陣構(gòu)成。模型矩陣將空間點(diǎn)從模型系變換至世界系,之后通過視圖矩陣將其由世界系進(jìn)一步變換至攝像機(jī)系。坐標(biāo)變換表示為
(1)
式中:cRb為3×3的單位矩陣,分別表示Ob系x、y、z軸方向的單位向量在Oc系下的投影;cTb表示Ob系原點(diǎn)在Oc系下的投影。
1.3 內(nèi)參數(shù)矩陣
內(nèi)參數(shù)矩陣是指將空間點(diǎn)由攝像機(jī)系變換至屏幕系的變換矩陣,由裁切矩陣,透視矩陣及視口矩陣構(gòu)成。裁切矩陣根據(jù)小孔成像原理將空間視錐體變換至一個等價的正方體;透視矩陣通過透視變換將該正方體標(biāo)準(zhǔn)化;視口矩陣進(jìn)一步將空間點(diǎn)由標(biāo)準(zhǔn)正方體中映射至屏幕輸出顯示:
(2)
(3)
式中:H、W分別代表圖像的長寬,Zmax、Zmin分別代表設(shè)定的最大與最小深度值,X、Y分別代表繪圖區(qū)域的左上角坐標(biāo)。
由裁切矩陣及透視矩陣組成的齊次投影矩陣,其定義:
sMc=sMppMc
(4)
肉眼或相機(jī)所能看到的最大視場空間稱為視椎體。如圖2所示,齊次投影矩陣根據(jù)小孔成像原理將空間視椎體變換為一個標(biāo)準(zhǔn)化正方體,其中n、f分別代表近平面與遠(yuǎn)平面至投影中心的距離。
(5)
進(jìn)一步,pn可通過透視矩陣sMp轉(zhuǎn)換為ps:
sMp=diag(-1/zc,-1/zc,-1/zc,-1/zc)
(6)
圖2 齊次投影矩陣坐標(biāo)變換Fig.2 Transformation between frustum and cube
2.1 模擬雙目建模平臺的系統(tǒng)組成
模擬雙目建模的程序流程圖如圖3所示,主要包含繪圖、坐標(biāo)轉(zhuǎn)換及鼠標(biāo)回調(diào)三大模塊。
圖3 模擬雙目建模平臺流程Fig.3 The flow chart of simulated binocular camera system
繪圖模塊在已知三維物體模型及其坐標(biāo)的前提下,繪制輸出該物體的模擬雙目圖像,其流程圖如圖4所示。
如圖5所示,坐標(biāo)轉(zhuǎn)換模塊為該模擬雙目建模平臺的核心模塊,通過讀取雙目相機(jī)的成像與位姿參數(shù),結(jié)合三維模型的當(dāng)前位姿信息,計(jì)算得到相機(jī)成像的內(nèi)外參數(shù)矩陣。
鼠標(biāo)回調(diào)模塊流程圖如圖6所示,其主要功能為實(shí)現(xiàn)鼠標(biāo)與全局相機(jī)之間的交互。全局相機(jī)的移動不影響雙目相機(jī)的成像輸出,只是通過移動全局相機(jī)使得雙目成像模型觀察起來更加方便。
圖4 繪圖子程序Fig.4 The subroutine of plot function
圖5 坐標(biāo)轉(zhuǎn)換子程序Fig.5 The subroutine of coordinate transformation
圖6 鼠標(biāo)回調(diào)子程序Fig.6 The subroutine of mouse interaction
2.2 基于OpenGL的模擬雙目建模平臺
模擬雙目建模平臺通過對三維物體在不同方向上進(jìn)行投影來生成其不同位姿下的仿真圖像,其成像原理與真實(shí)相機(jī)成像在本質(zhì)上具有一致性。
模擬雙目建模平臺的程序界面如圖7所示。通過設(shè)定雙目相機(jī)的參數(shù)來求解相應(yīng)的投影矩陣,進(jìn)而模擬雙目成像并輸出顯示。鼠標(biāo)交互實(shí)現(xiàn)了對空間視錐體的細(xì)節(jié)觀察。此外,程序還實(shí)現(xiàn)了相機(jī)運(yùn)動的仿真,對于視覺伺服有著重要的應(yīng)用意義。
圖7 模擬雙目建模程序界面Fig.7 The GUI of simulated binocular camera system
以上建立了基于OpenGL的模擬雙目建模平臺,實(shí)現(xiàn)了對三維物體的模擬雙目成像。下面將通過棋盤標(biāo)定算法來驗(yàn)證該建模平臺的準(zhǔn)確性,將棋盤模型導(dǎo)入模擬雙目建模平臺,設(shè)定相機(jī)參數(shù),并不斷調(diào)整棋盤與相機(jī)之間的相對位姿得到姿態(tài)各異的棋盤圖像。
為了得到較好的棋盤檢測結(jié)果,棋盤平面與相機(jī)平面的夾角應(yīng)小于45°,同時應(yīng)盡可能多的拍攝不同方位的棋盤圖像,需要注意的是平行拍攝并不增加有效信息。
對生成的模擬圖像進(jìn)行棋盤標(biāo)定求解相機(jī)參數(shù),將得到的參數(shù)與模擬雙目平臺設(shè)定的參數(shù)進(jìn)行對比,進(jìn)而驗(yàn)證模型的準(zhǔn)確性。
相機(jī)標(biāo)定程序得流程圖如圖8所示,首先對輸入的雙目棋盤圖進(jìn)行角點(diǎn)檢測,獲取每幅圖像中的所有角點(diǎn)的圖像坐標(biāo)。對角點(diǎn)坐標(biāo)進(jìn)行重投影,獲取其重投影誤差,排除不符合拍攝要求及檢測失敗的圖像。最后,對雙目相機(jī)進(jìn)行立體重建,得到雙目相機(jī)間的相對位姿轉(zhuǎn)移矩陣。雙目相機(jī)的立體重建結(jié)果如圖9所示,右側(cè)為雙目相機(jī)的空間位置,左側(cè)為不同位置下的棋盤平面。
重投影誤差是指投影的點(diǎn)(理論值)與圖像上的測量點(diǎn)的誤差,是評定相機(jī)標(biāo)定結(jié)果的重要指標(biāo)。標(biāo)定板投影變換后得到的理論像素點(diǎn)與經(jīng)過畸變矯正后的檢測點(diǎn)之間的歐氏距離即表示重投影誤差。如圖10所示,模擬棋盤圖像的最大重投影誤差不超過1像素。
棋盤標(biāo)定后能夠得到左右相機(jī)的焦距、主點(diǎn)等相機(jī)參數(shù),同時也可獲得雙目相機(jī)間的相對位姿變換矩陣。將標(biāo)定結(jié)果與模擬雙目建模平臺的設(shè)定數(shù)值對比以驗(yàn)證算法的正確性。
圖8 棋盤標(biāo)定算法流程Fig.8 The flow chart of camera calibration
圖9 雙目相機(jī)的三維重建Fig.9 The stereo reconstruction of the binocular cameras
模擬雙目建模平臺下設(shè)定的虛擬雙目相機(jī)參數(shù)為
(7)
棋盤標(biāo)定算法給出的標(biāo)定結(jié)果如下:
(8)
利用向量夾角法評判模擬雙目建模平臺的相對精度為S=99.97%,模擬雙目建模平臺的可靠性得到了驗(yàn)證。
需要注意的是,OpenGL并未提供相機(jī)畸變參數(shù)的設(shè)置,模擬雙目建模平臺得到的圖像為理想情況下無畸變圖像[14-16]。
圖10 雙目相機(jī)的重投影誤差Fig.10 The reprojection error of the binocular cameras
至此,完成了模擬雙目建模平臺的搭建與驗(yàn)證,該平臺能夠生成不同環(huán)境下的雙目圖像對,進(jìn)而模擬太空環(huán)境下自旋非合作目標(biāo)的運(yùn)動。
本文給出基于稀疏點(diǎn)(衛(wèi)星基座邊緣角點(diǎn))匹配的立體重建算法,程序界面如圖11所示,通過讀入左右圖像序列,選取衛(wèi)星基座輪廓的邊緣點(diǎn)作為角點(diǎn)特征,進(jìn)而得到相應(yīng)視差,利用雙目相機(jī)標(biāo)定參數(shù)得到反投影矩陣,進(jìn)一步計(jì)算得到四個角點(diǎn)在左相機(jī)系下的空間坐標(biāo),最終得到關(guān)于衛(wèi)星基座的位姿參數(shù)。
模擬雙目建模平臺中,衛(wèi)星基座的位姿參數(shù)為
模擬衛(wèi)星基座雙目圖像計(jì)算得到的位姿數(shù)據(jù)如圖10右上方所示,為觀察方便,圖中的角度數(shù)據(jù)為其對應(yīng)余角的角度制表示。
同樣利用向量夾角法評判立體重建算法的相對精度為S=99.86%,進(jìn)一步證明了模擬建模平臺的正確性,同時,在此基礎(chǔ)上能夠繼續(xù)開發(fā)各種視覺伺服控制算法,調(diào)試簡單,易于編程。
圖11 立體重建示意圖Fig.11 The stereo reconstruction of the simulated satellite
1)本文搭建了基于OpenGL的模擬雙目建模平臺并通過棋盤標(biāo)定驗(yàn)證了該平臺的準(zhǔn)確性,相對精度為S=99.97%。
2)相比于OpenGL在三維仿真中的應(yīng)用,本文側(cè)重研究圖像成像過程中的坐標(biāo)變換,主要針對于雙目視覺伺服算法精度的校核。
3)該平臺能夠生成虛擬環(huán)境下的仿真圖像,既能提高實(shí)驗(yàn)研究的效率,降低系統(tǒng)的設(shè)計(jì)投入,還可以排除實(shí)際環(huán)境中的干擾因素。
相比于真實(shí)相機(jī)成像,本文并未實(shí)現(xiàn)相機(jī)畸變的模擬,后續(xù)研究中可進(jìn)一步對圖像進(jìn)行重映射來完善對真實(shí)圖像的仿真。
[1]XU Wenfu, LIANG Bin, LI Bing, et al. A universal on-orbit servicing system used in the geostationary orbit[J]. Advances in space research, 2011, 48(1): 95-119.
[2]閆龍, 華臻, 陳成軍, 等. 攝影測量系統(tǒng)仿真及驗(yàn)證技術(shù)研究[J]. 系統(tǒng)仿真學(xué)報(bào), 2013, 25(6): 1231-1240.
YAN Long, HUA Zhen, CHEN Chengjun, et al. Research on simulation and verification technologies of photogrammetry system [J]. Journal of system simulation, 2013, 25(6): 1231-1240.
[3]劉陽. 面向非合作目標(biāo)的空間機(jī)器人雙目視覺伺服研究[D]. 哈爾濱: 哈爾濱工業(yè)大學(xué), 2015.
LIU Yang. Binocular vision system of space robot for non-cooperative target [D]. Harbin: Harbin Institute of Technology, 2015.
[4]卞泳鋒, 張興周, 韓亮. 基于OpenGL的空戰(zhàn)三維可視化仿真系統(tǒng)[J]. 應(yīng)用科技, 2007, 34(11): 46-50.
BIAN Yongfeng, ZHANG Xingzhou, HAN Liang. 3D visualized simulation system for air fight based on OpenGL[J]. Applied science and technology, 2007, 34(11): 46-50.
[5]寧猛, 張林波, 榮天琪. 野外地形電磁環(huán)境仿真可視化研究[J]. 應(yīng)用科技, 2014, 41(3): 15-19.
NING Meng, ZHANG Linbo, RONG Tianqi. Research on visualization of electromagnetic environment simulation for wild terrain[J]. Applied science and technology, 2014, 41(3): 15-19.
[6]盧志忠, 陳健, 上官偉. 基于空間的衛(wèi)星云圖三維可視化仿真技術(shù)研究[J]. 應(yīng)用科技, 2008, 35(3): 65-69.
LU Zhizhong, CHEN Jian, SHANG Guanwei. 3-D visualization simulation technology of spatial-based satellite cloud image[J]. Applied science and technology, 2008, 35(3): 65-69.
[7]SONG Zhiming, KANG Fengju, TANG Kai, et al. Seabed scene simulation and its realization in extending Vega[J]. Journal of marine science and appliaction, 2003, 2(2): 40-45.
[8]張祖勛, 蘇國中, 鄭順義, 等. OpenGL成像機(jī)理及其與攝影測量方位元素的相關(guān)分析[J]. 武漢大學(xué)學(xué)報(bào), 2004, 29(7): 570-574.
ZHANG Zuxun, SU Guozhong, ZHENG Shunyi, et al. Relating OpenGL imaging process with exterior and interior parameters of photogrammetry[J]. Geomatics and Information Science of Wuhan University, 2004, 29(7): 570-574.
[9]蘇國中, 鄭順義, 張劍清, 等. OpenGL模擬攝影測量方法研究[J]. 中國圖象圖形學(xué)報(bào), 2006, 11(4): 540-544.
SU Guozhong, ZHENG Shunyi, ZHANG Jianqing, et al. How to relate the OpenGL imaging process with exterior and interior parameters of photogrammetry [J]. Journal of image and graphics, 2006, 11(4): 540-544.
[10]喬甜. 基于攝像機(jī)運(yùn)動的測量模型及仿真建模研究[D]. 青島: 青島大學(xué), 2007: 5-42.
QIAO Tian. Research on the motion of camera measurement model [D]. Qingdao: Qingdao University, 2007: 5-42.
[11]YAO Xiaoyong, WU Pingdong. Study on methods for synthesizing binocular stereoscopic images[C]∥International Conference on Electrical and Control Engineering. 2011: 6127-6130.
[12]張瀚, 徐科軍, 趙明, 等. 機(jī)器人視覺伺服控制半物理仿真系統(tǒng)的研制[J]. 系統(tǒng)仿真學(xué)報(bào), 2008, 20(1): 68-69.
ZHANG Han, XU Kejun, ZHAO Ming, et al. Development of semi-physical simulation system for vision servo control of robot [J]. Journal of system simulation, 2008, 20(1): 68-69.
[13]付國強(qiáng), 黃攀峰, 陳凱, 等. 基于雙目視覺的伺服控制半物理仿真系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制, 2009, 17(12): 2494-2496.
FU Guoqiang, HUANG Panfeng, CHEN Kai, et al. Design of semi-physical simulation system for binocular vision servo control [J]. Computer measurement & control, 2009, 17(12): 2494-2496.
[14]趙汝明. 虛擬場景成像技術(shù)的研究[D]. 青島: 青島大學(xué), 2006: 23-27.
ZHAO Ruming. Research on virtual scene imaging [D]. Qingdao: Qingdao University, 2006: 23-27.
[15]LU Yang. Efficient simulation of lens distortion in OpenGL[J]. Computer science & software engineering, 2008, 4(1): 15-26.
[16]趙羲, 馬東洋, 劉毅錕, 等. 基于GPU的小行星實(shí)時成像模擬[J]. 系統(tǒng)仿真學(xué)報(bào), 2009, 21(1): 111-112.
ZHAO Xi, MA Dongyang, LIU Yikun, et al. Real-time imaging simulation of asteroid based GPU [J]. Journal of system simulation, 2009, 21(1): 111-112.
本文引用格式:
劉陽, 謝宗武, 王濱, 等. 基于OpenGL的模擬雙目建模平臺研究與仿真[J]. 哈爾濱工程大學(xué)學(xué)報(bào), 2017, 38(6): 939-944.
LIU Yang, XIE Zongwu, WANG Bin, et al. The simulated binocular camera system based on OpenGL[J]. Journal of Harbin Engineering University, 2017, 38(6): 939-944.
The simulated binocular camera system based on OpenGL
LIU Yang, XIE Zongwu, WANG Bin, LIU Hong, CAI Hegao
(State Key Laboratory of Robotics and System, Harbin Institute of Technology, Harbin 150001, China)
In order to verify the visual servo control system focused on non-cooperative satellites, we analyze a mathematical model in detail and construct a simulated binocular camera platform based on OpenGL. This approach is aimed at improving the efficiency of visual algorithm. Besides, it can also remove the uncertain factors in experiment. Camera calibration is performed with the synthetic checkboard images, and the results are then compared with the known intrinsic and extrinsic parameter matrices. After that, the correctness of the platform is verified.Keywords:binocular vision; virtual reality; OpenGL; stereo reconstruction; vision stereo; camera calibrate
2016-09-22. 網(wǎng)絡(luò)出版日期:2017-03-30.
國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(2013CB733105).
劉陽(1990-), 男, 博士研究生; 謝宗武(1973-), 男, 教授,博士生導(dǎo)師; 王濱(1973-), 男, 副教授; 劉宏(1966-), 男, 教授,博士生導(dǎo)師,“長江學(xué)者計(jì)劃”特聘教授; 蔡鶴皋(1934-), 男, 教授,博士生導(dǎo)師,中國工程院院士.
王濱,E-mail: wbhit@hit.edu.cn.
10.11990//jheu.201609070
http://www.cnki.net/kcms/detail/23.1390.u.20170330.0950.006.html
TP391.9
A
1006-7043(2017)06-0939-06