諶貴輝,何龍,李忠兵,亢宇欣,江梟宇
(西南石油大學 電氣信息學院,四川 成都 610500)
當今正處于信息智能時代,電子元器件猶如構筑起這個時代的一塊塊磚瓦,唯有對這些磚瓦的質量進行保證,才能堅固地鑄就屬于這個時代的智能大廈,貼片電阻也不例外。工廠生產出來的貼片電阻,首先需要對其進行缺陷識別、極性方向識別、正反面識別和種類識別,才能保證貼片電阻的出廠質量,因此,生產企業迫切需要一種可行的貼片電阻識別檢測方法,截至目前,雖然已經有論文提出針對貼片電阻缺陷進行識別的方法,但生產企業由于其識別性能原因依舊沒有廣泛的使用,貼片電阻在實際生產過程中的缺陷識別、方向識別等還是依靠人工肉眼進行識別檢測,不僅檢測速度慢,而且長期成本高、誤檢率高。
針對上述問題,學者們提出的很多理論方法均可在貼片電阻識別中進行應用,比如模板匹配算法[1-2]、PCA(主成分分析)法[3-4]、Canny 邊緣檢測算法[5]、B樣條小波多尺度積邊緣檢測算法[6]、自適應閾值SUSAN邊緣算法[7]等,通過使用這些方法首先對貼片電阻圖片進行特征提取,然后將提取出的特征通過一個分類器進行識別分類,比如支持向量機[8]、決策樹[9]、貝葉斯分類器[10]等進行分類。上述過程從本質上來講,就是通過人為的方式構造專家系統和知識庫對貼片電阻圖片進行特征抽取,將高度相關的數據編碼形式解耦成易于分類的低維數據形式,隨后將提取出的低維數據向量通過一個分類器進行識別分類。上述系統的識別性能很大程度上取決于前半部分專家系統的構造,即對特定論域問題是否提取出了有用的特征和是否將高維數據轉換到易于分類的低維有效空間,通常要構造出一個專家知識系統是極其困難的,而且當研究論域一旦改變或者擴展,之前構造的專家系統又不得不重新進行構造,這樣的再構造過程不僅是極其枯燥和乏味的,而且通常情況下其實際效果也并不是事先所預想的那樣。
然而,上述問題可以通過卷積神經網絡的方法進行特征提取,從而避免繁瑣的專家知識系統的構造。神經網絡早在20世紀40年代就已經被提出,其作為連接主義智能實現的典范,是當今人工智能深度學習方法的重要思想源泉,也是當前類腦智能研究中的有效工具[11]。自2006年以來,Hinton等在《科學》上發表文章將神經網絡推向了深度學習時代[12],指出一個訓練好的多層神經網絡可以將高維的數據轉換成低維的數據編碼形式,提出一種Pre-Training[13]的方法初始化權重,使其更加接近全局最小,隨后再通過梯度下降法來Fine-Turning網絡權重值,證明了采用這樣的方法訓練的網絡比PCA方法更好;同時也證明了在參數相同的情況下,一個更深的網絡結構在測試數據集上具有更低的錯誤識別率,但這種優勢會隨著權值參數的增多而逐漸消失。Hinton所證明的結論為后續網絡模型設計提供了理論依據。而LeCun所提出的卷積神經網絡架構,是一個真正意義上的深度網絡架構[14],其不同于傳統的全連接式的受限制波爾茲曼機,并在圖像識別領域中取得了許多振奮人心的結果,通過端到端的訓練,能夠自學習出易于分類的低維特征,完全避免了人為專家知識系統的構造,與其相反所帶來的代價是訓練樣本數據的收集。Hinton所證明的結論對于真正意義的深度網絡模型是有效的,對于全連接式的深度網絡模型并不適用,全連接網絡總是會陷入過擬合現象,使得實際泛化效果并不理想。因此,選擇識別性能更優的卷積神經網絡用于貼片電阻識別,充分借鑒前人思想設計卷積神經網絡,盡可能精簡整個卷積神經網絡的可訓練參數從而保證識別速度,基于此,對比研究得出了3種不同卷積神經網絡結構在貼片電阻識別任務中的實際效果。
從企業中調研可以發現,貼片電阻識別問題是一個復雜的多分類任務問題。圖1所示貼片電阻圖片來源于工廠實際拍攝,圖中貼片電阻分類情況由工廠中經驗豐富的工人所提供,圖1(a)為50型號反面缺角缺陷,圖1(c)為50型號正面涂層缺角缺陷,圖1(e)為50型號反面腐蝕缺陷,圖1(g)為正面字跡不清缺陷,其余4張圖片為無缺陷電阻面。另一方面,假設貼片電阻已經做了外觀缺陷檢查,通過的合格電阻在自動編帶時還需確保正反面、方向的一致性,因此需要對貼片電阻正反面和方向進行識別,由于企業生產的貼片電阻型號種類繁多,如圖2所示,尺寸一樣表示同一種封裝形式的貼片電阻,故還需要對貼片電阻種類進行識別。


