朱俸儀 楊源 王佳豪 王丁辰 周哲海



摘要:三維掃描技術在工業上應用十分廣泛,但局限于普通芯片對圖像處理能力的不足,三維掃描的精度往往達不到要求。推出了基于ZYNQ的線激光三維掃描儀,主要原理是基于激光三角法測距。首先該儀器在步進電機的帶動下勻速轉動,同時CCD會獲取包含線激光的空間圖像,將數據傳輸到ZYNQ開發板上,利用高性能的FPGA模塊對CCD采集到的圖像數據進行處理,最后,利用ZYNQ開發板上的以太網串口將得到的數據傳輸給PC上位機,上位機進而根據標定參數作空間轉換并生成點云數據,可以實時輸出三維圖像。軟件部分由QT配置PCL庫開發上位機軟件構成,能夠調用PCL庫實現點云數據的三維可視化。
關鍵詞:三維掃描;點云數據;CCD;ZYNQ;FPGA
中圖分類號:TP334.2 文獻標識碼:A 文章編號:1007-9416(2020)08-0146-05
0 引言
近年來,計算機技術及電子技術的不斷進步及CCD等光電器件的完善和發展,推動了計算機視覺技術的快速發展。目前,計算機視覺技術已被廣泛地應用于航空航天、生物醫療、物體識別、工業自動檢測等領域。激光三角法是一種傳統的非接觸性三維輪廓測量方法,在物體的輪廓測量領域中有著其獨特的優勢,激光掃描三維輪廓測量技術對于靜態物體的測量是目前應用最廣的方法。目前,市場上對三維掃描技術的研究開發已經形成了較大規模的產業。但其產品在精度、操作便捷性、穩定性、以及功耗等方面仍有較大提升空間。
目前國內市場上的三維掃描儀基本都是非接觸式、面向工業級的高精度三維掃描儀,價格相對高昂。因此迫于較高的成本,三維掃描技術難以在普通消費級層面普及開來,如果可以在保證較高的精度的同時把成本降至較低,三維掃描技術將會得到更廣泛的應用,且具有較高的商業價值。
1 系統概述
1.1 掃描原理
三維掃描儀是基于三角測距法的一種能夠獲取三維物體空間坐標信息的儀器。一般分為直射式與斜射式兩種,這里我們介紹直射式的原理,如圖1所示。
圖1中豎直向下的箭頭代表激光器發出的線激光,Δb為激光光斑到CCD中心軸線的距離,由于機械結構是固定的,可以認為θ是定值。由上述公式可知Δb與Δz呈線性關系。K的值我們可以通過上位機軟件對激光器標定求得。
1.2 系統方案
本設計是基于轉臺式的三維掃描儀。機械部分上端中心點有一個線激光器,CCD位于機械臂左端且固定,其下是轉臺,轉臺中心和線激光器處于同一豎直線上,機械臂固定在轉臺上方,通過步進電機控制進行勻速轉動。本設計機械結構如圖2所示。硬件部分,為了確保精度,轉臺為我們自行設計的高精度轉臺,步進電機選用型號為11HS04的單出軸4引線步進電機,通過2PH驅動板及Arduino控制機械臂的轉動方向及轉動速度,CCD采用為普通紅外夜視150度廣角監控攝像頭。
軟件部分,在PC端,我們通過下位機軟件Arduino IDE在窗口中輸入相關代碼來控制電機[1]。點云數據處理部分由VS2019+QT5.9+PCL1.8編寫的上位機軟件構成,其中VS是編輯環境,QT插件的使用方便了上位機GUI的設計,調用開源C++編程庫PCL進行點云相關的通用算法和高效數據結構的移植,從而進行高效的點云可視化。軟件結構邏輯框圖如圖3所示。
1.3 系統結構
本設計中的三維掃描儀由軟硬件共同組成,硬件部分主要由CCD、線激光器、步進電機和單片機構成。軟件部分主要由上、下位機軟件共同完成,前者負責標定校準,后者負責步進電機和線激光器的驅動。硬件通過軟件來控并優化,最終得到目標物體PCD格式的模型掃描文件,并在上位機端的PCL可視化軟件上進行實時顯示。系統結構示意圖如圖4所示。
2 標定與校準
在科學測量中,標定[2]是一個不容忽視的重要步驟。標定的主要作用有三個方面:確定儀器或測量系統的輸入—輸出關系,賦予儀器或測量系統分度值;確定儀器或測量系統的靜態特性指標;消除系統誤差,改善儀器或系統的正確度。
本設計的系統參數標定包含三個部分,分別是CCD的內參和外參的標定;三角法計算深度數學模型的參數標定;深度圖到點云空間坐標的數學模型的參數標定。
目前三維測量系統的標定方法大都采用標準模板法,即通過標準模板上三維坐標己知的被測點將傳感器坐標系和測量基準坐標系聯系起來,進而求得兩個坐標系問的變換方程。而深度圖到點云空間坐標的標定可以通過數學運算在軟件層面進行標定。
2.1 標定數據的采集
通過卷尺在地面標記從墻面往房間內的深度,根據以標記好的深度移動激光掃描儀,移動過程中將線激光發射口對準刻度,依次移動6個不同的深度,每個深度對應一段視頻,將所采集的標定視頻的每幀圖片進行線激光中心條紋提取,其中深度為2.2m和深度為1.6m的處理圖5所示。
2.2 標定數據擬合
對深度數據對應x軸坐標值進行最小二乘法擬合,得到擬合曲線如圖6標定數據擬合直線圖,最終計算得到對應擬合方程。
2.3 掃描數據的采集與誤差分析
對于如圖7所示的掃描場景,我們在對相機進行標定后對物體進行掃描,得到其深度圖以及經可視化后的點云圖,分別如圖8和圖9。最終在pc端得到物體1、2、3、4、5、6對應的高度,并將數據與用游標卡尺測得的實際物體高度進行對比和誤差分析。數據及誤差分析結果如表1。通過數據分析可知,本設計的精度在96%以上,但是由于在此次掃描時環境光照過強且桌面為不規則白色底面,若能在墻面和桌面都為平整的白色漫反射平面且在黑暗的環境中進行掃描,其精度可穩定達到99%以上。
3 系統特色
本設計中,優勢有以下幾方面:一是機械結構的部分組成部分是由AutoCAD等制圖軟件繪圖后經3D打印而來,使用者可以根據自己的喜好對部分機械結構進行調整。二是可替代性,本設計的硬件部分大部分都可以進行更換,如對測量精度或成本有更多的要求,使用者可以根據自身需求選擇更好的或者廉價的轉臺、CCD等硬件。三是性能強大,高性能FPGA模塊能夠更好處理采集到的圖像信息,從而提高系統的效率與精度。四是數據傳輸能力強,本設計使用以太網的方式實現與上位機的數據溝通,比傳統傳遞數據的方式效率更高,保證了設備運行時的精度與穩定性。
本設計面向的是對精度有較高要求的工業級掃描儀或高端民用掃描儀,ZYNQ模塊雖然價格不低,但內含的FPGA模塊具有很好的圖像處理能力,這有助于對采集到的圖像數據進行高效的實時處理,進而保證了系統的精度。同時,本設計采用以太網的連接方式實現與上位機的數據溝通也是為了保證數據傳輸的高效性與實時性,這樣可以進一步保證系統的精度。當然,本設計的部分硬件可以自行更換,使用者可以根據自身需求來調整系統的整體精度。需要注意的是,對于表面強反光的物體以及表面輪廓模糊的物體該掃描儀不能提供較為準確的建模。掃描范例如圖7所示。
4 結論
本論文的基本工作是如何在現有三維掃描儀的基礎上進一步提高精度,實現對現實物體的三維坐標信息的獲取。
三維掃描儀雖然能夠成功獲取到三維物體的空間坐標信息并且還能保證較高的精度,但用到的硬件其成本較高,這也導致適用范圍與普及性不佳,接下來考慮使用較低成本的硬件通過優化算法來達到更高的精度。同時,在面對不同的環境時標定環節較為繁瑣,需要專業人士進行輔助操作,今后考慮做一個數據庫,內含不同環境下的標定參數,需要時直接調用即可。
5 致謝
本研究得到了北京信息科技大學勤信學者支持計劃(QXTCP A201701)和2019年促進高校內涵發展-大學生科研訓練項目(5101923200)的支持,在此表示感謝。
參考文獻
[1] 趙洪河,陸宏謙.基于Arduino的步進電機分析與設計[J].智能機器人,2016(6):42-45.
[2] 郭連朋,陳向,寧劉彬.Kinect傳感器的彩色和深度相機標定[J].中國圖像圖形學報,2014(7):23-26.