晏 琳 景軍鋒 李鵬飛
(西安工程大學(xué),陜西西安,710048)
坯布疵點(diǎn)的產(chǎn)生有多種原因,如織機(jī)性能不良、人為操作不當(dāng)或布匹在運(yùn)輸中被意外污染等[1]。目前,坯布疵點(diǎn)的檢測(cè)仍基本依靠人工完成,但人工檢測(cè)方法存在效率低、誤檢率高、漏檢率高等缺點(diǎn)。傳統(tǒng)的織物檢測(cè)算法僅針對(duì)特定的疵點(diǎn)檢測(cè)效果較好,但檢測(cè)疵點(diǎn)的種類有限,無法滿足織物疵點(diǎn)種類較多的情況[2]。
2012年,深度卷積神經(jīng)網(wǎng)絡(luò)首次出現(xiàn),由Hinton提出的AlexNet[3]取得當(dāng)年ImageNet[4]圖像分類競(jìng)賽冠軍。隨后,深度神經(jīng)網(wǎng)絡(luò)得到長(zhǎng)足發(fā)展,提出如GooleNet[5]、VGG[6]、深度殘差網(wǎng)絡(luò)(ResNet)[7-8]等經(jīng)典神經(jīng)網(wǎng)絡(luò)。其中VGG采用3×3的濾波器,增加了網(wǎng)絡(luò)結(jié)構(gòu)的深度,促進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)研究進(jìn)程;ResNet利用殘差學(xué)習(xí),解決了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)梯度消失的問題,真正意義上實(shí)現(xiàn)了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。隨著深度學(xué)習(xí)算法的不斷發(fā)展,近年來在目標(biāo)檢測(cè)領(lǐng)域,提出了基于區(qū)域建議的目標(biāo)檢測(cè)與識(shí)別算法。2014年發(fā)表的RCNN算法[9],首次采用目標(biāo)候選區(qū)域和深度學(xué)習(xí)相結(jié)合的方法,將檢測(cè)任務(wù)轉(zhuǎn)化為分類任務(wù)。此后,陸續(xù)提出了優(yōu)化后的Fast RCNN算法和Faster RCNN算法[10],在該領(lǐng)域進(jìn)行了廣泛的應(yīng)用。本文對(duì)Faster RCNN算法在坯布疵點(diǎn)檢測(cè)中的應(yīng)用進(jìn)行了研究。
基于區(qū)域選擇的目標(biāo)檢測(cè)算法是現(xiàn)階段較成熟的目標(biāo)檢測(cè)與識(shí)別框架,它將檢測(cè)過程簡(jiǎn)化為分類任務(wù),并利用深度學(xué)習(xí)方法提升檢測(cè)精度,其中具有代表性的算法為RCNN、Fast RCNN以及Faster RCNN。RCNN利用Selective Search提取目標(biāo)候選區(qū)域,在候選區(qū)域中通過CNN網(wǎng)絡(luò)提取特征,并訓(xùn)練SVM分類器,對(duì)特征分類[11]。其改進(jìn)模型Fast RCNN提出了ROI池化(Region of Interest Pooling)層并采用Softmax預(yù)測(cè)區(qū)域類別,提高了模型的檢測(cè)精度及效率。為了進(jìn)一步提高檢測(cè)速率,在Fast RCNN基礎(chǔ)上提出了Faster RCNN算法。
Faster RCNN算法包含兩個(gè)卷積神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)如圖1所示。Faster RCNN由區(qū)域生成網(wǎng)絡(luò)(Region Proposal Networks,RPN)和Fast RCNN兩部分構(gòu)成,RPN用于生成目標(biāo)可能存在的候選區(qū)域;Fast RCNN實(shí)現(xiàn)對(duì)候選區(qū)域的分類,并且進(jìn)行邊界回歸。這兩部分共享一個(gè)提取特征的卷積神經(jīng)網(wǎng)絡(luò),使得目標(biāo)候選區(qū)域的檢測(cè)時(shí)間幾乎為零,大幅提高了目標(biāo)檢測(cè)的速度。
圖1 Faster RCNN結(jié)構(gòu)示意圖
RPN是一個(gè)全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Network, FCN)[12],其以原始圖像所提取的任意大小特征圖作為輸入,輸出目標(biāo)候選框的集合。RPN采用一個(gè)n×n的滑動(dòng)窗口在共享卷積網(wǎng)絡(luò)的輸出特征圖上進(jìn)行滑窗選擇,針對(duì)每個(gè)窗口,同時(shí)預(yù)測(cè)k個(gè)目標(biāo)候選區(qū),即有k個(gè)相對(duì)應(yīng)的被稱為錨(Anchor)的初始區(qū)域。對(duì)于一張大小為w×h的卷積特征圖,則可得到w×h×k個(gè)錨。每個(gè)窗口被映射為一個(gè)低維向量,該特征向量輸出給邊框分類網(wǎng)絡(luò)和邊框回歸網(wǎng)絡(luò)[13]。使用分類網(wǎng)絡(luò)得到錨屬于前景或背景的概率,并使用邊框回歸網(wǎng)絡(luò)修正錨的邊界框。RPN的訓(xùn)練過程采用端到端(End-to-end)的方式,其損失函數(shù)通過平衡因子將分類損失和回歸損失聯(lián)合,利用該損失函數(shù)訓(xùn)練好的RPN能夠得到目標(biāo)候選區(qū)域,這些候選區(qū)域再在Fast RCNN部分進(jìn)一步檢測(cè)。
Fast RCNN檢測(cè)網(wǎng)絡(luò)。目標(biāo)候選區(qū)域的特征經(jīng)過Fast RCNN中的ROI池化層后,輸出固定長(zhǎng)度的特征向量。這些特征向量通過全連接層分別輸入Softmax分類器和邊框回歸網(wǎng)絡(luò)中以預(yù)測(cè)區(qū)域類別并修正邊框。為了精調(diào)整個(gè)網(wǎng)絡(luò),F(xiàn)aster RCNN采用文獻(xiàn)[11]中提出的交替訓(xùn)練法訓(xùn)練網(wǎng)絡(luò)。RPN與Fast RCNN共享相同的特征提取層,構(gòu)成統(tǒng)一的網(wǎng)絡(luò)。
試驗(yàn)使用的坯布疵點(diǎn)數(shù)據(jù)來自于現(xiàn)場(chǎng)采集,整個(gè)數(shù)據(jù)集共包含2 000張圖片。圖片尺寸均為256 pixel×256 pixel,選擇其中的1 320張圖片作為訓(xùn)練集及驗(yàn)證集,剩余的680張圖片作為測(cè)試集。在人工標(biāo)注疵點(diǎn)的邊框后,將數(shù)據(jù)集轉(zhuǎn)化為VOC2007的格式進(jìn)行訓(xùn)練。
試驗(yàn)硬件平臺(tái)操作系統(tǒng)Ubuntu 16.04 LTS 64位,CPU Intel(R) Core(TM) i5-8400 2.80GHz,GPU NVIDIA GeForce GTX 1080 Ti,內(nèi)存16 G,硬盤1 TB,整個(gè)試驗(yàn)均基于深度學(xué)習(xí)框架TensorFlow進(jìn)行,編程語言為Python,通過多次試驗(yàn)優(yōu)選得到結(jié)果。
為評(píng)估Faster RCNN在坯布疵點(diǎn)檢測(cè)中的有效性,采用平均準(zhǔn)確率均值(mean Average Precison,mAP)來作為衡量模型性能的指標(biāo)。mAP是指所有類別目標(biāo)的平均準(zhǔn)確率(Average Precision,AP)的均值,它可以作為目標(biāo)檢測(cè)的實(shí)際度量標(biāo)準(zhǔn)。
由于ImageNet數(shù)據(jù)集的訓(xùn)練圖像種類眾多,用其訓(xùn)練的模型具有較好的特征表達(dá)能力及泛化能力,所以在試驗(yàn)中,將ImageNet分類預(yù)訓(xùn)練后得到的VGG16、ResNet101模型分別用于進(jìn)行Faster RCNN共享卷積層的初始化以得到初始參數(shù)及權(quán)重。將坯布疵點(diǎn)數(shù)據(jù)集放入整個(gè)模型中進(jìn)行訓(xùn)練。在不同的特征提取網(wǎng)絡(luò)下,隨著迭代次數(shù)的變化,其mAP值見表1。
表1不同特征提取網(wǎng)絡(luò)下的檢測(cè)效果
迭代次數(shù)/次mAP/%Faster RCNN+VGG16Faster RCNN+ResNet10110 00030 00050 00070 00091.7294.9197.1597.2693.9996.9999.4999.44
由表1得出,ResNet101在測(cè)試集中,相較于原始的VGG16網(wǎng)絡(luò),mAP值提高了2.3%左右,從而證明ResNet101在坯布疵點(diǎn)檢測(cè)中的性能優(yōu)于VGG16。這是由于ResNet101引入了殘差學(xué)習(xí)模塊,殘差學(xué)習(xí)將神經(jīng)網(wǎng)絡(luò)的輸出由H(x)變?yōu)镕(x)=H(x)-x,減弱了因?yàn)榫矸e層數(shù)過多而造成的梯度消失現(xiàn)象,提高了檢測(cè)的準(zhǔn)確率。因此在坯布疵點(diǎn)檢測(cè)的過程中,選擇采用Faster RCNN與 ResNet101相結(jié)合的方法。
試驗(yàn)過程中的一些參數(shù),例如非極大值抑制(Non-maximum Suppression,nms)前后區(qū)域保留個(gè)數(shù)、批處理尺寸、最大交并比(Intersection over Union,IoU),這些參數(shù)對(duì)試驗(yàn)結(jié)果均有影響,因此,進(jìn)行了多次對(duì)比試驗(yàn)以確定最優(yōu)參數(shù)配置。
nms在Faster RCNN+ResNet101模型中的作用是去除具有較大重疊區(qū)域的錨。令迭代次數(shù)為50 000次,測(cè)試不同的nms前后候選區(qū)域個(gè)數(shù)對(duì)mAP值的影響,結(jié)果見表2。由表2得出,隨著數(shù)量的減少,模型保留的錨數(shù)也隨之減少,導(dǎo)致檢測(cè)結(jié)果的mAP值下降。因此,選擇相對(duì)較高的nms候選區(qū)域個(gè)數(shù)能夠得到較好的檢測(cè)結(jié)果。
表2不同nms個(gè)數(shù)對(duì)mAP影響
迭代次數(shù)/次nms前候選區(qū)域/個(gè)nms后候選區(qū)域/個(gè)mAP/%50 00050 00050 00050 00012 0009 0006 0003 0002 0001 7001 4001 10099.4999.3198.8797.10
在實(shí)踐中,批尺寸的個(gè)數(shù)決定了單次訓(xùn)練樣本的數(shù)目,其數(shù)值的選取會(huì)對(duì)訓(xùn)練過程中的梯度下降產(chǎn)生影響。試驗(yàn)分別測(cè)試了采用不同批尺寸時(shí),模型的mAP值,結(jié)果見表3。通過分析表3得出,在合理的范圍內(nèi),批尺寸越大,相應(yīng)的mAP值會(huì)提高,同時(shí)每20次迭代所需要的訓(xùn)練時(shí)間也會(huì)增加??紤]到小的批尺寸需要小的學(xué)習(xí)速率以保持穩(wěn)定性,所以,在此選擇較大的批尺寸來進(jìn)行模型訓(xùn)練。
表3不同批尺寸對(duì)mAP影響
迭代次數(shù)/次區(qū)域提議階段批尺寸/個(gè)檢測(cè)階段批尺寸/個(gè)mAP/%訓(xùn)練時(shí)間/ms50 00050 00050 00050 000256128643225664321699.5898.4797.1294.71366227202185
在RPN部分的訓(xùn)練過程中,得到的錨根據(jù)IoU被分為兩類,在初始模型中,當(dāng)IoU值大于等于0.7時(shí)被分為前景;當(dāng)IoU值小于0.3時(shí)被分為背景。IoU取值對(duì)loss曲線的影響如圖2所示。由圖2得出,調(diào)整IoU的值可以改變loss曲線的收斂效果,其中當(dāng)IoU值分別取0.9和0.1時(shí)效果最好。這是由于白坯布的背景簡(jiǎn)單,適當(dāng)?shù)卦黾忧熬暗腎oU值并降低背景IoU值可以選擇留下較優(yōu)的錨。
(a)前0.7,后0.3
(b)前0.7,后0.1
(c)前0.9,后0.1
圖2IoU取值對(duì)loss曲線的影響
試驗(yàn)中,采用調(diào)優(yōu)的參數(shù)配置后,F(xiàn)aster RCNN+ResNet101模型得到的部分檢測(cè)結(jié)果如圖3所示。在圖3中,包圍框區(qū)域代表坯布疵點(diǎn)存在的位置,包圍框的左上方顯示了該模型對(duì)于方框區(qū)域目標(biāo)的分類類別及其類別概率值。圖3(a)中污漬的概率值為1.000,圖3(b)中長(zhǎng)斷緯的概率值為0.988,短斷緯的概率值為0.987;圖3(c)中線條的概率值為1.000,圖3(d)中褶皺的概率值為0.993。
(a)污漬
(b)斷緯
(c)線條
(d)褶皺
圖3 Faster RCNN+ResNet101模型的部分檢測(cè)結(jié)果圖
研究采用Faster RCNN分別與不同特征提取網(wǎng)絡(luò)相結(jié)合的方法進(jìn)行坯布疵點(diǎn)檢測(cè),可檢測(cè)多種不同類型的坯布疵點(diǎn)。通過試驗(yàn)驗(yàn)證,ResNet101相較于VGG16能夠取得更好的檢測(cè)效果。試驗(yàn)表明,F(xiàn)aster RCNN與ResNet101相結(jié)合的方法可以應(yīng)用于檢測(cè)坯布的疵點(diǎn),該方法能夠自動(dòng)提取疵點(diǎn)特征,經(jīng)過多次合理的模型參數(shù)優(yōu)化后,檢測(cè)準(zhǔn)確率高達(dá)99.6%。但是,由于ResNet101的層數(shù)較深,導(dǎo)致對(duì)一張圖像的檢測(cè)時(shí)間穩(wěn)定在130 ms左右,其實(shí)時(shí)性還有待提高。在未來的研究中,會(huì)通過優(yōu)化特征提取層的卷積神經(jīng)網(wǎng)絡(luò)以進(jìn)一步提升模型的實(shí)時(shí)性,在保證檢測(cè)效果的前提下,更快速地進(jìn)行檢測(cè)。