陳強
(四川大學計算機學院,成都 610065)
基于雙目立體視覺的三維重建
陳強
(四川大學計算機學院,成都 610065)
三維重建是圖像處理、計算機視覺、計算機圖形學的一個重要研究領域。基于雙目立體視覺的三維重建通過相機標定搭建一個對準的標準立體實驗平臺采集圖像,進而對圖像進行特征點檢測與匹配找到待重建點,然后通過雙目視覺原理計算三維坐標,最后進行紋理映射。根據真實圖像的實驗結果表明,具有較好的重建效果。
三維重建;雙目立體視覺;相機標定;特征點檢測與匹配;紋理映射
雙目立體視覺是機器視覺的一種重要形式,它是基于視差原理并利用成像設備從不同的位置獲取被測物體的兩幅圖像,通過計算兩幅圖像對應點間的位置偏差,來獲得物體三維幾何信息的方法。
雙目立體視覺測量方法具有效率高、精度合適、系統結構簡單、成本低等優點,非常適合于制造現場的在線、非接觸產品檢測和質量控制。對運動物體(包括動物和人體形體)測量中,由于圖像獲取是在瞬間完成的,因此立體視覺方法是一種更有效的測量方法。雙目立體視覺系統是計算機視覺的關鍵技術之一,獲取空間三維場景的距離信息也是計算機視覺研究中最基礎的內容。
基于雙目立體視覺的三維重建的整體流程如圖1所示,下面分別闡述各部分的原理。
1.1 相機標定
相機標定是整個基于立體視覺的三維重建的預備工作,標定結果的精度影響著最終的重建效果。雙目攝像頭標定不僅要得出每個攝像頭的內部參數,還需要通過標定來測量兩個攝像頭之間的相對位置(即右攝像頭相對于左攝像頭的三維平移T和旋轉R參數)。Bougue的MATLAB標定工具箱可以進行立體標定,標定物采用黑白棋盤格,如圖2所示。

圖1 三維重建流程圖

圖2 黑白棋盤格
具體標定過程如下:
(1)把MATLAB標定工具箱的文件復制到對應目錄下,把左右攝像頭獲取的棋盤格圖片序列也放到.m文件所在的目錄下,然后在MATLAB命令行窗口打入calib_gui,選擇Standard之后出現以下窗口,如圖3所示。

圖3 calib_gui面板
(2)先對右攝像頭進行標定。點擊Image names,讀入右攝像頭的棋盤格圖像系列,然后點擊Extract grid corners,提取每幅圖的角點。提取每幅圖的角點后,點擊Calibration,開始攝像頭標定,經過多次迭代后,程序最終得到攝像頭的內外參數。
(3)驗證標定結果無誤后,點擊面板上的Save按鈕,保存標定結果。
(4)同理,對左攝像頭進行同樣的操作。
(5)左右攝像頭都標定完成之后,就可以開始立體標定。在MATLAB命令行中鍵入stereo_gui啟動立體標定面板,如圖4所示。點擊Load left and right calibration選擇上面保存的左右攝像頭標定結果之后就可以開始Run stereo calibration。

圖4 stereo_gui面板
1.2 特征點提取與匹配
左右攝像頭獲取的待重建場景圖像通過相機標定得到的旋轉R和平移T參數進行校正,使得兩幅圖像的對級線恰好在同一水平線上,即兩幅圖像是行對齊的。
由雙目立體視覺進行三維重建的第一步是尋找兩幅圖像中的對應點,目前有很多二維圖像配準算法,例如SIFT、SURF等。OpenCV中的features2d庫中包含了很多常用的算法,其中特征點定位的算法有FAST、SIFT、HARRIS等,特征點描述算法有SIFT、SURF等,還有若干種特征點匹配算法。這三個步驟的算法可以任意組合,選擇較好的效果組合。
在匹配過程中需要有一些措施來過濾誤匹配,一種比較常用的方法是比較第一匹配結果和第二匹配結果的得分差距是否足夠大,這種方法可以過濾掉一些由于相似造成的誤匹配。另一種可行的方法是利用已經找到的匹配點,使用RANSAC算法求得兩幅視圖之間的單應矩陣,然后將左視圖中的坐標用單應矩陣映射到右視圖,觀察與匹配結果的歐氏距離是否限定在規定的閾值內。
1.3 計算三維坐標


圖5 標準雙目立體視覺實驗平臺
假設物理世界中的點P在行對齊的左右圖像上的成像點為pl和pr,相應的橫坐標分別為xl和xr,這使得深度與視差成反比關系,定義視差d=xl-xr。利用相似三角形很容易推導出Z值。由圖5可知:

