梁宇龍,段發(fā)階
(天津大學精密測試技術及儀器國家重點實驗室,天津300072)
光學測量技術與計算機技術的發(fā)展,使得非接觸3維測量技術得到廣泛應用,這對測量精度和實時性提出了新的挑戰(zhàn)[1-2]。基于線結構光的單目3維測量在大多數測量環(huán)境中經過適當調整均可達到較高精度,系統(tǒng)制造費用低,且可以滿足在線測量的需求,因此被廣泛用于各種工業(yè)測量場景[3]。其中,物體表面激光中心線的提取對測量精度產生了至關重要的影響。
在各種中心線提取算法中,閾值法[4]、極值法[5]等受圖像噪聲影響大,曲線擬合法[6]受影響較小,但時間復雜度偏高。基于Hessian矩陣的Steger方法[7]進一步提高了對噪聲的魯棒性,但由于需要對圖像中各像素點進行多次卷積操作,算法復雜度高,加之需要良好的圖像預處理手段,因而不能滿足實時性的需要。灰度重心法[8]是一種常用的激光中心線提取方法,該方法利用光條灰度值呈高斯分布的特點對中心進行計算,并結合閾值選取過程對低亮度圖像噪聲進行剔除,算法使用線性計算,因而時間復雜度低,但該法僅適用于光條灰度滿足高斯分布、寬度一致性高、分布較為集中的場景[9]。
在實際工業(yè)測量中,受激光發(fā)生器的制造誤差以及物體表面形貌影響,激光光條不能滿足理想高斯分布,另外,受圖像采集設備缺陷、環(huán)境光照射不均、被測物體表面復雜且反射率不同等因素影響,采集到的原始圖像同時含有激光光條和噪聲光斑,光斑具有隨機分布、亮度不均、面積較大等特點,難以對其具體分布直接建模。傳統(tǒng)灰度重心法提取光條中心線精度高、時間復雜度低,但受噪聲光斑影響大,因而不能較好地處理上述問題。
針對實際工業(yè)場景中的上述問題,目前已研究的解決方法主要是對測量系統(tǒng)[10-12]、圖像預處理方法[9,13-14]和重心計算方法[15-18]的改進,有學者對金屬被測物表面反射光的偏振性質進行了研究[10-12],分別對傳統(tǒng)多目、雙目立體測量系統(tǒng)進行了改進,并在入射光路和接收光路中分別加入偏振片并使得兩偏振片方向垂直,以消除測量時鏡面反射光的影響,這類系統(tǒng)復雜、成本較高,且僅適用于激光入射角小于30°的情況。在圖像預處理階段引入新的處理方法,以盡可能剔除圖像中的噪聲光斑,這類方法不考慮環(huán)境光帶來的誤差、適用范圍小,且不能完全去除光斑的影響[9,13-14]。有學者根據光條灰度分布特點引入權值,對傳統(tǒng)重心計算公式進行改進,這類方法并未對噪聲光斑進行處理,因此在含有光斑噪聲、預處理效果較差的圖像上提取精度低[15-18]。
本文中提出一種新的中心線提取方法,該方法首先通過均值濾波、伽馬校正和大津法進行圖像預處理,得到分割后的圖像,隨即根據各像素點的灰度增量將光條橫截線劃分為多個不同的像素點子集,在不經閾值選取的情況下,同時對各子集分別提取灰度重心,即得到中心線預提取圖像,在該圖像中,激光與光斑兩者的中心線同時存在,但激光中心線具有高連通性、大規(guī)模點集等特點,在中心線最終提取階段,使用基于連通性的密度聚類算法對中心線預提取圖像中各像素點進行聚類分析,最后激光中心線被準確提取,而光斑中心線被作為異常點進行剔除,該方法在剔除光斑的同時保持了圖像細節(jié),因此具有更高的提取精度。
灰度重心法[9]根據激光光條橫截線上各點的灰度值與位置信息來確定中心線的位置,具體來說,該方法根據預先選定的灰度閾值gth對光條橫截線上各點的灰度值g進行閾值選取:

式中,g′表示經閾值選取得到的灰度值,灰度重心的計算方法可以表示為:

