魏智鋒 肖書浩 蔣國璋 伍世虔 程國飛
(1.武漢科技大學(xué)機(jī)械自動(dòng)化學(xué)院冶金裝備及其控制教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430081; 2.武昌首義學(xué)院機(jī)械與自動(dòng)化學(xué)院,湖北 武漢 430068; 3.中山火炬職業(yè)技術(shù)學(xué)院,廣東 中山 528436)
人造板表面質(zhì)量的好壞,直接影響后續(xù)產(chǎn)品的制造質(zhì)量。但在生產(chǎn)過程中,不可避免地會(huì)產(chǎn)生一些缺陷。這些缺陷會(huì)嚴(yán)重影響產(chǎn)品質(zhì)量,給企業(yè)造成經(jīng)濟(jì)損失。因此對(duì)人造板進(jìn)行缺陷檢測(cè)極為重要。目前大多采用人工檢測(cè)方法,而人造板連續(xù)壓機(jī)生產(chǎn)線高速運(yùn)行,板材流通量大,人工檢測(cè)工作強(qiáng)度大,易產(chǎn)生錯(cuò)檢、漏檢,檢測(cè)率低。因此,亟需提供一套檢測(cè)方法,以滿足人造板表面缺陷檢測(cè)實(shí)時(shí)性、高精度要求[1-3]。
目前已有一些基于經(jīng)典視覺數(shù)據(jù)的檢測(cè)方法,如基于剪枝決策樹的人造板表面缺陷識(shí)別方法[4]、基于區(qū)域篩選分割和隨機(jī)森林的人造板缺陷識(shí)別方法[5]、人造板表面缺陷檢測(cè)圖像自適應(yīng)快速閾值分割算法[6]、基于灰度共生矩陣和分層聚類的人造板表面圖像缺陷提取方法[7]和人造板在線同步圖像采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[8]。這些方法均需手工選取人造板表面某些關(guān)鍵參數(shù)或制作特征,存在泛化能力不高、特征層次較淺的缺點(diǎn)。深度學(xué)習(xí)[9]特別是卷積神經(jīng)網(wǎng)絡(luò)具有特征層次深、檢測(cè)準(zhǔn)確率高、魯棒性好等優(yōu)點(diǎn),已被逐步應(yīng)用到各領(lǐng)域的目標(biāo)檢測(cè)中[10]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)模型主要分為兩類:一類是基于區(qū)域建議方法的R-CNN模型[11]、Fast R-CNN模型[12]和Faster R-CNN模型[13]等;另一類是基于回歸方法的SSD[14]以及YOLO模型等[15]。SSD模型是檢測(cè)精度相對(duì)較高的網(wǎng)絡(luò)結(jié)構(gòu),運(yùn)行速度快,且能做到實(shí)時(shí)檢測(cè)。
本文提出一種基于改進(jìn)的SSD深度學(xué)習(xí)模型的人造板表面缺陷分類檢測(cè)方法,利用該模型可達(dá)到同時(shí)進(jìn)行多類多個(gè)缺陷檢測(cè)的目的,為人造板表面缺陷的實(shí)時(shí)檢測(cè)提供技術(shù)支持。
試驗(yàn)所用的人造板樣本均來自韶關(guān)工廠,所用人造板表面缺陷圖像訓(xùn)練數(shù)據(jù)均為試驗(yàn)中采集的數(shù)據(jù)。缺陷圖像是在自然光照條件下,在改裝的人造板檢測(cè)帶上采取俯視視角拍攝而得,其圖像分辨率為300×300像素。缺陷圖像包含5 種,分別為粗刨花、膠斑、砂痕、水印和雜物缺陷。圖1 為在實(shí)驗(yàn)室中搭建的人造板缺陷檢測(cè)系統(tǒng)。
圖1 人造板缺陷檢測(cè)系統(tǒng)Fig.1 Wood-based panels defect detection system
本文使用Labellmg對(duì)圖像樣本進(jìn)行標(biāo)定。為了提高訓(xùn)練效果,使模型的泛化性能得到提升,對(duì)數(shù)據(jù)集使用數(shù)據(jù)增強(qiáng)方法。鑒于更換不同方向和角度都不會(huì)改變圖像樣本特征,本文使用水平翻轉(zhuǎn)與垂直翻轉(zhuǎn)2 種數(shù)據(jù)增強(qiáng)方法。在標(biāo)注過程中總共對(duì)3 216 張圖片中的4 956 個(gè)目標(biāo)對(duì)象進(jìn)行標(biāo)注,并將所有圖片按照VOC2007數(shù)據(jù)格式進(jìn)行批量重命名,統(tǒng)一設(shè)置為jpg格式。在訓(xùn)練和測(cè)試之前,首先將3 216 張包含各類缺陷的圖像歸一化處理為300×300×3(300×300 表示圖像分辨率,3 表示有RGB 3 個(gè)顏色通道)尺寸。部分圖像如圖2 所示,具體的數(shù)據(jù)集制作流程如圖3 所示。
圖2 部分采集圖像Fig.2 Partially acquired image
圖3 數(shù)據(jù)集制作流程Fig.3 Data set production process
為了生成測(cè)試數(shù)據(jù)集,從帶注釋的圖像數(shù)據(jù)集中選取20%的圖像作為測(cè)試集。測(cè)試集包含需檢測(cè)的所有5 種缺陷圖像,且每種缺陷類型的圖像數(shù)量大致相同。對(duì)標(biāo)記完的圖片進(jìn)行微調(diào),將圖片信息和xml格式的文件分別保存并分成訓(xùn)練集和測(cè)試集。人造板表面缺陷圖像測(cè)試集、訓(xùn)練集的數(shù)量如表1 所示。
表1 訓(xùn)練集和測(cè)試集的數(shù)量Tab.1 Number of training sets and test sets
本試驗(yàn)基于64 位windows10 操作系統(tǒng): GPU型號(hào)為11GB GPU GeForce GTX 1080Ti,CPU型號(hào)為Core i7-7700k @ 4.2 GHz CPU,內(nèi)存為32 GB DDR4。軟硬件平臺(tái)通過python語言搭建,采用基于PyTorch深度學(xué)習(xí)框架,并使用CUDA 8.0 版本的計(jì)算框架。
SSD方法的原理是基于一個(gè)前向卷積網(wǎng)絡(luò),生成一組固定大小的包圍盒和盒子中的大量對(duì)象類實(shí)例,然后通過非最大抑制步驟生成最終檢測(cè)。使用VGG作為基礎(chǔ)網(wǎng)絡(luò),整體架構(gòu)如圖4 所示。
圖4 SSD框架Fig.4 Architecture of SSD
MobileNet網(wǎng)絡(luò)是為在有限硬件條件下提高深度學(xué)習(xí)的實(shí)時(shí)性能而開發(fā)[16]。該網(wǎng)絡(luò)可以在不犧牲精度的前提下減少參數(shù)個(gè)數(shù)。本文采用該輕量級(jí)網(wǎng)絡(luò)代替SSD中的VGGNet作為基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)。
圖5 顯示了MobileNet的基本卷積結(jié)構(gòu)。Conv_Dw_Pw是一個(gè)深度可分離的卷積結(jié)構(gòu)。它由深層卷積層(Depthwise Layer,Dw)和點(diǎn)卷積層(Pointwise layer,Pw)組成。Dw使用3×3 卷積核的深層卷積層,而Pw使用1×1 卷積核的普通卷積層。每一個(gè)卷積結(jié)果都由批量歸一化(Batch Normalization, BN)算法[15]和激活函數(shù)校正線性單元(ReLU)處理。BN算法通過設(shè)置兩個(gè)學(xué)習(xí)參數(shù)來調(diào)整數(shù)據(jù)分布,避免了梯度消失和復(fù)雜參數(shù)(如學(xué)習(xí)率和Dropout比例等)的設(shè)定。
圖5 MobileNet的基本卷積結(jié)構(gòu)Fig.5 MobileNet's basic convolution structure
MobileNet卷積的計(jì)算式為:
標(biāo)準(zhǔn)卷積的計(jì)算式為:
為滿足工業(yè)生產(chǎn)的速度要求,本文將二者結(jié)合起來,提高了SSD的計(jì)算速度。根據(jù)計(jì)算代價(jià),MobileNet只需要視覺幾何組16(VGG-16)的1/33 的參數(shù)就可以達(dá)到相同的分類精度。在訓(xùn)練過程中,每一層都存在一個(gè)批范數(shù)和ReLU非線性,提高了網(wǎng)絡(luò)的收斂速度和提取特征的穩(wěn)定性。另外,加入ReLU非線性,提高了特征映射在擬合結(jié)束后的表現(xiàn)能力。由于節(jié)省了卷積運(yùn)算,SSD的速度提高了約1.3 倍,精度損失僅為0.1%,使得網(wǎng)絡(luò)對(duì)實(shí)時(shí)缺陷檢測(cè)的響應(yīng)更加靈敏[19]。
GoogLeNet中使用的一個(gè)特殊結(jié)構(gòu)叫Inception,是一種在ImageNet 2014 年大型視覺識(shí)別挑戰(zhàn)(ILSVRC14)中設(shè)置分類和檢測(cè)的最新技術(shù)。該體系結(jié)構(gòu)的主要特點(diǎn)是提高了網(wǎng)絡(luò)內(nèi)部計(jì)算資源的利用率。它允許增加網(wǎng)絡(luò)的深度和寬度,同時(shí)保持計(jì)算預(yù)算不變。本文網(wǎng)絡(luò)的初始狀態(tài)如圖6 所示。輸入有4 個(gè)分支,分別與不同大小的濾波器進(jìn)行卷積或合用,最后在特征維上縫合在一起。這樣在多個(gè)尺度上同時(shí)進(jìn)行卷積,可以提取出不同尺度的特征。更多的特征豐富度意味著最終分類判斷更為準(zhǔn)確。在3×3 和5×5 卷積之前,使用1×1 卷積計(jì)算縮減[20]。
圖6 網(wǎng)絡(luò)中的InceptionFig.6 Inception in the network
SSD網(wǎng)絡(luò)將來自多個(gè)分辨率不同的功能圖預(yù)測(cè)結(jié)合起來,處理不同大小的對(duì)象。每個(gè)添加的特征層(或者來自基礎(chǔ)網(wǎng)絡(luò)的現(xiàn)有特征層)可以使用一組卷積濾波器,產(chǎn)生一組固定的檢測(cè)預(yù)測(cè)。為提高網(wǎng)絡(luò)速度,本研究用一組可分離的深度層代替了基本網(wǎng)絡(luò),但是這種結(jié)構(gòu)為了節(jié)省計(jì)算量犧牲了特征提取能力。對(duì)于工廠實(shí)際生產(chǎn)來說,檢測(cè)速度和檢測(cè)精度同等重要,因此可以選擇利用Inception替換來自基礎(chǔ)網(wǎng)絡(luò)的現(xiàn)有特征層,以在精度和速度之間保持平衡。
早期網(wǎng)絡(luò)是基于MobileNet和Inception中用于高質(zhì)量圖像分類的可分離深度卷積,稱為基礎(chǔ)網(wǎng)絡(luò)。本文將SSD中的基礎(chǔ)網(wǎng)絡(luò)構(gòu)造為3×3 的可分離卷積和初始?;揪W(wǎng)絡(luò)由MobileNet的前13 層組成,并用Inception替換Conv_ds_。這些層的大小逐漸減小,可用于多尺度預(yù)測(cè)。每個(gè)添加的特征層(或者來自基礎(chǔ)網(wǎng)絡(luò)的現(xiàn)有特征層)可以使用一組3×3 卷積濾波器產(chǎn)生一組固定的檢測(cè)預(yù)測(cè)[21]。在基礎(chǔ)網(wǎng)絡(luò)的端部增加5 個(gè)卷積特征層。該網(wǎng)絡(luò)將來自多個(gè)分辨率不同的特征映射的預(yù)測(cè)結(jié)合起來,以自然地處理不同大小的對(duì)象。整體網(wǎng)絡(luò)模型如圖7 所示。
圖7 整體網(wǎng)絡(luò)模型Fig.7 Overall network model
目前通常用平均精度均值(mAP)衡量檢測(cè)算法的精度,將平均精度(AP)作為每一類別的檢測(cè)精度的評(píng)價(jià)指標(biāo)。mAP、AP與準(zhǔn)確率(precision , P)、召回率(recall, R)有關(guān)[22],計(jì)算公式如下:
式中,TP代表正類,即被模型預(yù)測(cè)為正的正樣本數(shù)量;FP代表被錯(cuò)誤劃分到正樣本的數(shù)量,F(xiàn)N代表被錯(cuò)誤劃分到負(fù)樣本的數(shù)量。
對(duì)于目標(biāo)檢測(cè)每個(gè)類別都可以得到一條查準(zhǔn)率-召回率(P-R)曲線,曲線下的面積就是平均精度AP值,其積分公式為:
將所有類別的AP值求平均,即為mAP值,其公式為:
式中,M代表類別總數(shù),AP(k)代表第k類的AP值。
速度評(píng)估指標(biāo)采用模型檢測(cè)一幅圖所耗費(fèi)的平均時(shí)間,即平均檢測(cè)時(shí)間,單位為ms。
根據(jù)調(diào)參策略,對(duì)在ImageNet上預(yù)訓(xùn)練的模型參數(shù)進(jìn)行微調(diào)。在模型訓(xùn)練過程中,優(yōu)化器使用SGD(stochastic gradient descent)算法,初始學(xué)習(xí)率(learning rate)設(shè)置為0.001,動(dòng)量(momentum)設(shè)置為0.9,權(quán)重衰減(weight decay)為0.000 5,batch_size設(shè)置為32。新增的卷積網(wǎng)絡(luò)使用xavier方式初始化。設(shè)置迭代次數(shù)為80 000 次,正樣本閾值為0.4。
圖8 訓(xùn)練損失函數(shù)曲線 Fig.8 Training loss function curve
模型訓(xùn)練過程為:從VOC2007 數(shù)據(jù)集中選取訓(xùn)練集和測(cè)試集。對(duì)本文SSD-MobileNet模型應(yīng)用上面選取的5 類目標(biāo)數(shù)據(jù)進(jìn)行檢測(cè),通過訓(xùn)練調(diào)參,多輪迭代得到最優(yōu)結(jié)果。訓(xùn)練過程損失函數(shù)變化如圖8 所示,隨著迭代次數(shù)epoch增加,損失函數(shù)值Loss逐漸下降。在迭代次數(shù)達(dá)到15 000 次時(shí),Loss值基本趨于穩(wěn)定。
在相同的訓(xùn)練集和測(cè)試集條件下,對(duì)本文模型和現(xiàn)有SSD以及其他再訓(xùn)練模型的檢測(cè)結(jié)果進(jìn)行比較。用圖片傳輸速率(FPS)衡量現(xiàn)有硬件條件下不同模型處理數(shù)據(jù)的速度。
圖9 模型的部分檢測(cè)結(jié)果Fig.9 Partial test results of the model
模型的部分檢測(cè)結(jié)果如圖9 所示,其中邊框區(qū)域表示檢測(cè)缺陷的位置,并標(biāo)出了該缺陷的類型及其對(duì)應(yīng)的概率值。
用訓(xùn)練好的模型對(duì)新拍攝的197 張?zhí)幚砗蟪叽鐬?00×300 像素的照片進(jìn)行測(cè)試,具體測(cè)試結(jié)果如表2所示。該模型比初始SSD網(wǎng)絡(luò)模型在單個(gè)分類檢測(cè)上的AP高出2.93%~7.14%,mAP高出4.32%,檢測(cè)速度高出約1.2 倍。
表2 改進(jìn)網(wǎng)絡(luò)模型檢測(cè)結(jié)果對(duì)比Tab.2 Improved comparison of network model test results
如表3 所示,采用3 種不同的特征提取網(wǎng)絡(luò)ResNet18[23]、 VoVNet39[24]、ESPNetV2[25]與本文的網(wǎng)絡(luò)模型進(jìn)行分類效果對(duì)比試驗(yàn)。根據(jù)評(píng)價(jià)模型的準(zhǔn)確性與魯棒性可知,本文網(wǎng)絡(luò)模型的mAP相較其他特征提取網(wǎng)絡(luò)要高出2.25%~3.52%,更為精準(zhǔn);且在檢測(cè)速度上明顯高于VoVNet39 和ESPNetV2,比ResNet18 高出2 幀/s。說明本文網(wǎng)絡(luò)模型在實(shí)時(shí)檢測(cè)的精度和速度上都有明顯的優(yōu)勢(shì)。
表3 4 種特征提取網(wǎng)絡(luò)檢測(cè)效果對(duì)比Tab. 3 Comparison of four kinds of feature extraction network detection effects
本文提出一種基于Inception的MobileNet-SSD人造板表面缺陷檢測(cè)方法。使用附加到多個(gè)特征映射的Inception以提高網(wǎng)絡(luò)區(qū)分不同缺陷的能力。經(jīng)過對(duì)建立的表面缺陷數(shù)據(jù)集的訓(xùn)練,可實(shí)現(xiàn)人造板表面粗刨花、水印、砂痕、雜物、膠斑缺陷的分類檢測(cè)。本文網(wǎng)絡(luò)模型的mAP達(dá)到93.76%,檢測(cè)速度為75幀/s。通過與其他3種特征提取網(wǎng)絡(luò)進(jìn)行對(duì)比可知,檢測(cè)模型效果較為理想,可為人造板表面缺陷的實(shí)時(shí)檢測(cè)提供參考方案。