姚明海,陳志浩
(浙江工業(yè)大學(xué)信息工程學(xué)院,杭州 310023)
隨著機(jī)器化的發(fā)展,機(jī)器視覺技術(shù)在工業(yè)流水線的檢測中發(fā)揮著越來越重要的作用。傳統(tǒng)的磁片缺陷檢測主要以人工提取特征為主,國內(nèi)外很多學(xué)者做了這方面的研究。石聰?shù)热送ㄟ^基于邊緣特征的金字塔匹配算法快速提取磁片邊界,再結(jié)合各向異性濾波方法進(jìn)行缺陷分割,然后根據(jù)幾何形狀識別特征進(jìn)行分類,由于該算法比較依賴光照特性和磁片的缺陷形狀,具有一定的局限性[1];杜柳青等人提出,定義掃描線梯度,將其標(biāo)準(zhǔn)差與掃描線灰度標(biāo)準(zhǔn)差構(gòu)成特征向量,提出基于兩類支持向量機(jī)的圖像分割方法來提取缺陷,該方法只能針對特定行缺陷,缺乏通用性[2]。現(xiàn)有的傳統(tǒng)方法主要可分為目標(biāo)分割-人工特征提?。y(tǒng)計(jì)方法這三步驟[3]。由于磁片表面對比度低,磨痕紋理干擾和缺陷塊小且亮度變化大等難點(diǎn),想要有個(gè)通用方法分割出各種情況下的缺陷是十分困難的,很大程度上依靠個(gè)人經(jīng)驗(yàn),而且人工特征提取方法往往存在算法實(shí)用性不強(qiáng)的缺點(diǎn),大多數(shù)方法都是針對特定缺陷或者特定光源場景條件下,缺乏通用性。
卷積神經(jīng)網(wǎng)絡(luò) (convolutional neural networks,CNN)近幾年來已經(jīng)在圖像、語音領(lǐng)域發(fā)揮著越來越重要的作用。神經(jīng)網(wǎng)絡(luò)只需要簡單的提取目標(biāo)預(yù)處理,而特征提取和統(tǒng)計(jì)分類都不需要人工干預(yù),從而提高了模型的通用性。相比于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的全連接網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)擁有局部感受野、權(quán)值共享和降采樣三大特性,因而大大減少了網(wǎng)絡(luò)自由參數(shù)的個(gè)數(shù)。隨后Krizhevsky Alex等人[4]提出ReLU作為激活函數(shù)和Dropout層來防止過擬合,開啟了深度學(xué)習(xí)的新時(shí)代。卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)應(yīng)用到人臉識別、行人檢測、車牌識別和自然語言處理等領(lǐng)域中,取得了一個(gè)接一個(gè)的突破性進(jìn)展。
卷積神經(jīng)網(wǎng)絡(luò)龐大的網(wǎng)絡(luò)參數(shù)離不開龐大的數(shù)據(jù)量進(jìn)行支持,而且傳統(tǒng)的監(jiān)督學(xué)習(xí)方法做分類的時(shí)候,往往是訓(xùn)練樣本規(guī)模越大,分類的效果就越好。然而實(shí)驗(yàn)過程和實(shí)際生產(chǎn)中發(fā)現(xiàn),龐大的數(shù)據(jù)量獲取容易但人工標(biāo)簽成本高,有些數(shù)據(jù)可能還需要領(lǐng)域內(nèi)的專家才能完成,不可能實(shí)現(xiàn)快速或者低成本的數(shù)據(jù)標(biāo)記。如何使盡可能少的訓(xùn)練樣本達(dá)到或者接近完整帶標(biāo)簽數(shù)據(jù)集的效果一直是圖像分類的研究熱點(diǎn)。主動(dòng)學(xué)習(xí)通過一定的算法提取出未標(biāo)記樣本中分類困難的樣本,往往這些樣本是包含著更多分類信息,然后將挑選標(biāo)記好的樣本加入一起訓(xùn)練分類模型來提高模型的精確度。
針對上述問題,提出了一種基于深度主動(dòng)學(xué)習(xí)的磁片表面缺陷檢測方法。首先,結(jié)合邊緣檢測和模板匹配算法將磁片前景和背景進(jìn)行分割;其次設(shè)計(jì)改進(jìn)Inception-Resnet-v2深度網(wǎng)絡(luò)進(jìn)行訓(xùn)練;然后,由于實(shí)際生產(chǎn)中巨大數(shù)據(jù)量獲取容易但人工標(biāo)簽成本高,提出一種改進(jìn)的主動(dòng)學(xué)習(xí)方法來克服這一難點(diǎn);最后,通過實(shí)驗(yàn)證明,此方法提高了分類器精度,而且通過主動(dòng)學(xué)習(xí)方法節(jié)約了大量人力標(biāo)注成本。
如圖1所示,基于深度主動(dòng)學(xué)習(xí)的磁片表面缺陷檢測方法主要分為圖像預(yù)處理、CNN特征提取及分類、主動(dòng)學(xué)習(xí)三部分。在圖像預(yù)處理中將圖像進(jìn)行背景分割、圖像增強(qiáng)和歸一化處理、圖像分塊處理;卷積神經(jīng)網(wǎng)絡(luò)部分將進(jìn)行自學(xué)習(xí)提取特征以及分類,將Inception-Resnet-v2網(wǎng)絡(luò)根據(jù)實(shí)際情況進(jìn)行尺寸上的修改;主動(dòng)學(xué)習(xí)部分將參考“信息量”(用熵衡量)和“多樣性”原則,在海量圖像數(shù)據(jù)中挑選出更具有代表性的樣本數(shù)據(jù),從而快速達(dá)到分類器性能臨界值,減少大量人力標(biāo)注成本。
鐵氧體磁片原圖來自浙江省一磁片廠,采用basler工業(yè)相機(jī)拍攝了1050張磁片圖片,分辨率為659×494,缺陷主要表現(xiàn)為工業(yè)處理或者流水線運(yùn)行中邊緣磕碰導(dǎo)致的“掉皮”,部分樣本如圖2所示,其中 (a),(b),(c),(d)為缺陷樣本,(e),(f)為正常樣本。圖像預(yù)處理主要分為背景分割、感興趣區(qū)域的圖像增強(qiáng)和圖像分塊三步驟。
首先進(jìn)行背景分割,將圓磁片和背景進(jìn)行分離。本文采用的是結(jié)合邊緣輪廓檢測的模板匹配方法,由于磁片在流水線上運(yùn)動(dòng)時(shí),光源與磁片存在各個(gè)角度,磁片周圍存在一個(gè)較淺的黑色光暈,這時(shí)如果采用單純的輪廓提取或者模板匹配方法往往會(huì)導(dǎo)致提取到帶黑色光暈的感興趣區(qū)域 (region of interest,ROI),存在一定偏差。本文根據(jù)圓磁片表面輪廓與背景像素差距較大的特點(diǎn),通過輪廓提取方法,找到輪廓并加黑像素,加深這種像素偏差,生成新的模板,大大提高了模板匹配的準(zhǔn)確度,感興趣區(qū)域提取結(jié)果如圖3所示。
接著,將提取到的圓磁片進(jìn)行g(shù)ammar校正,這是種符合韋伯定律的圖像預(yù)處理方法,這樣在進(jìn)行人工標(biāo)注時(shí)能一定程度上減少由人為主觀誤判帶來的標(biāo)注錯(cuò)誤。
圖1 算法流程圖
圖2 原始樣圖
然后進(jìn)行圖像分塊,這是一種數(shù)據(jù)擴(kuò)充的方法,同時(shí)由于缺陷面積小,這樣也能突出缺陷特征。經(jīng)過實(shí)驗(yàn)分析,為了使缺陷特征都能包含在一個(gè)窗口中,本文以圓心處18度扇形區(qū)域的外接矩形作為一個(gè)分塊單元,每次以圓心旋轉(zhuǎn)的步長為18度,然后截取成正方形,因?yàn)樗械摹暗羝ぁ比毕荻急憩F(xiàn)在磁片邊緣上,如示意圖4所示。這樣每個(gè)分割窗口的重疊率為15.4%,還保留了輪廓信息,這樣每個(gè)磁片圖像能得到20個(gè)分塊圖像數(shù)據(jù),所有的最終圖像都經(jīng)過均值化和歸一化處理。事實(shí)證明,圖像字塊像素尺寸為48×48時(shí)能包含所有完整缺陷。圖像分塊處理不僅能大大擴(kuò)大數(shù)據(jù)集,而且能完整的突出缺陷特征,減小后面CNN的網(wǎng)絡(luò)參數(shù)。
圖3 感興趣區(qū)域
圖4 子圖像的分割
由于各個(gè)磁片表面由于打磨的原因?qū)е路垂馇闆r各不相同,而且“掉皮”的深淺導(dǎo)致反光的缺陷有暗有亮,同時(shí)人工打磨過程產(chǎn)生的紋理也會(huì)大大影響到缺陷的檢測精度,所以普通的人工特征提取方法效果不佳,并且人工提取特征時(shí)往往帶有一些的主觀能動(dòng)性,這時(shí)特征的提取就需要一定的專家經(jīng)驗(yàn)。而CNN在處理二維數(shù)字信號 (圖像)時(shí),特征提取層是通過自學(xué)習(xí)訓(xùn)練數(shù)據(jù)的方式進(jìn)行特征提取,這樣在學(xué)習(xí)時(shí)避免了顯示的專家經(jīng)驗(yàn)性特征抽取,從而大大提高了精度和魯棒性。
本文采用 Inception-Resnet-v2[5]的網(wǎng)絡(luò)模型,根據(jù)磁片尺寸太小,對網(wǎng)絡(luò)模型進(jìn)行了適當(dāng)?shù)恼{(diào)整。Inception-Resnet-v2網(wǎng)絡(luò)與一般簡單的神經(jīng)網(wǎng)絡(luò)相比存在很多優(yōu)勢。首先,繼承Inception v1[6]中的多尺度堆疊,融合了1×1和3×3多種卷積的不同層特征,使高級特征和低級特征相互融合;其次,使用Network in Network[7]中提出的 1×1卷積核,不僅在前一層的學(xué)習(xí)表示上添加了非線性激勵(lì),提升了網(wǎng)絡(luò)的表達(dá)能力,而且在卷積高通道層時(shí),降低通道數(shù),從而大大降低了維度;另外,結(jié)合Inception v3中的卷積分解,將7×7卷積核分解成一維的7×1卷積和1×7卷積,將3×3卷積核分解成一維的3×1卷積和1×3卷積,由此設(shè)計(jì)了35×35、17×17和8×8三個(gè)小模塊,這樣既可以進(jìn)一步降低維度,加快計(jì)算速度,而且網(wǎng)絡(luò)深度進(jìn)一步增加,增加了網(wǎng)絡(luò)的非線性性能,這效果在中間層十分突出;最后,網(wǎng)絡(luò)加入了ResNet[8]中提出的殘差模塊,每一個(gè)節(jié)點(diǎn)學(xué)到的不再是參數(shù)本身,而是殘差,ResNet的結(jié)構(gòu)可以極大地加速訓(xùn)練,同時(shí)性能也得到提升,解決了網(wǎng)絡(luò)層數(shù)加深帶來的收斂問題。因?yàn)镮nception-Resnet-v2的輸入圖像大小為299×299,而本文圖像只有48×48,但是沒有將尺寸直接進(jìn)行縮放,而是在原論文進(jìn)入分支前加了5個(gè)3×3卷積和1個(gè)4×4卷積,通道數(shù)和原論文相同,這樣使得在進(jìn)入網(wǎng)絡(luò)分支前圖像尺寸和原 Inception-Resnet-v2網(wǎng)絡(luò)相同,方便網(wǎng)絡(luò)設(shè)計(jì)。
我們知道數(shù)據(jù)量大小決定了模型的精確度,那么是不是數(shù)據(jù)量越大精確度一直越大呢?大量深度學(xué)習(xí)的實(shí)驗(yàn)證明[9],模型精確度和訓(xùn)練樣本的關(guān)系呈現(xiàn)著一般規(guī)律,大致走向曲線如圖5所示,其中實(shí)線部分表示隨機(jī)挑選的樣本,虛線表示經(jīng)過主動(dòng)學(xué)習(xí)挑選的樣本。在一開始訓(xùn)練集較少時(shí),分類器的性能隨著樣本數(shù)的增加而快速增長,但當(dāng)訓(xùn)練集達(dá)到了一定的臨界值時(shí),增長速度逐漸變緩,直至不變,由此說明分類器性能臨界值與樣本數(shù)據(jù)和分類器本身有關(guān),而訓(xùn)練樣本的選擇能決定到達(dá)分類器性能臨界值的速度。如此同時(shí),如果用相同數(shù)量的更具代表性的樣本進(jìn)行訓(xùn)練時(shí),會(huì)發(fā)現(xiàn)這個(gè)臨界值更早的到來,所以如果用主動(dòng)學(xué)習(xí)方法去挑選這些“難的”、“信息量大的”樣本,這樣分類器性能可以最更早的達(dá)到飽和,以節(jié)省大量的人力成本。
圖5 訓(xùn)練集樣本數(shù)與分類器精度關(guān)系示意圖
本文的主動(dòng)學(xué)習(xí)方法主要參考“信息量”(用熵衡量)和“多樣性”來進(jìn)行挑選樣本[10]?;凇靶畔⒘俊钡臉?biāo)準(zhǔn)有一個(gè)很直觀的辦法,就是基于熵的不確定采樣方法,首先計(jì)算出測試樣本在分類器中對于各個(gè)類的概率,然后根據(jù)信息熵的公式比較哪些樣本所包含的信息量高,熵越大的樣本代表不確定性越高,信息量越多?;凇岸鄻有浴碧暨x,就是比較已標(biāo)注數(shù)據(jù)和未標(biāo)注數(shù)據(jù)之間的相似度,將與已標(biāo)注數(shù)據(jù)相似的樣本作為簡單樣本,那么每次主動(dòng)學(xué)習(xí)挑選那些差異比較大的樣本作為“多樣性”樣本。
深度主動(dòng)學(xué)習(xí)的具體算法流程如下:
1) 先隨機(jī)選擇樣本數(shù)量為n的訓(xùn)練集L=(x1,xj,...xn),進(jìn)行標(biāo)注;
2) 使用訓(xùn)練集 L=(x1,xj,..xn) 來訓(xùn)練 Inception-Resnet-v2網(wǎng)絡(luò),得到網(wǎng)絡(luò)參數(shù)w;
3)在樣本數(shù)量為 m的未標(biāo)定樣本集為 U=(x1,xi,..xm)中,用式 (1) 計(jì)算出各個(gè)樣本xi的信息熵S(y|xi,w);
S(y|xi,w)= - ∑y∈YP(y|xi,w)logP(y|xi,w)(1)
其中:y表示分類類別,Y={1,2,..}為所有可能的類別標(biāo)號,P(y|xi,w)為在w參數(shù)中樣本xi屬于類別y的概率;
4)用式 (2)計(jì)算出各個(gè)樣本xi相對于訓(xùn)練集L=(x1,xj,..xn) 的相似度 Ri;
5)需要找到信息量大、相似度低的樣本,所以設(shè)Di=進(jìn)行D從大到小排序,在未標(biāo)樣本集U=i(x1,xi,..xm) 中挑選出 α 個(gè)的樣本;
6) 將新得到的 α個(gè)樣本加入 L=(x1,xj,..xn)中,代替原來的訓(xùn)練樣本,重復(fù) (2)、(3)、(4)、(5)、(6),直到分類器精度達(dá)到臨界值或者未標(biāo)注的樣本集標(biāo)注完為止;
本文實(shí)驗(yàn)設(shè)備是一臺(tái)顯卡為Tesla K40C的服務(wù)器,使用TensorFlow框架。訓(xùn)練時(shí)使用Xavier初始化網(wǎng)絡(luò)參數(shù),將AdamOptimizer作為優(yōu)化器的優(yōu)化算法,softmax交叉熵?fù)p失函數(shù)作為損失函數(shù),網(wǎng)絡(luò)訓(xùn)練的超參數(shù)如下:批處理大小(batch size)為128,最大迭代數(shù) (max steps)為10 000,學(xué)習(xí)率 (learning rate)為0.001,學(xué)習(xí)率每經(jīng)過5 000次迭代衰減50%,訓(xùn)練時(shí)的loss曲線如圖6所示。
圖6 訓(xùn)練時(shí)的loss曲線
本文總共采集到1 050張磁片樣本,切割完經(jīng)篩選后共得到18 000張子圖像,將14 000張作為訓(xùn)練集,2 000張作為驗(yàn)證數(shù)據(jù),2 000張作為測試數(shù)據(jù)。
在精確度方面,本文將Inception-Resnet-v2網(wǎng)絡(luò)與其他兩個(gè)方法進(jìn)行比較,一個(gè)是傳統(tǒng)的支持向量機(jī)方法(SVM),另一個(gè)是簡單的6層CNN網(wǎng)絡(luò),其中4層卷積層和2層池化層。各個(gè)方法的精確度比較如表1所示,Inception-Resnet-v2網(wǎng)絡(luò)的精確度大大高于支持向量機(jī)這種傳統(tǒng)的統(tǒng)計(jì)學(xué)方法,也高于簡單的6層卷積神經(jīng)網(wǎng)絡(luò)。在實(shí)時(shí)性方面,由于Inception-Resnet-v2參數(shù)相對于簡單的6層卷積神經(jīng)網(wǎng)絡(luò)要多很多,速度相對慢一些,但仍能滿足工廠100 ms/個(gè)的要求,平均每次檢測耗時(shí)60 ms/個(gè)。
表1 各分類器精度對比結(jié)果
主動(dòng)學(xué)習(xí)流程按1.4中所介紹的算法進(jìn)行,取α=2 000,本文將隨機(jī)挑選的樣本來作為主動(dòng)學(xué)習(xí)的對比實(shí)驗(yàn),首先選取4 000個(gè)樣本作為初始訓(xùn)練數(shù)據(jù)集,然后每次隨機(jī)加入和經(jīng)主動(dòng)學(xué)習(xí)挑選后加入2 000個(gè)訓(xùn)練樣本,共加入5輪樣本。樣本和精確度的關(guān)系圖如圖7所示,根據(jù)折點(diǎn)圖可以看到,采用主動(dòng)學(xué)習(xí)方法在9 000個(gè)訓(xùn)練樣本時(shí)就比較接近最終準(zhǔn)確率,最多可以節(jié)約樣本標(biāo)注約有3 000個(gè)樣本,約能節(jié)省25%的人力標(biāo)注成本。
圖7 隨機(jī)挑選和主動(dòng)學(xué)習(xí)的比較圖
本文針對磁片表面“掉皮”缺陷進(jìn)行了檢測分析,使用Inception-Resnet-v2網(wǎng)絡(luò)不僅不需要人工提取特征,增強(qiáng)了分類器的魯棒性,而且精確度也是大幅度提高;另外針對數(shù)據(jù)上標(biāo)簽工作量大的情況,使用主動(dòng)學(xué)習(xí)策略能減少標(biāo)簽數(shù)據(jù),挑選更值得挑選的樣本,提高工作效率。
但目前本文只能是針對“掉皮”缺陷,由于還缺乏其他缺陷的數(shù)據(jù),筆者正在努力采集,下一步可以嘗試增加缺陷種類,針對不同類別的缺陷對象,使此算法更加具有應(yīng)用價(jià)值。同時(shí),筆者也在考慮使用其他主動(dòng)學(xué)習(xí)策略來進(jìn)一步提高標(biāo)簽標(biāo)注效率。