式中,gl,gu表示經剪切后的光條橫截線上的灰度范圍,xl,xu分別表示 gl,gu所對應的圖像橫坐標,作為一種亞像素精度提取方法,該方法計算簡單、提取精度較高,且充分考慮到圖像的灰度信息,即使光條灰度分布不均勻也能夠達到較高的提取精度,但當閾值gth選取不當且圖像噪聲較大時,灰度重心的計算會引入噪聲誤差,導致最終提取到的光條中心線與實際值具有較大偏差,其次在處理具有復雜形狀光條的區(qū)域時,該法極易產生偏差,需要借助特定的圖像預處理技術。
密度聚類屬于非監(jiān)督式機器學習算法,該法假設樣本點分布的緊密程度決定聚類結構,從樣本密度的角度考察樣本點之間的連通性,并基于可連樣本擴展聚類簇以獲得最終聚類結果。具有噪聲的基于密度的聚類方法(density-based spatial clustering of applications with noise,DBSCAN)[19]作為密度聚類中的代表性算法,該算法對數據集中某樣本點x的ε領域進行定義,其中,ε領域被定義為以x為中心、ε為半徑的(超)球形區(qū)域,鄰域中所含樣本點數量決定x是否為核心對象,并根據樣本點與核心對象之間的關系定義密度直達、密度可達和密度相連,數據集中所有樣本點被劃分為3類:(1)核心點:核心點即核心對象;(2)邊界點:位于核心對象的ε領域上和領域中的樣本點;(3)噪聲點:非核心點、非邊界點的樣本點。簇的定義為:數據集中由密度可達關系導出的密度相連樣本的最廣泛集合,并滿足以下兩條屬性:(1)連接性:簇中任意兩點均密度可達;(2)最大性:所有密度可達的點必定位于同一個簇中。
DBSCAN具有O(m2)的時間復雜度,其中m是數據集的樣本點數,使用類似k-D樹的處理方式,其時間復雜度可以降至O(m×log2m),DBSCAN僅需存儲數據集中各樣本點的類型(核心點、邊界點或噪聲點),因此具有O(m)的空間復雜度。
分別在帶噪聲的圓形數據、帶噪聲的月牙形數據、各向異性分布數據、不同方差的氣泡形數據、相同方差的氣泡形數據上執(zhí)行上述各種聚類算法,并使用“調整后德蘭系數”(adjusted Rand index,ARI)作為性能度量標準,樣本點數m=1500時,DBSCAN與k均值聚類(k-means)、凝聚層次聚類 (aggregation level clustering)、譜聚類(spectral clustering)的 ARI和運行時間如表1所示。可以明顯看出,除某些特定分布的數據集以外,DBSCAN聚類算法的聚類性能和時間復雜度,都遠遠優(yōu)于其它算法。

Table 1 Clustering results on different test data

Fig.1 The overall processing process of the algorithm
傳統(tǒng)灰度重心法根據預先設定好的灰度閾值,對激光光條橫截線上各像素點進行“清洗”,即在計算灰度重心時,僅考慮灰度值高于閾值的像素點,該法存在如下弊端:(1)受物體表面反射率和環(huán)境光影響,激光光條橫截線上各像素點灰度不會呈現(xiàn)規(guī)則的高斯分布,因此,執(zhí)行閾值選取極易導致提取到的中心線存在偏差;(2)閾值選取不能消除高灰度值噪聲點的影響,因此在計算灰度重心時會帶入噪聲誤差,從而導致提取精度降低。針對傳統(tǒng)灰度重心法閾值選取的弊端,密度聚類重心法丟棄閾值選取過程,并根據光條橫截線的灰度分布,將光斑噪聲和目標光條的中心線同時從背景中分別提取,密度聚類重心法的中心線預提取整體處理流程如圖1所示。3.1.1 劃分光條橫截線像素點集 激光光條與噪聲光斑在原始圖像中近乎處于同一個水平范圍內,取該部分圖像的水平橫截線會發(fā)現(xiàn),橫截線上的灰度分布呈現(xiàn)出多個可以被劃分的像素點集,各點集均隸屬于目標光條或某個噪聲光斑,且各點集的灰度值由中心向兩邊逐漸降低。根據上述特點,中心線預提取的第一步即依據光條橫截線灰度分布圖中的“波峰”與“波谷”,將灰度值不為零的像素點集劃分為兩個或多個連通區(qū)域,這些區(qū)域分別隸屬于光斑噪聲和目標光條,圖像橫截線上各像素點灰度值分布如圖2所示。其中,縱坐標表示各像素點灰度值,灰度值范圍由0~255,兩波峰間存在明顯的波谷,因此橫截線上的像素點集被劃分為兩個連通區(qū)域。在上述點集劃分過程中,“波峰”和“波谷”的確定至關重要,一般來說,歐氏空間中2維連續(xù)函數的波峰和波谷即為函數極值點,在圖像處理中,假設橫截線上像素點灰度分布符合x軸上的連續(xù)分布G(x),那么在2階導數存在時可以通過下述條件判斷波峰與波谷:

Fig.2 Gray distribution of light bar cross-section

