巫明秀, 吳 謹*, 張 晨, 朱 磊
(1. 武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢 430081; 2. 冶金自動化與檢測技術(shù)教育部工程中心,湖北 武漢 430081)
棉花作為棉紡業(yè)的重要基礎(chǔ)原料,對促進國民經(jīng)濟和生產(chǎn)發(fā)展具有重大意義。但是棉花中易摻雜異于棉花的異性纖維(簡稱異纖),會影響棉紡織品的品質(zhì)和生產(chǎn)效率。因此,棉花異纖檢測系統(tǒng)作為棉花異纖清除機的重要組成部分,其檢測的準(zhǔn)確性和快速性會影響棉花分揀的質(zhì)量和效率。如何智能、高效且快速地檢測出棉花中的異纖是棉產(chǎn)品加工需要解決的重要問題。
近年來,國內(nèi)外關(guān)于棉花異纖檢測的研究取得了一些進展。Gamble[1]和Mustafic[2]通過熒光光譜法實現(xiàn)了棉花異纖的檢測。郟東耀和丁天懷[3]提出一種多波段光譜信息融合成像檢測方法實現(xiàn)棉花異纖的檢測。此類研究需要使用光譜儀,且增加新樣本時需要重新尋找合適的光譜范圍來進行檢測。杜玉紅[4]等人采用聚類統(tǒng)計RGB圖像信息的方法實現(xiàn)異纖的識別定位。師紅宇[5-6]等人構(gòu)建圖像的灰度和方向特征差分圖進行異纖的檢測。此類研究多基于傳統(tǒng)圖像處理方法進行異纖檢測。楊文柱[7-8]等人提出基于遺傳算法、支持向量機(SVM)的異纖檢測方法。
2014年R-CNN[9]的提出,使得基于深度學(xué)習(xí)的目標(biāo)檢測算法受到越來越多的關(guān)注。卷積神經(jīng)網(wǎng)絡(luò)特征提取方法的泛化性能優(yōu)于傳統(tǒng)人工特征提取方法,在醫(yī)學(xué)[10]、道路檢測[11]等不同場景的圖像分類和檢測任務(wù)中均得到了廣泛應(yīng)用。但是深層神經(jīng)網(wǎng)絡(luò)存在計算復(fù)雜度較高的問題。2017年Andrew G.Howard[12]提出了可移植于移動端或嵌入式設(shè)備的輕量級MobileNets網(wǎng)絡(luò)進行目標(biāo)分類,采用了深度可分離卷積,減少了計算量,檢測速度得到了明顯提升。
目前鮮有研究將深度學(xué)習(xí)網(wǎng)絡(luò)應(yīng)用于棉花異纖檢測,且研究的試驗數(shù)據(jù)多為專用實驗室測試平臺采集的幾十或百張圖像,對實際設(shè)備現(xiàn)場采集圖片的檢測效果尚需進一步驗證。為此,本文基于YOLOv3[13]多尺度特征融合網(wǎng)絡(luò)架構(gòu),引入MobileNets作為特征提取器,并提出一種分段式學(xué)習(xí)率來優(yōu)化訓(xùn)練網(wǎng)絡(luò),采集了5 099張現(xiàn)場實際棉花異纖圖像進行網(wǎng)絡(luò)訓(xùn)練,并使用圖像數(shù)據(jù)增廣方法擴充數(shù)據(jù)集,以實現(xiàn)棉花異纖的檢測。
目前網(wǎng)絡(luò)上尚無數(shù)量大且類型統(tǒng)一的棉花異纖公開數(shù)據(jù)集。本文的數(shù)據(jù)集使用棉花異纖清除機上的CCD攝像機進行圖像采集。獲取的棉流圖視頻數(shù)據(jù)如圖1所示,然后再以132×50分辨率進行抽幀裁剪。數(shù)據(jù)集共有5 099張圖像,棉花異纖種類分為4種:分別為塊狀異性纖維(死棉、廢紙、塑料薄膜、地膜、雞毛)、塊狀偽異纖(黃棉花、棉葉)、條狀異性纖維(丙綸絲、絨線),以及條狀偽異纖(棉秸稈)。4種棉花異纖圖像示例如圖2所示。
從數(shù)據(jù)集中選取80%的圖像作為訓(xùn)練集(4 079張),20%的圖像作為測試集(1 020張)。完成數(shù)據(jù)集的采集后,使用LabelImg軟件對原始數(shù)據(jù)集進行手工標(biāo)注,標(biāo)注情況如表1所示。
圖1 CCD攝像機拍攝棉流圖Fig.1 Cotton flow image taken by CCD camera
圖2 棉花異纖圖像示例Fig.2 Example of foreign fiber images
表1 訓(xùn)練集和測試集中各類別標(biāo)注框的個數(shù)
圖像增廣可以增加圖像樣本的多樣性,提高訓(xùn)練模型的泛化能力和魯棒性。本文采用了增強對比度、增加亮度、添加高斯噪聲、水平鏡像、裁剪、平移共6種方法進行圖像增廣,同時對標(biāo)注框的位置也進行相應(yīng)的操作。對棉花異纖圖像進行圖像增廣處理后的結(jié)果示意圖如圖3所示。
圖3 棉花異纖圖像增廣示例Fig.3 Example of foreign fiber image augmentation
YOLOv3是基于回歸的目標(biāo)檢測算法。該網(wǎng)絡(luò)不需要生成區(qū)域建議框,直接將圖像輸入至網(wǎng)絡(luò)中回歸檢測目標(biāo),反向傳播可以貫穿整個網(wǎng)絡(luò)。由于實驗數(shù)據(jù)集的圖像分辨率低,因此將YOLOv3原有的Darknet53特征提取網(wǎng)絡(luò)替換為結(jié)構(gòu)更簡單、運算復(fù)雜度更低的MobileNets網(wǎng)絡(luò),并取消了MobileNets分類網(wǎng)絡(luò)最后的池化層和全連接層。MobileNets網(wǎng)絡(luò)共27層,其結(jié)構(gòu)如表2所示,其中conv為標(biāo)準(zhǔn)卷積,conv dw為深度卷積。
表2 MobileNets結(jié)構(gòu)Tab.2 MobileNets structure
續(xù) 表
MobileNets網(wǎng)絡(luò)采用深度可分離卷積來減少計算量,將標(biāo)準(zhǔn)3×3卷積分兩步進行:(1)深度卷積,按照通道與3×3卷積核進行按位相乘計算。(2)使用1×1的點卷積進行標(biāo)準(zhǔn)卷積運算。標(biāo)準(zhǔn)卷積的計算量為DF×DF×DK×DK×M×N,而深度分離卷積的計算量為DK×DK×M×DF×DF+1×1×M×N×DF×DF。因此,通過深度可分離卷積,計算量將會下降(1/N+1/DK2)倍,其中DF為特征圖尺寸,DK為卷積核尺寸,M為輸入通道數(shù),N為輸出通道數(shù)。
目標(biāo)位置預(yù)測步驟如下:(1)重置圖像尺寸,將原始圖像劃分為13×13的網(wǎng)格。(2)利用劃分的網(wǎng)格回歸預(yù)測目標(biāo)的相對位置,每個網(wǎng)格預(yù)測3個錨點框。(3)采用非極大值抑制法(NMS)過濾掉置信度和IoU(Intersection over Union)較低的錨點框。對每個錨點框預(yù)測置信度、邊界框的中心坐標(biāo)(x,y)、寬w和高h,分別記為to,tx,ty,tw,th。則修正后的錨點框的中心坐標(biāo)、寬和高分別為:
(1)
式中,(cx,cy)表示錨點框中心所在單元格相對于圖像左上角在x軸和y軸上的偏移量;pw表示原始錨點框的寬度;ph表示原始錨點框的高度。
圖4 MobileNets-YOLOv3算法框圖 Fig.4 Schematic diagram of MobileNets-YOLOv3 algorithm
改進后的YOLOv3算法(簡稱MobileNets-YOLOv3)采用多尺度特征融合的方式,將28×28、14×14、7×7三種不同大小的特征圖進行拼接以檢測目標(biāo)。由于在下采樣過程中會丟失部分圖像信息,故結(jié)合多尺度特征圖進行檢測可以提高分類準(zhǔn)確率和位置預(yù)測準(zhǔn)確度。MobileNets-YOLOv3算法結(jié)構(gòu)如圖4所示。其中conv_block為標(biāo)準(zhǔn)卷積加上正則化和Leaky ReLu激活層組成的模塊。
MobileNets-YOLOv3算法使用交叉損失熵方法進行置信度損失(confLoss)、分類損失(probLoss)和邊界框坐標(biāo)損失(xyLoss)的計算,使用總方誤差法(Sum-Squared Error)進行邊界框?qū)捀邠p失(whLoss)的計算。各損失函數(shù)的計算公式如下:
(2)
(3)
(4)
(5)
本文使用TensorFlow深度學(xué)習(xí)框架實現(xiàn)MobileNets-YOLOv3算法。電腦配置為Inter(R) Core i7-8750H CPU @ 2.20 GHz處理器,16G運行內(nèi)存,256GB SSD+1T硬盤容量,6GB GTX 1060 GPU,操作系統(tǒng)為Windows 10。使用Pycharm 2018.2.3編譯器,并配置了CUDA 9.2.217,cuDNN 7.2.1進行GPU加速計算。采用TensorBoard可視化工具分析訓(xùn)練模型的性能。
棉花異纖檢測網(wǎng)絡(luò)的訓(xùn)練流程如圖5所示。
圖5 棉花異纖檢測訓(xùn)練流程Fig.5 Training process of cotton foreign fiber detection
首先對采集的棉花異纖數(shù)據(jù)集進行邊界框的手工標(biāo)注,將數(shù)據(jù)集按8∶2的比例分為訓(xùn)練集和測試集,然后對訓(xùn)練集進行圖像增廣操作,同時訓(xùn)練集的標(biāo)注框也進行相應(yīng)的操作,最后使用MobileNets-YOLOv3為訓(xùn)練網(wǎng)絡(luò),獲得檢測模型,并利用測試集進行檢測驗證。
設(shè)置合理的網(wǎng)絡(luò)超參數(shù)能更有效地訓(xùn)練網(wǎng)絡(luò)且能提高檢測結(jié)果的精確度,具體設(shè)置如表3所示。
表3 超參數(shù)表Tab.3 Hyper parameters
在網(wǎng)絡(luò)訓(xùn)練中,學(xué)習(xí)率通常采用指數(shù)衰減法進行網(wǎng)絡(luò)優(yōu)化。指數(shù)衰減法學(xué)習(xí)率(簡稱ED_LR)如式(7)所示,式中step表示當(dāng)前迭代步數(shù),初始學(xué)習(xí)率α0=1×10-4,衰減速度decay_steps=1 020。
(7)
圖6 分段式學(xué)習(xí)率變化曲線Fig.6 Curve of segmented learning rate
為了提高網(wǎng)絡(luò)訓(xùn)練性能,本文對學(xué)習(xí)率進行了改進,將學(xué)習(xí)率劃分為兩個階段(如圖6所示):第一個階段從0開始線性增加學(xué)習(xí)率,避免總損失函數(shù)出現(xiàn)無窮大的現(xiàn)象;第二個階段采用余弦函數(shù)非線性減小學(xué)習(xí)率,避免出現(xiàn)梯度震蕩,總損失函數(shù)不收斂的現(xiàn)象。改進后的分段式學(xué)習(xí)率(簡稱S_LR)如式(8)所示。設(shè)置最大學(xué)習(xí)率為1×10-4,學(xué)習(xí)率最后減小至1×10-6,式中,第一階段截止步數(shù)wsteps=5 099,總訓(xùn)練步數(shù)tsteps=203 950。
(8)
4.3.1 評價指標(biāo)
本文選取平均準(zhǔn)確率(mAP)和幀速率作為整個模型檢測效果的評價指標(biāo)。AP(Average Precision)指的是Precision- Recall曲線與橫軸包圍的面積,mAP為所有類的AP值取平均,計算公式如下:
(9)
(10)
(11)
(12)
4.3.2 試驗結(jié)果與分析
采用4.2節(jié)設(shè)置的參數(shù)進行棉花異纖檢測網(wǎng)絡(luò)的訓(xùn)練。訓(xùn)練模型的總損失函數(shù)約8萬步時開始收斂,第200輪時,置信度損失為2.5×10-4,邊界框的位置預(yù)測損失為0.103 3,分類損失為0.099 2,總損失為0.202 6。
選擇保存的第200輪訓(xùn)練模型分別對訓(xùn)練集和測試集進行檢測,得到的結(jié)果如圖7所示。由圖7(a)可知,訓(xùn)練集的預(yù)測準(zhǔn)確率達到90%以上,且塊狀偽異纖的誤檢率最低,表明了該訓(xùn)練模型能有效地學(xué)習(xí)訓(xùn)練集樣本數(shù)據(jù)的特征。由圖7(b)可知,測試集的預(yù)測準(zhǔn)確率平均為80%,對塊狀偽異纖的檢測效果最好,而條狀異纖的誤檢率最高,表明該檢測模型具有泛化性,對測試集的棉花異纖具有較好的檢測效果。
(a)訓(xùn)練集上的檢測結(jié)果比較(a) Comparison of the number of detected objects in train dataset
(b)測試集上的檢測結(jié)果比較(b) Comparison of the number of detected objects in test dataset圖7 數(shù)據(jù)集檢測目標(biāo)數(shù)對比Fig.7 Comparison of the number of detected objects in dataset
圖8給出了6張測試集圖像檢測結(jié)果圖。前4張均為預(yù)測正確的結(jié)果圖,且置信度均高于0.96。圖8(e)為誤檢的結(jié)果圖,將條狀偽異纖檢測為塊狀異纖(置信度為0.54)和條狀偽異纖(置信度為0.81),圖8(f)為測試集里唯一一張漏檢的結(jié)果圖。
圖8 檢測效果Fig.8 Detection results
4.3.3 圖像數(shù)據(jù)增廣對模型的影響
本文對數(shù)據(jù)增廣前、后訓(xùn)練的模型檢測結(jié)果進行了對比試驗。試驗結(jié)果如表4所示,其中策略A表示未對原圖像數(shù)據(jù)進行增廣處理,策略B表示對原始數(shù)據(jù)進行了增廣處理。由表4可知,經(jīng)過圖像增廣后訓(xùn)練的檢測模型mAP提高了3.6%,訓(xùn)練時長縮短了0.46 h。表5給出了不同訓(xùn)練集各類別異纖的AP值結(jié)果。由表5可知,訓(xùn)練集經(jīng)過圖像增廣后,塊狀異纖、塊狀偽異纖,條狀異纖和條狀偽異纖的AP值分別提高了1.35%,4.65%,4.72%和3.65%。
表4 不同訓(xùn)練集檢測指標(biāo)對比Tab.4 Comparison of results in different training sets
表5 不同訓(xùn)練集各個類別的AP值對比Tab.5 Comparison of AP in different training sets %
綜上,圖像增廣后,雖然訓(xùn)練模型時的收斂速度略有減慢,但是改善了模型的過擬合現(xiàn)象,提高了訓(xùn)練網(wǎng)絡(luò)的檢測準(zhǔn)確度,且加快了訓(xùn)練速度,是一種有效的數(shù)據(jù)處理方式。
4.3.4 學(xué)習(xí)率的改進對模型的影響
分別使用分段式學(xué)習(xí)率、指數(shù)衰減法學(xué)習(xí)率訓(xùn)練模型,檢測結(jié)果對比如表6所示。使用分段式學(xué)習(xí)率訓(xùn)練的模型在測試集上的mAP比指數(shù)衰減法高了5.64%,除了塊狀異纖的AP值略微下降了0.26%,塊狀偽異纖、條狀異纖和條狀偽異纖的AP值分別提高了8.98%、5.85%和7.99%。綜上,分段式學(xué)習(xí)率能夠加強訓(xùn)練模型的學(xué)習(xí)效果,提高檢測的泛化能力。
表6 不同學(xué)習(xí)率在測試集上的AP值對比Tab.6 Comparison of AP in different learning rate %
4.3.5 與改進前網(wǎng)絡(luò)檢測結(jié)果的對比
分別以MobileNets和Darknet53為特征提取網(wǎng)絡(luò)的檢測結(jié)果如表7、表8所示。訓(xùn)練集的檢測結(jié)果mAP比改進前提高了1.85%,測試集的檢測結(jié)果mAP比改進前提高了2.03%,且?guī)俾始涌熘?倍,訓(xùn)練時間縮短至1/4倍。MobileNets的網(wǎng)絡(luò)層數(shù)是Darknet53網(wǎng)絡(luò)的1/2倍,針對數(shù)據(jù)集尺寸較小的特點,減少特征提取次數(shù)有利于檢測結(jié)果精度的提高。同時,MobileNets采用的深度分離卷積減少了大量的計算量,因此幀速率有大幅度提高。實驗結(jié)果表明改進后的檢測模型具有更高的準(zhǔn)確度和更好的實時性,誤檢率和漏檢率明顯降低。
表7 改進網(wǎng)絡(luò)前后檢測結(jié)果對比
表8 改進網(wǎng)絡(luò)前后各個類別的AP對比
4.3.6 與其他檢測模型的對比
將本文算法與另外兩種卷積神經(jīng)網(wǎng)絡(luò)Faster R-CNN[14]、SSD_300[15]的檢測效果進行了對比,結(jié)果如表9所示。由表9可知,F(xiàn)aster R-CNN的檢測準(zhǔn)確率最高,比本文的MobileNets-YOLOv3算法高2%,但是其幀速率只有6.58 f·s-1,同時網(wǎng)絡(luò)訓(xùn)練時間最長,為116.63 h。主要原因是Faster R-CNN用區(qū)域生成網(wǎng)絡(luò)生成2 000多個可能包含目標(biāo)的候選區(qū)域,然后用CNN對每個候選區(qū)域進行分類,復(fù)雜的框架增加了網(wǎng)絡(luò)的計算量。Faster R-CNN無法滿足實時性的需求。而SSD_300無論在檢測精度和檢測速度上都差于本文算法,主要原因是SSD_300模型低級的特征圖存在特征提取不充分問題,檢測異纖這種小目標(biāo)誤檢率較高。
表9 不同檢測模型的對比Tab.9 Comparison of different detection models
綜上,本文提出的MobileNets-YOLOv3檢測模型相較于Faster R-CNN、SSD_300深度學(xué)習(xí)算法,在保證精度的前提下,訓(xùn)練時間大幅縮減,且?guī)俾蔬_到了66.67 f·s-1,可以滿足工業(yè)檢測對實時性的需求。
(1)提出了一種基于MobileNets-YOLOv3的棉花異性纖維檢測方法,以及一種分段式學(xué)習(xí)率優(yōu)化方式,并采用了圖像數(shù)據(jù)增廣的數(shù)據(jù)處理方式,對測試集的準(zhǔn)確率mAP為84.82%,幀速率達66.67 f·s-1。
(2)與YOLOv3算法相比,采用MobileNets作為特征提取網(wǎng)絡(luò)的改進YOLOv3檢測算法,mAP值提高了2.03%,幀速率加快至3倍,訓(xùn)練時間縮短至1/4倍,具有更高的識別準(zhǔn)確度,實時性優(yōu)勢明顯。
(3) 改進的分段式學(xué)習(xí)率優(yōu)化方法比常用的指數(shù)衰減法能更好地訓(xùn)練檢測網(wǎng)絡(luò),在測試集上的mAP值提高了5.64%。對原始圖像數(shù)據(jù)進行數(shù)據(jù)增廣后,訓(xùn)練模型在測試集上的mAP值提高了3.6%,可以改善過擬合現(xiàn)象。
(4)與卷積神經(jīng)網(wǎng)絡(luò)Faster R-CNN和SSD_300相比,本文算法總體性能最佳,既能保證較高的檢測精度,又能保證檢測效率,符合棉花異纖檢測準(zhǔn)確率及實時性需求。