?

復雜背景下基于多閾值的光滑工件表面瑕疵檢測

2020-09-09 03:09黃亞平宋元濤
計算機應用與軟件 2020年9期
關鍵詞:光暈瑕疵灰度

郝 麗 楊 旭 王 崢 黃亞平 宋元濤*

1(中國科學院大學工程科學學院 北京 100049)2(交通運輸部水運科學研究院 北京 100088)3(南京明輝建設集團 江蘇 南京 211210)

0 引 言

工件產品的瑕疵檢測在產品質量檢驗中至關重要。光滑產品表面的瑕疵檢測一直是工件檢測的熱門問題,但是產品表面的強反射噪聲一直是該問題的主要難點。光滑物體表面的強烈反光現象會使物體表面光照分布不均,很難通過簡單的圖像處理步驟將反光區域與瑕疵區域分開。

目前針對反光金屬表面圖像分割問題有諸多研究。在改進圖像提取的光照背景以減少反光影響的方面,Do等[1]在對金屬球表面瑕疵檢測時,用兩臺漸進式CCD攝像機捕捉金屬球表面的多個灰度圖像,同時通過在球周圍安裝遮光罩來降低金屬表面的鏡面反射。蘇俊宏等[2]將光源與機械旋轉平臺相結合,從而采集到沒有反光的完整的圓柱面的圖像。Rosati等[3]將光線通過合適的曲面鏡傳輸到金屬表面上,使其中的涂層瑕疵可以以各種形狀和尺寸的陰影形式出現。在改進圖像分割算法方面,馬云鵬等[4]根據灰度波動來自適應地得到不同的閾值與步長,使用主成分分析法將得到的一系列差分圖像壓縮至單幅圖像,得到瑕疵分割圖。郭皓然[5]在均勻光照下獲得工件圖片,將Canny算子、全局閾值分割方法結合起來,從而實現對瑕疵目標的識別。Peng等[6]在檢測玻璃表面瑕疵區域時,基于自適應的向下閾值法去除背景來增強瑕疵,最后通過固定閾值和有限灰度范圍的OTSU算法,得到瑕疵區域。Wang等[7]則采用了基于圖像增強和中值濾波的OTSU分割算法,最后利用面積特征參數對鋼球的瑕疵來進行檢測。

為了消除鏡面反射,付慧等[8]提出將Retinex算法和高斯混合模型(GMM)相結合,用于定位和消除彩色樹葉圖像中的鏡面反射區。

這些算法在光滑物體表面的瑕疵檢測上取得了一定的效果,但現有方法中,一是光滑工件的瑕疵檢測對光照條件的要求比較強;二是算法復雜,因為圖像背景的復雜性,多采用復雜的算法對圖像去噪、分割。本文提出了較為簡單的融合光暈的多閾值分割算法,可對復雜背景下光滑工件表面進行瑕疵識別。本文算法的優勢在于對光照沒有嚴苛的要求,可根據工件材質的特點融合光暈完善背景,整個算法可以有效識別瑕疵部位,且整體框架簡潔,計算量小、效率高。

1 算法設計

1.1 算法流程

圖1所示為復雜環境下獲得的工件圖,矩形框內是瑕疵區域,可以看出對于該反光工件進行瑕疵檢測會存在以下難點:(1) 工件的反光區域亮度高,整個工件表面亮度分布不均;(2) 瑕疵區域的灰度值位于背景區域與反光區域之間,單一閾值無法解決問題;(3) 存在和瑕疵區域灰度值相近的噪聲區域。

為了減少圖像反光的影響,對獲得的圖像進行去霧增強處理。因為瑕疵的灰度值處在背景和反光區域之間,所以本文采用多閾值處理分割方法得到前景與反光噪聲圖。對于反光噪聲部分,本文基于合金反射光的原理獲得光暈部分。并將光暈部分與反光噪聲背景圖相融合以獲得較前景區更為完整的反光噪聲區域,二者相減以得到瑕疵區域。

本文算法整體流程如圖2所示。

圖2 本文的算法流程

1.2 去 霧

在計算機視覺和計算圖形中,用下式來描述霧圖模型:

I(x)=J(x)t(x)+A[1-t(x)]

(1)

式中:I(x)為有霧的圖像,J(x)為要得到的無霧的圖像,A是用來描述大氣光成分的參數,t(x)為空氣的投射率,故圖像去霧的任務就是已知I(x)來求J(x)。

對式(1)變形得到下式:

(2)

式中:c代表的是RGB三個通道。

(3)

(4)

當投射圖t值偏小時,會導致J(x)的值偏大,從而使得圖像整體偏白。因此設置閾值t0,當t值小于t0時,令t=t0,本文以t0=0.1為標準進行計算。

由于光在工件表面發生強光反射,照片發生了不同程度的曝光,導致工件表面光照分布不均。這是反光工件表面瑕疵檢驗面臨的主要問題。為了緩解該問題,本文使用基于暗通道的去霧方法來對圖片進行圖像增強處理[10]。

