習紹杰,張宗華,高 楠,孟召宗
(河北工業(yè)大學 機械工程學院,天津 300130)
三維(three-dimensional,3D)描儀在場景三維重建、智能制造、自動駕駛、虛擬現(xiàn)實等領(lǐng)域得到了廣泛的應用[1-4]。近幾年對3D 掃描儀的精度、速度、穩(wěn)定性等方面的研究已經(jīng)逐漸成熟。但是掃描過程中設(shè)備擺放傾斜問題還沒有得到很好的解決,會導致掃描儀的轉(zhuǎn)軸與重力方向產(chǎn)生夾角,造成所得到的三維數(shù)據(jù)傾斜,影響三維重建效果。針對此問題,已有的解決方法是安裝水平儀[5]來檢測設(shè)備是否傾斜。水平儀分為氣泡水平儀和電子水平儀。氣泡水平儀成本低,依靠人眼定性觀察,因此存在測量精度低,無法對傾斜的角度進行量化分析等缺點。劉玲設(shè)計了一種基于圖像檢測的電子水平儀,以圖像處理代替人工讀數(shù)提高精度,以電機驅(qū)動平臺回轉(zhuǎn)實現(xiàn)校準的自動化,并利用移動終端顯示檢測數(shù)據(jù)[6]。但由于電子水平儀體積大,無法固定在3D 掃描儀上與其配合使用。吳量等人提出了一種帶溫度補償?shù)臄?shù)字傾角測量系統(tǒng)[7],該系統(tǒng)可以達到較高的測量準確度,但是該系統(tǒng)組成較為復雜,不適合與3D 掃描儀配合使用。慣性測量單元(inertial measurement unit,IMU)集成了3 個單軸的加速度計和3 個單軸的陀螺儀,可自動獲取角度和姿態(tài)信息,自動確定掃描儀的傾角。加速度計檢測物體在載體坐標體系的加速度信號,而陀螺儀檢測載體相對于導航坐標系的角速度信號,測量物體在三維空間中的角速度和加速度,并以此解算出物體的姿勢。對IMU 的精度影響最大的是系統(tǒng)誤差[8-12]。根據(jù)IMU 的誤差模型[13],使用多位置法[14-16]校正IMU 傳感器。經(jīng)過標定后,得到IMU 的各項誤差參數(shù),IMU 的輸出經(jīng)過補償以后才可以用作后續(xù)使用。
針對已有方法無法定量化3D 掃描儀位姿或者使掃描儀系統(tǒng)更加復雜的問題,本文提出借助IMU 標定3D 掃描儀傾角的方法。由于無法直接標定IMU 和3D 掃描儀之間的位置關(guān)系,該方法通過一個面陣相機建立二者之間的聯(lián)系。首先利用kalibr 工具箱標定IMU 和相機之間的位置關(guān)系。然后標定相機和掃描儀轉(zhuǎn)軸的位置關(guān)系,從而得到IMU 和掃描儀之間的位置關(guān)系。根據(jù)IMU 的輸出計算掃描儀的轉(zhuǎn)軸與重力方向的夾角。接著設(shè)計了測量掃描儀轉(zhuǎn)軸與重力方向真實夾角的實驗,并將系統(tǒng)標定前后計算出的角度與真實值進行比較。最后拍攝了模型進行驗證,證明了本方法的實用性和準確性。
3D 掃描儀是具有深度感知的精密掃描設(shè)備,可以基于結(jié)構(gòu)光技術(shù)完成空間信息和圖像信息的全方位采集。3D 掃描儀設(shè)備多是安裝在三腳架上,其在進行旋轉(zhuǎn)拍攝過程中,容易因為地面不平或者三腳架擺放不規(guī)范導致旋轉(zhuǎn)軸與重力方向產(chǎn)生夾角,如圖1所示。
由于IMU 無法與旋轉(zhuǎn)軸建立直接的聯(lián)系,本文借助IMU 標定旋轉(zhuǎn)軸與重力之間的夾角,采用一個面陣相機建立二者之間的聯(lián)系。標定后的IMU 輸出的加速度信息通過旋轉(zhuǎn)矩陣轉(zhuǎn)移到旋轉(zhuǎn)軸上,即可以計算出與重力方向的夾角。
IMU-相機位置關(guān)系的校準使用開源的kalibr工具箱。kalibr 主要用來對視覺慣性傳感器進行IMU 和相機的時空標定,得到IMU 和相機之間的旋轉(zhuǎn)矩陣。
用內(nèi)嵌有IMU 的掃描儀對標定板進行拍攝。根據(jù)相機的內(nèi)參,可以得到每一幀圖像和相機之間的外參矩陣R和平移向量T。將這些離散的矩陣參數(shù)化為六維列向量,并使用3 次樣條插值構(gòu)造成連續(xù)的曲線。將R轉(zhuǎn)化為軸角并對時間求導,可以得到任何時刻的軸角變化率,即相機在任何時刻相對標定板的角速度。而IMU 的陀螺儀測量的就是相對標定板的角速度。相機和IMU 由于在同一個剛體上,所以它們的角速度的模長相等,相差一個旋轉(zhuǎn)矩陣,可以表示為
式中:ωit表示IMU 相對標定板的角速度;Φct表示相機的角速度;Rci表示IMU 和相機之間的旋轉(zhuǎn)矩陣,以此來構(gòu)造最小化目標函數(shù)。
式中:ωm為陀螺儀測量值,從而獲得IMU 和相機之間的旋轉(zhuǎn)矩陣。由于旋轉(zhuǎn)矩陣無法進行比較,將旋轉(zhuǎn)矩陣轉(zhuǎn)換為比較直觀的軸角
將標定板固定,用相機對標定板進行旋轉(zhuǎn)拍攝,得到一系列拍攝了部分的標定板照片。根據(jù)相機內(nèi)參,可以得到相機坐標系和標定板坐標系之間的旋轉(zhuǎn)矩陣Rcw和平移向量Tcw。相機光心在相機坐標系下的坐標為(0,0,0)。設(shè)在標定板坐標系下的坐標為(a,b,c),則二者的關(guān)系可以表示為
則相機光心在標定板坐標系下的坐標為
對光心坐標進行平面擬合和圓擬合,得到光心坐標的擬合圓,則可以求得在世界坐標系下的圓心坐標。世界坐標系、相機坐標系和轉(zhuǎn)軸坐標系之間的關(guān)系如圖2所示。
世界坐標系為標定板坐標系,z軸垂直標定板向外。相機坐標系光軸垂直旋轉(zhuǎn)軸向外,設(shè)為z軸,x軸為沿切線方向,y軸由右手螺旋定理決定。假設(shè)光心坐標的擬合平面為
求得擬合平面的單位法向量。設(shè)法向量方向為轉(zhuǎn)軸坐標系的z軸,x軸平行于相機坐標系的z軸,y軸由右手螺旋定理決定。
世界坐標系下的轉(zhuǎn)軸坐標系的基向量已知,則可根據(jù)旋轉(zhuǎn)矩陣定理得到世界坐標系和轉(zhuǎn)軸坐標系之間的旋轉(zhuǎn)矩陣Rwa。由Rcw與Raw得到相機坐標系和轉(zhuǎn)軸坐標系之間的旋轉(zhuǎn)矩陣Rca。
借助IMU 計算掃描儀傾角的框圖如圖3所示。
為了驗證本文的標定方法,對各個步驟搭建了實驗平臺。按上述各步的方法分別對每一步進行了實驗,并對結(jié)果進行了分析。
在進行外參標定實驗時,選用精度高并且可以提供序號信息的aprilgird 標定板[17]。該標定板在部分遮擋情況下仍能夠進行校準,并且能夠防止姿態(tài)計算時出現(xiàn)跳躍。
將經(jīng)過校正的IMU 輸出,以及拍攝的標定板照片作為輸入,傳入kalibr 工具箱中進行標定。標定結(jié)果為IMU-掃描儀的相機之間的旋轉(zhuǎn)矩陣。根據(jù)公式(3)將旋轉(zhuǎn)矩陣轉(zhuǎn)換為軸角。經(jīng)過30 次標定實驗,結(jié)果穩(wěn)定在一個理想的范圍之內(nèi),如圖4所示。
由圖4 可知,經(jīng)過30 次實驗后,旋轉(zhuǎn)軸的3 個分量基本趨于穩(wěn)定,繞軸旋轉(zhuǎn)的角度穩(wěn)定在2 度左右。對30 次結(jié)果求平均,得到相機和IMU 之間的旋轉(zhuǎn)矩陣。
旋轉(zhuǎn)軸標定實驗平臺如圖5所示。為了驗證此方法與拍攝角度和拍攝距離無關(guān),進行了3 組實驗。
對標定板進行掃描拍攝,相機每旋轉(zhuǎn)3°拍攝一張照片,得到60 張圖片。相機的光心坐標擬合圓如圖6所示。
由圖6 可看出相機光心都在圓上,證明了R、T的準確性。
再通過旋轉(zhuǎn)矩陣定理計算相機到轉(zhuǎn)軸的旋轉(zhuǎn)矩陣,得到3 組實驗結(jié)果如表1所示。
從表1 中可以看出,旋轉(zhuǎn)矩陣轉(zhuǎn)為軸角之后,3 次實驗的誤差范圍均控制在1°左右,和掃描儀結(jié)構(gòu)值一致。對3 次實驗的結(jié)果求平均值作為相機與旋轉(zhuǎn)軸之間的旋轉(zhuǎn)矩陣。
表1 旋轉(zhuǎn)矩陣與軸角Table 1 Rotation matrix and axial angle
為了驗證標定結(jié)果的準確性,設(shè)計了如圖7所示的實驗。將標定板懸掛于固定平臺之上,并旋轉(zhuǎn)不同的角度。用傾斜一定角度的掃描儀對標定板進行拍攝。2 個標定板平面的交線即為相機坐標系下的重力線。根據(jù)重力線建立重力坐標系,即可求出相機坐標系和重力坐標系之間的旋轉(zhuǎn)矩陣R2。而相機坐標系和轉(zhuǎn)軸坐標系之間的旋轉(zhuǎn)矩陣R1已知,即可求出轉(zhuǎn)軸坐標系和重力坐標系之間的旋轉(zhuǎn)矩陣R。
將此實驗求得的旋轉(zhuǎn)矩陣轉(zhuǎn)化的歐拉角當作真值,與IMU 計算的轉(zhuǎn)軸的傾斜角度比較。經(jīng)過5 次實驗,結(jié)果如表2所示。
由表2 可知,IMU 原始數(shù)據(jù)計算得到的傾斜角度誤差很大。而IMU 經(jīng)過標定后,再將IMU 信息轉(zhuǎn)移到旋轉(zhuǎn)軸上。計算得到的角度與標定前相比,精度至少提升20%,并且計算出的角度與測量角度之間的誤差不超過0.5°。
表2 校正前后角度對比Table 2 Angle comparison before and after calibration
將掃描儀傾斜一定的角度進行模型拍攝,如圖8所示,得到傾斜模型。并利用本文方法將掃描儀輸出的IMU 信息進行整理計算得到此傾角為8.56°。
將IMU 計算出的傾角補償?shù)絻A斜的模型,得到校準后的模型,補償前后的點云和全景圖對比如圖9 和圖10所示。圖9 中顏色較淺的(a)是補償前的點云;顏色較深的(b)是補償后的點云。
在圖9 中可利用Meshlab 工具測得補償后的模型與補償前的夾角為8.03°,則誤差為0.53°,小于1°。補償前部分數(shù)據(jù)較水平方向有一定的傾斜,而補償后該部分數(shù)據(jù)較水平方向傾斜程度明顯減小,經(jīng)過補償?shù)狞c云得到了很好的校正。具體的校正角度對比如表3所示。
表3 點云校正前后傾角對比Table 3 Tilt angle comparison before and after point cloud correction
由表3 可知,本文方法可以將傾斜一定角度的掃描儀拍攝出的傾斜模型校正,并且校正誤差不超過1°。
由圖10 可知,補償后地面相比補償前更加水平,經(jīng)過補償?shù)娜皥D得到了很好的校正。
綜上,本文提出的方法對掃描儀傾斜問題進行了有效的補償。
本文提出在3D 掃描儀中加入IMU 精確確定掃描儀傾角的方法。首先根據(jù)IMU 的誤差模型對IMU 進行誤差的校正和補償。標定IMU-相機的位置關(guān)系后,提出了相機與掃描儀轉(zhuǎn)軸之間位置關(guān)系的標定方法,該方法的角度誤差在1°左右,與掃描儀結(jié)構(gòu)值一致。然后設(shè)計實驗對掃描儀轉(zhuǎn)軸與重力方向的真實夾角進行測量,與IMU 計算的傾角進行對比,實驗結(jié)果表明該方法的測量精度可以達到0.5°,驗證了所提出方法的準確性。最后進行了全景驗證。實驗結(jié)果證明當?shù)孛娌黄?、三腳架傾斜等因素使掃描儀傾斜時,可以實現(xiàn)自動校正并得到準確的三維模型。
隨著大場景三維重建技術(shù)的飛速發(fā)展,3D 掃描儀的應用場景越來越廣泛。本文提出的3D 掃描儀傾角標定方法可以自動實現(xiàn)傾角校正并得到準確的三維模型,具有廣泛的應用價值。