您現在的位置是:首頁 > 攝影首頁攝影

3D鐳射掃描器設計及資料處理

由 電子技術應用 發表于 攝影2021-10-16
簡介同時,基於MATLAB軟體中的GUI工具設計的資料處理系統對採集到的原始資料進行了預處理,利用濾波器剔除點雲中的離群點來實現降噪,針對掃描中的漏洞採用最小二乘法進行擬合平滑處理,利用貪婪網格法進行三角網格重建,繪製點雲輪廓,根據預處理後的數

鐳射掃描器怎麼用

近年來,隨著計算機圖形和計算機視覺學的發展,三維掃描重建技術在多個領域(如工業測量、地形地貌的測繪、自動導航、無人機航拍、採空區調查等)逐漸展現其優勢

[1-2]

傳統的三維場景重建方式包括主動建模和被動建模。主動建模是透過裝置一次採集場景資訊,進行點雲成像。被動建模是根據單張或多張影象,直接利用影象進行三維建模

[3]

。後者相對於前者不需要進行全域性座標的標定,避免了真實場景下的幾何複雜性,但計算複雜度高,同時在還原幾何準確性及獲得三維資訊的完整性方面存在著較大的缺陷

[4]

。因此,為彌補被動建模的缺陷,在鐳射雷達掃描技術的迅速發展下,主動建模的應用越來越多。鐳射雷達具有測量速度快、精度高、非接觸測量的特點,且應用成本大幅度降低,透過鐳射雷達進行主動建模的使用越來越廣泛

[5]

鐳射雷達是透過舵機的轉動配合紅外鐳射器的單點測距,實現單個平面的測量,其通訊介面返回的資料同時包含測量距離和測量方位,執行狀態下受外界環境影響程度較小。但是單個二維鐳射雷達僅能獲得一個截面的資訊,為了獲取三維的資料進行建模,採用同等精度和測量範圍的三維鐳射雷達時,成本將高出二維鐳射雷達十幾倍,因此限制了在一般場景下的應用。

為節約經濟成本,大量研究人員著手研究改造二維鐳射雷達或採用在二維鐳射雷達的基礎上增加機械結構,以進行3D掃描。但多數的機械結構複雜,導致全域性座標的標定變得困難,或測量範圍有限,同時缺少針對三維鐳射掃描系統的整體設計方案。這些問題的存在,也為後來設計利用二維鐳射雷達實現三維重建的研究指明瞭方向。

本文依據二維鐳射雷達,搭配一維的旋轉雲臺,設計三維鐳射掃描器作為採集裝置。同時設計上位機的機械控制和資料處理系統,最終實現掃描場景的三維重建。

1 座標採集系統設計

1.1 掃描方案

由於2D鐳射雷達採用點狀鐳射進行掃描,因此在掃描一週的情況下,僅能採集獲得單個截面內的極座標下的距離資訊。如果需要擴充套件為三維掃描器,一般有兩種方式:(1)“變點為線”,將點狀鐳射改為線性鐳射,一次性獲得一個角度下截面的距離資訊[6];(2)增加額外的機械結構(如旋轉裝置)作為擴充套件軸來獲得第三個維度的資訊。

應用第一種方式,不影響掃描的速率,但鐳射的亮度隨著距離的增加,衰減速度加快,測量距離有限,並且對原本的鐳射雷達的結構改造較大,對攝像頭的使用要求較高,工作量增多且複雜。應用第二種方式,需要控制額外自由度的轉軸,掃描速度降低,但測量距離遠,額外機械機構造成的誤差可透過數學補償,對原本的雷達的改造減少,只需要設計旋轉裝置即可。因此實驗中選用增加轉軸的方式設計3D掃描器。

透過使用HLS-LFCD2型號2D鐳射雷達和RDS3115數碼舵機,搭建3D鐳射掃描器。設計機械結構如圖1所示。

3D鐳射掃描器設計及資料處理

舵機帶動機械關節的轉動,其中2D雷達固定在關節處,雷達的幾何中心與轉軸的中心的連線垂直於雷達底部所在平面。掃描時,鐳射雷達不間斷掃描鐳射器所在平面。以上述舵機轉軸幾何中心的O點為原點,建立空間直角座標系,如圖2所示。

3D鐳射掃描器設計及資料處理

圖2中,O′為雷達幾何中心,平面O′QP為雷達掃描平面,XOY平面與參考水準面平行。根據2D鐳射雷達的當前測量角度α、機械關節的偏轉角θ和被測量點P到雷達中心的距離ρ可知,測量點P的全域性座標(x,y,z)可透過下式計算得出:

其中,方位角α和距離ρ透過鐳射雷達串列埠輸出的資料進行解碼獲得,偏轉角θ根據控制器輸出的PWM和舵機物理偏轉量之間關係得到。

1.2 機械控制

如圖1所示,機械控制部分主要是對舵機的操作,舵機的精度決定了偏轉角θ的精度。透過ARM公司的STM32ZET6作為控制器,輸出PWM波進行控制RDS3115數碼舵機,舵機主要控制特性如表1所示。

3D鐳射掃描器設計及資料處理

