楊建偉,涂興子,梅峰漳,李亞寧,范鑫杰
(1.平頂山天安煤業(yè)股份有限公司煤礦機電運輸,河南 平頂山 467000;2.山西戴德測控技術(shù)有限公司研發(fā)部,山西 太原 030000)
芳綸帶在煤炭、運輸和工礦等能源行業(yè)以及物流行業(yè)中廣泛應用。在煤礦生產(chǎn)和運輸過程中,通過芳綸帶傳送,可以有效減少人力和物力,從而節(jié)省時間,使生產(chǎn)利益最大化。在使用過程中,由于異物損傷、生產(chǎn)磨損和煤塊砸落等原因,皮帶會出現(xiàn)損傷、劃傷等問題。如果沒有及時預防和解決,會產(chǎn)生經(jīng)濟損失和人員傷亡。針對輸送帶的損傷檢測,國內(nèi)外研究者做了很多相關(guān)的研究。國內(nèi)方面:劉尹霞等[1]通過圖像增強,增加了6個方向的模板,優(yōu)化了傳統(tǒng)的Sobel圖像邊緣提取算法,準確定位到皮帶邊緣損傷部位;劉波[2]運用X光的穿透特性,采集到鋼絲繩芯的傳送帶圖像,運用紋理濾波和LBP算法使檢測精度可以達到90%。國外方面:KIRJANOW-BLAZEJ等[3]以DiagBelt移動系統(tǒng)采集的數(shù)據(jù)為基礎,對鋼繩芯輸送帶進行非侵入性診斷,基于損傷分析的回歸方法對鋼繩輸送帶剩余壽命進行預測,并通過后續(xù)的圖帶掃描進行識別。
隨著計算機GPU性能的提升、深度學習以及神經(jīng)網(wǎng)絡的發(fā)展,相比于傳統(tǒng)的視覺檢測需要預處理,對光照條件要求比較嚴格,需要人為提取感興趣區(qū)域,神經(jīng)網(wǎng)絡可以通過卷積層提取出圖像特征,實現(xiàn)端到端的輸入輸出模式,并且檢測時效性強。唐士宇等[4]基于卷積神經(jīng)網(wǎng)絡Faster R-CNN,可以監(jiān)測井下工人的安全問題,識別準確率達到87.6%。
在芳綸帶的損傷檢測方面,國內(nèi)研究較少。目前的芳綸帶檢測更多依靠人工皮尺測量寬度來判斷,但這種檢測方式看不到芳綸帶內(nèi)部結(jié)構(gòu),對于內(nèi)部的結(jié)構(gòu)損傷和破損無法準確判定。在測試初期,嘗試傳統(tǒng)的視覺檢測系統(tǒng)檢測芳綸帶缺陷,是基于頻域濾波和紋理濾波來提取圖像的紋理特征,但是現(xiàn)場的圖像白噪聲較多,并且現(xiàn)場的圖像一致性不好,所以傳統(tǒng)的視覺檢測魯棒性較差,精度較低。嘗試未改進的YOLOV3算法,在實際現(xiàn)場測試中發(fā)現(xiàn),YOLOV3算法對小物體檢測精度不足。本文提出了優(yōu)化的YOLOV3算法,借鑒了DenseNet的傳輸過程,并運用卷積降維來減少檢測時間,改善了以上兩種檢測方法的弊端,以改善目前檢測方法對小目標的敏感度不足,提升檢測精度。
ROSS等[5]在CNN深度學習神經(jīng)網(wǎng)絡的基礎上,設計了RCNN網(wǎng)絡,將分類問題轉(zhuǎn)化為回歸問題,實現(xiàn)了檢測算法的轉(zhuǎn)化。隨后又優(yōu)化了檢測算法,設計了Fast R-CNN網(wǎng)絡[6]和Faster R-CNN網(wǎng)絡[7],F(xiàn)aster R-CNN網(wǎng)絡要先提出候選區(qū),再識別候選區(qū)中的對象。JOSEPH等[8]提出了YOLOV1算法,創(chuàng)造性地將候選區(qū)和對象識別兩個階段合二為一,識別檢測速度大幅提升。隨后在YOLOV1算法的基礎上,從預測更準確(better)、速度更快(faster)、識別對象更多(stronger)三方面進行了改進,設計了YOLOV2算法[9]。
YOLOV3算法是JOSEPH等[10]在YOLOV2算法基礎上設計和優(yōu)化的深度神經(jīng)網(wǎng)絡。YOLOV3算法主要的改進有:調(diào)整了網(wǎng)絡結(jié)構(gòu)、利用多尺度特征進行對象檢測、對象分類用Logistic模型取代了Softmax模型,在圖像基本特征提取方面,YOLOV3算法采用Darknet-53框架的網(wǎng)絡結(jié)構(gòu)(含有53個卷積層),它借鑒了殘差網(wǎng)絡[11]的做法,在一些層之間設置了快捷鏈路。Darknet-53框架的網(wǎng)絡結(jié)構(gòu)如圖1所示。圖1由53個卷積層、1個池化層、1個全連接層構(gòu)成[12],網(wǎng)絡結(jié)構(gòu)中,輸入尺寸為256×256×3,每個殘差組件有2個卷積層和1個快捷鏈路,殘差組件示意圖見圖2。
圖1 Darknet-53框架的網(wǎng)絡結(jié)構(gòu)Fig.1 Network structure of Darknet-53 framework
圖2 殘差組件Fig.2 Residual components
利用多尺度特征進行對象檢測,YOLOV2算法采用Passthrough結(jié)構(gòu)來檢測細粒度特征,YOLOV3算法在此基礎上采用了3個不同尺度的特征圖來進行對象檢測。圖3為YOLOV3算法網(wǎng)絡結(jié)構(gòu)。由圖3可知,YOLOV3算法在79層之后,經(jīng)過檢測層得到尺度的檢測結(jié)果,對比輸入圖像,特征圖做了32倍的下采樣。由于下采樣倍數(shù)高,特征圖的感受野比較大,適合檢測尺寸比較大的對象。第79層的特征圖開始做上采樣,然后與第61層的特征圖融合,得到了第91層較細粒度的特征圖。經(jīng)過檢測層得到16倍輸入圖像的下采樣特征圖,感受野為中等尺度,對于檢測中等尺度的對象有較好的效果。第91層的特征圖進行上采樣,并與第36層的特征圖融合,得到輸入圖像的8倍下采樣特征圖,感受野最小[13],適合檢測小尺寸的對象。對象分類Softmax模型[14]改成Logistic模型[15],預測對象類別時不使用Softmax模型,改為Logistic模型的輸出進行預測,以支持多標簽對象。
DenseNet是一種具有密集連接的卷積神經(jīng)網(wǎng)絡,網(wǎng)絡每一層的輸入都是前面所有層輸出的并集,而該層所學習的特征圖也會被直接傳給其后面所有層作為輸入。這樣的設計可以有效地減少隨著網(wǎng)絡深度加深出現(xiàn)的梯度消失現(xiàn)象。DenseNet網(wǎng)絡提出了dense block的結(jié)構(gòu),來解決網(wǎng)絡深度和梯度消失問題,圖4為DenseNet示意圖。
圖3 YOLOV3算法網(wǎng)絡結(jié)構(gòu)Fig.3 YOLOV3 algorithm network structure
圖4 DenseNet示意圖Fig.4 Schematic of DenseNet
由圖4可知,如果記第1層的變換函數(shù)為Hl(通常對應于一組或兩組Batch-Normalization,ReLU和Convolution的操作),輸出為xl,其輸出為:xl=Hl([X0,X1,…,xl-1])xl=Hl([X0,X1,…,xl-1])。該算法設計使DenseNet網(wǎng)絡更窄,參數(shù)更少,梯度消失主要是因為當前面隱藏層的學習速率低于后面隱藏層的學習速率,即隨著隱藏層數(shù)目增加,分類準確率下降。而DenseNet的連接結(jié)構(gòu)每一層都連接著輸入值和損失值,這樣可以緩解梯度消失的問題。由于DenseNet用bottleneck和transition layer[16]操作,所以網(wǎng)絡結(jié)構(gòu)參數(shù)大大減小,使網(wǎng)絡具有正則化的效果,對過擬合有很好的抑制作用。圖5為DenseNet的數(shù)據(jù)圖。
圖5 DenseNet數(shù)據(jù)圖Fig.5 Data graph of DenseNet
在YOLOV3算法中,為了減少梯度消失[17],訓練更深層次的網(wǎng)絡,每個殘差組件有2個卷積層[18]和1個快捷鏈路。由于殘差網(wǎng)絡參數(shù)比較多,在訓練時,容易出現(xiàn)過擬合問題,所以選用DenseNet神經(jīng)網(wǎng)絡替換原來的快捷鏈路。在實際現(xiàn)場的檢測中,檢測精度偏低主要是因為對小物體的魯棒性較差,所以優(yōu)化后的殘差組件主要組用于YOLOV3算法的第36層,優(yōu)化后的殘差組件如圖6所示。
圖6 優(yōu)化后的殘差組件Fig.6 Optimized residual components
優(yōu)化后的神經(jīng)網(wǎng)絡,融合了DenseNet的網(wǎng)絡特征,為了減少參數(shù),使得網(wǎng)絡更窄,簡化了DenseNet神經(jīng)網(wǎng)絡,將YOLOV3算法的第4層、第8層、第11層、第15層、第18層、第21層、第24層、第27層、第30層和第33層輸出。經(jīng)過卷積操作傳入到第36層神經(jīng)網(wǎng)絡,為減少檢測時間,在每個殘差組件添加了1×1的卷積操作,即Translation layer。卷積層數(shù)和卷積核大小設計見表1。
表1 優(yōu)化的神經(jīng)網(wǎng)絡卷積層Table 1 Optimized convolutional layer of neural network
與第91層特征圖進行融合,使圖像信息更完整,對小目標的檢測更準確。最終誤差損失包括邊框位置誤差、置信度誤差、對象分類誤差,見式(1)。
(1)
優(yōu)化的YOLOV3算法,實驗環(huán)境為RTX2070顯卡和Caffe框架,本文選用COCO數(shù)據(jù)集作為訓練和數(shù)據(jù)預測的預處理,保存后,配置訓練模型,本文權(quán)重衰減率0.000 2,動量0.76,初始學習率0.000 15。訓練樣本為600張圖片,迭代6萬次,類別為瑕疵,背景。整體的實驗流程如圖7所示。最后的損失值由式(1)計算得出,損失值見圖8。由圖8可知,在訓練階段,迭代到4萬次左右時收斂。
圖7 整體流程圖Fig.7 Overall flowchart
圖8 損失值圖Fig.8 Loss value figure
表2 三種方法實驗數(shù)據(jù)Table 2 Three methods of experimental data network
圖9 測試結(jié)果圖Fig.9 Test results diagram
在實際測試集中,正負樣品的比例為1∶1,訓練樣本均為200張,傳統(tǒng)的基于機器視覺的方法、基于YOLOV3算法和基于改進的YOLOV3算法,對測試集檢測數(shù)據(jù)見表2。由表2可知,傳統(tǒng)的基于OTSU和紋理濾波的檢測方法,相較于其他兩種算法,檢測準確率差,達不到實時性,誤檢率和漏檢率數(shù)據(jù)都很差。未優(yōu)化的YOLOV3算法,相比于改進的YOLOV3算法,檢測準確率低0.15,誤檢率高0.19,漏檢率高0.1,檢測時間基本一致,這是因為本文采用了卷積降維的設計,使得檢測時間沒有加長,檢測精度有明顯改善。
圖9為測試集部分檢測結(jié)果。由圖9可知,在檢測接頭抽動斷裂時,傳統(tǒng)的機器視覺檢測方法,依靠OTSU和紋理濾波的方式,對于背景復雜的檢測效果很差,未改進的YOLOV3算法,對于小目標的敏感度不佳,本文的檢測方法,由于利用多尺度特征進行對象檢測,并且優(yōu)化了神經(jīng)網(wǎng)絡,使得對小目標的檢測更加準確,并且對物體的表征能力也比較好。
本文基于YOLOV3算法的做了優(yōu)化,借鑒了DenseNet網(wǎng)絡的dense block模塊,替代了YOLOV3算法中的殘差模塊,從而使得芳綸帶檢測對小瑕疵魯棒性更好,可以應對復雜背景的檢測。實驗數(shù)據(jù)表明,優(yōu)化后的YOLOV3算法準確性更高,證明優(yōu)化的YOLOV3算法是有效的。但是,本文的算法對小目標的表征能力比較強,對于背景特別復雜的瑕疵檢測,效果不是很好,所以,下一步要解決的是應對復雜背景的瑕疵檢測,優(yōu)化神經(jīng)網(wǎng)絡。