式中,xi表示橫截線上第i個像素點的圖像橫坐標,G(xi)表示第 i個像素點的灰度值,G′(xi)表示第 i個像素點在圖像橫軸上的1階導數,G″(xi)表示第i個像素點在圖像橫軸上的2階導數。在光條橫截線上各像素點灰度滿足離散分布、均不可導,且呈梯形分布時,單個波峰可能含有多個像素點,因而不能僅依據極值點定義考察某點與近鄰點間的關系對波峰、波谷進行判斷,上述方法在處理這類問題時不具可行性。
為解決上述問題,密度聚類重心法從灰度值增量的角度出發(fā),對各像素點灰度增量給出如下數學定義:

式中,ΔG(xi)表示橫截線上第i個像素點的灰度增量。由灰度增量可知,波峰上必存在一點,使得該點左近鄰點的增量不小于零且右近鄰點的增量小于零,而波谷上必定存在一點,使得該點右近鄰點的增量大于零且左近鄰點的增量不大于零,數學形式定義為:

以圖3所示2維階梯型離散分布為例,使用G(x)表征縱坐標y,得到ΔG(3)=1,ΔG(5)=-1,ΔG(10)=0,ΔG(12)=-1,ΔG(7)=-1,ΔG(9)=1,可以判定(4,G(4)),(11,G(11))為波峰,而(8,G(8))為波谷。在得到上述波峰、波谷后,即可對部分鄰接的目標光條區(qū)域與噪聲光斑區(qū)域進行邊界劃分,從而保證噪聲光斑的高亮度像素點不會對目標光條產生影響,以便光條中心線預提取過程的進一步處理。

Fig.3 Discrete functions
3.1.2 提取中心 獲取到每根光條橫截線的劃分邊界點后,橫截線上的整個像素點集被劃分多個子集,各子集都分別隸屬于目標光條或噪聲光斑,考慮到傳統(tǒng)灰度重心法使用閾值選取的弊端,在提取中心時忽略閾值選取過程,對各個子集直接計算灰度重心,從而保證目標光條的低亮度邊緣不會由于閾值選取而丟失。中心線預提取階段最終得到的圖像中,目標光條和噪聲光斑中心線均被完整保存,且目標光條不受噪聲光斑影響。
經中心線預提取階段得到的圖像中雖然存在一部分光斑中心線,但原始光斑區(qū)域得以大大縮減,光斑像素點數量與激光光條像素點數量間的比例下降,且激光中心線的細節(jié)得到了完整保持,至此光斑剔除問題轉化為中心線選取問題。DBSCAN算法具有良好的時間復雜度和聚類精度,且算法本身不受簇形狀影響,在激光中心線的最終提取階段,將預提取得到的圖像中各像素點的圖像坐標作為聚類特征,并使用歐氏距離進行可連性分析,激光中心線具有更高的可連性,而噪聲光斑中心線可連性低、像素點少,因而DBSCAN將激光中心線上各點聚類為一個簇,而噪聲光斑中心線上各點被作為異常點剔除。通過密度聚重心法最終提取得到的圖像中,噪聲光斑中心線被完整剔除,且激光中心線的細節(jié)得到較好保持,密度聚類重心法的激光中心線最終提取流程如圖4所示。

Fig.4 Final center line extraction process

Fig.5 Median filtering and gamma corrected imagea—median filterin—gamma correction
4.1.1 圖像預處理 在圖像預處理階段,采用中值濾波對圖像進行處理,為滿足實時性的需要,且不丟失圖像細節(jié),采用小窗口(3×3)進行濾波處理,如圖5a所示。受環(huán)境光以及物體表面反射率影響,濾波后的圖像仍存在對比度低、整體亮度高等問題,伽馬校正在提高高亮度區(qū)域對比度的同時,可有效降低圖像整體亮度,從而解決上述問題,采用該方法對圖像進行增強處理,其中伽馬系數置為γ=3,處理結果如圖5b所示。經伽馬校正后的圖像可明顯區(qū)分目標與背景,但背景中仍存在灰度值較高的像素點,需要對圖像進行閾值分割,考慮到各種分割算法的特點,分別采用迭代法、最大熵法[20]和大津法[21]對圖像進行對比處理,處理結果如圖6所示。迭代法和大津法的分割精度較高,而最大熵法將一部分灰度值較高的背景區(qū)域誤劃分為目標,另外,迭代法需要手動設置閾值、時間復雜度高,因而最終采用大津法進行閾值分割處理。經大津法分割后的圖像存在大量高亮度噪聲,為方便后續(xù)提取中心線,需要采用小窗口(3×3)對圖像進行閉運算形態(tài)學處理,圖像預處理最終結果如圖7所示。

Fig.6 Image after threshold segmentationa—maxentrop—iterration(0.014s) c—Otsu(0.001s)

Fig.7 Image preprocessing resultsa—preprocessing resul—periheral contour

Fig.8 Gray-scale distribution of speckle noise in preprocessed image

