劉陽, 謝宗武, 王濱, 劉宏, 蔡鶴皋
(哈爾濱工業(yè)大學 機器人技術(shù)與系統(tǒng)國家重點實驗室, 黑龍江 哈爾濱150001)
?
基于OpenGL的模擬雙目建模平臺研究與仿真
劉陽, 謝宗武, 王濱, 劉宏, 蔡鶴皋
(哈爾濱工業(yè)大學 機器人技術(shù)與系統(tǒng)國家重點實驗室, 黑龍江 哈爾濱150001)
針對空間機器人視覺伺服地面驗證實驗過程中相機無法獲取真實圖像問題,本文研究了相機成像的數(shù)學模型,搭建了基于OpenGL的模擬雙目建模平臺。該平臺能夠提高視覺算法的研究效率,并能排除實驗條件下各種未知的不確定性因素。利用模擬棋盤圖像進行相機標定并與預先設(shè)定相機的內(nèi)外參數(shù)矩陣對比,驗證了該平臺的正確性。
雙目視覺;虛擬現(xiàn)實;OpenGL;立體重建;視覺伺服;相機標定
據(jù)UCS(union of concerned scientists)數(shù)據(jù)庫統(tǒng)計,截止2016年1月,已發(fā)射衛(wèi)星中約36%的衛(wèi)星為同步地球軌道衛(wèi)星。同步地球軌道始終與地球保持相對靜止,是一種珍貴的軌道資源,而其中僅有32%的衛(wèi)星處于受控狀態(tài)[1]。在軌服務(wù)通過補充燃料、軌道調(diào)整、ORU更換能夠?qū)崿F(xiàn)對失控衛(wèi)星的維修,挽回經(jīng)濟損失,同時避免潛在的碰撞危險。
視覺位姿測量是空間機器人執(zhí)行在軌服務(wù)的一個重要環(huán)節(jié)。失重條件下,空間機器人及目標衛(wèi)星均處于自由運動狀態(tài),視覺伺服控制技術(shù)是保證機械臂系統(tǒng)成功捕獲目標的關(guān)鍵技術(shù)[2]。雙目立體視覺是指通過雙目圖像計算空間點在兩幅圖像中的視差,進而計算該點的三維坐標值。它無需合作靶標或?qū)觽鞲衅骷纯赏瓿煞呛献髂繕说脑谲壏?wù)任務(wù),在機器人導航、三維測量及虛擬現(xiàn)實等領(lǐng)域具有較強的應用價值[3]。
計算機視覺系統(tǒng)的各項閾值一般很難適應外界條件的變化,比如光照、距離等條件。環(huán)境變化可能對結(jié)果產(chǎn)生不利的影響,這大大增加了空間環(huán)境下視覺伺服系統(tǒng)的設(shè)計與研發(fā)難度。利用計算機對實驗環(huán)境進行仿真模擬,一方面能夠降低系統(tǒng)的前期設(shè)計投入,另一方面還能加深對系統(tǒng)的整體認知。同時,可排除實際環(huán)境下因鏡頭畸變、安裝工藝、電磁噪聲等無關(guān)因素的干擾,得到理想狀態(tài)下的相機成像結(jié)果。
OpenGL是一種三維圖形標準庫,也是一個高性能的圖形開發(fā)軟件包。它集成了曲面造型、圖形變換、光照、材質(zhì)等復雜的計算機圖形學算法,能夠生成虛擬場景下三維物體的仿真圖像[4-7]。張祖勛等分析了OpenGL成像機制,并給出真實場景與模擬場景的成像對比[8]。蘇國中等實現(xiàn)了靜態(tài)單幅影像、立體像對的模擬以及運動目標軌跡和姿態(tài)模擬[9]。喬甜設(shè)計了兩種成像實驗方案,對成像實驗的結(jié)果進行精度分析,同時推導了基于相機基本運動的測量模型[10]。Yao等分析了基于OpenGL的匯聚雙目投影模型及平行雙目投影模型[11]。閆龍等討論了虛擬成像過程中畸變的模擬[2]。張瀚等搭建了基于OpenGL的視覺伺服半物理仿真平臺[12]。付國強等分析了雙目視覺仿真系統(tǒng)的目標模擬器的實現(xiàn)方法,并針對三角帆板支架研究了捕獲系統(tǒng)的視覺測量技術(shù)[13]。
本文搭建了基于OpenGL的模擬雙目建模平臺,能夠直接得到相機的內(nèi)外參數(shù)矩陣及位姿參數(shù)等信息,重點研究了成像過程中的坐標變換,可用于雙目視覺伺服算法的校核。
1.1 坐標系定義
圖1描述了相機成像過程中常用的坐標系,物體坐標依次由模型系轉(zhuǎn)換至世界系、攝像機系,并依據(jù)小孔成像原理轉(zhuǎn)換至裁切系,經(jīng)標準化后輸出至屏幕系顯示。
圖1 相機成像示意圖Fig.1 The camera imaging mechanism
圖1中Ob為模型系,坐標軸定義與模型相關(guān),右手系;Ow為世界系,慣性坐標系,右手系;Oc為攝像機系,原點位于投影中心,x正半軸水平向右,y軸垂直向上,右手系;Os為裁切系,原點位于相機投影中心,x、y軸與Oc系同向,左手系;On為標準化系,由Oclip標準化所得,左手系;Ov為屏幕系,原點在圖像窗口的左上角,x正半軸水平向右,y軸垂直向下,右手系。
假設(shè)空間點P在模型系及屏幕系下的坐標分別為pb與pv,兩者之間的投影變換矩陣的定義為P=cMbbMv,其中,cMb稱為內(nèi)參數(shù)矩陣,bMv稱為外參數(shù)矩陣,下面將分別對其進行推導。
1.2 外參數(shù)矩陣
空間點由模型系變換至攝像機系的變換矩陣稱為外參數(shù)矩陣,由模型矩陣及視圖矩陣構(gòu)成。模型矩陣將空間點從模型系變換至世界系,之后通過視圖矩陣將其由世界系進一步變換至攝像機系。坐標變換表示為
(1)
式中:cRb為3×3的單位矩陣,分別表示Ob系x、y、z軸方向的單位向量在Oc系下的投影;cTb表示Ob系原點在Oc系下的投影。
1.3 內(nèi)參數(shù)矩陣
內(nèi)參數(shù)矩陣是指將空間點由攝像機系變換至屏幕系的變換矩陣,由裁切矩陣,透視矩陣及視口矩陣構(gòu)成。裁切矩陣根據(jù)小孔成像原理將空間視錐體變換至一個等價的正方體;透視矩陣通過透視變換將該正方體標準化;視口矩陣進一步將空間點由標準正方體中映射至屏幕輸出顯示:
(2)
(3)
式中:H、W分別代表圖像的長寬,Zmax、Zmin分別代表設(shè)定的最大與最小深度值,X、Y分別代表繪圖區(qū)域的左上角坐標。
由裁切矩陣及透視矩陣組成的齊次投影矩陣,其定義:
sMc=sMppMc
(4)
肉眼或相機所能看到的最大視場空間稱為視椎體。如圖2所示,齊次投影矩陣根據(jù)小孔成像原理將空間視椎體變換為一個標準化正方體,其中n、f分別代表近平面與遠平面至投影中心的距離。
(5)
進一步,pn可通過透視矩陣sMp轉(zhuǎn)換為ps:
sMp=diag(-1/zc,-1/zc,-1/zc,-1/zc)
(6)
圖2 齊次投影矩陣坐標變換Fig.2 Transformation between frustum and cube
2.1 模擬雙目建模平臺的系統(tǒng)組成
模擬雙目建模的程序流程圖如圖3所示,主要包含繪圖、坐標轉(zhuǎn)換及鼠標回調(diào)三大模塊。
圖3 模擬雙目建模平臺流程Fig.3 The flow chart of simulated binocular camera system
繪圖模塊在已知三維物體模型及其坐標的前提下,繪制輸出該物體的模擬雙目圖像,其流程圖如圖4所示。
如圖5所示,坐標轉(zhuǎn)換模塊為該模擬雙目建模平臺的核心模塊,通過讀取雙目相機的成像與位姿參數(shù),結(jié)合三維模型的當前位姿信息,計算得到相機成像的內(nèi)外參數(shù)矩陣。
鼠標回調(diào)模塊流程圖如圖6所示,其主要功能為實現(xiàn)鼠標與全局相機之間的交互。全局相機的移動不影響雙目相機的成像輸出,只是通過移動全局相機使得雙目成像模型觀察起來更加方便。
圖4 繪圖子程序Fig.4 The subroutine of plot function
圖5 坐標轉(zhuǎn)換子程序Fig.5 The subroutine of coordinate transformation
圖6 鼠標回調(diào)子程序Fig.6 The subroutine of mouse interaction
2.2 基于OpenGL的模擬雙目建模平臺
模擬雙目建模平臺通過對三維物體在不同方向上進行投影來生成其不同位姿下的仿真圖像,其成像原理與真實相機成像在本質(zhì)上具有一致性。
模擬雙目建模平臺的程序界面如圖7所示。通過設(shè)定雙目相機的參數(shù)來求解相應的投影矩陣,進而模擬雙目成像并輸出顯示。鼠標交互實現(xiàn)了對空間視錐體的細節(jié)觀察。此外,程序還實現(xiàn)了相機運動的仿真,對于視覺伺服有著重要的應用意義。
圖7 模擬雙目建模程序界面Fig.7 The GUI of simulated binocular camera system
以上建立了基于OpenGL的模擬雙目建模平臺,實現(xiàn)了對三維物體的模擬雙目成像。下面將通過棋盤標定算法來驗證該建模平臺的準確性,將棋盤模型導入模擬雙目建模平臺,設(shè)定相機參數(shù),并不斷調(diào)整棋盤與相機之間的相對位姿得到姿態(tài)各異的棋盤圖像。
為了得到較好的棋盤檢測結(jié)果,棋盤平面與相機平面的夾角應小于45°,同時應盡可能多的拍攝不同方位的棋盤圖像,需要注意的是平行拍攝并不增加有效信息。
對生成的模擬圖像進行棋盤標定求解相機參數(shù),將得到的參數(shù)與模擬雙目平臺設(shè)定的參數(shù)進行對比,進而驗證模型的準確性。
相機標定程序得流程圖如圖8所示,首先對輸入的雙目棋盤圖進行角點檢測,獲取每幅圖像中的所有角點的圖像坐標。對角點坐標進行重投影,獲取其重投影誤差,排除不符合拍攝要求及檢測失敗的圖像。最后,對雙目相機進行立體重建,得到雙目相機間的相對位姿轉(zhuǎn)移矩陣。雙目相機的立體重建結(jié)果如圖9所示,右側(cè)為雙目相機的空間位置,左側(cè)為不同位置下的棋盤平面。
重投影誤差是指投影的點(理論值)與圖像上的測量點的誤差,是評定相機標定結(jié)果的重要指標。標定板投影變換后得到的理論像素點與經(jīng)過畸變矯正后的檢測點之間的歐氏距離即表示重投影誤差。如圖10所示,模擬棋盤圖像的最大重投影誤差不超過1像素。
棋盤標定后能夠得到左右相機的焦距、主點等相機參數(shù),同時也可獲得雙目相機間的相對位姿變換矩陣。將標定結(jié)果與模擬雙目建模平臺的設(shè)定數(shù)值對比以驗證算法的正確性。
圖8 棋盤標定算法流程Fig.8 The flow chart of camera calibration
圖9 雙目相機的三維重建Fig.9 The stereo reconstruction of the binocular cameras
模擬雙目建模平臺下設(shè)定的虛擬雙目相機參數(shù)為
(7)
棋盤標定算法給出的標定結(jié)果如下:
(8)
利用向量夾角法評判模擬雙目建模平臺的相對精度為S=99.97%,模擬雙目建模平臺的可靠性得到了驗證。
需要注意的是,OpenGL并未提供相機畸變參數(shù)的設(shè)置,模擬雙目建模平臺得到的圖像為理想情況下無畸變圖像[14-16]。
圖10 雙目相機的重投影誤差Fig.10 The reprojection error of the binocular cameras
至此,完成了模擬雙目建模平臺的搭建與驗證,該平臺能夠生成不同環(huán)境下的雙目圖像對,進而模擬太空環(huán)境下自旋非合作目標的運動。
本文給出基于稀疏點(衛(wèi)星基座邊緣角點)匹配的立體重建算法,程序界面如圖11所示,通過讀入左右圖像序列,選取衛(wèi)星基座輪廓的邊緣點作為角點特征,進而得到相應視差,利用雙目相機標定參數(shù)得到反投影矩陣,進一步計算得到四個角點在左相機系下的空間坐標,最終得到關(guān)于衛(wèi)星基座的位姿參數(shù)。
模擬雙目建模平臺中,衛(wèi)星基座的位姿參數(shù)為
模擬衛(wèi)星基座雙目圖像計算得到的位姿數(shù)據(jù)如圖10右上方所示,為觀察方便,圖中的角度數(shù)據(jù)為其對應余角的角度制表示。
同樣利用向量夾角法評判立體重建算法的相對精度為S=99.86%,進一步證明了模擬建模平臺的正確性,同時,在此基礎(chǔ)上能夠繼續(xù)開發(fā)各種視覺伺服控制算法,調(diào)試簡單,易于編程。
圖11 立體重建示意圖Fig.11 The stereo reconstruction of the simulated satellite
1)本文搭建了基于OpenGL的模擬雙目建模平臺并通過棋盤標定驗證了該平臺的準確性,相對精度為S=99.97%。
2)相比于OpenGL在三維仿真中的應用,本文側(cè)重研究圖像成像過程中的坐標變換,主要針對于雙目視覺伺服算法精度的校核。
3)該平臺能夠生成虛擬環(huán)境下的仿真圖像,既能提高實驗研究的效率,降低系統(tǒng)的設(shè)計投入,還可以排除實際環(huán)境中的干擾因素。
相比于真實相機成像,本文并未實現(xiàn)相機畸變的模擬,后續(xù)研究中可進一步對圖像進行重映射來完善對真實圖像的仿真。
[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)仿真及驗證技術(shù)研究[J]. 系統(tǒng)仿真學報, 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]劉陽. 面向非合作目標的空間機器人雙目視覺伺服研究[D]. 哈爾濱: 哈爾濱工業(yè)大學, 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]. 應用科技, 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]. 應用科技, 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]. 應用科技, 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成像機理及其與攝影測量方位元素的相關(guān)分析[J]. 武漢大學學報, 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]. 中國圖象圖形學報, 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]喬甜. 基于攝像機運動的測量模型及仿真建模研究[D]. 青島: 青島大學, 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]張瀚, 徐科軍, 趙明, 等. 機器人視覺伺服控制半物理仿真系統(tǒng)的研制[J]. 系統(tǒng)仿真學報, 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]付國強, 黃攀峰, 陳凱, 等. 基于雙目視覺的伺服控制半物理仿真系統(tǒng)設(shè)計[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]. 青島: 青島大學, 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的小行星實時成像模擬[J]. 系統(tǒng)仿真學報, 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]. 哈爾濱工程大學學報, 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.
國家重點基礎(chǔ)研究發(fā)展計劃(2013CB733105).
劉陽(1990-), 男, 博士研究生; 謝宗武(1973-), 男, 教授,博士生導師; 王濱(1973-), 男, 副教授; 劉宏(1966-), 男, 教授,博士生導師,“長江學者計劃”特聘教授; 蔡鶴皋(1934-), 男, 教授,博士生導師,中國工程院院士.
王濱,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