湯 勃,戴超凡,黃文豪
(1.武漢科技大學 冶金裝備及其控制教育部重點實驗室,武漢 430081;2.武漢科技大學 機械自動化學院,武漢 430081)
鋼鐵產(chǎn)業(yè)在我國經(jīng)濟發(fā)展中起著不可替代的作用,投入了大量的人力、物力資源。在國際上與其他鋼鐵企業(yè)競爭的過程中,鋼板表面缺陷檢測技術(shù)性仍然是一大瓶頸,傳統(tǒng)廠家缺陷檢測僅依靠人眼識別,局限性較大,隨著缺陷檢測技術(shù)的發(fā)展,催生了一系列的鋼板表面缺陷檢測方法。例如,AK Soni等[1]提出基于鎖相放大器的渦流檢測儀檢測鋼板表面缺陷,能夠快速有效檢測多類型缺陷,但比如色差、輕微刮痕卻不易檢查。JingzhongHou等[2]提出基于低秩多核支持向量機的帶鋼表面缺陷檢測,此類方法檢測準確率不高。Kaixiang Peng等[3]提出基于改進BP算法的鋼帶自動表面缺陷檢測分類技術(shù),涉及在標準BP算法的緩慢收斂中起重要作用的飽和區(qū)域,但BP神經(jīng)網(wǎng)絡(luò)收斂速度慢,不適用于小樣本快速的檢測。房敏等[4]提出PSO算法優(yōu)化BP網(wǎng)絡(luò)的鋼板表面檢測技術(shù),不容易陷入局部最優(yōu),更具有適用性,但準確率依然不高。以上研究的問題在于:識別精度不高,輕微缺陷無法檢測;準確率不高,導致分類錯誤;識別鋼板表面缺陷類型具有局限性。本文采用卷積神經(jīng)網(wǎng)絡(luò)原理實現(xiàn)鋼板表面缺陷的自動檢測,但經(jīng)典卷積神網(wǎng)絡(luò)檢測需要大量樣本,采樣十分困難。故先對采集的鋼板圖像進行預處理,邊緣檢測,再對其訓練。在使用小樣本的情況下,提升鋼板表面多類型缺陷檢測的準確性及精度。本文采流程依次為:圖像采集、圖像預處理、邊緣檢測、圖像標記、構(gòu)建卷神經(jīng)網(wǎng)絡(luò)、識別。
鋼板表面的缺陷主要分為色差、黑斑、壓印、磷化斑、翹皮、劃痕、針眼、孔洞等,而這些缺陷對光的反射卻不盡相同。其中色差、黑斑、磷化斑、翹皮等在光線的作用下表現(xiàn)為亮背景暗目標,稱為明域缺陷;壓痕、劃痕、孔洞、針眼等則為暗背景亮目標,稱為暗域缺陷。考慮到鋼板表面的光線的反射情況,更好的檢測出明域暗域鋼板缺陷,因此,本實驗光源系統(tǒng)選用亮度稍強,價格低廉的熒光燈,采用狹縫式結(jié)構(gòu);相機選用為TEDTECH公司型號TM-C1582U、分辨率768(H)×494(V) 。利用上述相機和光源拍攝帶有表面缺陷的鋼板,對圖像進行關(guān)鍵信息裁剪(768×240),縮小識別范圍,構(gòu)建圖像庫。本實驗將圖庫的相片分為訓練樣本集和測試樣本集,如表1所示。
表1 訓練樣本集和測試樣本集
1.2.1 雙邊濾波
雙邊濾波采用加權(quán)平均的方法,用周邊像素亮度值的加權(quán)平均代表某個像素的強度,所用的加權(quán)平均基于高斯分布。最重要的是,雙邊濾波的權(quán)重不僅考慮了像素的歐氏距離(如普通的高斯低通濾波,只考慮了位置對中心像素的影響),還考慮了像素范圍域中的輻射差異(例如卷積核中像素與中心像素之間相似程度、顏色強度,深度距離等),在計算中心像素的時候同時考慮這兩個權(quán)重。
其中:g(i,j)為雙邊濾波后圖像,f()為雙邊濾波前圖像,ω(i,j,k,l)為圖像f(i,j)與f(k,l)之間權(quán)重,(i,j),(k,l)分別指兩個像素點的坐標。
1.2.2 峰值信噪比
峰值信噪比是當前被應(yīng)用最為廣泛的量化評價圖像質(zhì)量的指標,且峰值信噪的值越大,圖像的質(zhì)量也就越高。
其中,MSE表示缺陷鋼板圖像濾波前后圖像的均方差,n是圖像中像素的比特數(shù)。
1.2.3 樣本濾波去噪
鋼板的惡劣生產(chǎn)環(huán)境、圖像的采集時光照不均以及圖像傳輸損失等一系列因素,都會使圖像產(chǎn)生噪音,嚴重影響鋼板表面缺陷圖像的質(zhì)量。因此在對圖像進行正式提取特征之前,需要對圖像進行濾波去噪。本實驗采用均值濾波、高斯濾波、中值濾波、方框濾波、雙邊濾波進行比較,應(yīng)用峰值信噪比(PSNR)選出更為適合的濾波方法。
在上文鋼板各類缺陷圖集中分別選取十張代表性圖像,利用上述五種濾波方法進行去噪,計算各自PSNR,求其均值,可得如下實驗結(jié)果(如表2所示)。
根據(jù)PSNR計算結(jié)果,五種濾波質(zhì)量由高到低依次為雙邊濾波、中值濾波、高斯濾波、均值濾波、方框濾波。因此,本實驗選取的濾波方式為雙邊濾波。在進行濾波去噪之后,對缺陷鋼板圖像的質(zhì)量會有一定的影響,所以本實驗對缺陷圖像再進行直方圖均衡化,增大像素值之間差異。
本實驗采用Sobel算子、Laplacian算子、改進Canny算子進行比較,選出最佳方案。在Canny算子中,高閾值、低閾值以及平滑濾波方差這幾個關(guān)鍵因素都需要人工設(shè)定,故該算子失去了實時性,在鋼板的缺陷檢測應(yīng)用中存在一定的局限性。因此,本實驗采用的Canny改進算子,基本思想如下:利用最大類間方差法(Otsu),自適應(yīng)確定高閾值、低閾值以及平滑濾波方差。Otsu算法是將圖像像素分為背景和目標兩類,通過搜索、最大值,得到最優(yōu)閾值。在上文鋼板各類缺陷圖集中分別選取一張代表性圖像,利用上述三種算子進行邊緣檢測,可得如圖實驗結(jié)果。
表2 五種濾波方法的PSNR值
通過對比上述三種算子的實驗仿真結(jié)果,可以看出:在色差表面缺陷中,僅有改進Canny算子能夠提取特征;上述三種算子在邊緣提取中,改進Canny算子噪音斑點最少;上述三種算子在邊緣提取中,Laplacian算子特征最明顯,但噪音線條較多。綜上,本實驗采取改進Canny算子進行邊緣提取。
鋼板缺陷的標記是在邊緣檢測的基礎(chǔ)上,對一些優(yōu)秀特征進行提取,在圖像邊緣處補一列或者幾列優(yōu)秀特征數(shù)據(jù)。
鋼板表面缺陷特征主要分為灰度特征、幾何特征、投影特征、紋理特征,根據(jù)文獻[7,8]所述,通常使用Fisher判別準則對提取的特征進行比較,本實驗綜合文獻所述特征Fisher比和實驗鋼板缺陷樣本特點,增加鋼板表面缺陷圖像的灰度值一階概率分布、x方向投影特征作為標記。其灰度值一階概率分布P(i)和x方向投影特征P(x)計算公式如式(4)、式(5)所示。
圖1 色差處理效果對比
圖2 孔洞處理效果對比
圖3 劃痕處理效果對比
圖4 磷化斑處理效果對比
圖5 針眼處理效果對比
圖6 白斑處理效果對比
其中,i表示鋼板表面缺陷圖像灰度等級;k表示灰度等級i時,鋼板表面缺陷圖像灰度和;n表示鋼板表面缺陷圖像灰度總和;f(x,y)表示為鋼板表面缺陷圖像的在x,y處的像素值。
對于灰度值一階概率分布P(i)的標記具體如下:
1)在圖像樣本進行雙邊濾波后,將其轉(zhuǎn)化為灰度圖像;
2)將灰度圖像利用式(3)計算灰度值一階概率分布;
3)其濾波后圖像樣本灰度值區(qū)間為0~255,則可算的缺陷區(qū)域熵的特征向量為256×1,將其數(shù)據(jù)均衡到0~255;
4)將所得灰度值一階概率分布特征向量補在邊緣提取后缺陷圖像的寬度的上,第一列為240個特征向量,第二列為16個特征向量,第二列其余位置補零;
5)補零。后面幾列補零情況根據(jù)步長,補零列數(shù)為步長減一。
對于x方向投影分布P(i)的標記具體如下:
1)在圖像樣本進行雙邊濾波后,將其轉(zhuǎn)化為灰度圖像;
2)將灰度圖像利用式(4)計算x方向投影分布;
3)本實驗樣本圖片其x軸為768個像素點,可算的x方向投影的特征向量為256×1,將其數(shù)據(jù)均衡到0~255;
4)補零。后面幾列補零情況根據(jù)步長,補零列數(shù)為步長減一。
依照以上步驟標記,我們可以得到如圖7所示圖片。
圖7 鋼板缺陷表面標記
常見的卷積神經(jīng)網(wǎng)絡(luò)由輸入層、卷積層、激活函數(shù)、池化層、全連接層和最后的輸出層構(gòu)成。從輸入層到全連接層之間連接方式為:卷積層-激活函數(shù)-池化層,一般為三個及三個以上上述循環(huán);通過卷積神經(jīng)網(wǎng)絡(luò)層與層之間通過不同的計算方式建立神經(jīng)元之間的聯(lián)系;通過卷積層對原始數(shù)據(jù)提取特征;通過池化層降低數(shù)據(jù)維度;最后通過全連接層將特征分類并輸出結(jié)果。與BP神經(jīng)網(wǎng)絡(luò)一樣,卷積神經(jīng)網(wǎng)絡(luò)也是通過梯度下降和反向傳播算法進行訓練的,則全連接層的梯度公式與BP網(wǎng)絡(luò)完全一樣。卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖8所示。
圖8 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖
在CNN中,雖然也是卷積,但是其卷積公式和嚴格意義數(shù)學中的定義稍有不同,比如對于二維的卷積,定義為:
其中,s(i,j)為卷積后圖像,X為原圖像,W為個連接權(quán)值。
由于池化也稱為下采樣,用S=down(C)表示,β和b為標量參數(shù),則可得池化過程公式為:
假設(shè)當前卷積層為l,下一層為池化層l+1,上一層也是池化層l-1。那么從l-1層到l層,其卷積層的反向求導公式為:
其中,f為激活函數(shù),-conv代表卷積過程。
全連接層的反向求導是與普通神經(jīng)網(wǎng)絡(luò)的反向求導是一致的,所以其全連接層求導公式為:
本實驗的卷積神經(jīng)網(wǎng)絡(luò)由3個卷積層和1個softmax輸出層組成.網(wǎng)絡(luò)結(jié)構(gòu)中的第1個卷積層由卷積操作、激活函數(shù)映射、最大值池化操作組成;第2卷積層與第1個卷積層的結(jié)構(gòu)相同;第3個卷積層由卷積操作、激活函數(shù)映射組成:網(wǎng)絡(luò)結(jié)構(gòu)的輸出層是1個6類別的softmax輸出分類器。
詳細的卷積神經(jīng)網(wǎng)絡(luò)模型及參數(shù)信息如表3所示。表3中f表示卷積核或是池化核的大小,s為步長,d為卷積核的深度。
其中solver.prototxt參數(shù)如下:test_iter:2,test_interval:50,base_lr:0.001,lr_policy:"step",gamma:0.1,stepsize:100,display:20,max_iter:500,momentum:0.9,weight_decay:0.005,snapshot:1000,solver_mode:CPU。
損失函數(shù)(loss function)通常被用來評估卷積神經(jīng)網(wǎng)模型的輸出值與實際值相接近的程度,是卷積神經(jīng)網(wǎng)絡(luò)模型準確性以及優(yōu)化的一個重要的指標。而在損失函數(shù)中,交叉熵是當前應(yīng)用最為普遍的。其主要計算公式如下:
表3 卷積神經(jīng)網(wǎng)絡(luò)的模型信息
表4 鋼板表面缺陷訓練準確率
本實驗所用電腦操作系統(tǒng)為64位win7、CPU型號為Intel(R)Core(TM)i5-3400、運行內(nèi)存為8GB、GPU型號為影馳GTX750Ti等。上文鋼板表面缺陷檢測及特征提所用平臺為VS2013以及OpenCV3.0;卷積神經(jīng)網(wǎng)絡(luò)訓練由開源框架Caff和其C++接口實現(xiàn)。本實驗樣本個數(shù)為970,分辨率為768×240,鋼板表面缺陷檢測系統(tǒng)對實時性要求沒有特別嚴格,故本實驗不采用GPU進行訓練。
本實驗為形成對比,先對未進行特征提取的鋼板表面缺陷樣本訓練集應(yīng)用上述方法進行訓練,可得到如圖3交叉熵曲線,在用測試集對其檢測,可得其色差、孔洞、劃痕、磷化斑、針眼、白斑檢測的準確性依次為59.86%、78.64%、80.23%、73.19%、72.81%、74.32%;其次,對上述進行過特征提取的鋼鐵表面缺陷樣本集進行訓練,可得到如圖3交叉熵曲線,其色差、孔洞、劃痕、磷化斑、針眼、白斑檢測的準確性依次為84.31%、90.95%、92.23%、89.65%、88.10%、87.36%;最后,對進行標記和特征提取的鋼鐵表面缺陷樣本集進行訓練,可得到如圖3交叉熵曲線,其色差、孔洞、劃痕、磷化斑、針眼、白斑檢測的準確性依次為93.20%、95.69%、97.35%、94.52%、94.15%、95.71%。把上述實驗結(jié)果匯總,如表4、圖9所示。
圖9 鋼板表面缺陷樣本訓練交叉熵曲線
針對工業(yè)中鋼板表面缺陷難以自動化檢測、檢測準確率低等問題,本實驗提出基于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對其進行自動分類檢測,首先利用TM-C1582U采集鋼板缺陷圖像;再利用方框濾波對圖像進行去噪,減少檢測干擾;其次利用改進Canny算子進行邊緣提??;最后設(shè)計相適應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)。將邊緣提取前后的鋼板表面缺陷圖像導入卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng)進行訓練,分別得到如上的準確度以及損失函數(shù)交叉熵的變化曲線。但模型的精度和收斂速度仍達不到要求,故利用特征對鋼板表面缺陷樣本進行標記,加入灰度值一階概率分布P(i)和x方向投影特征兩個特征,導入卷積神經(jīng)網(wǎng)絡(luò)系統(tǒng),性能有明顯的提升。綜上,圖像的預處理及特征提取缺陷識別的準確性有著重要的作用,且加速了損失函數(shù)交叉熵的收斂,并能夠降低損失函數(shù)初始值,增加鋼板表面缺陷識別的準確性;鋼板表面缺陷樣本集不豐富的情況下,進行特征提取、對鋼板表面缺陷進行標記明顯有助提升檢測的準確率、加快損失函數(shù)交叉熵的收斂,并能夠降低損失函數(shù)初始值。