劉瑞珍,孫志毅,王安紅,楊 凱,王 銀,孫前來
(太原科技大學 a.材料科學與工程學院,b.電子信息工程學院,太原 030024)
在偏光片生產過程中,由于加工工藝限制、設計水平不足,生產設備故障和生產條件惡劣等因素,在工件內部極易形成不均勻的區(qū)域,這些區(qū)域通常表現(xiàn)為氣泡狀的殘膠、裂縫、夾雜物、污漬、劃痕等缺陷。這些缺陷通常是通過人工檢查來完成的,主要是通過在生產線上對偏光片進行視覺掃描,將有缺陷的產品分類出來以便后續(xù)處理。然而,在大批量生產過程中,檢測精度和速度易受檢測人員主觀因素及經驗的影響,難以滿足現(xiàn)代裝配線的要求。因此,需要開發(fā)高精度、高速度以及自動有效的圖像分類技術來檢測這些缺陷,以確保生產線中偏光片的質量。
傳統(tǒng)的機器視覺檢測缺陷[1]主要通過對被檢物圖像進行處理,在圖像處理過程中,需要人工定義和選擇能夠準確識別圖像中缺陷的特征表示。但是在工業(yè)環(huán)境中,當出現(xiàn)新的問題時,必須手動設計新的特征,由于缺陷區(qū)域位置隨機性,形狀多樣性和復雜性,因此用于描述缺陷的標準特征描述符往往導致分類結果不準確,很難滿足實際工業(yè)要求。
近年來,隨著深度學習的興起與發(fā)展,深度卷積神經網絡克服了手動重新定義每個新缺陷的特征表示的困難,顯著提高了圖像分類[2-3]、目標分割[4-5]、目標檢測[6]和其他視覺任務[7-8]等應用中的檢測性能,其中具有代表性的分類網絡主要有AlexNet[2],VGG[9],GoogLeNet[3]和ResNet[10]。然而,這些經典的分類網絡構建的越來越深,模型大小也在不斷增加,在許多實際應用如人臉識別和汽車自動駕駛中,需要在計算受限的平臺上實時地執(zhí)行識別任務,因此,在盡量不影響網絡效果的前提下,模型壓縮和簡化設計成為了一個很重要的研究方向。
為了減少深度學習網絡模型在移動設備上運行所占用的存儲空間,2015年,HAN et al[11]在不影響分類準確率的前提下,通過修剪網絡中不重要的權重連接,將深度學習網絡所需要的存儲和計算量減少了一個數(shù)量級。2016年,HAN et al[12]將網絡剪枝、量化和霍夫曼編碼相結合來擴展他們以前的工作,提出了一種稱為“深度壓縮”的方法,將AlexNet壓縮了幾十倍,極大地減少了模型的存儲空間。2017年,IANDOLA et al[13]設計了一個不同于傳統(tǒng)卷積層的Fire模塊,并構建了一個名為SqueezeNet的小型卷積神經網絡結構,分類正確率和AlexNet相同的情況下,參數(shù)量比AlexNet減少了50倍。MobileNet[14]網絡使用深度可分離卷積來構建高性能的輕量級神經網絡模型,有效地減少了網絡的參數(shù)量,并能很好地與移動和嵌入式可視化應用的設計要求相匹配。ShuffleNet[15]網絡是專門為計算能力非常有限的移動設備而設計的,主要采用了兩個新的操作,即逐點組卷積和信道混合,既保持了分類準確率,又大大降低了計算成本。因此本文將圖像分類與模型壓縮相結合,搭建了一個輕量級的偏振片缺陷實時檢測網絡,在不降低分類準確率的前提下最小化訓練模型及加快檢測速度,以達到實際工業(yè)的實時需求。
本文提出的偏光片缺陷分類網絡是基于并行模塊和并行非對稱卷積模塊設計的,如圖1所示,該網絡主要由一個標準的3×3卷積層(卷積層1),5個并行模塊和1個并行非對稱卷積模塊組成。在并行模塊2、3、4和并行非對稱卷積模塊之后,我們分別使用最大池化層來減少特征映射的維數(shù)和參數(shù)。LIN et al[16]的工作中用全局均值池化層代替全連接層,以減少網絡的參數(shù)量,同時克服了全連接層容易過擬合的缺點,提高了整個網絡的泛化能力。本文利用全局均值池化層的上述優(yōu)點,在并行模塊5之后使用一個全局均值池化層來增強特征映射與類別之間的對應關系,使卷積結構保留的更好,分類更準確;此外,全局均值池化層與全連接層相比,無任何參數(shù)需要優(yōu)化,大大地減少了網絡的參數(shù)量及計算量。最后,網絡經過Softmax層對輸入的偏光片圖像進行分類,得到分類結果。本文提出的偏光片分類網絡為了加速網絡訓練的收斂速度并提高網絡的泛化能力,除最大池化層外,網絡每層后面都添加一個批量歸一化(Batch Normalization,BN)層對輸入數(shù)據做歸一化處理,同時為了增加各層之間的非線性關系,在BN層之后添加激活層,所使用的激活函數(shù)為ReLU函數(shù)。
圖1 偏光片缺陷分類網絡結構
經典的分類網絡如AlexNet,GoogLeNet和ResNet,由于其網絡層數(shù)越來越深,模型越來越大,占用內存不斷增加,實時性差,因此很難應用于偏光片在線檢測系統(tǒng)中??紤]到工業(yè)中對于實時性和準確性的要求,本文參考經典深度壓縮模型MobileNet[14]中利用深度可分離卷積代替?zhèn)鹘y(tǒng)卷積以減少網絡參數(shù)量的思想,主要對深度可分離卷積進行了改進與優(yōu)化,得到并行深度可分離卷積模塊用來構建偏光片缺陷分類網絡。
圖2給出了本文設計的并行深度可分離卷積模塊的結構,與深度可分離卷積不同,該并行模塊混合了不同尺寸的卷積濾波器,這種設計不但能夠更好地融合不同尺度的特征,還能提取到更豐富的缺陷特征,使后續(xù)的缺陷分類操作更準確。利用該模塊搭建的偏光片缺陷分類網絡可以顯著地減少網絡參數(shù)量和MACCs,這將會在實驗部分得到充分的驗證。
圖2中實線框1代表的是本文提出的并行深度可分離卷積模塊。首先,使用1×1的卷積濾波器來減少輸入到虛線框2的通道數(shù),即特征圖個數(shù);其次,虛線框2是由1×1卷積濾波器和點劃線框3混合而成,即采用不同尺寸的卷積濾波器(1×1和3×3)來提取偏光片中缺陷特征;最后,將1×1卷積濾波器和點劃線框3的輸出連接到一起,作為網絡下一層的輸入。點劃線框3代表的是深度可分離卷積。該并行模塊中所有的卷積操作后都執(zhí)行BN和ReLU操作以加速收斂,提高模型的泛化能力和防止梯度消失問題。
圖2 本文提出的并行深度可分離卷積模塊結構
在圖2中,有4個可調參數(shù):n1,n2,n3,n4和2個固定參數(shù)F和n0,F(xiàn)和n0分別指輸入到并行模塊的特征圖的寬度(或高度)和特征圖的個數(shù)。n1表示并行模塊中虛線框2上方1×1卷積濾波器輸出的特征圖個數(shù),n2表示虛線框2左側的1×1卷積濾波器輸出的特征圖的個數(shù),n3和n4表示點劃線框3中卷積濾波器的輸出特征圖個數(shù)。在本文設計的網絡中使用并行模塊時,n1 GoogLeNet Inception V3中將n×n的卷積拆分為1×n+n×1的非對稱卷積用以節(jié)約網絡參數(shù)量,加快運算及減輕過擬合,同時非對稱卷積還能處理更多、更豐富的空間特征,增加特征的多樣性,擴展模型的表達能力[17]。所以為了進一步減少網絡的參數(shù)量,本文利用非對稱卷積的上述優(yōu)點,對1.2節(jié)中提出的并行深度可分離卷積模塊中的深度可分離卷積進行改進,即將圖2中點劃線框3中的3×3深度卷積(圖3(a)所示)用1×3+3×1卷積替代(圖3(b)所示)以構成并行非對稱深度可分離卷積模塊,利用1×3+3×1的卷積核對特征圖進行卷積的感受野和利用3×3的卷積核進行操作的感受野是相同的,不同之處在于1×3+3×1的卷積核將網絡分成兩層進行滑動卷積,增加了網絡的深度,隨著網絡層數(shù)的增加,網絡提取特征的能力也隨之提高,所以這種空間結構的拆分能夠提取到更加豐富的缺陷特征,使訓練得到的網絡模型的分類正確率得到提高。 圖3 (a)深度可分離卷積,(b)深度可分離非對稱卷積 對于中等網絡尺寸,在m×m的特征圖上,當12 表1列出了并行模塊與并行非對稱卷積模塊的參數(shù)量及分類正確率,若圖1中偏光片缺陷分類網絡是由標準卷積層與6個并行模塊組成,則第五個并行模塊的參數(shù)量為86 016,訓練得到的模型分類正確率為98.9%.將第五個并行模塊用并行非對稱卷積模塊代替之后,此模塊的參數(shù)量為73 728,參數(shù)量減少了14.3%,模型的分類正確率為99.4%,正確率提高了0.5%.所以在網絡輸出特征圖大小在12到20范圍內,用并行非對稱卷積模塊代替并行模塊之后,既增加了網絡的深度,減少了參數(shù)量,也提高了分類準確率。 表1 并行模塊與并行非對稱卷積模塊參數(shù)量及分類正確率比較 從電子二廠獲得了某一批次產品的偏光片圖像數(shù)據集,并將圖像分為三類:無缺陷圖像、污漬圖像和缺陷圖像(如圖4所示),實驗部分將利用此數(shù)據集來評估該系統(tǒng)的性能。該數(shù)據集共有5 000張200×200×3偏光片灰度圖像,其中無缺陷圖像共1 000張,污漬圖像和缺陷圖像各2 000張。將這5 000張圖像隨機地按3∶1∶1的比例分配為訓練集、校驗集和測試集。本文實驗過程中,需要檢測偏光片圖像中是否存在污漬和缺陷,并能將其與無缺陷圖像進行正確的分類。 圖4中,第一行代表無缺陷圖像;第二行代表污漬圖像,紅色矩形框代表污漬部分,其對應于生產過程中偏光片表面有污漬的樣品,它們需要被正確分類出來,并將污漬清洗干凈后可再次投入使用;第三行代表缺陷圖像,紅色矩形框內不規(guī)則的圓圈或半圓代表的是在偏光片的生產過程中由特定的編碼裝置噴涂在偏光片表面的特殊記號,這類缺陷樣本被正確分類出來后將不能再次進行使用。從圖中可以看出,紅色矩形框的位置和大小都不一致,即缺陷的位置不固定,形狀多種多樣。 圖4 偏光片圖像數(shù)據集 本實驗環(huán)境為Linux Ubuntu 14.04操作系統(tǒng),8 GB內存,NVIDIA GeForce 1080顯卡,并用Caffe深度學習框架進行訓練。訓練過程和校驗過程中的mini-batch大小分別設置為20和10.動量因子設置為0.9,權重更新量設置為0.000 2,初始學習率設置為0.001,且采用隨機梯度下降方法進行訓練,網絡的最大迭代次數(shù)設置為140 000次。 為了驗證本文方法的有效性,將其與現(xiàn)有的深度學習經典算法AlexNet[2]、VGG-16[9]、ResNet-18[10]、SqueezeNet[13]和MobileNet[14]進行了比較。表2給出了本文方法與上述5種經典算法在校驗集上的實驗結果比較,從表2可以看出,本文方法得到的模型分類正確率分別比AlexNet,VGG-16,ResNet-18,SqueezeNet和MobileNet高0.8%;0.2%,0.8%,1.5%和0.5%.模型大小分別減少了647.8,1 137.6,76.7,4.98和22.1倍;參數(shù)量比AlexNet,VGG-16和MobileNet減少了兩個數(shù)量級,比ResNet-18減少了一個數(shù)量級。MACCs比AlexNet和VGG-16減少了三個數(shù)量級,比SqueezeNet減少了一個數(shù)量級,比ResNet-18和MobileNet減少了兩個數(shù)量級。因此,本文方法可以在不降低分類準確率的情況下大大減小模型的尺寸,并且在分類準確率、速度和存儲器使用方面目前均可滿足行業(yè)對偏光片缺陷的在線實時檢測的要求。 表2 不同模型在校驗集的實驗結果比較 圖5顯示了6種不同方法訓練得到的模型在校驗集上的分類正確率和損失函數(shù)曲線。本文用140 000次迭代中每1 000次迭代的平均正確率和損失率共14個點來繪制正確率和損失函數(shù)曲線。從圖中可以清晰地看到本文方法能得到更高的分類正確率和更低的損失率。另外,從圖5(a)可以看出本文方法收斂速度明顯高于AlexNet,VGG-16,SqueezeNet和MobileNet這四個經典分類模型。 使用測試集來驗證本文方法的有效性及泛化能力,測試集中偏光片圖像共有1 000張,其中無缺陷圖像有200張,污漬圖像和缺陷圖像各400張,此測試集既沒有參與網絡的訓練,也沒有參與網絡的校驗過程。測試結果如表3所示,可以得出,本文方法比其他五種經典算法能獲得更低的分類錯誤率,充分驗證了本文方法的有效性。表3最后一列列出了6種算法在測試過程中每張圖片的測試時間,從表中可以看出,與AlexNet,VGG-16,SqueezeNet,ResNet-18和MobileNet相比,本文方法將每張圖片的分類時間分別縮短了303.1,2 471,280.4,17.1和116.7 ms.所以無論是從分類精度和速度,本文方法均滿足工業(yè)中偏光片缺陷實時監(jiān)測的需求。 圖5 (a)校驗集上分類正確率的比較,(b)校驗集上損失函數(shù)的比較 表3 不同模型在測試集上的試驗結果比較 圖6顯示了6種不同的方法訓練得到的模型準確率,模型大小和在測試集上針對每張圖片的測試時間的比較結果,圖中1,2,3,4,5,6分別代表AlexNet,VGG-16,ResNet-18,SqueezeNet,MobileNet和本文方法,圖6和表2相結合可以得出,本文方法可以獲得更高的準確率,訓練得到的模型最小,同時測試速度最快,充分證明了本文方法的有效性。 圖6 六種模型的正確率,模型大小和在測試集上的測試時間的比較 本文主要設計了一種基于深度學習的偏光片缺陷實時檢測算法,首先,設計了一個并行深度可分離卷積模塊來構建偏光片缺陷檢測網絡,該并行模塊有兩個優(yōu)點:一是利用不同尺寸大小的卷積濾波器來提取更加豐富的缺陷特征;二是該并行模塊中采用深度可分離卷積替代傳統(tǒng)的卷積,顯著減少了網絡的參數(shù)量及MACCs;其次,將并行模塊中的3×3深度卷積用非對稱卷積替代得到并行非對稱卷積模塊,進一步減少網絡的參數(shù)量;最后,網絡最后使用全局均值池化層最大限度地減少網絡的參數(shù)量。實驗結果表明,本文方法在分類精度、速度及內存消耗方面均優(yōu)于現(xiàn)有的方法,達到了工業(yè)實時檢測缺陷的要求。未來還可以通過其他模型壓縮的方法進一步減少模型占用空間,提高模型分類速度及精度。1.3 深度可分離非對稱卷積結構
2 實驗結果及分析
2.1 數(shù)據集介紹
2.2 實驗結果與分析
3 結束語