杜曉峰, 朱 凱, 林晨暉, 貢 亮, 劉成良
(上海交通大學機械與動力工程學院,上海200240)
光學三維掃描技術作為一種高精度、高效率的非接觸式測量方法,在逆向工程、工業自動化、文物修復等諸多領域得到了廣泛的應用。植物表型參數的分析對植物各個領域的研究具有重要意義。為了獲取植物的三維信息,分析植物的表型參數,本文設計了一種基于結構光三維測量技術的點云生成與拼接儀器。
目前市場上有很多基于結構光的三維掃描設備。通常情況下,投影儀將結構光投射到被測物體上,同時相機采集圖像,并計算被測物體的三維點云信息[1]。對于一個三維測量對象,無法從單一方向的掃描中得到其所有的表面信息,因此需要收集被測物體不同角度的點云信息,以便拼接成完整的三維點云[2-4]。
數字光處理(DLP)技術因其出色的性能而在光學工程中得到廣泛使用。掃描裝置的核心組件是德州儀器DLP4500 評估模塊。TI 公司提供了一種基于DLP4500 的精確點云生成方法,并提供了開源的軟件開發工具包。但是,它只能用于收集物體單方向的點云信息,無法滿足復雜零件整體三維重構的需求。
本文解決方案中,物體所有的表面信息都將被收集,并將它們拼接成一個整體[5-8]。由于所有數據和代碼都是免費提供和開源的,因此可以對該儀器進行改造以滿足個性化需求。其靈活的機械結構,可以輕松滿足不同尺寸物體的掃描。作為一種非接觸式測量方法,被測對象的表面點云將被快速收集和拼接,并且沒有其他測量方法的限制。
圖1、2 顯示了儀器的外觀。儀器主要由DLP4500評估模塊,USB 攝像頭,USB 集線器,MCU,步進電動機轉臺,步進電動機驅動器,24 V 直流電源,安裝板,支撐夾,直線導軌和鋁型材框架組成。

圖1 儀器三維模型

圖2 儀器外觀
儀器功能如下:序號01,單面點云掃描;序號02,多面點云掃描;序號03,點云拼接。圖3 顯示了儀器的總體結構。
表1、2 列出了該儀器的物料清單(BOM),分別是標準零件和定制零件。儀器所用到的標準零件便于采購,易于組裝。定制零件的安裝板在CNC 銑床中用5 mm厚的鋁合金板制成,它們用于固定儀器的各部分。電路組件還需要諸如排插、USB 線等組件。系統軟件的一部分基于TI 公司的開源代碼;另一部分基于OpenCV和PCL開源庫[9]。

圖3 儀器拓撲結構

表1 儀器標準件
圖4、5 顯示了儀器機械結構的裝配細節,分別為三維掃描模塊部分和導軌轉臺部分。

圖4 掃描系統裝配細節

圖5 導軌轉臺裝配細節
(1)三維掃描模塊的裝配方法。①使用定制長度的鋁型材搭建整體機架,②將DLP4500 模塊安裝在定制的鋁板零件上。③將鋁板安裝在鋁型材框架上。④將相機夾持裝置安裝在鋁板上。整個模塊的安裝示意圖見圖4,兩個槽用來調節相機位置,同時夾持裝置可以調節相機高度。通過相機位置的調節可以使掃描系統適應不同尺寸物體的掃描需求。
(2)旋轉模塊的裝配方法。旋轉平臺系統由減速比為90 的蝸輪蝸桿旋轉平臺、直線導軌、89C52 單片機、步進電動機驅動器、24 V 開關電源組成。旋轉平臺用于將物體旋轉至不同姿態,采集不同角度的點云。旋轉平臺可在直線導軌上移動,以適應不同大小的物體。具體安裝步驟:①將直線導軌安裝在鋁型材框架的相應位置上;②轉臺通過螺栓固定在滑塊上;③電源、微控制器也安裝在對應的位置上。
圖6 展示了儀器的電路連接。這一部分由插座、24 V直流電源、USB 集線器,以及前述的結構光掃描系統和旋轉平臺系統的電路部分連接在一起組成。

圖6 儀器的電路連接
該系統軟件由五部分組成:①點云掃描軟件(見圖7);②點云格式批量轉換腳本;③MeshLab 開源軟件;④點云拼接軟件(見圖8);⑤轉臺旋轉控制程序。

圖7 點云掃描軟件界面

圖8 點云拼接軟件
所有代碼已經開源,在GitHub搜索倉庫名:Point_Cloud_Generation_And_Stitching。
三維點云生成與拼接的具體操作步驟如圖9所示。

