摘要:針對基于雙目深度圖的室外大規模地圖構建計算冗長,而在無人系統的有限算力下,計算效率需求顯著的情況,文中提出一種基于雙目視覺立體匹配的三維地圖構建方法。首先針對由立體匹配算法及原圖引入的噪聲誤差等問題,采用雙線性插值優化視差圖;其次通過中值濾波以平滑視差圖;最后利用Sobel算子實現對環境物體邊緣特征點的提取,并二值化邊緣特征圖,優化深度值計算環節,在一定程度上提高地圖構建的效率。實驗結果表明,通過對KITTI數據集的地圖構建,可得到的良好八叉樹地圖,效率提高了50%,證明了文中算法的可行性與有效性,能夠滿足無人系統在室外路徑探索對三維地圖的需求。
0 引 言
隨著無人系統對地圖環境的亟需,定位與即時建圖(SLAM)[1]的研究越來越成為的熱點,并被認為是實現移動機器人自主化的核心技術,有關SLAM技術的應用也逐漸從室內小規模環境向室外大規模環境發展。相比之下,室外大規模環境由于所需傳感器作用距離遠,環境非結構特征顯著,因此更加復雜,實時構建的難度更大,硬件成本更高。為實現無人系統在室外大規模場下的路徑探索并能及時反饋周圍環境信息,構建出高效、低成本、可視化的室外地圖成為了亟待解決的關鍵。近年來,隨著計算機視覺技術及相關硬件工藝的發展,出現了許多經典的SLAM方法[2]并被應用于各個領域[3],尤其在復雜的室外環境下構建三維地圖的精度和實時性方面。以往有基于視覺稠密點云的 SLAM方法,但存在計算冗長、精度不高的問題。現如今出現不同類型傳感器用于三維建圖,如激光雷達、RGB?D相機[4]等。其中,基于激光雷達的室外建圖方法[5?6]得到的室外地圖精度較高,更為接近真實環境,但該方法重建的效果缺乏紋理,僅能反映三維空間信息,且成本較高;基于RGB?D相機的方法重建的紋理較為清晰,但由于傳感器一般有效距離較短、成本較高、干擾性差,因此不適用于室外復雜的大規模建圖。相比之下,基于雙目視覺立體匹配的SLAM方法可通過模擬人類雙眼,利用立體視覺原理從二維圖像中獲取三維信息,適應復雜室外環境,具有進行自動、在線、非接觸性檢測,靈活性高、成本低、紋理清晰等優點,可用于構建室外大規模環境三維地圖。
基于雙目視覺SLAM的方法雖然優點很多,但應用于室外大規模建圖仍然存在計算冗長、實時性不高、復雜場景信息導致的深度值誤匹配等問題。針對基于雙目視覺地圖構建的不足和缺點,本文在原有的立體匹配算法的基礎上進行優化和改進,首先對原圖像進行灰度預處理并立體校正,基于傳統匹配算法得到視差圖,通過采用左右一致性檢測出(Left?Right Check)奇異失真點;其次利用雙線性插值和中值濾波進行修復優化;接著提出一種基于環境物體邊緣特征點提取的方法;最后結合位姿信息,構建出一種基于邊緣信息的八叉樹地圖,該方法可優化地圖構建中深度計算環節,提高系統的運行速度、抗干擾性以及八叉樹地圖的準確度。
1 雙目立體視覺三維建圖系統
本文系統是根據左右二維圖像及相機位姿信息來獲取世界三維空間信息并構建八叉樹地圖,具體思路如圖1所示。
1.1 左右圖像校準
實際情況下, 雙目相機得到的原始圖像往往都會出現畸變, 獲取的雙目圖像對的共軛極線并不在同一水平上, 通過加入極線約束條件[7], 使得左右圖像的對極線在同一水平線上,再經過一定變換校準[8],校正相機引入的誤差。因此,根據相機標定得到的相機內參矩陣、畸變參數以及相機外參(旋轉矩陣和平移向量)對左右圖像進行校準。具體步驟為:首先對原彩色圖像進行灰度處理,得到單通道的灰色圖像;然后根據相機標定參數并調用基于OpenCV[9]的stereoRectify[10]立體校準函數得到校正后的旋轉矩陣和投影矩陣;接著調用initUndistortRectifyMap[10]映射變換計算函數得到X,Y 方向上映射變換矩陣;最后調用 remap[10]幾何變換函數得到校準后的左右圖像。
1.2 立體匹配算法
本文采用的立體匹配方法[11]是基于SGBM立體匹配方法,以校準后圖像對作為立體匹配原圖輸入,得到相對應的視差圖,并獲取正確的環境深度信息。1)立體匹配原理。立體匹配是根據左右圖像重疊區域所提取的特征點來建立左右圖像之間的一種對應關系,從而找到三維物理空間點位置,并根據在左右圖像所對應的二維成像點,最終得到物理空間點對應的二維視差圖。
2)基于SGBM的視差計算方法。半全局立體匹配算法SGBM主要源于SGM(Semi?Global Matching)算法,該算法是2005年提出的一種立體匹配算法,現已納入OpenCV庫函數中。SGM算法是通過計算像素匹配點的成本,合計來自8個或者16 個方向的匹配代價,根據相鄰點計算視差,得到的視差圖更真實。算法核心步驟為:匹配代價合計,代價成本聚合,視差計算、優化及校正。SGM算法核心思想是基于能量函數估計視差值,采用的能量函數如下:
式中:E (D)是半全局能量函數;p為匹配目標像素點;q是點p的鄰域像素點;C(p,Dp)是像素點p與匹配點視差Dp的匹配代價函數;Dp為目標像素點對應的視差值;Dq是鄰域點對應的視差值;P1是對相鄰像素點視差等于1的懲罰因子;P2是對相鄰像素點視差大于1的懲罰因子,且P2大于P1。
相比SGM算法, SGBM算法是半全局塊匹配算法,在計算匹配代價函數時,采用塊匹配算 法(SAD)。SGBM算法沒有采用基于互熵信息的匹配代價的方法,而是增加了預處理算法,其中SAD窗口的大小決定了視差圖的匹配效率和誤匹配的大小。
3)視差圖后處理。立體匹配過程中,由于多種因素導致獲取的原圖像對存在不同的遮擋區域和紋理平滑區域,半全局算法無法得到準確的視差,從而會造成部分視差失真。為了消除失真點,本文通過采用左右一致性檢測出左視差圖存在的失真點,并利用雙線性插值和中值濾波對失真點進行修復優化,最后調用copyMakeBorder函數[10]進行邊界處理, 得到優化后的左視差圖, 以及 Middlebury提供的Teddy實驗數據,結果如圖2所示。
2 基于邊緣特征點的深度計算
基于雙目圖像立體匹配得到深度信息,若該過程中計算了視差圖所有的像素點的深度信息,將會導致計算冗長,而視差圖中像素點包含有特征點和非特征點視差值,因此通過邊緣提取并計算得到邊緣特征點的深度信息,減少了視差中非特征像素點參與的深度計算,從而降低了系統的整體計算冗長。最終根據相機位姿和特征點深度信息,構建出環境物體邊緣特征點的八叉樹地圖,可提升地圖構建系統的速度,降低地圖構建系統的運行內存強度,從而提高地圖構建的實時性。首先基于特征點的提取,本文采用雙邊濾波的方式平滑圖像,既可降噪平滑又能極大地保持邊緣信息;接著利用Sobel邊緣算子[12]提取邊緣信息,該算子相比Canny算子[13]效率更高,既能較好地消除噪聲干擾,又可得到較為精準的邊緣方向信息;最后利用一種自適應二值化處理得到基于邊緣特征點的二值圖,并根據邊緣特征點得到對應特征點的深度信息。
2.1 雙邊濾波平滑圖像
雙邊濾波器[14]是一種非線性濾波,與高斯平滑效果相似,可達到降噪平滑的效果,但相比高斯濾波[15]又可以很好地保持邊緣信息。其中,雙邊濾波對每個像素及其域內的像素進行了加權平均處理。其權重由兩部分組成,一部分是高斯平滑;另一部分是高斯權重,二者的不同在于高斯不是基于空間距離而是由色彩強度差計算得來,在多通道圖像上強度差由各分量的加權累加代替。原理上,雙邊濾波可當作是高斯濾波與截尾均值濾波的結合,權重原理為與空間相關的高斯函數和與灰度距離相關的高斯函數相乘,濾波核由空間域核和值域核組成。空間域核是由像素位置歐氏距離決定的模板權值,表示為:
值域核是由像素值的差值決定的模板權值,表示為:
由式(2)和式(3)可推導出雙邊濾波的權重系數w,公式如下:
式中:(i, j)為模板窗口當前點坐標;(k,l)為模板窗口的中心坐標點;σd為空間域的標準差;σr 為值域的標準差。一定情況下,雙邊濾波可當作高斯平滑,只是相似程度更高的像素權值更高,邊緣更明顯,對比度更高,效果如圖3所示。
2.2 Sobel邊緣算子
Sobel算子[16]是一種離散性差分算子,采用Sobel算子分別計算圖像在橫向和縱向差分近似值, 分別記作Fx,Fy。
Sobel算子在橫向上的卷積因子記作X方向,X方向上的卷積因子如下:
Sobel算子在縱向上的卷積因子記作Y方向,Y方向上的卷積因子如下:
上述X,Y方向上的Sobel算子,可分別與雙邊濾波后的圖像像素點卷積得到近似值,定義如下:
式中:f(i, j)是圖像坐標為(i,j)的灰度值;圖像近似灰度梯度幅值表示為F(i,j)=|Fx|+|Fy|。選取適當的閾值T, 若F(i, j)>T,則(i, j)記為邊緣點,并計算所有的像素點與T比較,得到的邊緣點集合為邊緣提取的圖像, 結果見圖4。
2.3 二值化
圖像二值化是數字圖像處理的一個重要內容,將圖像處理成像素值為0或255,使圖像呈現出明顯黑白的可視效果。然后設定合適的閾值,當圖像某點像素值大于設定的閾值,則該點的像素值替換成255或0;反之, 該點的像素值替換成0或255。在一定程度上,圖像二值化可呈現出部分特征并降低圖像運算。本文采用均值加權自適應二值化,相比固定閾值的二值化,自適應二值化采用基于均值加權算法得到的閾值,由此得到邊緣二值圖更準確,效果更好,之后調用copyMakeBorder函數進行邊界處理,最終得到與處理后視差圖相同尺寸的二值圖,結果如圖5所示。
2.4 深度值計算
深度值計算[17]是根據雙目測距模型[18]和視差圖獲得空間三維點的過程,其過程主要分為兩部分:提取邊緣特征點和深度值計算。由于室外環境復雜、規模大,采用水平雙目模型可行性高,其深度值計算原理如圖6、圖7所示。
假設三維空間上的一點p(x,y,z),以左相機為參考坐標系,在水平放置的雙目相機左右鏡頭上的投影點分別為L(xl,yl),R(xr,yr),Ol,Or 分別為左右鏡頭的中心點,f是相機的焦距,B是雙目相機的基線,根據透視變換三角相似性原理可知:
在該模型下視差可表示為:
由式(7)、式(8)可推導出點p的空間坐標以及深度值為:
根據上述三維空間點坐標和深度值求解過程, 為滿足室外大規模復雜環境的八叉樹地圖構建的精度和效率, 需要提取環境二維邊緣特征點, 并求解出特征點對應的三維空間坐標點, 而特征點的分布與環境信息密切相關, 合理的特征點提取方法既能保持地圖的完整性, 又可以降低系統的運行復雜度, 從而保證了系統的實時性和高效性。因此, 本文提出一種基于邊緣二值圖的特征點提取的方法, 通過查找邊緣二值圖的特征點坐標,進而得到由視差圖對應特征點視差值,并計算出空間坐標與深度值。
2.5 八叉樹地圖
八叉樹[19]是一種用于三維空間細分的分層數據結構,能夠快速存儲三維環境信息。點云圖是由一系列的三維坐標結合位姿信息計算得到世界空間點集,且點云地圖規模較大,需耗費大量存儲空間,難以保持地圖高效。因此,相比于點云地圖,在室外大規模復雜環境下,采用八叉樹構建地圖可節省大量儲存空間并提高建圖的效率。
3 實驗結果與分析
通過兩個算例對本文提出的基于特征點地圖構建的方法進行分析,本文采用的數據集是目前國際上最大的室外自動駕駛場景下的計算機視覺算法評測數據集——KITTI 數據集,數據集圖像尺寸大小為1241×376。實驗操作系統是Ubuntu 16.04系統,計算機硬件配置參數為:Intel Core i5?3230M處理器、GT720M顯卡、4GB內存,其實驗全部在相同參數下進行的。3.1 算例 1
本算例采用KITTI數據集中30組雙目采集的圖像對通過本文算法構建的八叉樹地圖與對應環境深度圖構建的八叉樹地圖進行對比,實驗結果如圖8~圖10所示。
根據實驗結果可知,在室外大規模復雜環境下,本文算法構建的八叉樹地圖相比采用 RGB?D 相機獲取的深度圖結合位姿信息構建出的八叉樹地圖,環境紋理更加清晰,有效距離更遠,構建的地圖更完整。
3.2 算例 2
本算例采用KITTI數據集中30組雙目采集的原始圖像,對通過本文算法構建的八叉樹地圖與基于原視差圖構建的八叉樹地圖進行對比,實驗算例分別記作Example1和 Example2。實驗結果如圖11~圖13及表1所示,其中表1的時間取10次實驗的平均值。
由圖11~圖13可知,在室外大規模復雜環境下,圖12、圖13構建的八叉樹與圖11的原環境場景圖進行場景對比,圖11構建的地圖最上邊出現了較為明顯的矩形模塊八叉樹地圖誤差,可知本文算法構建的八叉樹地圖相比未經過特征點提取構建的八叉樹地圖更準確。由表1可知,在消耗的時間上,實驗編號為Example1和Example2所消耗的時間分別占 Example1與Example2之和的總時間的33.94% 和66.06%,可知本文算法構建的八叉樹地圖所消耗的時間大約只有未經過特征點提取構建的八叉樹地圖所消耗的時間的12,地圖構建的效率提高了將近 50%。因此,本文算法構建出的八叉樹地圖精度更高,并在一定程度上提高了構建的效率。
4 結 語
本文提出一種基于SGBM算法的雙目視覺的八叉樹地圖構建的方法,首先針對立體匹配算法局限性及原圖引入的噪聲誤差等問題,利用雙線性插值和中值濾波修復優化;其次通過 Sobel算子邊緣檢測并二值化,實現對環境的邊緣特征點的提取,優化了深度值計算環節,在保證地圖構建完整性的情況下,提高了建圖效率。實驗結果表明,本文提出的算法在一定程度上提高了地圖構建的效率和魯棒性,適合室外大規模地圖構建,未來將對地圖構建實時性開展進一步研究。
作者簡介:
周思達(1984—),男,湖南湘潭人,博士研究生,教授,主要研究方向為無人系統導航與控制。
談海浪(1993—),男,湖北黃石人,碩士研究生,主要研究方向為計算機視覺。
唐嘉寧(1984—),女,云南石屏人,博士研究生,研究員,主要研究方向為協同制導與控制。
蔣聰成(1995—),男,河南開封人,碩士研究生,主要研究方向為計算機視覺。
審核編輯:湯梓紅
-
三維
+關注
關注
1文章
508瀏覽量
28978 -
雙目視覺
+關注
關注
2文章
34瀏覽量
14199
原文標題:基于邊緣特征的雙目視覺室外地圖構建方法研究 | 論文速覽
文章出處:【微信號:現代電子技術,微信公眾號:現代電子技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論