杜曉峰, 朱 凱, 林晨暉, 貢 亮, 劉成良
(上海交通大學(xué)機械與動力工程學(xué)院,上海200240)
光學(xué)三維掃描技術(shù)作為一種高精度、高效率的非接觸式測量方法,在逆向工程、工業(yè)自動化、文物修復(fù)等諸多領(lǐng)域得到了廣泛的應(yīng)用。植物表型參數(shù)的分析對植物各個領(lǐng)域的研究具有重要意義。為了獲取植物的三維信息,分析植物的表型參數(shù),本文設(shè)計了一種基于結(jié)構(gòu)光三維測量技術(shù)的點云生成與拼接儀器。
目前市場上有很多基于結(jié)構(gòu)光的三維掃描設(shè)備。通常情況下,投影儀將結(jié)構(gòu)光投射到被測物體上,同時相機采集圖像,并計算被測物體的三維點云信息[1]。對于一個三維測量對象,無法從單一方向的掃描中得到其所有的表面信息,因此需要收集被測物體不同角度的點云信息,以便拼接成完整的三維點云[2-4]。
數(shù)字光處理(DLP)技術(shù)因其出色的性能而在光學(xué)工程中得到廣泛使用。掃描裝置的核心組件是德州儀器DLP4500 評估模塊。TI 公司提供了一種基于DLP4500 的精確點云生成方法,并提供了開源的軟件開發(fā)工具包。但是,它只能用于收集物體單方向的點云信息,無法滿足復(fù)雜零件整體三維重構(gòu)的需求。
本文解決方案中,物體所有的表面信息都將被收集,并將它們拼接成一個整體[5-8]。由于所有數(shù)據(jù)和代碼都是免費提供和開源的,因此可以對該儀器進(jìn)行改造以滿足個性化需求。其靈活的機械結(jié)構(gòu),可以輕松滿足不同尺寸物體的掃描。作為一種非接觸式測量方法,被測對象的表面點云將被快速收集和拼接,并且沒有其他測量方法的限制。
圖1、2 顯示了儀器的外觀。儀器主要由DLP4500評估模塊,USB 攝像頭,USB 集線器,MCU,步進(jìn)電動機轉(zhuǎn)臺,步進(jìn)電動機驅(qū)動器,24 V 直流電源,安裝板,支撐夾,直線導(dǎo)軌和鋁型材框架組成。
圖1 儀器三維模型
圖2 儀器外觀
儀器功能如下:序號01,單面點云掃描;序號02,多面點云掃描;序號03,點云拼接。圖3 顯示了儀器的總體結(jié)構(gòu)。
表1、2 列出了該儀器的物料清單(BOM),分別是標(biāo)準(zhǔn)零件和定制零件。儀器所用到的標(biāo)準(zhǔn)零件便于采購,易于組裝。定制零件的安裝板在CNC 銑床中用5 mm厚的鋁合金板制成,它們用于固定儀器的各部分。電路組件還需要諸如排插、USB 線等組件。系統(tǒng)軟件的一部分基于TI 公司的開源代碼;另一部分基于OpenCV和PCL開源庫[9]。
圖3 儀器拓?fù)浣Y(jié)構(gòu)
表1 儀器標(biāo)準(zhǔn)件
圖4、5 顯示了儀器機械結(jié)構(gòu)的裝配細(xì)節(jié),分別為三維掃描模塊部分和導(dǎo)軌轉(zhuǎn)臺部分。
圖4 掃描系統(tǒng)裝配細(xì)節(jié)
圖5 導(dǎo)軌轉(zhuǎn)臺裝配細(xì)節(jié)
(1)三維掃描模塊的裝配方法。①使用定制長度的鋁型材搭建整體機架,②將DLP4500 模塊安裝在定制的鋁板零件上。③將鋁板安裝在鋁型材框架上。④將相機夾持裝置安裝在鋁板上。整個模塊的安裝示意圖見圖4,兩個槽用來調(diào)節(jié)相機位置,同時夾持裝置可以調(diào)節(jié)相機高度。通過相機位置的調(diào)節(jié)可以使掃描系統(tǒng)適應(yīng)不同尺寸物體的掃描需求。
(2)旋轉(zhuǎn)模塊的裝配方法。旋轉(zhuǎn)平臺系統(tǒng)由減速比為90 的蝸輪蝸桿旋轉(zhuǎn)平臺、直線導(dǎo)軌、89C52 單片機、步進(jìn)電動機驅(qū)動器、24 V 開關(guān)電源組成。旋轉(zhuǎn)平臺用于將物體旋轉(zhuǎn)至不同姿態(tài),采集不同角度的點云。旋轉(zhuǎn)平臺可在直線導(dǎo)軌上移動,以適應(yīng)不同大小的物體。具體安裝步驟:①將直線導(dǎo)軌安裝在鋁型材框架的相應(yīng)位置上;②轉(zhuǎn)臺通過螺栓固定在滑塊上;③電源、微控制器也安裝在對應(yīng)的位置上。
圖6 展示了儀器的電路連接。這一部分由插座、24 V直流電源、USB 集線器,以及前述的結(jié)構(gòu)光掃描系統(tǒng)和旋轉(zhuǎn)平臺系統(tǒng)的電路部分連接在一起組成。
圖6 儀器的電路連接
該系統(tǒng)軟件由五部分組成:①點云掃描軟件(見圖7);②點云格式批量轉(zhuǎn)換腳本;③MeshLab 開源軟件;④點云拼接軟件(見圖8);⑤轉(zhuǎn)臺旋轉(zhuǎn)控制程序。
圖7 點云掃描軟件界面
圖8 點云拼接軟件
所有代碼已經(jīng)開源,在GitHub搜索倉庫名:Point_Cloud_Generation_And_Stitching。
三維點云生成與拼接的具體操作步驟如圖9所示。
圖9 儀器具體操作步驟
對物體不同方向的點云進(jìn)行拼接時,需要對各點云進(jìn)行三維坐標(biāo)變換。由于物體繞轉(zhuǎn)臺轉(zhuǎn)軸旋轉(zhuǎn),因此需要對轉(zhuǎn)臺進(jìn)行標(biāo)定。
通常,轉(zhuǎn)臺標(biāo)定方法包括基于標(biāo)記的方法和免工具方法[10-11]。帕克等將棋盤固定在轉(zhuǎn)盤上,然后計算不同視圖中角點的3D 坐標(biāo)。最后,通過求解超定線性方程來近似求解轉(zhuǎn)軸[12]。菲利普·薩德羅使用彩色棋盤在每次掃描中計算攝像機的外部參數(shù)[13]。虛擬攝像機位置擬合的圓的旋轉(zhuǎn)軸被視為轉(zhuǎn)盤的軸。這些方法的誤差主要來自掃描系統(tǒng)校準(zhǔn)誤差和角點檢測誤差,標(biāo)定精度有限,而且方法復(fù)雜,對器材要求也高,采集的數(shù)據(jù)量較少,不能很好地確定轉(zhuǎn)軸位置;另一種方法是采用平板標(biāo)定,這種方法不是用特征點來實現(xiàn)標(biāo)定的(見圖10)。其原理如下:將平面放在與平臺上并且保證與平臺垂直。得到平面的點云數(shù)據(jù)后,采用最小二乘法擬合得到平面方程,這樣該平面的法向量就和轉(zhuǎn)軸垂直,求取多個法向量的叉積再求平均值就可以得到轉(zhuǎn)軸的方程。這種標(biāo)定方法雖然簡便,但是過多地依賴于平板的制作精度。
圖10 平板標(biāo)定
本文提出在使用轉(zhuǎn)臺的方法進(jìn)行點云拼接時,首先要標(biāo)定轉(zhuǎn)臺。將物體安裝在轉(zhuǎn)盤上,在每個掃描步驟中旋轉(zhuǎn)相同角度的轉(zhuǎn)盤,獲得一系列的點云。假設(shè)旋轉(zhuǎn)角度為θ,生成點云的坐標(biāo)系(通常與相機坐標(biāo)系重合)為S。轉(zhuǎn)盤坐標(biāo)系記為R1,旋轉(zhuǎn)軸與R1的z 軸重合。轉(zhuǎn)盤旋轉(zhuǎn)角度后,轉(zhuǎn)盤坐標(biāo)系記為R2。
假設(shè)點P1是旋轉(zhuǎn)之前物體的點,P2是旋轉(zhuǎn)之后物體的點。然后可以得到S中P1和P2的坐標(biāo):
由于P1和P2是物體上的同一個點,因此可以得到R1P1=R2P2。由式(1)和(3),可以得到:
這意味著可以通過齊次變換矩陣將點云1 中的點P1與點云2 中的P2對齊,
轉(zhuǎn)盤校準(zhǔn)的目的是拼接一系列掃描得到的點云,意味著需要解式(5)中用一對已知的矩陣T來計算轉(zhuǎn)換矩式(5)可以變換成AX =XB的形式,對于這種形式的矩陣方程,在機器人手眼校準(zhǔn)領(lǐng)域中已經(jīng)有了較好的解決方案[14]。由可以由θ計算得到,所以轉(zhuǎn)臺旋轉(zhuǎn)角為θ時,標(biāo)定問題也就轉(zhuǎn)換為了獲取矩陣T的問題(見圖11)。
圖11 掃描系統(tǒng)坐標(biāo)系圖解
使用矩形平面作為校準(zhǔn)工具,它沒有幾何精度要求。唯一的要求是在物體上至少有4 個可識別的特征點,以便可以通過對齊旋轉(zhuǎn)前后的點云來獲得變換矩陣T。具體步驟如下:①將工具放在轉(zhuǎn)盤上,采集一次點云記為S1。將轉(zhuǎn)盤旋轉(zhuǎn)θ角,再次采集點云記為S2。②通過特征點對齊點云S1和S2,接著使用迭代最近點(ICP)算法精確拼接點云。然后,計算變換矩陣T。③解公(6)得到旋轉(zhuǎn)矩后得到其次變換矩
上述第2 步使用到MeshLab 的手動拼接功能和ICP算法,如圖12 所示。選擇好4 個特征點以后,MeshLab會自動計算變換矩陣,如果需要避免選擇特征點時的誤差可以使用MeshLab自帶的ICP算法得到比較精確的變換矩陣:
圖12 獲取變換矩陣T
重復(fù)上述步驟幾次,通過多次獲取矩陣并求取均值,可以進(jìn)一步減小變換矩陣T的誤差。
旋轉(zhuǎn)平臺直徑60 mm,臺面偏心小于5 μm,最大旋轉(zhuǎn)速度50°/s,重復(fù)定位精度0.005°,絕對定位精度0.01°。
點云的測量和拼接精度較高,誤差在0.2 mm 以內(nèi)。單次掃描時間45 s,整圈掃描時間在8 min 以內(nèi),整個系統(tǒng)能夠有效、快速的測量物體的三維點云數(shù)據(jù)并進(jìn)行拼接(見圖13)。
圖13 點云掃描過程和拼接結(jié)果
系統(tǒng)的誤差由兩部分組成,分別是掃描誤差和拼接誤差:①掃描誤差來源于攝像頭、投影儀的標(biāo)定誤差,在掃描軟件中定義了兩者標(biāo)定結(jié)果的損失函數(shù),標(biāo)定結(jié)果接近0 為好。為了得到最好的掃描結(jié)果,通常需要相機分辨率滿足奈奎斯特采樣定律。在同等條件下,通常相機分辨率越高,得到的3D 點云圖片精度越好。另外,掃描時應(yīng)該避開50 Hz 閃爍的室內(nèi)燈光。②拼接誤差取決于變換矩陣T 的誤差,可以通過多次獲取T并求取平均值來避免誤差。
本文基于TI的DLP4500 評估模塊,開發(fā)了基于結(jié)構(gòu)光和自動轉(zhuǎn)臺的桌面式3D 點云掃描儀。它可以實現(xiàn)三維物體的點云生成、拼接,并且可以根據(jù)需要通過更改配置文件來改變點云的密度與個數(shù)。儀器通過USB集線器與電腦實時通信。整個方案使用了轉(zhuǎn)臺標(biāo)定方法用于點云拼接,能夠快速、穩(wěn)定、準(zhǔn)確的完成不同視角點云的拼接,對標(biāo)定器材要求低,有效降低了成本。該方案可以實現(xiàn)對不同大小的物體測量,與專用儀器相比,制作簡單,全部開源,更適合研發(fā)人員二次開發(fā)。適用于實驗室的相關(guān)研究。