張振華 陸金桂 李浩然
(南京工業大學機械與動力工程學院 江蘇 南京 211816)
光學薄膜是一類光學介質材料,目前已廣泛應用于液晶電視、手機屏幕、太陽能電板等產品中。由于生產中的多方面原因,導致光學薄膜表面出現氣泡、刮傷、涂料不均等缺陷,這些缺陷不但降低了光學薄膜表面質量,也降低了產品的性能,不同種類的缺陷須采取不同的處理辦法。隨著用戶對于產品質量要求的提高,對于光學薄膜生產技術和缺陷檢測技術的要求也越來越高。
目前主要采取人工模式來對光學薄膜表面缺陷進行檢測,但人工判斷效率低下,受人主觀性影響大且人工成本較高[1]。隨著計算機技術的發展,以圖像識別技術來檢測產品成為可能[2],以圖像處理技術檢測缺陷有檢測速度快、成本較低和檢測結果較為穩定等優勢[3]。傳統圖像識別的算法如BP神經網絡[4-5]在進行圖像識別時需要復雜的圖像預處理過程,通過從圖像中提取例如Hu不變矩[6]、灰度共生矩[7]等特征數據來進行圖像的識別。卷積神經網絡(CNN)由于其感受野理論[8],使其擁有類似于人類的圖像處理方式,漸漸被廣泛應用于圖像處理中。卷積神經網絡可以直接對圖像進行學習,提取圖像特征,不需要復雜的預處理過程,在圖像識別中對目標具有較好的平移、縮放和旋轉不變性[9]。LeCun等[10]首先運用CNN完成了對數字的識別;Lawrence等[11]將CNN用于人臉識別上并取得較好的識別效果;Ji等[12]以CNN實現了人體動作的識別;劉孟軻等[13]運用CNN實現了軌道表面缺陷的檢測;徐珊珊等[14]以CNN檢測了木材表面的缺陷。但由于卷積神經網絡的特性[15],對于不同的識別目標往往需要采用不同的網絡結構,且需要采用不同的激活函數來進行匹配,從而提高識別效率和精度。
由于光學薄膜圖像對比度較低,缺陷較小,難以直接進行,為提高識別效率和精度以改進的局部二值模擬(LBP)算法對圖像進行簡單的預處理。后采用具有雙通道、多尺寸卷積核的卷積神經網絡對輸入圖像進行特征提取,并配以改進的ReLU函數作為傳遞函數,提高訓練精度和效率。在輸出層,使用支持向量機(SVM)替代Softmax分類器,提高計算效率和準確率。利用該方法對光學薄膜缺陷進行識別,統計其識別率,并與傳統卷積神經網絡方法進行對比。
光學薄膜生產通常采用物理氣相沉積法[16],其工藝基本過程為:清潔零件,清潔真空室,抽真空和零件加溫,膜厚儀調整,離子束轟擊,膜料預熔,鍍膜,鍍后處理等。每一步工藝流程都會影響薄膜的質量,討論光學薄膜常見的表面缺陷并研究其產生原因。
(1) 氣泡:氣泡的產生主要由于真空度不夠。由于剩余氣體在機器中出現導致在鍍膜成型時膜料分子與氣體同時到達基片上,從而在鍍成薄膜的時候形成了氣泡。
(2) 涂料不均:涂料不均也是由于真空度的影響。由于剩余氣體的緣故導致在濺射過程中膜料原子和分子與氣體分子相撞,致使有部分膜料氣體無法到達基材表面或有些膜料氣體因為相撞改變方向而過多地沉積在了一處形成涂料不均。
(3) 壓痕:壓痕的問題一般是由于鍍膜后處理產生,以壓輥對薄膜進行輥壓的時候由于壓力的不均勻,有些部分壓力過重有些部分壓力過輕,導致原料從壓力較高處向壓力較低處流動,形成了壓痕。
(4) 刮傷:刮傷主要是由于機械傳動機構所導致。機械傳動機構的表面粗糙造成了薄膜表面出現刮傷,也可能是基材過于粗糙。
(5) 白點:白點主要由原有材料的問題導致。原有材料中含有反射率不同的雜質,導致成品之后會在薄膜中存在一些較其他部分較為明亮的小點。
對于缺陷種類的研究可看出不同的缺陷成因基本不相同,所以在生產檢測中如果能有效地檢測并識別缺陷的種類,對于對應調整生產設備的問題有很大的幫助。
雖然卷積神經網絡可直接讀取圖像進行識別不需復雜的預處理過程,但由于光學薄膜缺陷區域像素特征與背景區域像素特征非常相似,并且缺陷區域面積相對較小,直接識別會嚴重影響識別效率和精度,故采用改進的LBP算法對其進行簡單的缺陷分割預處理,便于識別。
LBP算法由Ojala等[17]提出,其原理是在灰度圖像中,對像素點(P,R)鄰域采樣,R(R>0)為鄰域半徑,P(P>0)為鄰域像素總數,P個鄰域像素均勻分布在半徑為R的圓周上,如圖1所示。

