宋文龍 趙永輝 劉孟祎



摘? 要: 針對基于視覺的3D場景重建領域中設備昂貴、精度低、過程耗時的問題,提出一種采用RealSense攝像頭,以OpenVINO構建底層計算平臺,實現室內3D場景重建的方法。首先在數據獲取部分,通過RealSense深度相機獲取數據,實現了RGB數據、深度數據與點云數據的同時獲取;其次,在計算加速部分,采用以OpenVINO為開發工具的神經計算棒構建硬件計算平臺,提高了數據的處理速度,減少了計算開銷;最后在點云數據的配準與融合部分,基于傳統ICP算法進行了改進,大幅度減少了所需計算的數據量,提高了算法效率與精確度。
關鍵詞: 3D場景重建; RealSense; 構建計算平臺; OpenVINO; 計算加速; 點云配準
中圖分類號: TN911?34; TP391? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)08?0161?05
Research on indoor 3D scene reconstruction method based on RealSense
SONG Wenlong, ZHAO Yonghui, LIU Mengyi
(Northeast Forestry University, Harbin 150040, China)
Abstract: In allusion to the problems of expensive equipments, low precision and time?consuming process in the field of vision?based 3D scene reconstruction, a method of realizing indoor 3D scene reconstruction by building the underlayer computing platform with OpenVINO and based on RealSense camera is proposed. In the data acquisition part, the RealSense depth camera is used to obtain data to realize the simultaneous acquisition of RGB data, depth data and point cloud data. In the calculation acceleration part, the neural computing rod with OpenVINO as the development tool is used to construct the hardware computing platform, which improves the processing speed of data and reduces the computational overhead. In the registration and fusion part of point cloud data, the algorithm is improved based on the traditional ICP algorithm, which greatly reduces the amount of data required for calculation and improves the efficiency and accuracy of the algorithm.
Keywords: 3D scene reconstruction; RealSense; build computing platform; OpenVINO; computeration speedup; point cloud registration
0? 引? 言
隨著3D重建技術的不斷發展和傳感器設備的普及,3D重建在日常生活與科學研究中都扮演著越來越重要的角色[1]。3D場景重建的方法有很多,目前一般采用激光測距儀與深度相機的方法[2]。由于激光測距儀通常設備昂貴而且精度較差,因此采用深度相機的方法應用更為廣泛。2014年,英特爾推出了RealSense深度攝像頭,幀率可達Kinect的2倍,獲得的深度圖像分辨率較高,因此在3D重建領域更具優勢。
Barnard和Fischle經過詳細討論并給出了三維重建的評估標準。Carlo Tomasi和Takeo Kanade完成了一個完整的基于圖像的3D重建系統[3]。Pollefeys及其團隊實現了第一個基于多幅圖像的自動三維重建系統[4]。本文的研究意義在于,利用成本低廉的消費級深度相機在獲取彩色圖像的同時獲取深度數據與點云數據,完成室內場景的3D重建。首先在計算加速部分,本文采用了以OpenVINO為開發工具的神經計算棒構建硬件計算平臺,提高了數據的處理速度,減少了計算開銷;其次,在數據獲取與預處理部分,通過RealSense深度相機獲取數據,實現了RGB數據、深度數據與點云數據的同時獲取;最后在點云數據的配準與融合部分,基于傳統ICP算法進行了改進,即先通過ORB算法計算相鄰兩幀圖像的匹配特征點對,結合RANSAC算法剔除誤匹配點,然后將配準的圖像坐標系下的匹配點對,通過坐標變換將其映射到世界坐標系下的三維點云中。實驗結果表明,這種方法減少了傳統ICP算法計算的數據量,提高了算法效率與精確度。
1? 基于RealSense獲取數據
1.1? RealSense D435
本文采用RealSense D435作為獲取數據的設備。RealSense是一款立體視覺深度相機,如圖1所示,其集成了兩個紅外傳感器(IR Stereo Camera)、一個紅外激光發射器(IR Projector)和一個彩色相機(Color Camera)[5]。立體深度相機系統主要包括兩部分:視覺處理器D4和深度模塊[6]。主機處理器連接USB 2.0 / USB 3.1 Gen 1。視覺處理器D4位于主處理器主板上,RGB顏色傳感器數據通過主處理器主板和D4板上的彩色圖像信號處理器(ISP)發送到視覺處理器D4。Intel RealSense D435提供了完整的深度相機模塊,集成了視覺處理器、立體深度模塊、RGB傳感器以及彩色圖像信號處理模塊。深度模塊采用立體視覺的左右成像器、可選的紅外激光發射器和RGB色彩傳感器。
1.2? 相機標定
相機標定就是求解相機內部參數與外部參數的過程,即相機矩陣[M]的參數[7],如表1所示。相機內參代表相機的本身固有的屬性,通常是固定不變的。由相機內參可以得到圖像中的點與場景中的點的對應關系,而相機的外參會隨相機的移動而發生變化。
圖像坐標系與像素坐標系的轉化關系[8]可以用如下矩陣表示:
相機內參與相機外參公式如下:
2? OpenVINO計算加速
本文基于RealSense進行3D重建需要對大量點云數據進行計算,如果只是依靠CPU計算,會需要較長時間完成,因此本文通過以OpenVINO為開發工具的神經計算棒搭建底層計算平臺,實現算法的加速。
2.1? 神經計算棒
英特爾第二代神經計算棒(Intel NCS2)是于2018年11月14日人工智能大會上推出的新設備。其采用具有高性能的視覺處理單元Intel Movidius Myriad X VPU,同時搭載更多計算核心的深度神經網絡推理的專用硬件加速器。
2.2? OpenVINO工具包
開放式視覺推理和神經網絡優化(Open Visual Inference & Neural Network Optimization,OpenVINO),主要用于加速計算機視覺工作負載。OpenVINO工具包包括用于OpenCV和OpenVx的優化的計算機視覺庫。通過易于使用的CV函數庫和預優化的內核,加快視覺領域相關算法計算速度。同時針對OpenCV優化調用。本文通過OpenVINO中包含的傳統計算機視覺工具庫中的經過預編譯且在CPU上優化過的OpenCV3.3,將自定義內核添加到計算機視覺領域,實現在3D重建的過程中的特征提取、特征匹配與點云融合的算法加速。
3? 3D場景重建算法
3.1? ORB算法
ORB(ORiented Brief)算法是一種快速特征點提取和描述算法[9]。理想特征子應具備的條件為:在不同的距離、角度、方向、光照條件下,都可以判斷出是否為同一物體,也就是同一特征點足夠相似的描述子[10]。因此,希望在不同角度拍攝圖像時,坐標系方向改變,相應的點可以跟隨坐標系一起改變,即保持相對靜止,如圖2所示。把圓形區域看作是一塊質量不均勻的圓形物體,這樣在物體旋轉時,物體的重心可以與物體保持相對靜止,把每個像素點對應該點的質量,利用積分學可以求出物體的重心。重心定義如下:
式中,[Ix,y]為圖像灰度表達式,重心可以表示為:
特征點的方向角度為:
1) 在以特征點為中心,[S]為鄰域的范圍內產生隨機點對,[D]表示隨機點的位置:
2) 旋轉矩陣[Rθ]表示為:
3) [Dθ]表示旋轉后隨機點的位置:
得到新隨機點的位置之后,進行二進制編碼。通過ORB算法進行特征匹配的實驗結果如圖3所示。
3.2? ICP點云配準與融合算法
ICP點云融合算法(Iterative Closest Point)的目的是實現不同角度下的相鄰幀點云融合[11]。假設兩組點云的坐標分別為[{Pi|Pi∈R3,i=1,2,…,N}]和[Qi|Qi∈R3,i=1,2,…,M]。經過[n]次迭代,可得到與點云集[P]的坐標相對應的點云坐標[{Si|Si∈R3,i=1,2,…,M}],然后求解使歐氏距離最小的旋轉平移矩陣[R],[t]。[P]中的點坐標表示為[(xP,yP,zP)],[Q]中的點坐標表示為[(xQ,yQ,zQ)],兩幀點云之間的變換關系可以表示為:
若待配準兩幀點云中,含有點坐標數目最少的一幀點云具有[n]個點,則兩幀點云的歐幾里得距離公式為:
經過不斷的更新初始矩陣,直到目標函數,即歐氏距離取得最小值為止。ICP算法在計算過程中總是會收斂于局部最小值,在實驗中發現在最開始的幾次迭代收斂速度極快。因此需要設定多組[R],[t]矩陣的初始值,然后對每一組初始值都應用ICP算法進行計算從而找到全局最優解。
3.3? 改進的ICP點云配準與融合算法
通過第3.2節對于ICP算法的介紹可以得知,在求解兩幀點云的旋轉平移矩陣時需要對點云中的每一個點去尋找最鄰近匹配點,然后經過多次迭代,輸出最終的旋轉平移矩陣。然而如果對于點云中的每個點都要尋找最近鄰點,則會帶來非常龐大的計算量,若再經過多次迭代,更是需要巨大的算法開銷。因此本節對傳統ICP算法進行了改進,以提高算法效率。
本文通過ORB算法得到了每幀圖像的特征點,并且得到了相鄰兩幀圖像的匹配的特征點對。在第2節介紹了圖像坐標系下的二維點坐標到世界坐標系下的三維點坐標的變換方法。把這兩種方法相結合,就可以得到世界坐標系下三維空間的匹配的特征點對。通過上述方法,對點云先進行特征點檢測與描述,然后再進行坐標變換,可以減少ICP算法所處理的數據量,提高算法的效率。改進的ICP算法的整個流程可用圖4表示。
4? 實驗結果與分析
實驗過程中,首先在PC上連接好RealSense與神經計算棒,獲取兩幀具有一定重合部分的彩色數據與點云數據,通過前文所述方法對獲得的數據進行中值濾波處理。采用Matlab中提供的Camera Calibration Toolbox計算得到相機參數。利用ORB算法對兩幀彩色點云數據進行特征匹配。使用相機標定過程中得到的相機參數,實現特征點坐標在相機坐標系下到世界坐標系下的轉換,并將其映射到對應的點云數據上,執行ICP算法,即可得到相鄰兩幀點云在世界坐標系下的配準融合。在拍攝過程中,需要獲得兩幀具有重疊部分的數據,按照前文所述方法獲取兩幀點云,傳統ICP算法與改進ICP算法的迭代次數、運行時間以及配準誤差(距離平方和)如表2所示。從表格中的數據可以看出傳統的ICP算法需要迭代30次才能達到收斂條件,需要的運行時間較長,誤差較大。應用本文所述算法不僅減少了配準過程中的誤匹配點對,而且減少了需要運算的數據量,在迭代20次時就可以達到收斂條件,在速度和精度上都有了明顯的改善。因此可以看出改進的ICP算法能夠快速準確地實現點云數據的配準融合。
通過實驗對比可以看到,本文改進的ICP算法減少了傳統ICP算法在配準時需要計算的數據點的數目,迭代次數與運行時間都有了明顯的改善。因此在精度和計算速度上相比于傳統算法得到了明顯的提高。由此可以看出本文改進的ICP算法是一種高效的點云配準融合算法。通過該算法拼接融合得到的結果見圖5。
在點云配準融合過程中,從不同視角所采集到的幾何表面的同一點,在理論上應該實現完全重合,但是由于設備的精度、人為操作以及算法的不完善等問題出現了在允許范圍內的誤差,在實驗中則認為這種點是可以實現配準融合的匹配點對。經過算法的多次迭代,相對應的點間的距離不斷縮小,直到小于設定的閾值。在迭代過程中,如果兩個相鄰迭代計算的對應點的距離存在一定差異,且差值不斷減小,因此每次迭代都使對應點靠得更近。在實驗中,為判斷算法的收斂速度,需要設定一個閾值,這里選取的是對應點間距離的平方和,該值的變化速度越快,則表示算法的收斂速度越快。經過多次迭代,該值逐漸變小直到不再變化,即達到了閾值,此時說明算法已經收斂。
算法的點云配準融合效果比較
多幀點云數據的配準與融合具體流程如圖6所示。
實驗中將每兩幀點云配準融合后得到的點云,作為下一次執行改進的ICP算法的目標點云,將新的一幀點云作為源點云,對目標點云與源點云同時執行改進的ICP算法,即可得到融合后點云。繼續將其作為目標點云,重復進行上述操作,最終實現多幀點云的配準融合。圖7為多幀點云配準的實驗室重建結果的整體三維模型與局部效果展示。
按照本文所述方法,理論上可以實現任意在RealSense攝像頭最大工作范圍(10 m)內的室內3D場景重建。
5? 結? 論
本文通過分析大量有關3D重建技術的相關參考文獻,并結合目前3D重建技術的研究現狀,選擇了效率高、精度好、價格低廉且便于攜帶RealSense攝像頭采集數據。為實現算法加速,本文使用神經計算棒搭建底層計算平臺。在3D重建算法方面本文對傳統ICP算法進行了改進,最終實現室內場景的3D重建。在今后的研究中可以依照本文所述方法形成室內3D場景數據集,并對得到的三維場景模型進行注釋,以實現場景理解與物體識別方向的研究。
注:本文通訊作者為劉孟祎。
參考文獻
[1] 董鵬輝,柯良軍.基于圖像的三維重建技術綜述[J].無線電通信技術,2019,45(2):115?119.
[2] 伊璐.基于立體視覺的場景三維重建技術研究[D].西安:西安理工大學,2017.
[3] 繆盾.基于改進的SIFT算法的圖像三維重建研究[J].貴州大學學報(自然科學版),2018,35(5):63?66.
[4] 李曉芳,路佳佳.一種基于兩幅圖像的三維重建方法[J].電子技術與軟件工程,2017(9):71?72.
[5] 董春俠,司占軍,高祥.基于Intel Realsense技術的感知展示系統的設計與開發[J].電腦知識與技術,2016,12(7):207?208.
[6] 魯云飛.基于三維視線跟蹤的抬頭顯示系統研究[D].重慶:重慶郵電大學,2017.
[7] 田苗,郝向陽,劉松林,等.基于點離散度的張正友標定法[J].全球定位系統,2015(6):86?88.
[8] 唐倩,黃耀,范秋壘,等.基于點云與圖像匹配的自動化噴涂系統坐標變換[J].計算機集成制造系統,2017(11):61?67.
[9] ZHOU S C, YAN R, LI J X, et al. A brain?inspired SLAM system based on ORB features [J]. International journal of automation & computing, 2017(5): 1?12.
[10] 屈玉福,劉子悅,江云秋,等.自適應變尺度特征點提取方法[J].光學精密工程,2017(25):188?197.
[11] 李策,盧冰,肖利梅,等.基于相對坐標ICP的室內場景三維重建算法[J].蘭州理工大學學報,2017(3):96?101.