Fig.9 The results obtained by central line withholding
4.1.2 光條中心線提取 經預處理后的圖像,圖像細節(jié)和處理過程的實時性均得到保證,但受被測物表面反射率的影響而產生的大面積高亮度光斑噪聲仍然存在,部分光斑噪聲及其近鄰像素點灰度分布如圖8所示。采用密度聚類重心法中的預提取過程對中心線進行提取,預提取圖像如圖9所示。其中光條中心線并未受光斑噪聲影響而出現(xiàn)部分缺失,但圖中仍存在光斑噪聲中心線,需要進一步提取,在密度聚類重心法的最終提取過程中,通過對預提取圖像上各像素點的位置特征進行密度聚類,距光條中心線較遠且包含像素點稀少的光斑噪聲中心線被完整剔除,通過密度聚類重心法和傳統(tǒng)灰度重心法分別提取到的光條中心線如圖10所示。可以明顯看出,傳統(tǒng)灰度重心法受光斑噪聲影響,提取到的光條中心線嚴重偏離實際位置,而密度聚類重心法具有更高的提取精度。

Fig.10 Comparison of experimental resultsa—preprocessed imag—traditional gray center of gravity metho—density clustering gravity method
向大小為600pixel×600pixel的圖像中加入光條得到原始光條圖像,圖像中光條呈現(xiàn)左右不對稱的高斯分布,光條及其真實中心線如圖11所示。分別向上述圖像加入低亮度光斑、高亮度點噪聲、高亮度小面積光斑、高亮度各向異性光斑進行仿真實驗,觀察實驗結果如圖12~圖16所示。將提取精度定義為提取到的中心線與真實中心線之間各點的均方根誤差(root mean square error,RMSE)eRMSE,數學形式表示為:

Fig.11 Original light bar image and real center linea—original imag—real center line

式中,xi,yi表示真實中心線上像素點的圖像橫、縱坐標,xi,yi表示提取到的中心線上像素點的圖像橫、縱坐標,Ω表示中心線上各像素點的圖像橫坐標集合,n表示中心線上像素點的數量,并對比運行時間,根據表2可知,與傳統(tǒng)灰度重心法相比,密度聚類重心法在高亮度各向異性光斑、高亮度小面積光斑、高亮度點噪聲圖像的均方根誤差分別降低了12.59pixel,15.12pixel和83.36pixel,時間復雜度分別提高了0.383s,0.412s和0.416s,該方法提取精度較高,對高亮度點噪聲、高亮度小面積光斑以及高亮度各向異性光斑均具有良好魯棒性,且兩者時間復雜度近似。

Fig.12 Centerline extraction without spot imagea—preprocessed imag—traditional gray center of gravity metho—density clustering gravity method

Fig.13 Center line extraction of low-brightness isotropic spot imagea—preprocessed imag—traditional gray center of gravity metho—density clustering gravity method

Fig.14 Centerline extraction of high-brightness point noise imagea—preprocessed imag—traditional gray center of gravity metho—density clustering gravity method

Fig.15 Centerline extraction of high-brightness small-area spot imagea—preprocessed imag—traditional gray center of gravity metho—density clustering gravity method

Fig.16 Centerline extraction of high-intensity anisotropic spot imagea—preprocessed imag—traditional gray center of gravity metho—density clustering gravity method

Table 2 Comparison of experimental results
預處理階段使用小卷積核進行中值濾波,圖像細節(jié)得到保持,采用伽馬校正進行圖像增強的方法在提高對比度的同時,降低圖像整體亮度,縮小圖像中高亮度光斑的區(qū)域,大津法進行自適應二值化不僅滿足實時性的需求,還可以配合小卷積核閉運算處理,進一步縮小高亮度光斑。圖12~圖16中,傳統(tǒng)灰度重心法受光斑噪聲影響,噪聲點附近的中心線出現(xiàn)明顯缺失,而密度聚類重心法在同樣的情況下仍然擁有較高的提取精度,由表2中的實驗數據可知,密度聚類重心法在應對高亮度點噪聲、高亮度小面積光斑以及高亮度各向異性光斑等情況時具有明顯優(yōu)勢,因此,在中心線提取階段使用密度聚類重心法對含有高亮光斑的光條進行中心線提取時,可以提高提取精度。密度聚類重心法沒有經過閾值選取過程,因此預提取階段得到的圖像中像素點較多,大多數聚類算法的時間復雜度隨像素點數增多呈指數增加,但密度聚類重心法采用的DBSCAN聚類算法具有較低的時間復雜度,因此可以達到與傳統(tǒng)方法近似的處理時間。
綜上所述,這種密度聚類重心法可以在不改變光學測量系統(tǒng)的同時,較好地解決高反射率待測物的高光問題,相較于傳統(tǒng)灰度重心法有較大提升,且時間復雜度近似。