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