圖1 一種典型電阻型號需識別種類數Fig.1 A typical resistance type is required to identify the number of categories

圖2 需要識別的不同型號的貼片電阻示意Fig.2 Different types of chip resistors that need to be identified
因此,為了覆蓋上述識別的所有情況,通過在實際工廠中拍攝大量的貼片電阻圖片,再經過人工嚴格篩選和預處理算法處理之后,本文制作出了包含29種類別的貼片電阻數據樣本集。類別標簽1~13主要是電阻缺陷識別,14~29主要是方向、正反面以及種類識別,總的貼片電阻樣本數量為1 044張,每一類別包含36張樣本,經過預處理算法處理之后的圖片,每張圖片被剪切為320×320像素大小,貼片電阻居于圖像正中位置,貼片電阻以外其余的像素點全部被置零為黑色背景,即清除了貼片電阻圖像背景特征。在后續的實驗中,每一類別均隨機選取5張電阻圖片用于準確率測試,其余的貼片電阻均作為訓練樣本,詳細數據集及標簽類別對應情況如圖3和表1所示,圖3中相鄰兩張圖片為一個類別,以閱讀的順序與表1中的標簽依次對應(如圖3中第一行前兩張圖片對應標簽為1,所屬類別為50型號反面彈珠缺陷)。
當前主流的3種用于模式識別的卷積神經網絡模型——AlexNet模型[15]、GoogLeNet模型[16-17]、ResNet模型[18-19],分別在 2012年、2014年、2015年的ILSVRC競賽中取得第一名的成績,其模型架構思想可以用圖4進行概括,圖中卷積層實現特征提取,全連接層實現特征分類。
卷積神經網絡模型首先由LeCun所提出,其卷積過程類似于對圖像抽取特征的各種算子,如Sobel算子、Laplace算子。算子的卷積過程:


圖3 預處理后的29種貼片電阻圖片樣例Fig.3 Samples of 29 kinds of chip resistors after preprocessing
式中:I表示輸入灰度圖像; H 表示圖像操作算子;M、N和I、J表示卷積核大小,其操作過程為一固定大小的卷積核在圖像像素點上進行了一次動態掃描。但卷積神經網絡的卷積過程有其自己獨有的特點,引入了通道的概念,則式(1)變為

式中:k 表示輸入通道;l 表示輸出通道。卷積神經網絡在進行逐層特征抽取的過程中,每個通道仍然按照二維卷積方式計算,輸入的多個通道與多個卷積核分別進行二維卷積,得到多通道輸出,需要“合并”為一個通道,則每層總的卷積核個數為 k l個。通過卷積的方式,卷積層在輸出特征圖維度實現了權值共享,相比全連接的方式,不僅極大減少了訓練參數,而且二維卷積核的卷積過程也符合圖像的結構特征。

表1 實驗詳細數據表Table1 Experimental detailed data sheet

圖4 常見卷積模型圖Fig.4 Common convolution model diagram
根據神經科學的研究,存在一個閾值來控制神經元的選擇性輸出,從而增加整個神經系統的非線性特性和稀疏特性。數學家們將這樣的閾值函數稱為激活函數,早期的激活函數主要有Sigmoid函數和tanh函數兩種,但二者均由于使梯度在反向傳播過程中衰減過快而被人們所放棄,過快的梯度衰減與構造一個更深的卷積神經網絡是矛盾的。因此人們提出了ReLU非線性激活函數[20],其表達式為