所以,假設目標點在左視圖中的坐標為(x,y),在左右視圖上形成的視差為d,目標點在以左攝像頭光心為原點的世界坐標系中的坐標為(X,Y,Z),則存在變換矩陣Q,如下所示:

焦距f、兩攝像頭中心距Tx和左右攝像頭的坐標系與立體坐標系中原點的偏移cx和cy可以通過立體標定獲得初始值。使得:

三維坐標就是(X/W,Y/W,Z/W),即為三維坐標(X,Y,Z)的計算公式。
1.4 紋理映射
紋理映射是把二維的圖像上的像素值映射到三維實體模型的對應頂點上,以增強實體模型的真實感。本質上是一個二維紋理平面到三維景物表面的一個映射。
為了處理三維點集的紋理映射,可以先對點集進行三角剖分,形成三角面片。點集的三角剖分對數值分析(例如有限元分析)以及圖形學來說,都是極為重要的一項預處理技術。Delaunay三角剖分是個不錯的三角剖分方法,有最大化最小角,“最接近于規則化的”的三角網和唯一性(任意四點不能共圓)兩個特點。經典的Delaunay剖分算法主要有兩類:
(1)增量算法:又稱為Delaunay空洞算法或加點法,其思路為從一個三角形開始,每次增加一個點,保證每一步得到的當前三角形是局部優化的三角形。
(2)局部變換法:又稱為換邊或換面法,其思路為構造非優化的三角網,然后對兩個共邊三角形形成的凸四邊形迭代換邊優化。
其基本步驟為:
(1)獲取點集坐標數組。
(2)獲取點集外圍邊界。
(3)根據邊界及內部點生成三角網。
OpenCV中實現了二維的Delaunay三角剖分,可以直接調用庫函數。經過三角剖分的預處理后,就可以將平面圖像中的三角面片逐個貼到計算出的三維坐標上,完成三維點集的紋理映射。
左右攝像機采集的真實圖像三維重建實驗結果如圖6所示。圖6(a)為經過相機標定參數校正過的輸入圖像進行特征點匹配的結果。在紋理映射時對左圖像進行的Delaunay三角剖分如圖6(b)所示。最終在三維點集上進行紋理映射后的顯示效果如圖6(c)所示。實驗結果表明基于雙目立體視覺的三維重建具有較好的三維效果。

圖6 真實圖像的三維重建結果
本文主要研究了基于雙目立體視覺的三維重建的流程,并詳細闡述了各個流程的實現步驟,最后對采集真實的圖像進行了三維重建實驗,驗證了基于雙目立體視覺的三維重建的可行性和正確性,可以有效地應用于各種可使用計算機視覺的應用中。
參考文獻:
[1] 李先怡.特征點匹配技術在無人機影像匹配中的研究與應用[D].西安:西安科技大學,2011
[2] 李玲.基于雙目立體視覺的計算機三維重建方法研究[D].武漢:武漢大學,2005
[3] 于仕琪,劉瑞禎.學習OpenCV(中文版)[M].北京:清華大學出版社,2009
[4] 馬頌德,張正友.計算機視覺-計算理論與算法基礎[M].北京:科學出版社,2003
[5] Faugeras O,Robert L,Laveau S.3D Reconstruction of Urban Scenes from Image Sequences[J].CVGIP,1998,69(3):292~309
[6] GAO Hong-wei,LI Bin,WU Cheng-dong,et al.An Improved Two-Stage Camera Calibration Method Based on Evolution Calculation [C].Proceedings of the 7th World Congress on Control and Automation,Chongqing,China,2008:8477~8482
3D Reconstruction Based on Binocular Stereovision
CHEN Qiang
(College of Computer Science,Sichuan University,Chengdu 610065)
3D reconstruction is one of the important research fields in image processing,computer vision and computer graphics.3D reconstruction based on binocular stereovision sets up a standard stereo experiment platform to collect images by camera calibration,finds reconstruction of point by feature point detection and matching,and does texture mapping.Experiment results of real images prove that it can achieve better reconstruction effect.
Three-Dimensional Reconstruction;Binocular Stereovision;Camera Calibration;Feature Point Detection and Matching;Texture Mapping
1007-1423(2015)02-0066-04
10.3969/j.issn.1007-1423.2015.02.017
陳強(1990-),男,湖北黃岡人,碩士,研究方向為圖像處理
2014-12-09
2014-12-23