信息熵是衡量圖像信息量的指標之一,其越大,則表示圖像的信息量越多、圖像的信息越豐富[10]。信息熵計算公式如下:

H(x)=E[I(xi)]=E[log2(1/p(xi))]=

(5)

式中:p(xi)表示像素值xi占圖像整體像素的概率,表1所示為使用式(5)計算的去霧前后圖像的信息熵。

表1 去霧前后的信息熵

去霧后圖像在減少曝光影響的同時,圖像的信息不能丟失太多,所以用信息熵來衡量圖像的信息量??梢钥闯?,去霧前后的信息熵變化滿足預期,同時也在一定程度上增強了圖像。

1.3 多閾值分割

由于工件表面存在反光,工件表面缺陷的灰度值高于背景區域,低于工件主要反光區域。根據該原理,使用低閾值來保留瑕疵區域和高亮區域,去除背景區域;使用高閾值來分割出反光高亮區域。兩種閾值分割后得到不同分割圖像,將二者相減即可達到去除背景和反光區域的目的。

1.3.1均值閾值化獲得前景

將圖像轉換成灰度圖像,降低特征提取的維度[12]。為了更好地確定圖像分割的閾值,對工件的灰度圖像進行分析,所獲得其灰度直方圖如圖3所示。

圖3 圖像去霧后的灰度直方圖

瑕疵區域的灰度值比反光區域小,比環境背景大,所以單一的閾值分割很難將瑕疵分割出來。由于單一閾值方法在保留瑕疵部分的同時也會保留反光區域的噪聲,且可以去除反光噪聲的閾值不能同時保留瑕疵部分,所以采用多閾值分割相減的方法。

首先確定閾值來保留瑕疵區域。本文將瑕疵區域稱為前景區域。在對前景部分進行分割時,如果閾值過小,會導致整個圖像的過分割,瑕疵識別更加困難。在對比了多種閾值效果后,使用均值T1(圖3中左邊虛線位置)作為閾值分割得到相關的前景圖。假設圖像大小為M×N,均值T1的計算公式如下:

(6)

式中:xi表示圖像的灰度值;I(xi)表示灰度值xi的頻數;I(xi)總和為圖像的像素總和。

1.3.2極小值閾值化獲得反光噪聲區域

均值閾值化并不能很好地去除反光噪聲,所以均值閾值化操作后會保留反光區域和瑕疵區域。下一步通過在大于均值灰度值的一定范圍內尋找極小值閾值,進一步獲得只分割出反光區域的閾值T2。

對于此步驟分割出的反光區域,一要盡可能與前景中的部分相符合;二要去除瑕疵部分。所以最佳閾值范圍在大于1.3.1中的均值閾值附近(圖3中兩條黑色虛線內部)。

為了得到滿足上述條件中的反光區域,將這個問題進一步看成在T1內的前景和背景分割,將瑕疵部分看成是背景部分,反光噪聲看成是前景部分。根據兩者的灰度值的差異,使用相應閾值范圍之間灰度值的極小值作為分割閾值T2。α表示均值閾值后搜索極小值的范圍,具體公式如下:

(7)

如上述1.3.1和1.3.2節,得到分割閾值T1和T2,分別得到瑕疵前景圖P1和反光噪聲圖P2。

1.4 融合光暈去除背景

上述得到的反光噪聲P2與前景P1直接相減,仍然留有很大的噪聲。主要原因是在計算P2時,極小值閾值化消除了部分反光區域。這些區域是反光區域中較暗的區域,本文稱之為光暈部分。兩步的反光區域邊界部分不能較好吻合,導致未能成功分割瑕疵。為了方便后續的圖像識別,采用融合光暈來完善背景。

首先研究光線在工件表面的反射現象。反射是當光線射到工件表面時,改變原本的傳播方向,直接返回到原來物質中。

光滑工件表面的亮度分布不均,主要是看反射光線是否正對取景位置,亮度較高的反射區域是這部分的反射光線正對取景角度,否則,則呈現較暗的反光區域。產生這二者的主要原因是工件表面并非絕對光滑,光線在物體表面會產生多個方向的反射光,如圖5所示。

圖5 光在工件表面的反射情況

根據上述分析,可以通過金屬反射光的顏色通道來提取沒有直接進入取景位置部分的反射光線。本文稱之為“光暈”部分。反射光的顏色主要由工件的金屬材質來決定。因為顏色和反射光波長相關,波長和原子的狀態是相關的,本文利用描述物體表面屬性的菲涅爾反射率F0來表示金屬表面的反射情況。相關金屬的F0反射光顏色通道值[11]如表2所示。本文中工件的材質是鋁合金,所以根據鋁元素的反射光顏色通道為中心±β范圍來獲得光暈部分。

表2 金屬的菲涅爾反射率F0反射光顏色通道值

(8)

則兩圖做差可得F′:

(9)

此時,得到的F′中有瑕疵區域以及部分做差殘留的小區域,最后去除面積小于γ的殘留區域得到最終的瑕疵區域F,其中f(γ)代表F′中面積小于γ的連通域:

