張家瑜,周迪斌,魏東亮,金秉文,解利軍
1(杭州師范大學(xué) 杭州國(guó)際服務(wù)工程學(xué)院,杭州 311121)
2(杭州利珀科技有限公司,杭州 311300)
3(浙江大學(xué) 航空航天學(xué)院,杭州 310027)
導(dǎo)光板是一種亞克力材質(zhì)的塑料板材,經(jīng)過(guò)花紋燙印后,被廣泛用于顯示器背光模組核心組件.對(duì)導(dǎo)光板標(biāo)記線的檢測(cè),則是驗(yàn)證當(dāng)前燙印工藝是否合格的一個(gè)重要標(biāo)準(zhǔn).使用數(shù)字圖像算法檢測(cè)導(dǎo)光板標(biāo)記線雖然可以有效地對(duì)圖片進(jìn)行檢測(cè),但是面對(duì)特征更加復(fù)雜的大面積氣泡、嚴(yán)重污染和無(wú)標(biāo)記線等情況無(wú)法得到滿意的結(jié)果.使用深度學(xué)習(xí)方法進(jìn)行工業(yè)檢測(cè),是學(xué)術(shù)界和工業(yè)界共同探索的課題.使用深度學(xué)習(xí)的方法對(duì)小數(shù)據(jù)集、低對(duì)比、高紋理、高相似的導(dǎo)光板標(biāo)圖片進(jìn)行缺陷檢測(cè),導(dǎo)光板缺陷板材示意圖如圖1所示.
圖1 缺陷板材示意圖
目前越來(lái)越多的中外學(xué)者致力于機(jī)器視覺(jué)的研究,但卻少有導(dǎo)光板檢測(cè)的成熟方法以及學(xué)術(shù)論文可被參考,通過(guò)借鑒液晶屏缺陷檢測(cè)的研究方法進(jìn)行研究.在數(shù)字圖像算法檢測(cè)方法中,文獻(xiàn)[1]中將圖像作為像素矩陣,利用奇異值分解(SVD)檢測(cè)缺陷,首先去除圖像背景,然后利用剩余奇異值重建圖像并顯示缺陷區(qū)域.但是這種方法中沒(méi)有提供消除各種缺陷類(lèi)型時(shí)必須的奇異值數(shù),以獲得良好的實(shí)驗(yàn)結(jié)果.文獻(xiàn)[2]中,利用奇異值對(duì)圖像進(jìn)行分類(lèi),并將缺陷圖片分為粗缺陷和細(xì)缺陷兩類(lèi),采用二維離散小波系數(shù)與區(qū)域增長(zhǎng)相結(jié)合的方法提取缺陷區(qū)域,該算法在時(shí)間復(fù)雜度上表現(xiàn)較為優(yōu)異,但是在應(yīng)對(duì)導(dǎo)光板復(fù)雜特征時(shí)表現(xiàn)欠佳.文獻(xiàn)[3]中擴(kuò)展了原霍夫變換的點(diǎn)到線的距離差,在非平穩(wěn)灰度梯度的缺陷檢測(cè)中得到了有效的應(yīng)用.然而不同的距離差值與相同的控制參數(shù)組合將會(huì)導(dǎo)致得到不同的結(jié)果,文中并未提到此自動(dòng)檢測(cè)方法是否需要人工干預(yù)來(lái)設(shè)置參數(shù).在神經(jīng)網(wǎng)絡(luò)的檢測(cè)算法中,文獻(xiàn)[4]中作者為Mura缺陷的定量評(píng)估設(shè)計(jì)了一個(gè)模糊神經(jīng)網(wǎng)絡(luò),然而對(duì)于低對(duì)比度的Mura缺陷,如何準(zhǔn)確地提取到缺陷特征是一個(gè)挑戰(zhàn).文獻(xiàn)[5]中作者為預(yù)測(cè)Gap Mura缺陷使用4種神經(jīng)網(wǎng)絡(luò),分別是BP神經(jīng)網(wǎng)絡(luò)、徑向基函數(shù)、學(xué)習(xí)向量量化1和學(xué)習(xí)向量量化2進(jìn)行訓(xùn)練,但是BP神經(jīng)網(wǎng)絡(luò)本身具有收斂速度慢、權(quán)值收斂局部極小化等問(wèn)題,并不能提供穩(wěn)定的解決方案.文獻(xiàn)[6]中作者針對(duì)Mura缺陷采用監(jiān)督學(xué)習(xí)網(wǎng)絡(luò),將觀察到的Mura缺陷標(biāo)記為特征,并被輸入到一個(gè)卷積神經(jīng)網(wǎng)絡(luò)提取所選擇的特征.文中所使用的網(wǎng)絡(luò)需要提前表及特征,過(guò)程繁雜,工作量大,且文中使用網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)答單一,捕獲特征較少,無(wú)法應(yīng)對(duì)復(fù)雜紋理的圖像分類(lèi)任務(wù).文獻(xiàn)[7]中作者使用神經(jīng)網(wǎng)絡(luò)光學(xué)模型和遺傳算法等方法優(yōu)化設(shè)計(jì)棱鏡型液晶導(dǎo)光板,以求在現(xiàn)有條件下獲得優(yōu)異的亮度均勻性.但是使用的網(wǎng)絡(luò)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練方面問(wèn)題多多,無(wú)法保證使用不同的數(shù)據(jù)集時(shí)的檢測(cè)效果.文獻(xiàn)[8]中作者融合STN和DenseNet卷積神經(jīng)網(wǎng)絡(luò)組成新型網(wǎng)絡(luò)結(jié)構(gòu)ST-DenseNet 用于樹(shù)種葉片數(shù)據(jù)集分類(lèi).文獻(xiàn)[9]中作者通過(guò)改進(jìn)AlexNet 完成遮擋獼猴桃目標(biāo)識(shí)別任務(wù).文獻(xiàn)[10]中作者使用VGG16分類(lèi)卷積神經(jīng)網(wǎng)絡(luò)對(duì)血液細(xì)胞進(jìn)行診斷分類(lèi)研究.在理論研究方面,人們?cè)谔剿鞣诸?lèi)卷積神經(jīng)網(wǎng)絡(luò)時(shí)注意到了注意力這一概念,例如:文獻(xiàn)[11]中簡(jiǎn)單的形狀檢測(cè),文獻(xiàn)[12-15]中基于數(shù)字的任務(wù),文獻(xiàn)[16]中的捉住的視覺(jué)控制游戲;文獻(xiàn)[17]中的正面人臉檢測(cè)等,都是面向分類(lèi)卷積神經(jīng)網(wǎng)絡(luò)中注意力機(jī)制的探索和研討.
上述分類(lèi)卷積神經(jīng)網(wǎng)絡(luò)的分類(lèi)效果雖然表現(xiàn)不錯(cuò),但是由于網(wǎng)絡(luò)參數(shù)較多,運(yùn)行時(shí)卷積神經(jīng)網(wǎng)絡(luò)的時(shí)間復(fù)雜度較大.因工業(yè)產(chǎn)品檢測(cè)需要考慮時(shí)間成本和資金成本,無(wú)法直接使用上述分類(lèi)網(wǎng)絡(luò)進(jìn)行分類(lèi)檢測(cè).由于目前用于工業(yè)檢測(cè)的卷積神經(jīng)網(wǎng)絡(luò)案例較少,查閱相關(guān)文獻(xiàn)后,選擇對(duì)現(xiàn)有卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),完成導(dǎo)光板分類(lèi)檢測(cè)算法.針對(duì)工業(yè)檢測(cè)需求,更改DenseNet網(wǎng)絡(luò)中的卷積結(jié)構(gòu),結(jié)合Bilinear-CNN算法提高卷積神經(jīng)網(wǎng)絡(luò)局部特征注意力.最終在900 張的測(cè)試圖片組成的測(cè)試數(shù)據(jù)集上達(dá)到了95.53%的準(zhǔn)確率,平均單張圖像檢測(cè)時(shí)間為40.1 ms.
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種特殊的人工神經(jīng)網(wǎng)絡(luò),其主要的特點(diǎn)是卷積運(yùn)算操作.卷積神經(jīng)網(wǎng)絡(luò)在進(jìn)行分類(lèi)或者回歸的時(shí)候,大致都分為兩個(gè)部分,他們分別是前饋運(yùn)算和反饋運(yùn)算.前饋運(yùn)算是產(chǎn)生運(yùn)算數(shù)據(jù)的過(guò)程,其主要通過(guò)卷積操作、匯合操作和非線性激活函數(shù)映射等一系列操作共同完成.反向傳播主要是計(jì)算預(yù)測(cè)值和真實(shí)值之間的誤差或損失,憑借反向傳播算法將損失逐層向前反饋,更新每一層的權(quán)重和偏置,通過(guò)周而復(fù)始的進(jìn)行前饋運(yùn)算和反饋運(yùn)算,最終得到期望的模型.
假設(shè)某網(wǎng)絡(luò)有L層,用X0表示整個(gè)網(wǎng)絡(luò)的輸入,XL?1表示第L-1層的輸出.這里的層并不是單指某一個(gè)操作,它可以指卷積操作、匯合操作、非線性映射或其他變化中的任意單獨(dú)的一個(gè)操作,也可以是不同形式變化的任意組合.這里使用Hl(·)作為第L層的非線性變化.
在CNN中,前一個(gè)卷積層的輸出是后一個(gè)卷積層的輸入.
在ResNet中加入了一個(gè)跳躍連接,它繞過(guò)了具有恒等函數(shù)的非線性轉(zhuǎn)換.第l層的輸出是l?1層的輸出與l?1層非線性變化后的結(jié)果相加.
在DenseNet中,與ResNet最大的不同則是在于,DenseNet 中的每個(gè)DenseBlock 將所有特征計(jì)算單元(BN-ReLU- Conv(1×1)- BN-ReLU-C ov(3×3))的結(jié)果以密集連接的方式沿某一維度進(jìn)行壓縮[18,19],代替了簡(jiǎn)單的求和.一個(gè)具有i層的DenseBlock結(jié)構(gòu)(結(jié)構(gòu)如圖2所示),其密集連接數(shù)目為i×(i+1)/2.這讓后續(xù)的層可以訪問(wèn)前面任何層所學(xué)習(xí)到的結(jié)果,DenseNet網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示.
DenseBlock中特征計(jì)算表達(dá)式如下所示:
公式中的[x0,x1,···,xl?1]分別代表在D enseBlock中的Hl(·)的結(jié)果張量.
其中,P(y=i|x)表示樣本x屬于第i類(lèi)的概率.
圖2 DenseBlock結(jié)構(gòu)示意圖
圖3 DenseNet網(wǎng)絡(luò)結(jié)構(gòu)
本文算法分上下兩步,第1步,基本權(quán)重訓(xùn)練:通過(guò)修改DenseNet網(wǎng)絡(luò),改進(jìn)DenseBlock 中特征計(jì)算單元的結(jié)構(gòu),減少卷積神經(jīng)網(wǎng)絡(luò)卷積層數(shù)量,避免過(guò)擬合,以及減少卷積神經(jīng)網(wǎng)絡(luò)參數(shù)數(shù)量.第2步,權(quán)重模型優(yōu)化:使用Bilinear-CNN分類(lèi)算法組成混合深度模型進(jìn)行遷移學(xué)習(xí),將使用第1步訓(xùn)練得到的權(quán)重遷移到第2步的Bilinear-CNN分類(lèi)網(wǎng)絡(luò)重新訓(xùn)練,通過(guò)捕捉特征通道之間的成對(duì)相關(guān)性,提高分類(lèi)準(zhǔn)確率,各步網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示.通過(guò)對(duì)實(shí)驗(yàn)的卷積神經(jīng)網(wǎng)絡(luò)算法的權(quán)重進(jìn)行分析發(fā)現(xiàn),本文所設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)算法僅需要極少的參數(shù)參與運(yùn)算.
與傳統(tǒng)的為提高識(shí)別精度,通過(guò)增加卷積層數(shù)量或使用金字塔特征融合的方法不同.卷積神經(jīng)網(wǎng)絡(luò)在工業(yè)檢測(cè)應(yīng)用的場(chǎng)景,主要運(yùn)行在工控機(jī)或者普通PC機(jī)上.因此設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)時(shí),首先考慮減少卷積神經(jīng)網(wǎng)絡(luò)卷積層,然后再考慮提高卷積神經(jīng)網(wǎng)絡(luò)分類(lèi)精度.
2.1.1 減少卷積神經(jīng)網(wǎng)絡(luò)參數(shù)
減少DenseBlock 中的卷積層數(shù),通過(guò)減少卷積操作次數(shù)和卷積數(shù)量,提高卷積神經(jīng)網(wǎng)絡(luò)運(yùn)行速度.減少卷積層數(shù)量可以在減少運(yùn)行時(shí)間的同時(shí)減少網(wǎng)絡(luò)參數(shù)數(shù)量.但是隨之而來(lái)的副作用,則是無(wú)法獲得足夠的特征,使得特征激活映射區(qū)域無(wú)法正確映射到目標(biāo)物體上.
減少卷積操作中的通道數(shù)量,隨著卷積操作中通道數(shù)量的增加,網(wǎng)絡(luò)參數(shù)數(shù)量也隨之增加,使得網(wǎng)絡(luò)在運(yùn)行時(shí)需要申請(qǐng)更多的顯存和內(nèi)存空間.減少卷積操作中的通道數(shù)量,可以有效的降低卷積神經(jīng)網(wǎng)絡(luò)的空間復(fù)雜度.
圖4 本文算法網(wǎng)絡(luò)結(jié)構(gòu)
在特征計(jì)算單元中加入DropOut算法,通過(guò)設(shè)置忽略特征檢測(cè)器的概率,使某些神經(jīng)元的激活值以一定的概率停止工作.DropOut的加入可以使當(dāng)前模型泛化性更強(qiáng),減少對(duì)某些局部特征的依賴,從而避免過(guò)擬合.
在每個(gè)DenseBlock后面加入多層感知器(MLP)[20],與Caffe 中MLP的實(shí)現(xiàn)方法不同,實(shí)驗(yàn)算法中的MLP算子中沒(méi)有使用3×3 大小的卷積核進(jìn)行卷積,僅使用兩層1×1 大小的卷積核進(jìn)行卷積,這樣做有助于在加深網(wǎng)絡(luò)卷積深度與增強(qiáng)網(wǎng)絡(luò)容量和復(fù)雜度的同時(shí),減少網(wǎng)絡(luò)參數(shù)數(shù)量[21].
2.1.2 加速損失函數(shù)收斂
在實(shí)驗(yàn)中,發(fā)現(xiàn)使用原DenseNet網(wǎng)絡(luò)結(jié)構(gòu)中的GAP結(jié)構(gòu),無(wú)法有效降低損失函數(shù)的損失值.在使用三層全連接層代替Global Average Pooling (GAP)之后,損失函數(shù)的損失值快速下降.對(duì)比前后結(jié)果,三層全連接層作為一個(gè)小型網(wǎng)絡(luò),相比于GAP算法其可以獲取更多的特征.使用GAP算法對(duì)高紋理、低對(duì)比的灰度圖分類(lèi)時(shí),會(huì)造成特征圖上的特征丟失.
GAP 對(duì)所接收到的每一個(gè)特征圖都進(jìn)行了極端降維,它將尺寸為h×w×d的張量縮小為1×1×d大小的張量.GAP激活區(qū)域與分類(lèi)結(jié)果之間的關(guān)系證明如下所示[22]:
設(shè)fk(x,y)為卷積層在輸入圖片(x,y)處得到的K個(gè)單元的映射.對(duì)于K個(gè)單元執(zhí)行全局平均池化的結(jié)果為:
假設(shè)當(dāng)前所屬類(lèi)別為C,令wck為K個(gè)單元所屬類(lèi)別C對(duì)應(yīng)的權(quán)重,其中wck代表了類(lèi)別C中的Fk的重要性.
使用三層全連接層可以有效地降低損失函數(shù)損失值,加速了梯度下降,促使網(wǎng)絡(luò)可以更加快速的擬合權(quán)重參數(shù),找到當(dāng)前網(wǎng)絡(luò)的局部最優(yōu)解.但是隨著三層全連接層的使用,導(dǎo)致卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量增加,所以在下一步的遷移學(xué)習(xí)過(guò)程中通過(guò)修改全連接層結(jié)構(gòu)的方法,降低網(wǎng)絡(luò)參數(shù)數(shù)量.
雙線性CNN(如圖5)由兩組CNN特征提取器組成,它使用兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)的輸出在圖像的每個(gè)位置進(jìn)行外積相乘,并在原圖各個(gè)位置進(jìn)行池化以獲得最終的圖像特征描述符.通過(guò)外積操作捕捉特征通道之間的成對(duì)相關(guān)性,對(duì)局部特征之間的交互進(jìn)行建模.由于雙線性CNN的兩個(gè)CNN的輸出是線性的,所以被叫做雙線性CNN[23].在雙線性CNN算法中,有并行子網(wǎng)絡(luò)A、B,網(wǎng)絡(luò)A的作用是對(duì)圖像中對(duì)象的特征部位進(jìn)行定位,而網(wǎng)絡(luò)B 則是用來(lái)對(duì)網(wǎng)絡(luò)A 檢測(cè)到的特征區(qū)域進(jìn)行特征提取,由這兩個(gè)網(wǎng)絡(luò)共同完成了圖像分類(lèi)中最重要的兩個(gè)任務(wù):區(qū)域檢測(cè)和特征提取[24].
雙線性CNN的全局圖像描述符,表示如下:
其中X=(x1,···,x|s|,xs∈Rc)是一組局部描述符,S是空間位置的集合(行和列的組合).其中局部描述符xs,通常使用Fisher vector、SIFT 等特征,也可以使用卷積神經(jīng)網(wǎng)絡(luò)的正向傳播提取特征.描述符B(X)是一個(gè)大小為c×c的矩陣,因描述符本質(zhì)上是一個(gè)向量,也可以將其稱為長(zhǎng)度為c2的向量.
使用池化函數(shù)P用于聚合圖片中所有區(qū)域的雙線性特征,其在實(shí)現(xiàn)的時(shí)候有兩種方法,一種聚合方法是將所有雙線性特征累加,另外一種是使用max-pooling進(jìn)行雙線性特征聚合.
累加聚合如下表示:
圖5 雙線性C NN結(jié)構(gòu)圖
目前雙線性CNN 有兩種實(shí)現(xiàn)方法,第1種:使用不同的兩組卷積神經(jīng)網(wǎng)絡(luò)作為特征提取器,第2種:使用同一組網(wǎng)絡(luò)獲取的最終特征描述符進(jìn)行運(yùn)算.通過(guò)對(duì)比研究,因考慮到算法最終的應(yīng)用環(huán)境,最終選擇第2種實(shí)現(xiàn)方式進(jìn)行實(shí)驗(yàn).
在第一步的實(shí)驗(yàn)訓(xùn)練中嘗試了不同的損失函數(shù),其中包括focal loss和交叉熵?fù)p失函數(shù)[24],在單目標(biāo)分類(lèi)實(shí)驗(yàn)中發(fā)現(xiàn),交叉熵?fù)p失函數(shù)的表現(xiàn)更為穩(wěn)定,最終選擇交叉熵?fù)p失函數(shù)進(jìn)行分類(lèi)訓(xùn)練.
交叉熵?fù)p失函數(shù)公式如下所示:
訓(xùn)練數(shù)據(jù)集共有4059 張圖片,驗(yàn)證和測(cè)試數(shù)據(jù)集各有896 張圖片.為應(yīng)對(duì)不同工廠的不同產(chǎn)品,旨在尋找簡(jiǎn)單易用的端到端的神經(jīng)網(wǎng)絡(luò),本文分類(lèi)卷積神經(jīng)網(wǎng)絡(luò)算法在訓(xùn)練時(shí)并未對(duì)圖片預(yù)處理.
實(shí)驗(yàn)電腦硬件配置如下:
(1)CPU:Intel Core(TM)i5-4590;四核四線程;主頻:3.3 GHz.
(2)實(shí)驗(yàn)訓(xùn)練用GPU:NVIDIA Titan V;顯存:12 GB;內(nèi)存:250 GB.
(3)實(shí)驗(yàn)測(cè)試用GPU:NVIDIA GTX 1060;顯存:6 GB.
(4)本機(jī)內(nèi)存:DDR3:1600 MHz;內(nèi)存:16 GB.
實(shí)驗(yàn)軟件環(huán)境如下:
(1)操作系統(tǒng):Windows 10,ubuntu 16.04.
(2)編程語(yǔ)言:Python.
(3)第三方庫(kù):Pillow,numpy,matplotlib,tensorflow,keras,scikit-image.
在第1步的訓(xùn)練中,將訓(xùn)練集輸入到網(wǎng)絡(luò)中進(jìn)行模型訓(xùn)練,訓(xùn)練過(guò)程所涉及的參數(shù)有batch_size大小、學(xué)習(xí)率、激活函數(shù)、迭代次數(shù)和優(yōu)化函數(shù)(訓(xùn)練參數(shù)設(shè)置如表1所示).
表1 參數(shù)設(shè)置
使用實(shí)驗(yàn)網(wǎng)絡(luò)模型對(duì)同一個(gè)數(shù)據(jù)集、在相同的訓(xùn)練參數(shù)下,進(jìn)行多次訓(xùn)練后發(fā)現(xiàn),每次訓(xùn)練后得到的準(zhǔn)確率在92%左右震蕩.從側(cè)面驗(yàn)證,通過(guò)改進(jìn)所得到的卷積神經(jīng)網(wǎng)絡(luò)具有較好的魯棒性(loss 變化圖如圖6所示,本文使用留一法數(shù)據(jù)進(jìn)行展示,用以凸顯卷積神經(jīng)網(wǎng)絡(luò)擬合效果).
圖6 loss變化圖
使用遷移學(xué)習(xí)技術(shù)對(duì)雙線性 CNN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過(guò)修改第一步中的DenseNet網(wǎng)絡(luò)結(jié)構(gòu),使用雙線性CNN算法替換三層全連接層,在減少網(wǎng)絡(luò)參數(shù)的同時(shí)提高了分類(lèi)準(zhǔn)確率.在第二步訓(xùn)練雙線性CNN時(shí)依然采用交叉熵?fù)p失函數(shù)作為圖像分類(lèi)訓(xùn)練的損失函數(shù)(如圖7).
將訓(xùn)練集輸入到網(wǎng)絡(luò)中進(jìn)行模型訓(xùn)練,訓(xùn)練過(guò)程所涉及的參數(shù)有batch_size、學(xué)習(xí)率、激活函數(shù)、迭代次數(shù)和優(yōu)化函數(shù)等(如表2).
圖7 雙線性CNN loss 變化圖
實(shí)驗(yàn)所用訓(xùn)練數(shù)據(jù)集(如圖8)由3類(lèi)缺陷圖片組成,分別是無(wú)線、有線和氣泡,每類(lèi)有1353 張圖片,共計(jì)4059 張訓(xùn)練圖片,圖片大小為448×448×1的灰度圖片.測(cè)試數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集各有896 張圖片,在上述數(shù)據(jù)集中無(wú)線、有線和氣泡的缺陷圖片各有300 張測(cè)試圖片,圖片大小為448×448×1的灰度圖片.使用實(shí)驗(yàn)算法在測(cè)試數(shù)據(jù)集上測(cè)試,最終得到分類(lèi)準(zhǔn)確率為95.53%.
經(jīng)過(guò)對(duì)測(cè)試數(shù)據(jù)集圖片內(nèi)容逐張圖片驗(yàn)證發(fā)現(xiàn),誤判主要于有線板材被嚴(yán)重污染的情況下出現(xiàn).在對(duì)氣泡和無(wú)線板材進(jìn)行逐張圖片驗(yàn)證時(shí)發(fā)現(xiàn),這兩類(lèi)圖片的檢測(cè)準(zhǔn)確率為100%.根據(jù)工廠質(zhì)量品控標(biāo)準(zhǔn),可以將合格的檢測(cè)為不合格的,但是不能存在不合格檢測(cè)為合格的情況.所以無(wú)線板材的準(zhǔn)確檢測(cè)是保障導(dǎo)光板質(zhì)量的最低標(biāo)準(zhǔn),實(shí)驗(yàn)算法基本實(shí)現(xiàn)了導(dǎo)光板標(biāo)記線的檢測(cè)要求.實(shí)驗(yàn)網(wǎng)絡(luò)分類(lèi)結(jié)果如圖9.
使用VGG-16、V2-ResNet-101、AlexNet與本文網(wǎng)絡(luò)相對(duì)比,分類(lèi)結(jié)果如表3所示.
根據(jù)表3數(shù)據(jù)所示,DesneNet-BCNN與其他主流網(wǎng)絡(luò)對(duì)比結(jié)果如下.
圖8 數(shù)據(jù)集示意圖
表3 分類(lèi)網(wǎng)絡(luò)結(jié)果對(duì)比
圖9 實(shí)驗(yàn)網(wǎng)絡(luò)分類(lèi)結(jié)果示意圖
在網(wǎng)絡(luò)參數(shù)方面,較V2-ResNet-101卷積神經(jīng)網(wǎng)絡(luò)參數(shù)減少了97.2%,較AlexNet卷積神經(jīng)網(wǎng)絡(luò)參數(shù)減少了97.5%.
在準(zhǔn)確率方面,較V2-ResNet-101卷積神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率提升了0.44%,較AlexNet卷積神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率提升了3.34%.
在平均單張圖片檢測(cè)時(shí)間方面,較V2-ResNet-101卷積神經(jīng)網(wǎng)絡(luò)快了13.3 ms,較AlexNet卷積神經(jīng)網(wǎng)絡(luò)慢了29.5 ms.
本文卷積神經(jīng)網(wǎng)絡(luò)主要分兩步完成,第1步:通過(guò)修改DenseNet網(wǎng)絡(luò)結(jié)構(gòu)降低參數(shù)數(shù)量、提高檢測(cè)速度、減少圖片檢測(cè)所用時(shí)間以及避免訓(xùn)練過(guò)擬合.第2步:使用遷移學(xué)習(xí)方法,將第1步訓(xùn)練所的權(quán)重遷移到雙線性CNN進(jìn)行進(jìn)一步訓(xùn)練,通過(guò)外積操作捕捉特征通道之間的成對(duì)相關(guān)性,提高分類(lèi)準(zhǔn)確率.使用本文算法在低對(duì)比、高紋理、高相似的灰度圖片小數(shù)據(jù)集上進(jìn)行分類(lèi),最終取得了95.53%的準(zhǔn)確率.相比于V2-ResNet-101網(wǎng)絡(luò)結(jié)構(gòu),準(zhǔn)確率提升了0.44%,參數(shù)減少了97.2%,平均單張圖像檢測(cè)時(shí)間大約減少25%.因?yàn)槭褂脵C(jī)器視覺(jué)的方法對(duì)導(dǎo)光板缺陷進(jìn)行檢測(cè)的相關(guān)文獻(xiàn)較少,使用深度學(xué)習(xí)方法的文獻(xiàn)更加稀少.因此現(xiàn)有的導(dǎo)光板檢測(cè)方面的文獻(xiàn),無(wú)法提供有價(jià)值的參考和對(duì)比.由于工場(chǎng)計(jì)件生產(chǎn)規(guī)則限制,無(wú)法在工廠生產(chǎn)線上進(jìn)行長(zhǎng)時(shí)間的、大負(fù)荷的、連續(xù)的算法魯棒性和穩(wěn)定性評(píng)測(cè).但是在與傳統(tǒng)算法搭配進(jìn)行缺陷檢測(cè)的過(guò)程中,就目前的算法檢測(cè)結(jié)果來(lái)看,已基本滿足工業(yè)生產(chǎn)的缺陷檢測(cè)需要.下一步,在面對(duì)減少缺陷檢測(cè)時(shí)間、提高缺陷檢測(cè)準(zhǔn)確率、保證算法魯棒性和穩(wěn)定性等方面,需要更深入的研究和分析.
計(jì)算機(jī)系統(tǒng)應(yīng)用2020年7期