圖9 儀器具體操作步驟
對物體不同方向的點云進行拼接時,需要對各點云進行三維坐標變換。由于物體繞轉臺轉軸旋轉,因此需要對轉臺進行標定。
通常,轉臺標定方法包括基于標記的方法和免工具方法[10-11]。帕克等將棋盤固定在轉盤上,然后計算不同視圖中角點的3D 坐標。最后,通過求解超定線性方程來近似求解轉軸[12]。菲利普·薩德羅使用彩色棋盤在每次掃描中計算攝像機的外部參數[13]。虛擬攝像機位置擬合的圓的旋轉軸被視為轉盤的軸。這些方法的誤差主要來自掃描系統校準誤差和角點檢測誤差,標定精度有限,而且方法復雜,對器材要求也高,采集的數據量較少,不能很好地確定轉軸位置;另一種方法是采用平板標定,這種方法不是用特征點來實現標定的(見圖10)。其原理如下:將平面放在與平臺上并且保證與平臺垂直。得到平面的點云數據后,采用最小二乘法擬合得到平面方程,這樣該平面的法向量就和轉軸垂直,求取多個法向量的叉積再求平均值就可以得到轉軸的方程。這種標定方法雖然簡便,但是過多地依賴于平板的制作精度。

圖10 平板標定
本文提出在使用轉臺的方法進行點云拼接時,首先要標定轉臺。將物體安裝在轉盤上,在每個掃描步驟中旋轉相同角度的轉盤,獲得一系列的點云。假設旋轉角度為θ,生成點云的坐標系(通常與相機坐標系重合)為S。轉盤坐標系記為R1,旋轉軸與R1的z 軸重合。轉盤旋轉角度后,轉盤坐標系記為R2。
假設點P1是旋轉之前物體的點,P2是旋轉之后物體的點。然后可以得到S中P1和P2的坐標:

由于P1和P2是物體上的同一個點,因此可以得到R1P1=R2P2。由式(1)和(3),可以得到:

這意味著可以通過齊次變換矩陣將點云1 中的點P1與點云2 中的P2對齊,

轉盤校準的目的是拼接一系列掃描得到的點云,意味著需要解式(5)中用一對已知的矩陣T來計算轉換矩式(5)可以變換成AX =XB的形式,對于這種形式的矩陣方程,在機器人手眼校準領域中已經有了較好的解決方案[14]。由可以由θ計算得到,所以轉臺旋轉角為θ時,標定問題也就轉換為了獲取矩陣T的問題(見圖11)。

圖11 掃描系統坐標系圖解
使用矩形平面作為校準工具,它沒有幾何精度要求。唯一的要求是在物體上至少有4 個可識別的特征點,以便可以通過對齊旋轉前后的點云來獲得變換矩陣T。具體步驟如下:①將工具放在轉盤上,采集一次點云記為S1。將轉盤旋轉θ角,再次采集點云記為S2。②通過特征點對齊點云S1和S2,接著使用迭代最近點(ICP)算法精確拼接點云。然后,計算變換矩陣T。③解公(6)得到旋轉矩后得到其次變換矩
上述第2 步使用到MeshLab 的手動拼接功能和ICP算法,如圖12 所示。選擇好4 個特征點以后,MeshLab會自動計算變換矩陣,如果需要避免選擇特征點時的誤差可以使用MeshLab自帶的ICP算法得到比較精確的變換矩陣:

圖12 獲取變換矩陣T
重復上述步驟幾次,通過多次獲取矩陣并求取均值,可以進一步減小變換矩陣T的誤差。
旋轉平臺直徑60 mm,臺面偏心小于5 μm,最大旋轉速度50°/s,重復定位精度0.005°,絕對定位精度0.01°。
點云的測量和拼接精度較高,誤差在0.2 mm 以內。單次掃描時間45 s,整圈掃描時間在8 min 以內,整個系統能夠有效、快速的測量物體的三維點云數據并進行拼接(見圖13)。

圖13 點云掃描過程和拼接結果
系統的誤差由兩部分組成,分別是掃描誤差和拼接誤差:①掃描誤差來源于攝像頭、投影儀的標定誤差,在掃描軟件中定義了兩者標定結果的損失函數,標定結果接近0 為好。為了得到最好的掃描結果,通常需要相機分辨率滿足奈奎斯特采樣定律。在同等條件下,通常相機分辨率越高,得到的3D 點云圖片精度越好。另外,掃描時應該避開50 Hz 閃爍的室內燈光。②拼接誤差取決于變換矩陣T 的誤差,可以通過多次獲取T并求取平均值來避免誤差。
本文基于TI的DLP4500 評估模塊,開發了基于結構光和自動轉臺的桌面式3D 點云掃描儀。它可以實現三維物體的點云生成、拼接,并且可以根據需要通過更改配置文件來改變點云的密度與個數。儀器通過USB集線器與電腦實時通信。整個方案使用了轉臺標定方法用于點云拼接,能夠快速、穩定、準確的完成不同視角點云的拼接,對標定器材要求低,有效降低了成本。該方案可以實現對不同大小的物體測量,與專用儀器相比,制作簡單,全部開源,更適合研發人員二次開發。適用于實驗室的相關研究。