楊以鐵,郭天太,孔 明
(中國計量大學計量測試工程學院,浙江 杭州 310018)
近年來,機器視覺在工業制造領域得到快速發展;其中,結構光測量作為三維測量技術重要組成部分,擁有測量效率高、精確度高、實用性強等特點,廣泛應用于工業測量領域。工業生產中,需對各種堆積物進行測量,以判斷生產計劃的執行程度或庫存貨物的量,如煤堆、礦堆等[1]。因此,實現煤堆體積和質量的快速測量具有廣泛的應用前景。然而,大型露天煤場的煤堆體積大、形狀不規則,導致測量難度大、測量精確度不高。
目前,基于多線結構光表面輪廓測量系統的研究,能實現對零件、工藝品等進行高精度的三維重構[2-3]。Lilienblum等[4]使用線掃描相機結合結構光,提出一種新的光學三維表面重建技術。根據線掃描圖像捕獲的特殊性,利用分布式光和沒有遮光的元件,獲得與傳統線光相當的光強度,且光條紋可以與拍攝的相機線同步切換,實現了連續測量,單次表面掃描就能得到高質量三維重建。Lin等[5]利用高動態范圍成像技術提出一種新穎的結構光傳感方法,將相同圖案索引的圖像融合在一起以獲得高動態范圍輻射圖,且三維重建結果具有較高精確度 。工業領域有多種方法可實現三維重構,但是測量目標物體較小,測量環境要求較高,無法滿足測量大型堆積物高精度、快速掃描、低成本的需求。
基于此,本文提出一種新型多線結構光三維測量方法,通過直線滑臺的線性移動,使多束激光條掃過堆積物表面,獲取物體表面二維信息,并對采集到的圖像有效像素點進行深度計算,得到各光條像素點空間坐標,實現小堆積物的體積測量,累加小堆積物的體積即可得到大型堆積物的體積。
測量過程中,使用平行激光器在待測物體表面投影25條激光平面,攝像機獲取目標的反射光線,在檢測器上成像,獲取多條待測物體表面輪廓信息畸變光條的圖像。圖像傳入計算機,對帶有待測物體表面輪廓信息的調制光束目標圖像進行預處理和深度計算,轉換成光條上每個光點的高度變化。
多線結構測量基于三角測量原理,如圖1所示,物鏡的光軸、激光器的軸線和CCD線陣,三者位于同一平面內,當直線滑臺的位置發生改變時,畸變光條所成的像在檢測器上也發生相應位移。通過像移和實際位移之間的關系式,真實的物體位移可以由對像移的檢測和計算得到。該系統原理參數的標定結果直接影響三維重構結果的精確度。

圖1 三維重構測量系統原理
如圖所示,O為攝像機鏡頭中心,B為激光器鏡頭中心,攝像機與激光器之間的距離OB=d,直線滑臺移動的位移為 ?d。激光器投射出多個光平面到待測物體表面,與XOY面的夾角為 α0,第i個間距投影夾角為 αi,光平面之間的夾角記為 ω。攝像機的鏡頭光軸OD與OY軸呈 β角,攝像機的水平視場角為 2β1,垂直視場角為 2β2。任意物點P(x,y,z)在攝像機成像平面X0O0Z0上為P′(x′,y′,z′),攝像機水平方向X0上的像素序號為n、總像素數為(2N+1),0<n<2N+1,攝像機像素在垂直方向Y0上的像素序號記為m,總像素數為 (2M+1),0<m<2M+1。根據圖1中的幾何關系[6]可知:

其中,β、β1、β2、αi、d是預先標定的常數,n、N、m、M由圖像得到。本方法利用直線滑臺使結構光產生相位變化,故公式中增加了位移 ?d,?d為直線滑臺帶動激光器產生的相位差,由相機連續拍攝采集圖像的時間間隔和直線滑臺運動速度決定,能實現在線動態實時精準測量且具有環境抗干擾性強的特點;采用多線激光器,提高測量效率同時降低了系統的復雜程度。標定結果為:水平視場角 2β1=48.5°,垂直視場角 2β2=24.6°,α=92.68236°。相機采集圖片像素數為 1 152(行)× 684(列),故2N+1=1152個,2M+1=684 個。
本文通過基于多線結構光三維重構系統獲取深度圖像,從而實現三維重構[7]。通過滑臺的線性移動,使25條多線結構光投射在待測物體表面,攝像機采集帶有畸變光條的圖像并傳入計算機。通過OPENCV對采集的圖像進行處理,需要將紅色的畸變光條從原始圖像中提取出來,然后進行黑白化并使用Steger算法提取光條中心,膨脹和腐蝕后進行深度計算,得到深度圖像。
彩色圖像中每個像素點都有3個值表示,由RGB三通道基本單位組成[8]。本文使用閾值法提取原始圖像中的紅色通道,獲取圖像中的紅色光條。提取紅色光條可以減小環境對測量結果造成的誤差,能獲取并有效處理目標待測物的三維信息。輸入為攝像機采集到的原始彩色圖像,首先讀取圖像并以Mat格式保存,獲取圖像大小并記錄行和列形式,調整圖像大小;接著調用OPENCV中提供的split()函數,遍歷整個圖像每個像素單元的顏色通道,實現顏色通道分離;通過閾值法提取紅色分量,并將其他分量取值為0,即黑色。閾值設置越高提取的紅色像素越少,會出現斷線的現象;閾值設置過低提取的紅色像素越多,則會出現冗余的紅色分量,出現噪聲,所以選取合適的閾值是保證準確提取紅色光條的關鍵。圖2為原始采集的圖像,圖3為提取紅色光條的圖像。