利用控制器產生一個20 ms的時基脈衝,該脈衝的高電平部分為0。5~2。5 ms範圍,最大間隔為2 ms。根據表1和舵機的資料手冊,在該範圍內,輸出的角度值與高電平的寬度成線性關係,舵機輸出角度值θ值計算方式如下:

其中,θ的單位為度;N

set

透過控制器進行設定,範圍在500~2 500之間,從而實現舵機角度在0~180°範圍內偏轉。

由於舵機控制時存在死區,死區時間在3 μs,控制最小精度可達1 μs,小於死區時間,因此,在控制過程中,相鄰兩次偏轉角θ的最小間隔Δθ為:

因此,在控制過程中,設定的步進間距均為0。27°的整數倍,舵機的死區一定程度決定了掃描的精度。

2 控制系統及資料採集

上位機控制系統是基於PC的Windows 10開發平臺下,以Visual Studio 2015中的MFC為開發環境,透過編寫主介面控制元件的訊息響應函式,來實現掃描器控制和採集資料儲存。MFC中包含大量Windows控制代碼封裝類,以及多種Windows的內建控制元件和元件的封裝類

[6]

,豐富的內建控制元件為設計視覺化介面提供便利。

系統設計框圖如圖3所示。

3D鐳射掃描器設計及資料處理

上位機PC的任務包括同2D鐳射雷達的通訊以及透過下位機控制器STM32對舵機的操作。鐳射雷達的資料傳輸介面為UART格式,在上位機和雷達處採用藍芽模組進行通訊,以避免傳輸線對掃描程序中的干擾。通訊內容包括雷達的啟動和關閉,以及獲取雷達掃描平面內的ρ和θ。針對雷達傳送的每一幀資料進行解碼,保留每幀資料中的角度和距離資訊

[7]

在上位機介面,透過對相對座標系下的起始掃描位置、掃描間隔和終止掃描位置進行選擇,進行掃描路程設定。在控制關節旋轉的同時,採用詢問-應答的形式,以便保證在舵機完成轉動任務後再進行掃描。在上位機介面透過進度條的形式顯示整體掃描進度,方便使用者進行監測。

上位機控制系統流程如圖4所示。

3D鐳射掃描器設計及資料處理

根據專案要求,在MFC設計中採用多執行緒的方式,其中主執行緒用於響應使用者的操作,將使用者需求指令(如開啟串列埠、開啟檔案、儲存檔案等)轉換為程式指令進行執行、判斷,並反饋執行結果。

MFC介面如圖5所示。介面中接收框和傳送框均是對舵機進行操作,傳送框顯示已設定命令或進行手動編輯命令,接收框顯示下位機的回覆情況。

3D鐳射掃描器設計及資料處理

掃描同時,上位機透過串列埠線與STM32通訊,控制舵機實現關節的轉動。STM32控制器功能主要是與上位機進行通訊,接收命令資料以便設定舵機的起始角度、步進間隔和終止角度,根據上位機的驅動命令步進舵機並回復執行結果。系統將從雷達處將接收到的資料經解碼後得到方位角α、距離ρ和舵機的偏轉角θ,按照(θ,α,ρ)的格式儲存到使用者設定的txt檔案中,作為後續資料處理系統的原始檔案。

3 資料處理

為了提高資料處理的速度,簡化點雲處理的計算過程,以及進行離散的點雲資料的視覺化,基於MATLAB的GUI平臺,建立專用的集座標轉換、點雲資料處理以及資料成像的資料處理系統。點雲處理系統組成如圖6所示。

3D鐳射掃描器設計及資料處理

資料處理過程,匯入上一階段以(α,θ,ρ)形式儲存的txt文字檔案,按照式(1)進行運算,轉換為三維資料座標(x,y,z)的形式,並以pcd的形式輸出儲存。此時pcd儲存的即為原始的標準點雲資料。

3.1 點雲資料濾波

透過掃描器得到的點雲數量極其龐大,測量資料將達到數萬個甚至數十萬個點,龐大的資料量中包含有無法預料到噪聲點。噪聲點的來源主要是鐳射掃描硬體本身造成的誤差,此外還與採集實際情況有關,如掃描區域中存在煙霧、顆粒、稜角等,這些對於點雲匹配等後期的工作顯然是不利的,因此,需要對資料點進行一系列的資料去噪,篩除噪聲點

[8]

為了去除資料中存在的噪聲點,針對每個點的鄰域進行了統計分析。針對點雲中的每一個點,認為該點與其附近k個鄰近點之間的距離分佈符合高斯分佈規律,根據極限誤差和置信機率來決定該點是否為離群點

[9]

3.2 點雲平滑及重建

在消除原始資料中的不規則點時,為了建立光滑完整的模型必須對物體表面進行平滑處理和漏洞修復。因此,針對濾波後的點雲,建立KD-tree加快逐個點雲資料的鄰近資料搜尋,進而透過MLS(移動最小二乘法)進行重取樣,進行光滑處理。