式(3)的激活函數不僅能夠減少計算量,在一定程度上克服了梯度反向傳播消失問題,并且增加了網絡的稀疏性,因此而被廣泛的使用。
Dropout層是為了增加神經網絡的稀疏性而特別設計的,其背后的理論依據是為了模仿大腦的稀疏特性。人腦的神經元大多處于抑制狀態,只有不到10%的神經元處于活動狀態,因此,人腦是一個典型的稀疏結構,每次訓練網絡通過選擇性的丟棄某些神經元,使其不參與前向傳播和反向傳播過程,一方面可以增加網絡的稀疏性,另一方面提供了正則化一大類模型的方法。
Pooling層是為了快速降低特征圖維度而設計的,從而減輕計算的負擔。Pooling層通過匯總上一層特征圖相鄰神經元的輸出,輸出一個維度被降低的特征圖。通過Pooling層的操作,模型計算量被減少,網絡過擬合問題得到一定的緩解,網絡整體性能也有所提升。常見的匯總操作有MAX和AVE,MAX操作為局部相鄰神經元的最大值作為輸出,AVE操作為局部相鄰神經元的平均值作為輸出,與圖像均值濾波類似。
LRN層為局部響應值歸一化層,LRN層跟隨在Pooling層之后,通過對局部神經元的活動創建競爭機制,使得其中響應比較大的值變得相對更大,并抑制其他反饋較小的神經元,保留關鍵特征,抑制非重要特征[15]。LRN層具體歸一化公式如式(4)所示:

BatchNorm層為步長歸一化層,卷積神經網絡在讀入訓練數據和測試數據時,并不是每次只讀取一張圖片,而是一次讀取一個Batch(步長)值的圖片數據。這樣就帶來一個問題,深度神經網絡每一層的輸入分布在訓練的時候會發生改變,導致卷積神經網絡難以學習到數據中蘊藏的本質,這使得要訓練這樣的網絡變得困難復雜,而這樣的問題可以通過歸一化每一層的輸入來解決。BN的本質作用原理是強行將每一層輸入分布的變化進行矯正,使得每一層輸入在進行卷積之前保持零均值和單位方差[19]。使用BN層的深度網絡結構,可以使用更高的學習率進行訓練,而且也不用過多的關心訓練權值初始化問題。實踐證明加入BN層的深度網絡不僅訓練收斂速度極大提高,而且識別準確率也得到改善。
Hinton證明了在參數相同的情況下,一個更深的網絡結構在測試數據集上具有更低的錯誤識別率,但這種優勢會隨著權值參數的增多而逐漸消失,本文基于此理論依據,針對傳統圖像識別方法的局限性,結合AlexNet模型、GoogLeNet模型、ResNet模型思想和其突出的圖像識別分類能力,設計了3種卷積神經網絡模型用于識別貼片電阻圖像,需同時保證設計模型的識別準確率和識別速度。
起初AlexNet模型被設計的目的是用于參加ILSVRC圖像分類競賽,同時消除人們對卷積神經網絡識別性能的質疑。網絡總共包含60M的可訓練參數,主要是為了提升網絡容量,應對包含千萬張圖像的ImageNet數據集,但貼片電阻識別并不需要如此巨大的可訓練參數,這是因為貼片電阻數據并不像Imagenet數據集那樣蘊含大量的特征,并且在實踐中企業迫切希望使用少量的訓練樣本去達到非常理想的識別準確率,因此需要對已有模型可訓練參數進行減少,防止過擬合現象。同時,貼片電阻識別既需要保證高識別準確率,也需要保證高識別速度,這就需要將卷積神經網絡的深度控制在一個合理的范圍之內。因此,設計的網絡需從整體上進行“瘦身”,同理,另外2種模型的修改思路亦是如此,將修改后的3種模型可訓練參數保持一致,可以方便比較他們的綜合性能。
基于上述思想,由AlexNet模型思想修改后的網絡依舊為8層深度,結構與原來保持不變,做出的改動是對原模型可訓練參數進行了大量精簡,可訓練參數從原來的60×106降低為4×106左右,訓練參數只有原來的1/15,詳細參數設置如圖5所示,圖中參數設置含義為,比如(11×11卷積,48,/4)表示卷積核大小為11×11,輸出特征圖個數為48,卷積時滑動步長為4,沒有寫滑動步長表示默認為1,其他同理,后續網絡中參數設置含義與此類似。