圖2 原始圖像
首先需要調用OPENCV中的 cvGetSize ()函數獲取圖像寬、高、像素的位深度和通道數,其次調用OPENCV中提供的cvCvtColor ()函數將提取紅色光條后的彩色圖像進行灰度化,并且保存灰度圖。調用cvThreshold()函數對單通道數組應用固定閾值操作,輸入灰度圖,設置固定閾值,閾值越高線條越細,過細的線條會影像提取光條中心的結果,閾值過低則會出現噪聲,選取合適黑白化的固定閾值有利于光條中心的提取。黑白二值化的結果如圖4所示。

圖3 提取紅色光條后的圖像

圖4 黑白二值化
光條中心的提取是線結構光三維重構方法的關鍵和難點,直接影響重構結果的精確度。常用的提取光條中心的算法有重心法、模板匹配法、極值法、擬合法等[9]。上述方法是基于攝像機圖像的行或列,只能擬合近似直線的條紋。在實際測量中,光條會受被測物曲面而產生畸變,上述方法的測量精確度會受到影響。
本文采用經典的基于Hessian矩陣的Steger算法提取光條中心[10-12]。Hessian矩陣可以得到圖像像素各方向上灰度梯度變化,能夠實現光條中心亞像素精確度定位。首先通過Hessian矩陣得到光條的法線方向,然后在法線方向利用泰勒展開得到亞像素位置。對于圖像中激光條紋上的任意一點(x,y),Hessian矩陣可以表示為

式中rxx表示圖像沿x的二階偏導數,ryy表示圖像沿y的二階偏導數,rxy表示圖像沿x的一階偏導數并沿y的一階偏導數。需要注意的是在求Hessian矩陣之前需要對圖像進行高斯濾波,高斯濾波時,設置高斯方差其中 ε為光條寬度。Hessian矩陣求取的特征向量以及對應的特征值,較大特征值所對應的特征向量是垂直于直線的,較小特征值對應的特征向量是沿著直線方向的。其最大特(征值)對應的特征向量對應于光條的法線方向,用nx,ny表示,以點(x0,y0)為基準點,則光條中心的亞像素坐標為

在提取光條前需將黑白二值化后的圖像作為輸入,對圖像進行高斯濾波。高斯濾波器模板的生成最重要的參數就是高斯分布的標準差 σ。如果 σ較小,對圖像的平滑效果不明顯。對圖片求二階偏導,求特征值最大時對應的特征向量,設置連接點的最大距離。將提取的光條中心的點進行保存并連接,提取光條中心的結果如圖5所示,將提取的光條中心提取出來如圖6所示。

圖5 提取光條中心結果

圖6 光條中心提取結果
膨脹和腐蝕操作是形態學處理的基礎[13]。進行膨脹操作時,會將圖像中的亮區擴展;進行腐蝕操作時,圖像中的亮區變細。膨脹和腐蝕操作可以分為開閉運算,開運算為先腐蝕再膨脹;閉運算為先膨脹再腐蝕。開運算可以理解為將圖像中靠近但不相連的地方打開,使得原來的縫隙變大。閉運算能合并在一起的地方盡量合并,把圖像中縫隙填滿。本文方法使用閉運算,將光條的縫隙填滿,消除深度計算時光條中黑色像素點產生的誤差。膨脹和腐蝕的結果如圖7、圖8所示。

圖7 膨脹處理結果

圖8 腐蝕處理結果
為了適用于機械結構和利用移動滑軌采集多幅多線結構光圖像的方法,對原有計算方法進行了改進[14]。直線滑臺以1 .2mm/s的速度線性移動,相機驅動設置為間隔H秒拍一張照片。若系統連續采集的有效圖像為Q張,則要求1 .2×H×Q大于等于相鄰條紋之間的距離,需要保證多線結構光能完整地掃描遍整個待測物體表面。因此,以每秒拍一張照片并連續一次性采集7張圖像,故可以得出每張圖像拍攝時滑臺移動的距離 ?d=1.2mm。深度計算需要進行如下步驟:由下至上,從左到右,遍歷圖像中所有像素點,求出每一個像素點單通道的值,結果在0~255之間。此時條紋已經非常細了,每條條紋寬度在十幾個像素之內,但需要控制條紋寬度像素刷選最優結果值,否則計算量過大會造成數據冗余及降低系統效率,所以只選取靠近條紋中心數值為255的像素進行保存并深度計算。將保存的像素按列由下至上從左到右依次帶入式(1)、式(2)、式(3)中,計算圖像中條紋上像素的空間坐標值,從而得到深度圖像,如圖9所示。

圖9 深度圖像計算結果
為驗證三維重構系統的精確度,將計算得到的點云數據通過對點云在空間坐標系中的位置進行誤差分析。如圖10三維重構分析圖所示,為了驗證方法精確度進行了5組實驗,通過量杯量取一定體積的沙子,分別進行三維重構。將生成的點云數據導入到MATLAB,得到沙堆的高度和直徑,計算沙堆的體積與真實的體積進行誤差分析。

圖10 三維重構分析圖
實驗結果如表1所示,通過測量5組沙堆的體積,其相對誤差滿足在2%以內。在當前實驗條件下,獲得了比較滿意的結果,但是精確度還有待進一步提高。

表1 三維重構精確度分析表
本文提出了一種新型的多線結構光三維重構系統方法,提高了提取光條的準確性并提高了系統的精確度。同時通過對深度計算公式的改進,使得算法較好地適用于該系統,改善了重構效果。在堆積物運輸生產過程中,傳送帶是必不可少的環節,該系統安裝傳送帶上,通過累加測量小堆積物體積,可實現大型堆積物系統的高精度在線實時測量和監控,因此具有較好的應用價值。