利用貪婪演算法,動態設定三角網格的最大半徑,進行三角網格重建點雲輪廓。為了使使用者能夠進一步全面地觀察最終成像,在該介面加入了3個滑塊。當移動滑塊時,獲得當前滑塊的位置,並轉換成角度值,根據旋轉軸和角度值建立4×4的轉移矩陣,同時獲取當前的點雲位置,呼叫MATLAB函式pctransform得到旋轉後的新的點雲資料,從而實現點雲資料在X、Y、Z方向旋轉並重新整理顯示。

系統主介面如圖7所示,“檔案處理”按鈕的回撥函式實現轉換資料格式並按pcd格式檔案儲存,“資料處理”中包含了主要的處理演算法,“濾波”針對標準格式的點雲進行濾波,並儲存濾波結果。下拉欄可以對左側影象區域進行操作,包含“清除”、“顯示原始三維點圖”等,對右側影象區域進行“顯示點雲包絡圖”。包絡圖是最終渲染成像的結果,因此單獨在右側欄進行顯示,與其他成像圖進行直觀對比。

3D鐳射掃描器設計及資料處理

4 實驗結果

在一個固定的50 cm×45 cm×28 cm的長方體中進行測試,先是對固定偏轉角α為90°進行2D鐳射雷達測試,掃描截面為50 cm×45 cm。獲得三維點資料成像結果如圖8所示。

3D鐳射掃描器設計及資料處理

計算求得的長度為L

y

=495。88 mm,L

x

=457。19 mm。根據實驗結果可知,2D鐳射雷達的測量準確度較高,雷達的取樣率高達5 000次/s,測量速度快,有效測量半徑為0。15~8 m。雷達的良好效能確保了後續的三維建模。

設計3D鐳射掃描器實物圖如圖9所示,雲臺頂端搭載2D鐳射雷達,雲臺後半部分為基於STM32的控制器,包括無線傳輸裝置、舵機控制部分;上位機在PC端上實現對掃描器的控制,並進行資料處理。

3D鐳射掃描器設計及資料處理

針對一中空的長方體作為掃描例項進行驗證。設定掃描範圍為x>0部分,掃描示意圖如圖10所示。

3D鐳射掃描器設計及資料處理

原始掃描點雲資料如圖10所示,掃描物體外圍存在一圈噪聲點。經統計濾波器濾波之後,距離較遠的離散資料點被濾除,實際掃描物體被較為完整地儲存,如圖11所示。濾波結果顯示,點雲資料從34 113個減少到33 900個。圖12為濾波資料透過移動最小二乘法進行光滑之後,採用貪婪三角網格演算法進行重建的示意圖。比較圖12的重建結果和圖9的實物圖,可知掃描物體重建效果良好。

3D鐳射掃描器設計及資料處理

3D鐳射掃描器設計及資料處理

上述實驗結果表明,本文設計的三維掃描器能夠對一般的三維場景選定範圍進行重建分析;資料處理系統可以針對採集到的資料進行一系列的離散濾波、平滑處理,最終實現對掃描場景的重建。

5 結論

本文基於2D鐳射雷達和雲臺裝置,設計了一種三維掃描器。結合基於MFC設計的控制系統,實現對指定區域內的資料採集,透過推導的座標變換關係,將座標轉換到全域性座標系下,實現對三維資料的採集和儲存。同時,基於MATLAB軟體中的GUI工具設計的資料處理系統對採集到的原始資料進行了預處理,利用濾波器剔除點雲中的離群點來實現降噪,針對掃描中的漏洞採用最小二乘法進行擬合平滑處理,利用貪婪網格法進行三角網格重建,繪製點雲輪廓,根據預處理後的資料進行了三維重建,最終顯示在資料處較低的環境,能夠較好地進行三維重建。

參考文獻

[1] 王曾蘭。基於二維鐳射雷達資料的三維重建研究[D]。瀋陽:東北大學,2013。

[2] 何銳斌,李子揚,賀文靜,等。鐳射點雲解算的軟硬體協同設計與實現[J]。電子技術應用,2019,45(3):100-103。

[3] 項志宇,李斌。基於2D鐳射雷達的快速3D測距系統的設計與實現[J]。感測技術學報,2006(6):2638-2642。

[4] 謝理想,萬剛,曹雪峰,等。無人機序列影象快速三維重建系統設計與實現[J]。電子技術應用,2017,43(6):134-137,142。

[5] 肖琪。基於鐳射掃描資料點集的三維重建演算法研究[D]。北京:華北電力大學,2011。

[6] 詹坤烽,陳文建,李武森,等。線鐳射三維場景重建系統及誤差分析[J]。中國鐳射,2018,45(12):173-182。

[7] 牛京玉,胡堅,孟凡榮,等。基於多核DSP的鐳射點雲解算演算法並行設計[J]。電子技術應用,2017,43(2):54-57。

[8] 史皓良。三維點雲資料的去噪和特徵提取演算法研究[D]。南昌:南昌大學,2017。

[9] 張育鋒。三維資料點雲的去噪及其檢測[D]。南京:南京資訊工程大學,2014。

作者資訊:

段清明,王 凡,徐琳琳,全文俊

(吉林大學 儀器科學與電氣工程學院,吉林 長春130012)