圖5 識別貼片電阻的8層經典卷積網絡結構,可訓練參數為4.07×106Fig.5 The 8-layer classical convolution network structure of identify the chip resistors with a training parameter of 4.07×106
基于谷歌Inception結構思想設計的16層4-Inception網絡如圖6所示,模型中將兩個Inception結構組合構成一個基本的結構單元,取名為4-Inception(參見圖7),這樣可以方便網絡結構呈現。在4-Inception的卷積結構當中,卷積核大小全部使用 1×1、3×3、5×5,參數設計思想是隨著深度的增加,提取出的特征越來越抽象,每個特征所涉及的感受野(receptive field)越來越大。故網絡越到后面,3×3、5×5卷積核比例相應增加,但卷積核的增加會帶來巨大的訓練參數和計算量,因此在進行卷積之前先進行1×1卷積降低特征圖(通道)個數。為了克服連接器拼接特征圖維度對齊問題,1×1、3×3、5×5卷積時要分別設定填充大小為0、1、2,則卷積后的尺寸保持不變,更易對齊。采用此結構設計的16層深度卷積網絡,由于4-Inception基本結構單元比較復雜,需要利用多尺度的訓練方法對其進行訓練,從而提高網絡訓練收斂速度。圖7中3個4-Inception結構參數詳細設置見表2。

圖6 識別貼片電阻的16層深度4-Inception模型圖,可訓練參數為3.8×106Fig.6 The 16-layer depth 4-Inception model of identify the chip resistors with a training parameter of 3.8×106

圖7 谷歌Inception卷積結構 (4-Inception)Fig.7 Google Inception convolution structure (4-Inception)
基于殘差思想設計的16層4-ResNet網絡如圖8所示,圖中4-ResNet詳細結構如圖9所示,該結構的主要思想是為了加深網絡結構,克服梯度反向傳播過程中梯度消失問題。對比本文16層深度4-Inception結構需要采用多尺度訓練的方式,雖然能夠很好地訓練出網絡模型,但同樣深度的殘差網絡結構,直接采用端到端的訓練方式,即可使網絡快速收斂并取得很好的訓練結果。從圖9中很容易看出,梯度在反向傳播的時候,求和后的函數的導數為


表2 4-Inception詳細參數設置Table2 4-Inception detailed parameter settings
導數為1不會對梯度有任何的衰減,且直接跨越多個卷積層進行反向傳播,和多尺度進行訓練的方法有著異曲同工之妙,這就是殘差網絡能夠快速收斂并取得良好訓練結果的原因。圖9中輸入引出的1×1卷積可以使得第一次求和的特征圖維度相同,殘差結構的本質精髓就在于圖9中所示的圓弧線,其能同時跨越多個(不一定是兩個)卷積層。從圖8中可以詳細的看出模型的參數設置,4-ResNet結構中的卷積核參數全部設置成148。

圖8 識別貼片電阻的16層深度4-ResNet模型,可訓練參數為4.0×106Fig.8 The 16-layer depth 4-ResNet model of identify the chip resistors with a training parameter of 4.0×106
3種模型的輸出神經元均被設置成29,這是由實驗數據集包含29個類別所導致的,訓練時均采用隨機梯度下降法進行訓練,選擇Softmax回歸模型對網絡進行優化,權值更新公式為

假設貼片電阻存在 m 個類別,每種類別訓練樣本數為 n1,n2,···,nm, 測試樣本數為 t1,t2,···,tm,識別錯誤數為 e1,e2,···,em,則易得總的訓練樣本數為

總的測試樣本數為

總的識別錯誤數為

因此,總的貼片電阻識別準確率為

任意貼片電阻類別 的總識別錯誤率為

任意貼片電阻類別i的識別準確率為