F=F′-f(γ)

(10)

2 實驗結果及分析

2.1 實驗環境

測試本文算法實驗的平臺是Python 3,使用的計算機處理型號是Intel i7-7500U,雙核,主頻2.70 GHz。工件為工廠內的車門飾條工件。本文的圖像數據來自車間光照下的手機拍攝,圖像大小為740×264,分辨率為96 dpi。工件的主要缺陷是表面的劃痕、擦傷。擦傷的面積較大,對圖像形態學膨脹腐蝕次數和大小等實驗參數的敏感度較低;但是劃痕缺陷面積比較小,大小、輕重也不盡相同,形態學膨脹腐蝕次數和大小等實驗參數的敏感度比較高。由于本文運用了較多的圖像形態學處理,所以本文算法適合較大面積的缺陷,不適合小缺陷以及較淺劃痕的細致檢測。

2.2 算法參數確定

實驗要確定的參數有:(1) 確定極小值閾值的范圍α;(2) 獲得光暈的顏色通道范圍β;(3) 去除連通域面積的閾值γ。

2.2.1確定極小值閾值的范圍α

極小值閾值化主要目的是獲得反光噪聲。與前一步均值閾值化所得的反光噪聲區域相比,該反光噪聲區域的大小盡可能吻合。二者之間范圍不能過大,過大會將差距拉大,過小則會留有噪聲。本文α取50。

2.2.2獲得光暈的顏色通道范圍β

經過本文的實驗,反光顏色通道范圍可以有效提取光暈,彌補了2.2.1中閾值帶來的反光區域偏差。光暈范圍過小,則影響后續圖之間做差的效果;光暈范圍過大,則會引入新的噪聲。所以本文以三個通道的±β為范圍來獲取光暈部分。本文β取20。

2.2.3去除連通域面積的閾值γ

本文針對的是擦傷類缺陷,面積較大,所以去除連通域的面積有較大的魯棒性。本文γ取150。

2.3 實驗結果

圖6(a)是光滑工件的原圖,圖6(b)是經過去霧步驟后所得的圖像,將圖6(b)灰度化后均值閾值化后得圖6(c),將圖6(b)灰度化后極小閾值化后得圖6(d),圖6(e)是根據反射光獲得的光暈部分,將圖6(c)和圖6(e)融合后得到圖6(f),將圖6(d)和圖6(f)相減得到圖6(g),即為最終分割出的瑕疵部分。

圖6 本文算法下瑕疵檢測的具體過程

2.4 對比實驗

為了驗證每個步驟的必要性,我們在其余步驟相同的情況下,分別進行了三種不同條件的對比實驗:(1) 對比實驗1,取消步驟1去霧;(2) 對比實驗2,將步驟3選取后續范圍灰度的平均值作為閾值;(3) 對比實驗3,取消步驟4、步驟5提取融合光暈的過程。

三種對比結果如圖7所示,均不如原算法的效果好。對比實驗1如圖7(a)所示,表面的曝光的噪聲極大的影響了圖像分割。對比實驗2如圖7(b)所示,使用均值的背景分割沒有極小值閾值的效果好。對比實驗3如圖7(c)所示,沒有融合光暈反光部分有較大的差值。

圖7 檢驗各步驟對算法效果提升的影響

為了進一步驗證本文算法適用范圍,選取不同場景下的工件,如圖8(a)。使用本文算法對圖8(a)進行處理,得到最終的瑕疵圖8(b)??梢钥闯霰疚姆椒梢杂行ёR別復雜背景下的瑕疵。

圖8 本文算法效果圖

3 結 語

本文通過研究復雜背景下光滑工件表面的瑕疵情況,提出了多閾值的瑕疵檢測方法。首先使用去霧算法弱化曝光效果,再使用多閾值分割得到前景圖和反光噪聲圖,最后根據合金反射光原理融合光暈來完善背景。實驗證明,該算法可以有效檢測出反光工件上具有較大面積的擦傷類瑕疵區域,可作為檢測瑕疵工件的初步篩選工具,其算法思想也可擴展于同類型的反光去噪應用之中。將本文算法用于工廠車門飾條擦傷瑕疵檢測中,擁有擦傷工件100個,擦傷缺陷共118處,共檢測出缺陷106處。算法對于小面積缺陷的檢測效果并不理想,針對此問題,未來將進一步研究針對反光工件上細小缺陷瑕疵的分割檢測工作。

猜你喜歡
光暈瑕疵灰度
采用改進導重法的拓撲結構灰度單元過濾技術
天津港智慧工作平臺灰度發布系統和流程設計
登記行為瑕疵與善意取得排除的解釋論
Bp-MRI灰度直方圖在鑒別移行帶前列腺癌與良性前列腺增生中的應用價值
Arduino小車巡線程序的灰度閾值優化方案
哦,瑕疵
哦,瑕疵
圣誕節的燈光
毫無瑕疵的推理
凝固的光
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合