圖1 不同P、R值的LBP圓環形鄰域
以中心像素點像素值gc為閾值對鄰域各像素點像素值gi(i=0,1,…,P-1)做二值化處理,然后根據不同位置像素權重相乘,乘積之和即為LBP值。
(1)
(2)
由于傳統LBP算法對于像素的變化十分敏感,雖能很好地檢測出缺陷,但往往會將圖像背景中灰度波動區域誤識別為缺陷,故需要采取一定的改進方法使其對背景的波動有一定的魯棒性。

(3)
圖像方差為:
(4)
以此計算各小塊方差和圖像全圖方差,后將小塊方差與全圖方差進行對比,將方差大于全圖方差的小塊視為缺陷引起的灰度變化,采用傳統LBP方法選取小塊中心像素為閾值進行LBP處理;方差小于全圖方差小塊視為背景區域,以全圖灰度均值作為閾值進行LBP處理。改進的LBP算法流程如圖2所示。

圖2 改進的LBP算法流程
采用該方法對圖像進行簡單的預處理,以氣泡和涂料不均圖像為例,效果圖和與LBP方法對比如圖3所示。

(a) 氣泡 (b) LBP處理 (c) 改進LBP處理

(d) 涂料不均 (e) LBP處理 (f) 改進LBP處理圖3 圖像預處理效果圖
卷積神經網絡一般由卷積層、激活函數、池化層、全連接層組成,卷積層通過卷積核對圖像的特征進行提取,對于不同的物體的圖像往往需要不同的卷積核來提取特征。
激活函數即為神經元之間輸入和輸出之間映射關系的表達,通常激活函數對輸入進行映射變化從而得到輸出,同時在映射過程中不會改變特征圖的尺寸。激活函數一般采用非線性函數,如ReLU函數、Sigmoid函數和tanh函數等。
池化層通常跟在卷積層之后,一層卷積層配合一層池化層,池化層將相近的特征進行合并,以此來減少卷積層輸出的特征圖大小,減少計算量的同時,防止過擬合現象。
通常情況,卷積神經網絡采用一個卷積層后連接一個池化層的方式加強網絡性能,并以多個卷積層和池化層的方式來提高精確度。而在網絡中所有層之間都是完全連接的,導致存在大量的參數,卷積神經網絡通過共享權重將相同權重用于相同的層中,減少了計算量,也能提高網絡性能。卷積神經網絡結構如圖4所示。

圖4 卷積神經網絡基本結構
傳統的單通道卷積神經網絡為了豐富所提取特征的來源和層次,往往采用添加卷積層的方法,但若一味地添加卷積層會導致網絡層數過高,妨礙數據信息的傳播,訓練較為困難。所以,為了在充分提取圖像的特征和訓練難度之間取得平衡,本文設計了雙通道結構,兩通道分別使用不同尺寸卷積核,提取到不同層次的特征,豐富特征輸入。
第一層通道卷積核尺寸: 3×3,5×5,9×9;第二層通道卷積核尺寸:5×5,7×7,10×10。第一層通道,小尺寸卷積核感受野小,側重提取輸入圖像的局部特征;第二層通道,大尺寸卷積核感受野大,側重提取圖像的全局特征。最后兩層通道所提取的特征被融合形成多方位多角度的融合特征,可以更加充分體現樣本圖像特性。
與單通道卷積神經網絡相比,雙通道卷積神經網絡所提取的圖像特征抽象程度更高,表達能力更強,圖像特征豐富,尤其對樣本數量不夠充分的小樣本分類問題特別適用。本文模型結構如圖5所示。

圖5 改進的卷積神經網絡結構
本文采用輸入圖片統一大小為128×128的分辨率,本文模型包含6個卷積層(C1,C2,C3,C4,C5,C6),6個池化層(P1,P2,P3,P4,P5,P6),兩個全連接層(F1,F2)以及SVM分類器。池化層以均值池化的方法得到池化結果。
第一個子卷積神經網絡結構為:卷積層C1由16個9×9的卷積核進行卷積,得到16個不同的特征圖,則得到C1的大小為120×120×16,后由池化層P1對卷積層C1以2×2的單元進行池化操作,將C1的特征圖由120×120×16轉化為P1的60×60×16。再以32個5×5的卷積核對P1進行卷積,得到由56×56×32個特征圖組成的卷積層C2,再以2×2的單元對C2進行池化操作,得到由28×28×32個特征圖組成的池化層P2。最后對池化層P2采用64個3×3的卷積核進行卷積得到26×26×64結構的卷積層C3,以2×2的單元對C3進行采樣操作,得到第一個子卷積神經網絡的最終池化層P3,其包含64個13×13的特征圖。
第二個子卷積神經網絡采取結構為:以16個7×7的卷積核進行卷積操作,得到16個122×122的特征圖,組成卷積層C4,后采用2×2的池化單元對卷積層C4進行池化操作得到P4為61×61×16。再以32個10×10的卷積核對P4進行卷積處理,得到32個52×52的特征圖,組成了卷積層C5,以2×2的單元進行池化操作得到P5為26×26×32。最后以64個5×5的單元對P5進行卷積,得到卷積層C6包含64個22×22的特征圖,以2×2的池化單元對C6進行池化最終得到第二個子卷積神經網絡的池化層P6為11×11×64。
全連接層F1的輸入來自兩個子卷積神經網絡的最終池化層P3和P6,如式(5)所示,綜合提取得到全連接層包含512個特征,F1與F2采用全連接的方法。
(5)

