任金梅,仲志丹,李躍松,樊浩杰
(河南科技大學(xué) 機電工程學(xué)院,洛陽 471003)
隨著移動互聯(lián)網(wǎng)技術(shù)的迅猛的發(fā)展趨勢,智能手機已經(jīng)成為了移動互聯(lián)網(wǎng)產(chǎn)品的標志,每年幾乎有上億臺智能手機走向市場,在手機外殼生產(chǎn)制造過程中對其缺陷檢測是質(zhì)量監(jiān)控的重要一步[1,2]。目前在手機外殼實際生產(chǎn)過程中,仍然是以人工目檢的方式進行。即使是訓(xùn)練有素的目檢專家,對手機外殼缺陷進行檢測時,也會出現(xiàn)前后標準不一致,主觀臆斷較強以及疲勞耗時等問題[3],因此急需研究自動缺陷檢測系統(tǒng)來減少目檢工作者的工作量,并提供統(tǒng)一標準,客觀有效的檢測方法。
深度學(xué)習(xí)和計算機技術(shù)的快速發(fā)展及其應(yīng)用領(lǐng)域廣泛性的不斷增強[4~8],使得計算機視覺已經(jīng)應(yīng)用于各種工業(yè)產(chǎn)品的質(zhì)量檢測中[9]。Li等[10]提出了一種基于主成分分析(PCA)的手機玻璃膜缺陷檢測系統(tǒng),通過比較缺陷像素數(shù)之和來識別缺陷的類型和大小。Ma等[11]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)和滑動窗口技術(shù)相結(jié)合的方法,來檢測手機表面缺陷,但需要先檢測出感興趣區(qū)域,再進行分類檢測。He等[12]第一次將空間金字塔池化引入卷積神經(jīng)網(wǎng)絡(luò),用來處理輸入圖片大小不一的問題。Cao等[13]運用卷積神經(jīng)網(wǎng)絡(luò)與空間金字塔池化相結(jié)合的方法,實現(xiàn)了監(jiān)控錄像中對黑煙車輛的自動識別。Huang等人[14]采用HOGv進行特征提取,再通過ELM算法訓(xùn)練單個分類器,有效的實現(xiàn)了交通信號的識別。
本文受到Cao和Huang等人的啟發(fā),在經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)(CNN)AlexNet的基礎(chǔ)上,加入空間金字塔池化層(SPP),并與極限學(xué)習(xí)機(ELM)相結(jié)合,設(shè)計了SCNN-ELM模型,用來檢測手機外殼生產(chǎn)過程中產(chǎn)生的劃痕,污點等細小缺陷。該模型能夠?qū)崿F(xiàn)手機外殼的缺陷檢測,完成特征的自動提取,并在一定程度上縮短了缺陷檢測的時間,并通過測試集進行檢驗,證明了該方法的有效性與可行性。
卷積神經(jīng)網(wǎng)絡(luò)是受生物學(xué)中視覺神經(jīng)元工作機理的啟發(fā),受大家不斷重視的一種高效識別模型[15]。在CNN網(wǎng)絡(luò)發(fā)展的過程中,出現(xiàn)了幾種比較經(jīng)典的用于分類的網(wǎng)絡(luò)結(jié)構(gòu),2012年AlexNet[16]在ImageNet競賽中一舉奪冠,以Relu作為激活函數(shù)提高網(wǎng)絡(luò)訓(xùn)練速度,加入Dropout避免過擬合,是圖像檢測的首選基礎(chǔ)網(wǎng)絡(luò),因此本文選取AlexNet作為特征提取器的基礎(chǔ)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
從圖1中可以看出AlexNet網(wǎng)絡(luò)包含五個卷積層,三個采用最大池化方式的池化層,以及三個全連接層。但由于全連接層對輸入特征的尺寸是固定的,因此在AlexNet網(wǎng)絡(luò)結(jié)構(gòu)中要求輸入的圖片尺寸大小是一致的。所以在網(wǎng)絡(luò)輸入圖片時,需要將輸入圖片進行裁剪、拉伸等操作,保證輸入的圖片尺寸是統(tǒng)一的。這樣做會破壞圖片原有特征的完整性,因此在特征提取的過程中會使得特征提取的魯棒性不夠,降低網(wǎng)絡(luò)精度。而空間金字塔池(SPP)層能夠很好的解決上述問題,SPP層采用多個滑塊窗口進行池化,原理就是從每個窗口中分別計算每個塊的值,從而輸出一個神經(jīng)元,不管輸入圖片的尺寸是多少,一旦窗口數(shù)量固定,那么輸入全連接層的神經(jīng)元個數(shù)也隨即確定,因此在AlexNet卷積網(wǎng)絡(luò)的最后一次卷積操作得到不同尺寸的特征圖后,用SPP層進行池化,使得輸入圖片的尺寸不管是否一致,都能滿足全連接層對特征圖固定尺寸的要求,特征提取的更加完善,從而為模型在檢測過程中準確率的提高奠定了基礎(chǔ),其特征提取過程如圖2所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖2 SPP特征提取過程
極限學(xué)習(xí)機(ELM)是人工智能領(lǐng)域的一種人工神經(jīng)網(wǎng)絡(luò)模型[17],是一種單隱藏層的前饋神經(jīng)網(wǎng)絡(luò)。其輸入層權(quán)重和隱藏層偏置可以隨機確定,輸出層權(quán)重則是通過最小化損失函數(shù),依據(jù)廣義逆矩陣理論計算得到,因此泛化能力好,收斂速度快[18]。CNN網(wǎng)絡(luò)的缺點是結(jié)構(gòu)需要預(yù)先確定,訓(xùn)練時會出現(xiàn)局部最優(yōu)解,網(wǎng)絡(luò)泛化能力差[19,20]。因此本文選用ELM作為分類器,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 ELM網(wǎng)絡(luò)結(jié)構(gòu)
假設(shè)有N個訓(xùn)練樣本{xi,ti|xi∈Rn,ti∈Rj,i=1,2…N}(式中xi表示第i個特征圖,ti表示第i個樣本標簽,集合代表所有訓(xùn)練樣本數(shù)據(jù))。從圖3中可以看出ELM網(wǎng)絡(luò)結(jié)構(gòu)中只有一個隱藏層,若隱藏層節(jié)點數(shù)為L,則隱藏層輸出矩陣H(x)為:
式(1)中hi(x)表示第i隱藏層節(jié)點的輸出,隱藏層的輸出是輸入乘上對應(yīng)權(quán)重加上偏差,再經(jīng)過一個非線性函數(shù)其所有節(jié)點結(jié)果求和得到,其表達式為:
式(2)中,W∈RL×n為輸入層至隱含層之間的權(quán)重;b∈RL為隱含層的偏置量;g(?)為激勵函數(shù)。則由圖3可知期望輸出矩陣O的表達式為:
當樣本數(shù)為N時,若存在權(quán)重β使得期望輸出O與樣本標簽T之間的關(guān)系若滿足式(4),那么網(wǎng)絡(luò)訓(xùn)練便能夠達到預(yù)期值。
圖4 SCNN-ELM模型結(jié)構(gòu)圖
在ELM中W和b是隨機產(chǎn)生的,且訓(xùn)練過程中保持不變,H是隱含層輸出,因此權(quán)重β的確定方法有很多中,其中一種可以通過最小二乘法即通過式(5)求解出權(quán)重β。
式(6)中,H+為H的Moore-Penrose廣義逆解。ELM算法的核心是求解出權(quán)重β,其求解過程可以歸納為三點:1)隨機產(chǎn)生輸入權(quán)重W和和隱藏層偏差b;2)計算出隱藏層輸出H;3)由式(6)計算出輸出層權(quán)重β。
本文以AlexNet為基礎(chǔ),在此基礎(chǔ)上加入SPP作為網(wǎng)絡(luò)結(jié)構(gòu)的最后一個池化層,將SCNN與ELM分類器相結(jié)合,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
該模型輸入任意尺寸的圖片,經(jīng)過卷積、最大池化等循環(huán)操作,最終經(jīng)過SPP池化后,得到固定尺寸的特征圖,送入到全連接層,進行模型的訓(xùn)練。模型訓(xùn)練完成后,在測試實驗的過程中,以及之后的缺陷檢測過程中,用該模型進行特征提取,然后用ELM分類器代替原來網(wǎng)絡(luò)結(jié)構(gòu)中的Softmax分類器,構(gòu)建SCNN-ELM模型對手機外殼缺陷進行檢測。在圖4中,以3層的SPP為例,不管輸入圖片的尺寸大小是多少,經(jīng)過Conv5卷積層之后得到的每張?zhí)卣鲌D,再經(jīng)過3層的SPP進行池化操作后,提取到的特征個數(shù)是固定的,以輸入圖片尺寸247×247×3(圖片是彩色圖片,其中3為RGB三通道)為例則經(jīng)過卷積和池化之后輸入全連接層的神經(jīng)元個數(shù)為5376個,可以滿足全連接層對特征圖同一尺寸的要求。
本實驗所用硬件平臺為Intel i5-3210M 2.5GHz CPU,內(nèi)存8GB的64位計算機,采用GPU進行加速。采集數(shù)據(jù)集并構(gòu)建算法模型,最終通過測試集驗證SCNNELM模型在手機外殼缺陷檢測中的精確度,具體步驟如下:
1)運用CCD相機進行手機外殼缺陷數(shù)據(jù)集的采集,用不同尺寸的像素滑動截取完整的缺陷信息,并在顯示器上顯示并進行標注,構(gòu)建數(shù)據(jù)集制作標準實驗數(shù)據(jù)集;
2)以Tensorflow為平臺,加入SPP層構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),從標準數(shù)據(jù)集中,對每類缺陷樣本隨機選取組成訓(xùn)練集,進行網(wǎng)絡(luò)訓(xùn)練,不斷更新權(quán)重;
3)構(gòu)建SCNN-ELM模型,將剩余的標準數(shù)據(jù)集中的圖片作為測試集,對進行訓(xùn)練和驗證,并采用Softmax與ELM分類器進行對比試驗;
4)將模型對手機外殼的缺陷檢測分類結(jié)果以及準確性進行分析,其主要流程如圖5所示。
圖5 模型檢測流程圖
本文實驗過程中,選用的設(shè)備(包含有:工業(yè)CCD相機、計算機、可調(diào)節(jié)光源等)進行圖片信息采集,根據(jù)手機外殼顏色的不同,可通過調(diào)節(jié)光源的顏色使得缺陷特征凸顯的更明顯,如圖6所示。
圖6 缺陷圖片采集設(shè)備
本次實驗過程中采用不同尺度的像素對CCD采集的整張手機外殼圖片進行截取,將帶有完整缺陷和無缺陷的圖片挑選出來,并進行標注,構(gòu)建手機外殼缺陷圖像數(shù)據(jù)集,共計2萬多張圖片。其中包含劃痕、污點、擦傷缺陷圖像(如圖7所示),將獲得的缺陷數(shù)據(jù)集按照一定的比例分為訓(xùn)練集和測試集(如表1所示)。
圖7 3種典型的手機外殼缺陷
表1 缺陷圖像數(shù)據(jù)集
4.2.1 學(xué)習(xí)速率的選擇
在模型訓(xùn)練過程中,學(xué)習(xí)速率是一個重要的參數(shù),學(xué)習(xí)速率較大收斂速度會很快,但模型容易越過全局最優(yōu)解,從而使得模型準確率降低。學(xué)習(xí)速率太小收斂速度較慢,且容易陷入局部最優(yōu)解,模型準確率較低。因此學(xué)習(xí)速率的大小不僅影響著模型的訓(xùn)練時長還將直接影響模型能否收斂到全局最小值。為了研究模型結(jié)構(gòu)中學(xué)習(xí)速率與準確率之間的聯(lián)系,在實驗的過程中不斷調(diào)整學(xué)習(xí)速率對模型進行訓(xùn)練,不斷觀察模型準確率以及損失值的變化情況,其損失值和準確率與學(xué)習(xí)速率的關(guān)系如表2所示。
表2 不同學(xué)習(xí)速率下?lián)p失值和準確率
由表2可以清楚的看出,當學(xué)習(xí)速率為10-4時,準確率最高為98.55%,因此,選擇10-4作為模型訓(xùn)練時的學(xué)習(xí)速率。另外該模型為了進一步提高模型的準確率,減小模型訓(xùn)練過程中的損失值,在訓(xùn)練的過程中每次迭代都將學(xué)習(xí)速率乘以0.95,使學(xué)習(xí)速率能夠在訓(xùn)練過程中不斷衰減,更加平滑的向著全局最小值邁進,從而提高訓(xùn)練的準確率。
4.2.2 訓(xùn)練次數(shù)選擇
在實驗過程中,將準確率和損失值與訓(xùn)練次數(shù)的關(guān)系進行可視化,從關(guān)系圖中尋找訓(xùn)練次數(shù)的最優(yōu)解。本次實驗過程中對不同訓(xùn)練次數(shù)時模型的損失值與準確率進行統(tǒng)計,得到三者中之間的關(guān)系如圖8所示。
圖8 損失值和準確率與訓(xùn)練次數(shù)的關(guān)系
由圖8可以看出訓(xùn)練次數(shù)為450時,損失值減小幾乎為零,穩(wěn)定在一個很小的值附近,此時的準確率也在一個穩(wěn)定的值附近,繼續(xù)增加訓(xùn)練次數(shù),損失值不在減小,準確率亦不再上升,因此再繼續(xù)增加訓(xùn)練次數(shù)已經(jīng)沒有意義,又考慮到訓(xùn)練時間,所以本次實驗選擇訓(xùn)練次數(shù)為450。
4.2.3 SPP層數(shù)的選擇
實驗過程中觀察,采取不同空間金字塔池化層數(shù)和池化方式時準確率的變化,其變化情況如表3所示。
表3 不同空間金字塔層數(shù)時的識別準確率(%)
通過表3可以看出3層和4層的空間金字塔池識別精度較高,最高達到98.55%,繼續(xù)增加池化層數(shù)目,準確率并沒有提高。從表3中易看出最大池化略優(yōu)于平均池化,為減少網(wǎng)絡(luò)內(nèi)部計算量,縮短缺陷檢測時間,本文選擇3層金字塔池化層加上最大池化的方式,作為池化層來進行特征的提取。以污點為例,將卷積池化操作過程進行可視化,卷積特征如圖9所示。
圖9 卷積特征圖的可視化
在實驗的過程中發(fā)現(xiàn),ELM算法的隱含層節(jié)點個數(shù)與測試集的準確率之間有著一定的聯(lián)系,采集相關(guān)數(shù)據(jù)進行整理,得到兩者之間關(guān)系,如圖10所示。
圖10 準確率與隱含層節(jié)點數(shù)的關(guān)系
從圖10中可以清晰直觀地看出,準確率隨著節(jié)點數(shù)的增加在不斷地上升,當節(jié)點數(shù)為15時,測試集準確率為98.75%,節(jié)點數(shù)高于15時,準確率便不再發(fā)生變化,此時繼續(xù)增加節(jié)點數(shù)已經(jīng)沒有意義,因此選擇節(jié)點數(shù)為15較為合適。
將訓(xùn)練集輸入網(wǎng)絡(luò)模型進行訓(xùn)練,將訓(xùn)練次數(shù)設(shè)置為450次,至模型完全收斂,得到模型參數(shù),用于測試樣本特征的提取。本次測試過程中,為確認網(wǎng)絡(luò)的泛化能力,從數(shù)據(jù)集的每一類缺陷圖片中隨機選取800張圖片作為測試集,并將測試集通過混合矩陣進行隨機混合后,再輸入網(wǎng)絡(luò)模型中,其檢測結(jié)果,如表4所示。
表4 SCNN-ELM模型分類結(jié)果
將混合的測試集缺陷圖片輸入訓(xùn)練好的模型中,對特征圖進行提取,運用Softmax分類器對測試集進行分類識別,其結(jié)果如表5所示。
表5 SCNN-Softmax模型分類結(jié)果
此外本文將傳統(tǒng)的CNN網(wǎng)絡(luò),采用上述數(shù)據(jù)集進行訓(xùn)練,其過程與上述方法類似,在此不再贅述,該模型測試集分類識別結(jié)果,如表6所示。
表6 CNN(AlexNet)-Softmax模型分類結(jié)果
將三種模型分別對測試集進行測試,并將得到的測試結(jié)果進行整理,如圖11所示。
從圖11中可以看出,加入空間金字塔池化層的SCNN網(wǎng)絡(luò)相對于傳統(tǒng)的CNN網(wǎng)絡(luò),不管是單個缺陷種類檢測準確率,還是整體識別準確率都有所提高,這是因為SPP層的加入,使得網(wǎng)絡(luò)對輸入圖片的尺寸不再限制,能夠使得原始特征更好地保留下來,特征提取地更加完整。另外通過柱狀圖還可以看出,在SCNN網(wǎng)絡(luò)進行特征提取的基礎(chǔ)上,ELM分類器相對于Softmax分類器效果更好,識別準確率相對更高,另外ELM算法不需要迭代,而是隨機確定輸入權(quán)重,通過廣義逆矩陣求解輸出權(quán)重,因此要比Softmax分類用時更少。
圖11 三種模型的缺陷檢測結(jié)果對比
本文基于深度學(xué)習(xí)的思想,針對手機外殼缺陷檢測過程中的速度與準確率等問題,建立了SCNN-ELM模型,模型中SPP池化避免了全連接層對輸入圖片尺寸的限制,使得特征能夠更完整地保留,提高了缺陷檢測的精度。ELM采用非梯度優(yōu)化的坐標下降法,無需對目標函數(shù)求導(dǎo)就可以完成對物體的分類識別。在運行速度和分類精度上都具有一定優(yōu)勢,通過對比試驗進一步說明模型的可靠性。上述研究,為手機外殼生產(chǎn)過程中的缺陷檢測環(huán)節(jié)提供了可行性方法,也為工業(yè)智能制造打下了基礎(chǔ)。該模型泛化能力較強,如果出現(xiàn)新的缺陷類型,只需要在訓(xùn)練好的網(wǎng)絡(luò)結(jié)構(gòu)上,加入新的缺陷訓(xùn)練集,重新對網(wǎng)絡(luò)結(jié)構(gòu)進行微調(diào)即可。