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