在輸出層,使用支持向量機替代Softmax分類器,可以提高計算效率和準確率,快速收斂,獲得最優值。
激活函數在卷積神經網絡中通過非線性函數將激活的神經元特征映射出來,即在網絡中傳遞信號,是神經網絡解決問題的關鍵。常用的激活函數有Sigmoid函數、tanh函數、ReLU函數等,但這些函數或多或少都有些缺陷。Sigmoid函數和tanh函數易出現梯度彌散的問題;ReLU函數是分段的線性非飽和函數,是目前運用較為廣泛的激活函數,相比Sigmoid函數和tanh函數有了很大的進步,但是其在運行時會將一部分神經元的輸出設為0,會造成神經網絡稀疏問題。本文對光學薄膜缺陷進行識別,由于光學薄膜缺陷種類較多且有些特征較為接近,需要對圖像特征的映射更加精確。
Softplus函數也是非飽和線性函數,其數學表達式如式(6)所示,與ReLU函數相比稀疏性較差,收斂速度比ReLU函數慢,但ReLU函數過分的強制稀疏往往會導致模型錯誤率的增高,其數學表達式如式(7)所示。本文采取兩個函數各自的優點,構造一個非飽和線性的激活函數用于神經網絡的輸入輸出映射,以期提高識別率。
f(x)=loge(1+ex)
(6)

(7)
在進行輸入輸出的映射時,由于ReLU函數將小于0的部分都強制輸出為0,使小于0的神經元都處于非激活狀態,導致網絡學習受阻。本文引入Softplus函數,對小于0的部分使用Softplus函數來進行處理。當x=0時,Softplus函數的取值為ln2,為了保證組合函數的連貫性將Softplus函數減去ln2,使函數連貫。對于大于0的部分依舊采用ReLU函數進行處理,以此方法改進ReLU函數會造成神經網絡過度稀疏的問題,綜合得到的改進激活函數公式如式(8)所示,其導數如式(9)所示。
(8)
(9)
以此操作保留了ReLU函數收斂較快,不易丟失有用特征的優點,同時通過使用Softplus函數保留了小于0部分神經元的特征信息,提高了信息的獲取量,避免模型欠擬合。改進的激活函數圖像如圖6所示。

圖6 改進的激活函數圖像
卷積神經網絡具有較好的特征提取能力,但其分類效果一般,卷積神經網絡通常采用Softmax分類器。支持向量機具有較好的泛化性能,它可以在學習能力與模型復雜度之間取得最佳平衡。支持向量機能較好解決機器學習算法經常遇到的小樣本、局部極值、高維數問題。
將SVM代替Softmax分類器并與卷積神經網絡組成CNN-SVM模型,可以充分利用兩者的優點。其工作過程為:將樣本輸入到卷積神經網絡中,利用CNN強大的特征提取能力,得到多尺度特征向量,然后將這些特征向量輸入SVM中,經二次訓練,得到CNN-SVM模型。
本文數據集包含1 500幅圖片,屬于小樣本數據集,而卷積神經網絡需要大量樣本才可以充分訓練好模型中的權重,而SVM的參數較少,在數據不充分的小樣本情況下,也可以很好地完成分類問題。因此面對小樣本時,CNN-SVM模型因結合了CNN的特征提取性能和SVM的分類性能,更具有適應性。
卷積神經網絡通過梯度下降法更新模型權重,當學習率等各項參數沒有調試精確時,模型容易陷入局部極小值,導致最終分類效果不理想。而SVM采用最小化結構風險原則,并采用最大化間隔方法,可以避免陷入局部極小值,彌補了卷積神經網絡的缺點。
Softmax分類器在對目標樣本分類時,若目標樣本的分類概率大于0.9則認為分類正確,但此時損失函數仍然繼續計算,僅在分類概率接近1時才會終止計算,這種情況下運行時間會更長;而SVM的側重點在于被錯誤分類的目標樣本,對分類正確的目標樣本不再計算,因此使用SVM分類器可以提高計算效率,縮短訓練時間,識別效果更好。
實驗采用單核CPU:3.30 GHz,內存4 GB,GPU為NVIDIA GTX960,操作系統為64位Windows 7系統,使用MATLAB 2016a編寫算法。采用1 500幅光學薄膜缺陷圖片作為數據庫,氣泡、涂料不均、白點、壓痕、刮傷各缺陷圖片300幅。隨機選取1 200幅光學薄膜缺陷圖像作為訓練集(各缺陷240幅),剩余300幅光學薄膜圖像作為驗證測試集。再對驗證集分別進行旋轉操作,旋轉角度分別為旋轉45°、90°、135°、180°,進行一共5組實驗。
將數據集復制為兩份,一份采用傳統的LBP算法進行預處理,一份采用改進的LBP算法進行預處理。改進的LBP算法預處理效果如圖7所示。

