王福斌,劉賀飛,王 蕊,曾 凱
(華北理工大學 電氣工程學院 自動化系,唐山 063210)
線結構光3-D視覺測量技術作為一種有效的主動視覺測量方法,具有實時性、非接觸、準確度高和等優(yōu)點[1],在目標跟蹤[2]、逆向工程[3]、缺陷檢測[4]等領域中廣泛應用。傳統(tǒng)線結構光測量系統(tǒng)一般由CCD相機、線形激光器、光源以及計算機組成。在線結構光3-D測量系統(tǒng)中,精確提取光條圖像的條紋中心坐標是獲取被測目標3-D形貌信息至關重要的一步[5]。理想的光條是一條單像素寬的細線[6],但通常線激光具有一定的像素寬度,條紋中心坐標提取的偏差將直接影響被測目標3-D坐標的精度[7]。因此如何實現(xiàn)快速、精確提取結構光條紋中心,對提高線結構光3-D測量系統(tǒng)的精度具有重要意義。
傳統(tǒng)的線結構光條紋中心提取算法包括極值法、灰度重心法[8]、骨架細化法[9]、方向模板法[10]等,具有快速、簡單、易實現(xiàn)等特點,但精度無法滿足工業(yè)測量的需要。大量研究人員對線結構光光條中心提取算法進行了改進,LI等人[11]結合極值法和灰度重心法,實現(xiàn)了復雜背景下條紋中心提取,提高了條紋中心提取的準確性和快速性,但其方法抗噪聲能力一般?;贖essian矩陣的Steger法[12-13]雖然精度較高,但需要進行大量卷積運算,導致計算復雜度提高,難以滿足測量系統(tǒng)實時性的要求。LI等人[14]對Steger算法做出改進,提出了一種基于多尺度分析的激光條紋中心提取方法,但在條紋中心提取時,中心點和邊緣點之間的距離問題使運算效率降低。
針對在工業(yè)環(huán)境下采集的結構光圖像較難提取條紋中心的問題,作者提出了一種自適應結構光條紋中心提取方法。該方法在條紋灰度特征的基礎上,通過自適應卷積模板有效減弱環(huán)境噪聲影響,得到條紋圖像的感興趣區(qū)域,提高了算法的計算效率,再根據(jù)條紋的線寬采用加權灰度重心法提取條紋中心的初始點位置,對初始點進行區(qū)域生長運算并構造協(xié)方差矩陣,利用主成分分析對其進行特征分解,得到結構光條紋中心的亞像素坐標,并比較分析了不同條紋中心提取方法的精度與運行時間。
激光產(chǎn)生的基本原理是大量粒子的受激輻射的現(xiàn)象[15]。線激光器通過將柱面鏡和球面鏡組合產(chǎn)生一種單色線激光。理想情況下,激光能量在光條截面上呈現(xiàn)對稱高斯分布,激光條紋圖像灰度值最大點就是條紋中心點。
由于被測物體材質以及噪聲等因素的影響,如材料的表面粗糙度、透明度、均勻性等,使得被測物體表面對光的反射率并不均勻。這種偏差導致激光條紋截面的光強分布發(fā)生改變,從而使條紋圖像截面的灰度值呈不對稱的近似高斯分布。
圖1為實際采集的線結構光條紋圖像及其分析過程。圖1a結構光條紋原始圖像中含有噪聲等因素造成的干擾;圖1b為條紋圖像截面對應的灰度值分布,伴有較為明顯的干擾;圖1c為閾值分割后的條紋圖像,圖像中除了干擾以外,條紋本身出現(xiàn)斷續(xù)狀況;圖1d為原始條紋圖像x軸中心線方向對應的紅綠藍(red,green,blue,RGB)灰度值變化情況。可知,由于像素灰度值的不連續(xù),導致了光條圖像分割后出現(xiàn)斷續(xù)現(xiàn)象。因此,需要利用數(shù)字圖像處理技術對采集的原始激光條紋圖像進行區(qū)域限定及干擾消除等操作。
Fig.1 Linear structured light stripe image and grayscale distribution
采用5×5模板的中值濾波用于抑制條紋圖像中的噪聲,對濾波后的圖像使用最大類間方差法來得到圖像分割的最佳閾值,并根據(jù)此閾值對條紋圖像進行全局二值化操作,可以表示為:
(1)
式中,t表示為最佳分割閾值,g(x,y)為條紋圖像像素點灰度值,I(x,y)為二值化后的像素點灰度值。將二值化后的圖像作為掩模,并與條紋灰度圖像進行乘法運算,得到條紋圖像初始感興趣區(qū)域,其公式為:
G(x,y)=I(x,y)×g(x,y)
(2)
式中,G(x,y)表示條紋圖像初始感興趣區(qū)域。使用掩模操作可以很大程度消除條紋圖像中的干擾,在保留條紋圖像灰度特征的基礎上,同時也能達到獲取感興趣區(qū)域的目的。圖像掩模操作如圖2所示。
Fig.2 Mask operation of laser stripe imagea—laser stripe image b—region of interest
Steger法將圖像視為2維函數(shù),利用Hessian矩陣計算特征值和特征向量,得到條紋中心坐標的法線方向,并在法線方向上將條紋灰度分布根據(jù)泰勒多項式展開,獲取對應法線上的極值點,即在條紋截面灰度分布曲線上1階導數(shù)為0,2階導數(shù)為負數(shù)的極小值點,為所求取得條紋截面中心亞像素點。通過求取線結構光條紋圖像像素點Hessian 矩陣的特征值及其對應的特征向量來得到光條中心點法線方向[10]。Hessian矩陣表示為:
(3)
式中,S(x,y)為2維高斯函數(shù);rxx,rxy,ryy分別為高斯函數(shù)的2階導數(shù)和2階偏導數(shù)與圖像的卷積。以(x0,y0)為中心點,其對應法線方向上的單位向量為n=(nx,ny),對線結構光條紋截面灰度分布函數(shù)沿單位向量方向進行2階泰勒展開,則條紋截面中心點(x0+tnx,y0+tny)的像素值可表示為:
G(x0+tnx,y0+tny)=G(x0,y0)+
(4)
式中,rx與ry分別為對應微分形式的高斯函數(shù)與G(x,y)卷積得到,表示為:
(5)
(6)
式中,條紋中心點亞像素坐標為(x0+tnx,y0+tny)。
由于Hessian矩陣運算量大,其中每個像素點都要進行5次(rx,ry,rxy,rxx,ryy)2維高斯卷積運算,導致Steger算法計算效率低,造成系統(tǒng)實時性下降。
本文中在保證線結構光條紋中心提取精度的基礎上,基于Steger算法,利用主成分分析法[16]對協(xié)方差矩陣進行特征分解,求得特征值與特征向量,從而達到減小Steger算法的計算量、提高計算效率的目的。
線結構光條紋中心亞像素提取的主要流程如圖3所示。
Fig.3 Flow chart of stripe center extraction
(1)通過最大類間方差法與圖像掩模操作得到條紋圖像感興趣區(qū)域,保留了條紋圖像灰度特征;(2)利用自適應卷積模板對感興趣區(qū)域進行去噪處理,并求得條紋中心坐標的像素集合;(3)根據(jù)中心坐標的像素集合,應用二次加權灰度重心法提取條紋中心的初始點;(4)根據(jù)條紋中心坐標初始點,利用區(qū)域增長法得到條紋中心坐標的小范圍區(qū)域,使用主成分分析代替多次求解高斯卷積過程求得條紋中心亞像素坐標。
在線結構光條紋圖像采集過程中,由于環(huán)境因素以及相機性能的影響,對條紋圖像進行中值濾波和掩模操作往往不能有效消除噪聲干擾。因此,要對條紋圖像進行進一步去噪處理,最小化噪聲對提取結果準確性的影響。為便于觀察,將掩模后的條紋灰度圖像進行二值化操作,如圖4所示。噪聲尚未被完全消除,其結果將會導致條紋中心提取精度下降。
Fig.4 The noise of laser stripe image
本文中結合傳統(tǒng)激光條紋中心提取方法對噪聲敏感的特點,基于激光條紋的幾何特征及其相關性[17],采用自適應卷積模板來解決此問題。首先計算自適應卷積模板的大小,自適應模板的大小和參量值取決于激光條紋的幾何信息和相關性,其獲取流程如圖5所示,通過圖像與模板進行卷積操作達到去除噪聲的目的。
Fig.5 The flow chart of adaptive convolution template algorithm
圖5中,模板行數(shù)為R,模板列數(shù)為C,模板中心行元素設置為k,模板其余元素設置為λk,λ為系數(shù)。對掩模后的灰度圖像逐列搜索灰度值大于零的像素點,可獲得條紋感興趣區(qū)域截面上下邊界的像素點坐標值,并根據(jù)其坐標求出每列的寬度Di,得到最大的截面寬度wm,統(tǒng)計條紋截面非零列的數(shù)量,可得出條紋的長度L,條紋寬度均值wp=∑Di/L,條紋截面寬度周圍噪聲區(qū)域可表示為(wm-wp),λ的取值小于1,用于減弱噪聲區(qū)域,令矩陣元素的總和為1,可得到參量k值。
條紋感興趣區(qū)域經(jīng)過自適應卷積模板處理后,如圖6所示??梢园l(fā)現(xiàn),噪聲得到明顯減弱,條紋輪廓得到了較好保留。通過掩模操作,獲得感興趣條紋區(qū)域,并利用自適應卷積模板,有效地消除了噪聲對條紋中心提取的干擾,能夠提高光條提取精度,滿足測量系統(tǒng)的準確性要求。
Fig.6 Image processed by adaptive convolution
由于被測物體材質影響,導致線結構光光強分布不均,條紋截面寬度并不一致,通過檢測條紋的上下邊界,即每列中的最上和最下的非零灰度值對應點的坐標值,并將其記為(xi,yi,u)和(xi,yi,d),可以得到條紋截面每列中心坐標所在的像素集合,采用二次加權灰度重心法提取條紋中心的初始位置,可以表示為:
(7)
式中,g(xi,y)為圖像中的第xi行第y列坐標點的灰度值,條紋每列截面寬度Di=yi,d-yi,u,yi,u與yi,d分別為條紋截面上下邊界的像素坐標。
線結構光條紋在其法線方向上梯度最大,而在其條紋方向上梯度最小,條紋區(qū)域中像素點法向量的方向變化較小,如圖7所示。在一個較小的條紋區(qū)域內,像素點法向量方向變化較小,因此可利用此區(qū)域的平均梯度值來求條紋的法線方向。
Fig.7 Stripe region gradient
首先將加權灰度重心法提取條紋中心坐標初始值作為區(qū)域生長的種子點,將灰度閾值設為生長準則,以種子點為中心遍歷周圍八鄰域像素值,確定下一種子點。沿條紋方向生長點周圍八鄰域定義為生長連通域,通過判斷像素點灰度差值,將小于灰度閾值的點歸為一個連通域,可以有效防止過度生長。
最后,使用泰勒2階展開求得條紋中心點亞像素坐標位置,有效避免了使用Hessian矩陣多次求解高斯卷積的過程。由于線結構光條紋圖像在法線方向上呈不對稱的近似高斯分布,高斯核參量σ的選取直接影響條紋中心的提取效果,結合Steger算法,本文中的高斯核參量σ大小設為:
(8)
不同方法提取的條紋中心線如圖8所示。圖8a~圖8d分別為原始條紋的灰度圖像、灰度重心法提取結果、Steger法提取結果、本文中的方法提取結果。為便于觀察條紋中心提取效果,圖8e~圖8h依次為其局部放大圖像。由圖8可知,灰度重心法提取的條紋中心波動較為明顯,Steger法提取的條紋中心存在大量光條外點,需要后期通過曲線擬合方法進行消除,增大了計算量,但相比灰度重心法,Steger法提取到的條紋中心較為平整,但這兩種方法與理想的條紋中心均存在著一定偏離。本文中方法提取結果波動性最小,且不存在光條外點,更加接近于理想的條紋中心。
Fig.8 Center line of laser stripe image by different method
為進一步驗證所提算法的有效性,分別對存在條紋分叉以及散斑噪聲干擾的圖像提取中心坐標。圖9為條紋分叉情況下提取的條紋中心。灰度重心法提取結果波動明顯,Steger法提取結果存在較大的誤差,而所提方法提取結果較為平滑。圖10是存在散斑噪聲干擾情況下提取的條紋中心。由于圖像灰度分布不均,灰度重心法提取結果上下波動最為劇烈,Steger法提取結果則存在大量的光條外點,而所提方法由于去除了噪聲干擾,提取結果較為平滑。
Fig.9 Center line of laser stripe crossing image
由圖1b可知,噪聲干擾嚴重影響條紋圖像x軸的灰度值分布,降低條紋中心坐標的提取精度。存在條紋分叉的圖像在交叉處也會降低提取中心坐標的準確性。
(9)
Table 1 The standard error of extraction methods of light strip center line
從表1可知,對比其它兩種方法,本文中所提方法由于去除了條紋圖像中大量噪聲,將條紋中心的初始點進行區(qū)域生長運算,提高了條紋中心坐標的提取精度,標準誤差最小,準確度相對較高。
線結構光條紋中心坐標提取作為實現(xiàn)3-D視覺檢測系統(tǒng)的關鍵技術之一,需要滿足工業(yè)環(huán)境下實時性要求,因此,條紋中心提取算法的運行時間是檢測算法實用性的一項重要指標。采用5張線結構光條紋圖像分別使用上述提取方法,每張圖片運行10次,3種方法提取條紋圖像中心坐標的平均運行時間如表2所示。
從表2可知,本文中的方法平均運行時間較快,與灰度重心法相差不大,但優(yōu)于Steger法運行時間。本文中使用主成分分析求解協(xié)方差矩陣代替Hessian矩陣的求解過程,無需進行大量高斯卷積運算,在保證提取精度的條件下,計算復雜度相對較小。
Table 2 Average running time of extraction methods of light strip center line
在線結構光條紋法線方向灰度分布的基礎上,結合激光條紋幾何特征及其相關性,提出一種新的條紋中心坐標提取方法,實現(xiàn)了條紋中心線快速精確提取。所提方法首先利用掩模操作對圖像進行預處理,使用自適應卷積模板有效地降低了噪聲對圖像的干擾,同時得到條紋區(qū)域截面中心坐標的像素集合,以及條紋寬度的平均值,使用二次加權灰度重心法提取條紋中心初始坐標點,利用區(qū)域生長與主成分分析得到條紋中心的亞像素坐標點。本文中的方法相比Steger法,無需進行大量卷積運算,計算復雜度低且精度可達到亞像素級,提取速度提高約4倍,可以滿足工業(yè)測量系統(tǒng)的實時性要求,相比灰度重心法,該方法穩(wěn)健性強且精度較高。后期將對圖像背景過亮、線結構光條紋不均勻等情況,展開深入研究。