圖9 殘差網絡結構,取名4-ResNetFig.9 Residual network structure, named 4-ResNet
在貼片電阻姿態固定而位置隨機情況下,設計的3種卷積神經網絡模型對貼片電阻進行識別的準確率分析,實際中貼片電阻會被限制在一個導軌上進行運動,所拍攝的貼片電阻位置并不會都嚴格居于圖像正中間,因此對貼片電阻隨機位置的識別是與實際情況更加吻合的。
為了模擬貼片電阻在圖像中位置隨機的情況,每次迭代訓練都進行隨機截取256像素×256像素大小圖片輸入網絡進行訓練。原始數據集中每張圖片為320像素×320像素大小是事先設計好的,這樣總可以保證每次隨機截取的256像素×256像素大小圖片完全將貼片電阻信息包含在圖像中。
整個實驗過程基于Caffe深度學習框架,計算GPU顯卡為GeForce GTX 10606GB。執行訓練時,訓練步長(batch)為32張圖片,迭代4次輸出一次訓練損失值,每訓練20次執行一次準確率測試。測試步長(batch)為16張圖片,測試迭代次數為10次。網絡訓練動量因子為0.9,初始學習率為0.01,權重衰減因子為0.000 5,學習率更新策略為默認方法。總的訓練次數為7 200次,即訓練周期約為240個(epoch)。
3種模型的訓練結果分別如圖10~11所示,可以看出,由于貼片電阻位置的隨機性,識別準確率最高的為16層4-Inception網絡,識別準確率達到95%,這說明層數更深的4-Inception網絡更加擅長處理復雜情況下的圖像識別,特征解耦更好,更適合貼片電阻識別分類任務。殘差網絡是收斂最快的網絡結構,但其測試損失波動非常大并在迭代2 500次后趨于平穩,繼續訓練則是過擬合訓練,因此實驗時訓練迭代次數未到7 200次則將其停止。

圖10 貼片電阻位置隨機8層深度卷積模型訓練結果Fig.10 Chip resistor position random 8-layer depth convolution model training results

圖11 網絡訓練結果Fig.11 Network training results
3種模型性能詳細對比如表3所示,識別時間最快的是8層深度卷積網絡,低至0.203 秒/張(256×256像素/COREI5),識別準確率最高的是16層4-Inception網絡,識別準確率達95%,殘差網絡性能折中。

表3 3種模型識別時間及準確率對比Table3 Comparison of3model identification times and accuracy
3種模型的泛化識別錯誤率分布如圖12~13所示,可以看出,標簽1~13主要屬于缺陷類別識別,是識別錯誤率的主要來源。標簽14~29主要識別正反面、方向和種類,3種模型均取得了非常理想的識別效果。圖13(a)中的16層4-Inception模型,其僅在缺陷識別上存在一定的錯誤率,在種類、正反面和方向識別上取得了100%的識別準確率。
綜上所述,當貼片電阻在圖像中位置隨機時,基于AlexNet思想“瘦身”后的8層深度卷積神經網絡識別時間最短,16層4-Inception網絡準確性更加突出,進一步提高識別準確率可適當增加缺陷樣本的數量。

圖12 8層深度卷積網絡總識別錯誤率分布Fig.12 Total error rate distribution of 8-layer deep convolutional networks


圖13 網絡總識別錯誤分布Fig.13 Networks total error rate distribution
本文基于AlexNet模型、GoogLeNet模型、ResNet模型思想設計了3種卷積神經網絡模型,用于解決實際工業生產中貼片電阻識別問題,包括缺陷識別、方向識別、正反面識別和種類識別。實驗表明,設計的3種卷積神經網絡模型中,基于AlexNet模型思想“瘦身”后的卷積神經網絡識別時間最短,識別時間低至0.203 秒/張(256×256像素,CORE I5),16層4-Inception網絡準確性更加突出,總識別準確率達95%;16層4-ResNet網絡性能折中,克服了當前主流卷積模型由于可訓練參數過多、模型層數太深導致在貼片電阻識別應用中識別速度不能滿足實時性要求、泛化識別準確率低的問題。上述3種卷積模型可根據具體實際需求進行選用,有望解決工業界貼片電阻分類依靠人工方式的難題。