(a) 氣泡 (b) 涂料不均 (c) 壓痕
參與實驗的各卷積神經網絡的結構和所使用的預處理算法如表1所示。

表1 各卷積神經網絡結構以及所使用的預處理算法
實驗結果如圖8、表2、表3所示。

圖8 不同模型分類準確率對比

表2 不同模型平均分類準確率對比 %

表3 不同模型訓練時間對比 s
從實驗結果中可看出,改進的卷積神經網絡對光學薄膜缺陷的識別率有了明顯的提高,無論是將圖像做了多少度的旋轉,本文方法始終保持較高的識別率,且識別率波動不大,說明本文算法對旋轉、平移有較好的魯棒性。
對比本文方法和CNN1可以發現,本文采用改進的預處理算法,通過設計雙通道模型,使用Softplus函數改進ReLU函數,并且使用SVM代替Softmax分類器構建新的CNN模型,其分類準確率、訓練時間較傳統的CNN模型均有顯著改善,平均分類準確率提高了8.6百分點,訓練時間縮短了16 s,充分驗證了本文設計的預處理算法、改進的CNN模型對光學薄膜缺陷檢測的適用性。
對比本文方法和CNN2,在使用相同預處理算法、相同雙通道結構、相同激活函數的前提條件下,使用SVM分類器替代Softmax分類器的識別模型,準確率提高了3.2個百分點,訓練時間縮短了19 s。這是因為對于分類概率大于0.9的目標樣本,SVM分類器不再處理,而Softmax分類器的損失函數仍然繼續計算,因此使用SVM分類器大幅度縮短訓練時間,提高網絡模型泛化能力。
對比本文方法和CNN3,在使用相同的雙通道結構,相同的激活函數、相同的分類器的前提條件下,使用改進的LBP算法進行預處理的識別實驗,平均分類準確率提高了4.6百分點,這是因為改進的LBP算法準確地將輸入圖像中的目標物分割出來,提高了輸入圖像的質量。這證明了改進的LBP算法對提高模型分類準確率的有效性。
1) 本文設計了適用于光學薄膜表面缺陷識別的卷積神經網絡,通過對光學薄膜圖像進行簡單的預處理,將處理后的圖像輸入改進的卷積神經網絡進行訓練學習,并最終完成對光學薄膜缺陷的識別檢測。
2) 以改進的LBP算法對光學薄膜缺陷圖像進行預處理。雖然卷積神經網絡可以直接讀取圖片進行識別,不需要復雜的預處理階段,但光學薄膜缺陷對比度較低,直接識別難度較大。通過將光學薄膜圖像分塊,計算小塊方差和全圖方差,對方差大于全圖方差的小塊采用中間像素灰度作為LBP閾值;小于全圖方差的小塊以全圖像素灰度均值作為LBP閾值。以該方法很好地完成了光學薄膜圖像預處理過程。實驗結果表明,在使用相同的CNN模型前提下,使用改進的LBP算法進行預處理的缺陷識別實驗,平均分類準確率提高了4.6百分點。
3) 以設置雙通道、不同尺寸卷積核的方式將卷積神經網絡分為兩個不相關的子部分,通過不同尺寸卷積核提取的圖像特征最終在全連接層匯總。為進一步提高識別精度,以ReLU函數和Softplus函數取優,構建了改進的卷積神經網絡激活函數,用于映射輸入和輸出之間的關系。為了提升計算效率和準確率,使用SVM分類器替代Softmax分類器。最終以1 500幅光學薄膜圖像對網絡進行訓練學習,通過與其他3種卷積神經網絡進行對比,本文所提卷積神經網絡在光學薄膜缺陷的識別率以及計算效率上有了明顯的提高,相對于傳統的卷積神經網絡,平均識別率提高了8.6個百分點,訓練時間縮短了16 s,證明了該方法在光學薄膜缺陷識別中的優越性和可行性。