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