袁澤輝 郭慧 周邵萍
摘? 要: 針對傳統(tǒng)管道表面缺陷檢測方法存在效率低、準(zhǔn)確率不高的問題,提出一種通過機(jī)器視覺檢測管道表面缺陷的方法,在采集管道表面缺陷的圖像信息后通過卷積神經(jīng)網(wǎng)絡(luò)的算法分類不同的缺陷。通過加入批量歸一化層,改進(jìn)低層和中層卷積核的構(gòu)造,優(yōu)化了GoogleNet的構(gòu)造,提高了卷積神經(jīng)網(wǎng)絡(luò)的泛化性和收斂性。試驗(yàn)結(jié)果表明,應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)后對管道表面缺陷的識別率較高,顯著提高了管道表面缺陷識別的效率和準(zhǔn)確率,具有較好的工程意義。
關(guān)鍵詞: 缺陷識別; 管道表面缺陷; 機(jī)器視覺; 卷積神經(jīng)網(wǎng)絡(luò); 缺陷分類; GoogleNet構(gòu)造優(yōu)化
中圖分類號: TN911.73?34? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼: A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)17?0047?05
Abstract: As the traditional pipeline surface defect detection method has the problems of low efficiency and low accuracy, a method based on machine vision to detect pipeline surface defects is proposed, in which the algorithm of convolutional neural network is used to classify different defects after the image information of pipeline surface defects is collected, and the low?level and middle?level convolution kernels are improved by adding a batch normalization?level to optimize the GoogleNet structure and enhance the generalization and convergence of convolutional neural networks. The test results show that the method's recognition rate of pipeline surface defects is higher after the application of convolutional neural network, which significantly improves the recognition efficiency and accuracy of defects on the pipeline surface. Therefore, the method has good engineering significance.
Keywords: defect recognition; pipeline surface defect; machine vision; convolutional neural network; defect classification; GoogleNet structure optimization
0? 引? 言
由于管道相比于其他運(yùn)輸而言,具有成本低、效率高的特點(diǎn),管道運(yùn)輸在現(xiàn)代經(jīng)濟(jì)發(fā)展中扮演著極其重要的作用。然而隨著時(shí)間的推移,管道表面會出現(xiàn)多種缺陷,這嚴(yán)重影響了管道運(yùn)輸?shù)男?,甚至?xí)斐墒鹿蕩砭薮蟮膿p失。因此對管道表面缺陷進(jìn)行檢測是非常必要的。
目前,我國對管道表面缺陷無損檢測的方法有超聲波檢測法、漏磁檢測法、渦流檢測法。其中,基于超聲波檢測法首先發(fā)射超聲脈沖,當(dāng)遇到管壁時(shí)發(fā)生反射,通過計(jì)算發(fā)射脈沖與反射脈沖的時(shí)間差獲得管壁表面的情況。另外,基于漏磁的方法檢測管壁表面狀況,通過靠外加磁場對管壁進(jìn)行磁化,如果管壁表面正常磁力線完全通過管道,若管壁表面出現(xiàn)缺陷則磁力線發(fā)生泄露,通過磁力線的變化獲得管道表面的情況。渦流檢測法,根據(jù)渦流生成的強(qiáng)度判斷管道表面是否正常。這些方法的缺點(diǎn)是檢測效率低下,每次檢測只能獲得一個(gè)點(diǎn)的狀況,而無法獲得管道整體的狀況。此外這些方法還缺乏可視性,檢測完后無法看到管道表面的具體情況。
隨著機(jī)器視覺技術(shù)的發(fā)展,數(shù)字圖像處理技術(shù)為管道表面缺陷檢測提供了新的方法[1]。機(jī)器視覺用于管道表面缺陷識別有兩個(gè)步驟:一是獲得缺陷圖片;二是對缺陷進(jìn)行分類。
用CCD相機(jī)[2]可以獲取有效的管道表面圖片。在對管道表面缺陷分類中,主流的方法有特征提取法和SVM法。特征提取法中提取有效特征信息(Extracting Effective Feature Information)[3]往往是很重要的,但該方法訓(xùn)練好的模型泛化能力比較差,這種模型對缺陷極為敏感,一旦缺陷發(fā)生變化,準(zhǔn)確率就會大幅下降?;谙蛄繖C(jī)(SVM)[4?5]分類法雖然有一定的抗干擾能力,但是支持向量機(jī)較多地應(yīng)用在二分類問題上,對于多分類問題存在一定的困難。由于管道表面的缺陷存在較多的種類,所以應(yīng)用支持向量機(jī)分類不太合適。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,深度學(xué)習(xí)(Deep Learning)[6]開始用于各行各業(yè)之中。相比其他神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)[7]由于卷積核可以保存提取的圖像空間信息,采用權(quán)重共享的方法可以減少模型過擬合的風(fēng)險(xiǎn),故而卷積神經(jīng)網(wǎng)絡(luò)在圖像處理中大放異彩。
近年來主流的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用結(jié)構(gòu)有AlexNet[8?9],VGG[10?11]和GoogleNet[12?13],其中,AlexNet缺陷在于網(wǎng)絡(luò)識別的精度沒有后兩者高,VGG雖然在精度上相比于AlexNet有了顯著的提高,然而耗費(fèi)了大量的計(jì)算資源而且參數(shù)也比較多、所占內(nèi)存大。GoogleNet則集中了前兩者的優(yōu)點(diǎn),在計(jì)算量不太大的情況下又擁有較高的準(zhǔn)確率。本文采用GoogleNet為基本框架來識別管道表面缺陷。
1? 管道表面缺陷分類
管道表面缺陷種類有很多,其中,劃痕、裂口、錯(cuò)位、障礙物以及腐蝕較為常見,如圖1所示,占據(jù)管道表面缺陷的98%以上,所以能夠有效地檢測并分類這五種缺陷是極其重要的。劃痕是管道壁表面出現(xiàn)細(xì)長裂紋;裂口是管道壁表面破裂發(fā)生脫落而產(chǎn)生裂口;錯(cuò)位發(fā)生于相接管道口發(fā)生偏差從而產(chǎn)生錯(cuò)位;腐蝕是管道表面發(fā)生剝落從而使得管道表面出現(xiàn)凹凸面;障礙物則是管道內(nèi)充斥了樹根、樹葉這樣的障礙物。將5個(gè)缺陷類圖片與無缺陷管道表面圖片一起構(gòu)成6個(gè)分類集合用于管道表面缺陷識別分類。
首先收集管道表面缺陷圖片,對其進(jìn)行預(yù)分類訓(xùn)練模型,然后將訓(xùn)練好的模型應(yīng)用于管道表面缺陷檢測。一個(gè)好的模型對于外界條件應(yīng)該具備一定的魯棒性,由于對圖像預(yù)處理意味著圖像濾波、二值化[14],對這樣得到的預(yù)處理圖像進(jìn)行訓(xùn)練將使得模型過于關(guān)注光照等外界因素從而缺乏足夠的魯棒性。為此,本文與傳統(tǒng)的訓(xùn)練方法不同,為了增加模型的泛化能力,不用預(yù)處理的圖像對模型進(jìn)行訓(xùn)練。
2? 管道表面缺陷識別模型的設(shè)計(jì)
2.1? GoogleNet網(wǎng)絡(luò)結(jié)構(gòu)
GoogleNet是ImageNet ILSVRC的冠軍模型,在此之前的AlexNet,VGG等模型都是通過增大網(wǎng)絡(luò)的深度來訓(xùn)練模型,這會導(dǎo)致一系列負(fù)面效果,隨著網(wǎng)絡(luò)的深度增加,梯度會消失,計(jì)算量過大,更有可能會出現(xiàn)正確率下降的現(xiàn)象。
在對圖像進(jìn)行卷積操作時(shí),若用小的卷積核對圖像進(jìn)行卷積操作則會更多關(guān)注于圖像的局部特征,而用大的卷積核進(jìn)行卷積操作時(shí)則會使得模型更傾向于全局特征。若是僅僅簡單地對圖像的卷積層進(jìn)行疊加,在底層采用較小的卷積核而在高層采用較大的卷積核則會增加網(wǎng)絡(luò)深度,不但增大了計(jì)算量,同時(shí),容易導(dǎo)致梯度消失的問題。為了解決這個(gè)問題GoogleNet提出了Inception結(jié)構(gòu),如圖2所示。Inception中采用多層并行感知器(1×1,3×3,5×5卷積核)替代原先單一的感知器對目標(biāo)特征進(jìn)行卷積操作。Inception結(jié)構(gòu)有兩個(gè)優(yōu)點(diǎn):由于有3個(gè)卷積核對特征圖像進(jìn)行并行運(yùn)算可以有效解決圖形的尺度問題,通過學(xué)習(xí),讓模型加大合適的卷積核權(quán)重自主選取合適的卷積核;另外3個(gè)卷積核實(shí)際上構(gòu)成了局部的稀疏矩陣能大幅增加模型的運(yùn)算能力,進(jìn)而加速模型的收斂。
然而,3個(gè)卷積核的并行運(yùn)算使得特征圖形的通道數(shù)加大,增大了運(yùn)算量。GoogleNet通過在Inception前加入1×1的卷積核縮減通道數(shù)量,從而減少計(jì)算量。
GoogleNet層數(shù)較多,深度過大容易出現(xiàn)網(wǎng)絡(luò)的退化,在訓(xùn)練集上出現(xiàn)正確率飽和甚至下降的情況。為此,GoogleNet引入了殘差網(wǎng)絡(luò)防止網(wǎng)絡(luò)的退化。殘差網(wǎng)絡(luò)在深度網(wǎng)絡(luò)的后面幾層采用恒等映射層,從而使得網(wǎng)絡(luò)退化成淺層網(wǎng)絡(luò),然而恒等映射訓(xùn)練較為困難,通過把恒等映射以殘差函數(shù)[F(X)=H(X)-X]的方式擬合。通過訓(xùn)練[F(X)=0],則可以獲得恒等映射[H(X)=X]。
表1中3×3以及5×5減少通道數(shù)就是圖2中的1×1卷積核數(shù),目的是為了減少通道從而減少計(jì)算量和修正線性激活,池化層是圖2中3×3卷積層后的1×1卷積核。Inception(3a),Inception(3b)等結(jié)構(gòu)就是上文提到的Inception結(jié)構(gòu),每個(gè)Inception結(jié)構(gòu)中的卷積核數(shù)量如表1所示。另外對Inception結(jié)構(gòu)要用relu函數(shù)激活。最終選取的特征維度為1 000,實(shí)行對1 000個(gè)物體的分類。
2.2? 改進(jìn)的GoogleNet網(wǎng)絡(luò)結(jié)構(gòu)
文本借鑒了GoogleNet中的結(jié)構(gòu),然而,在具體解決管道表面缺陷識別中發(fā)現(xiàn)可以對該模型進(jìn)行進(jìn)一步的優(yōu)化。正如上文所說,大卷積核的空間集中性會下降,抽象性比較高,適合放在網(wǎng)絡(luò)的高層。在保留高層的Inception5結(jié)構(gòu)不變的情況下,中間層的Inception4可以將5×5卷積核改成2個(gè)3×3卷積核連接,理論上計(jì)算可以快1.39倍,如圖3所示。
底層的Inception3可以刪除5×5的卷積核,增加3×3卷積核的通道數(shù),理論上計(jì)算可以快2.78倍,如圖4所示,調(diào)整以后模型的準(zhǔn)確率與之前相比基本沒有差別。改進(jìn)后的模型識別速度和識別準(zhǔn)確率如表2所示。
GoogleNet模型是一個(gè)通用模型,采用droupout層減少數(shù)據(jù)的過擬合問題,當(dāng)樣本數(shù)據(jù)較大時(shí)沒什么問題,然而,實(shí)際工作中由于管道表面缺陷的圖形樣本采集較為困難,樣本數(shù)據(jù)比較少,此時(shí),若用droupout層采用GoogleNet中40%的失效率會過分地夸大干擾信息或縮小有用的管道表面缺陷信息,而減少droupout的失效率又會帶來過擬合的風(fēng)險(xiǎn)。
另外,GoogleNet中為了更有效地處理數(shù)據(jù)以及減少過擬合,引入了LRN層(Local Response Normalization)。LRN層最早提出于AlexNet,用于處理局部數(shù)據(jù),通過局部神經(jīng)元的內(nèi)部競爭,增大響應(yīng)值較大的值,抑制響應(yīng)值較小的值,從而增大模型的泛化能力。但是LRN層近年來爭議比較大,2015年 Very Deep Convolutional Networks for Large?Scale Image Recognition會議上提出LRN層在準(zhǔn)確率上并沒有增加而在計(jì)算量上卻增加不少。