程學(xué)珍, 趙振國, 劉興軍, 李繼明, 趙 猛
(1.山東科技大學(xué) a.電氣與自動化工程學(xué)院;b.電子信息工程學(xué)院,山東 青島 266590;2.中國工商銀行股份有限公司臨沂分行,山東 臨沂 276000)
煤礦粉塵的降塵處理是清潔、環(huán)保、安全地使用煤炭資源的重要保障,而自動粉塵檢測是實現(xiàn)降塵過程的前提。傳統(tǒng)的塵霧圖像檢測算法主要是基于塵霧的形狀、色彩、紋理、飄動等特征進行識別。例如Genovese等[1-3]分別將塵霧的不同特征用于檢測,但是檢測模型存在難以充分提取特征的不足,在塵霧區(qū)域較小時,檢測效果較差。
近年來,深度學(xué)習(xí)算法在目標識別與檢測領(lǐng)域取得了突破性進展[4],塵霧圖像檢測方面,目前應(yīng)用比較廣泛的是基于區(qū)域與基于回歸兩種算法?;趨^(qū)域的算法又稱為兩階段目標檢測算法,如CNN[5-8],F(xiàn)ast RCNN[9],F(xiàn)aster RCNN[10-12]等。Frizzi等[6-7]分別將卷積神經(jīng)網(wǎng)絡(luò)用于塵霧圖像檢測,取得了比傳統(tǒng)方法更好的效果;富雅捷等[8]使用卷積神經(jīng)網(wǎng)絡(luò)作為特征提取器,利用支持向量機訓(xùn)練;Zhang等[11-12]利用Faster R-CNN提取塵霧特定的詳細特征,提高塵霧檢測率。此類方法檢測精度高,但檢測速度較慢?;诨貧w的算法又被稱為一階段目標檢測算法,如YOLOv4[13-14]、SSD[15]等。李海濱等[14]采用YOLOv4-tiny檢測煤塵濃度,提高了檢測速度;劉麗娟等[15]利用SSD對塵霧圖像進行識別。此類方法運算速度更快,但檢測精度略低于兩階段算法。由于煤礦井下粉塵圖像背景復(fù)雜,現(xiàn)有算法中的卷積神經(jīng)網(wǎng)絡(luò)受到粉塵圖像空間多樣性的影響,不能同時兼顧檢測精度與速度。
本文針對粉塵圖像背景復(fù)雜性提出了將擁有較高檢測速度的YOLOv4算法進行優(yōu)化,以得到與YOLOv4檢測速度相當?shù)珯z測精度更高的模型方法:添加空間變換網(wǎng)絡(luò)(STN)優(yōu)化原始特征圖,使網(wǎng)絡(luò)具備空間不變性;采用仿射變換對特征圖實施空間變換;選擇雙線性插值進行像素點精確采樣。優(yōu)化后的檢測模型具備學(xué)習(xí)平移、縮放、旋轉(zhuǎn)等扭曲特性的能力,在檢測速度與精度上實現(xiàn)較好的平衡,可以提高算法魯棒性。
YOLOv4網(wǎng)絡(luò)模型由CSPDarknet53、SPP、PANet、YOLO Head四部分組成,其中CSPDarknet53為主干特征提取網(wǎng)絡(luò),輸出特征圖;SPP與PANet構(gòu)成多尺度特征融合網(wǎng)絡(luò),輸出有效特征層;YOLOHead為預(yù)測網(wǎng)絡(luò),利用有效特征層輸出預(yù)測結(jié)果(見圖1)。
圖1 YOLOv4網(wǎng)絡(luò)模型
雖然YOLOv4網(wǎng)絡(luò)使用卷積和池化操作使算法在一定程度上具備了平移不變性,但是這種人為設(shè)定的變換規(guī)則使神經(jīng)網(wǎng)絡(luò)過度依賴先驗知識,同時神經(jīng)網(wǎng)絡(luò)對于旋轉(zhuǎn)、扭曲等未人為設(shè)定變換規(guī)則的幾何變換缺少空間不變性。而煤塵顆粒具有運動特性,導(dǎo)致煤礦井下圖像中的粉塵區(qū)域不規(guī)則?;谏鲜鲈?,YOLOv4網(wǎng)絡(luò)對煤礦井下粉塵圖像檢測效果不佳。
為了增強YOLOv4算法的空間不變性,提高煤礦井下粉塵圖像檢測模型的檢測識別能力,本文在YOLOv4算法的多尺度特征融合網(wǎng)絡(luò)之前插入空間變換網(wǎng)絡(luò),優(yōu)化后的檢測模型如圖2所示。
圖2 優(yōu)化YOLO-v4算法的粉塵圖像檢測模型流程圖
優(yōu)化后的算法整體流程為:輸入1張尺寸為416×416的粉塵訓(xùn)練圖像,先經(jīng)過主干特征提取網(wǎng)絡(luò),使特征層的寬和高不斷壓縮,通道數(shù)不斷擴張,得到3個不同尺度的特征圖;再送入空間變換網(wǎng)絡(luò)進行仿射變換;最后在多尺度特征融合網(wǎng)絡(luò)中進行特征堆疊,得到3個尺度的有效特征層,送入特征預(yù)測網(wǎng)絡(luò)進行網(wǎng)絡(luò)訓(xùn)練,循環(huán)達到預(yù)定迭代次數(shù)后,得到粉塵檢測權(quán)重模型。
空間變換網(wǎng)絡(luò)是一種動態(tài)網(wǎng)絡(luò)機制,可以插入到現(xiàn)有卷積網(wǎng)絡(luò)模型中,將輸入變換為下一層網(wǎng)絡(luò)期望的形式,在訓(xùn)練的過程中自動選擇感興趣的區(qū)域特征,對各種形變數(shù)據(jù)進行空間變換??臻g變換網(wǎng)絡(luò)可以插入到已有的卷積神經(jīng)網(wǎng)絡(luò)中,主動進行空間特征映射,并且不需要額外的訓(xùn)練監(jiān)督或修改。能夠更好的簡化后續(xù)圖像的分類識別任務(wù),提升卷積神經(jīng)網(wǎng)絡(luò)的魯棒性和目標特征提取、目標檢測識別能力。
如圖3所示,空間變換網(wǎng)絡(luò)由3部分組成:定位網(wǎng)絡(luò)、網(wǎng)格生成器及采樣器。首先輸入特征圖U,通過定位網(wǎng)絡(luò)訓(xùn)練得到空間變換參數(shù);然后利用網(wǎng)格生成器根據(jù)目標特征圖的坐標生成新的網(wǎng)格點,存放仿射變換后的圖像;最后采樣器將變換后的像素點復(fù)制到V中。
圖3 空間變換網(wǎng)絡(luò)結(jié)構(gòu)
定位網(wǎng)絡(luò)將特征圖作為輸入:U∈RH×W×C,其中:H為輸入特征圖的高度;W為輸入特征圖的寬度;C為輸入特征圖的通道數(shù)。經(jīng)過全連接層、卷積網(wǎng)絡(luò)、回歸層,輸出空間變換參數(shù)θ=floc(U),θ決定了輸入特征圖的必要旋轉(zhuǎn)角度、要完成的平移量以及聚焦于感興趣的區(qū)域所需的比例因子。
仿射變換對點、線、面具有一定的保持性,變換后特征圖中的某些比例關(guān)系保持不變,所以網(wǎng)格生成器利用空間變換參數(shù)進行仿射變換,通過矩陣運算的方式,確定輸出特征圖V中的每個坐標在輸入特征圖U中對應(yīng)的坐標位置。變換關(guān)系可表示為
(1)
采樣器根據(jù)V的坐標點取得對應(yīng)U中坐標點的像素值進行填充,但這時求得的U中的坐標點可能為非整數(shù),因此在原始特征圖U中利用雙線性插值進行采樣。由于雙線性插值是可導(dǎo)的,可以將輸出圖像的非整數(shù)坐標點映射到整數(shù)位置,從而得到仿射變換結(jié)果V:
(2)
粉塵圖像識別方法以YOLOv4算法網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),分別在CSPDarket53網(wǎng)絡(luò)輸出的3個不同尺度的特征圖后插入空間變換網(wǎng)絡(luò),進行仿射變換,并將優(yōu)化后的網(wǎng)絡(luò)結(jié)構(gòu)進行訓(xùn)練和測試,優(yōu)化后的粉塵檢測模型如圖4所示。具體流程:① 將數(shù)據(jù)集中的粉塵圖像進行預(yù)處理,把分辨率統(tǒng)一調(diào)整到416×416,作為輸入圖像進行模型的訓(xùn)練;② 在CSPDarknet-53網(wǎng)絡(luò)中進行特征提取,通過不斷地壓縮特征層和擴張通道數(shù),最終得到3個不同尺度的特征圖,再由空間變換網(wǎng)絡(luò)進行仿射變換;③ 首先將經(jīng)過卷積與上采樣的尺度1特征圖與經(jīng)過卷積的尺度2特征圖堆疊;然后進行卷積和上采樣,并與第3尺度特征圖堆疊;最后通過5層卷積得到尺度3有效特征層,輸入給YOLO Head;④ 首先對尺度3有效特征層下采樣,然后與第67層特征層進行堆疊,最后通過5層卷積得到尺度2有效特征層;⑤ 首先對尺度2有效特征層下采樣,然后與經(jīng)過卷積的尺度1特征圖堆疊,最后通過5層卷積得到尺度1有效特征層;⑥ 將上述3個尺度的有效特征層送入YOLO Head;⑦ 循環(huán)整個網(wǎng)絡(luò),直到達到預(yù)定迭代次數(shù),最終得到粉塵檢測權(quán)重模型。
圖4 優(yōu)化后的粉塵檢測模型
實驗數(shù)據(jù)集來自井下采煤現(xiàn)場實地采集的視頻,首先對原始粉塵圖像和無塵圖像進行圖像增強、去噪、平移、翻轉(zhuǎn)等預(yù)處理,預(yù)處理后的實驗數(shù)據(jù)集樣本如圖5所示。然后參照VOC2007的標準數(shù)據(jù)集格式對粉塵圖像進行標注,生成包含物體類別與目標框坐標信息的.xml文件。最終得到7 440張實驗數(shù)據(jù)集圖像,無塵圖像與標注粉塵圖像各3 720張,其中80%用作訓(xùn)練集,余下的20%作為測試集。
圖5 預(yù)處理后的實驗數(shù)據(jù)集圖像
實驗配置如下:CPU為 Intel Core i7-8700k;顯卡為英偉達GTX 1070Ti;內(nèi)存為16 GB;深度學(xué)習(xí)框架為Darknet。模型整體采用Pytorch框架搭建。設(shè)置訓(xùn)練模型的初始學(xué)習(xí)率為0.001,最大迭代次數(shù)為40 000次,每批次訓(xùn)練16個樣本。
模型訓(xùn)練使用YOLOv4的預(yù)訓(xùn)練權(quán)重,對優(yōu)化后的網(wǎng)絡(luò)進行權(quán)重參數(shù)調(diào)整。迭代訓(xùn)練分兩階段進行,第1階段為粗調(diào)階段,調(diào)整除主干特征網(wǎng)絡(luò)CSPDarkNet53外的網(wǎng)絡(luò)參數(shù),選擇更適合用來訓(xùn)練較小的自定義數(shù)據(jù)集的Adam優(yōu)化函數(shù);第2階段為微調(diào)階段,調(diào)整主干特征網(wǎng)絡(luò)的權(quán)重參數(shù),依然選擇Adam優(yōu)化函數(shù)。經(jīng)過迭代訓(xùn)練,最終得到粉塵圖像檢測效果相對最好的權(quán)重參數(shù)。
優(yōu)化后的粉塵圖像檢測模型在粉塵圖像測試集上進行評估,同時為了驗證算法的有效性,將提出的粉塵檢測算法與Faster-RCNN算法、YOLOv4算法進行實驗對比。實驗選取了采煤工作處一段視頻共665幀圖像進行測試,各類算法的實驗結(jié)果如表1所示。
表1 不同檢測算法的對比評價
由表1可以看出,優(yōu)化YOLOv4算法的召回率與準確率要優(yōu)于其他兩種算法,分別達到了88.63%和93.21%,而檢測速度比YOLOv4算法降低了7幀/s,能夠滿足實時在線檢測的需求。Faster-RCNN算法在準確率、召回率和處理速度上與提出算法都存在差距。
圖6所示為YOLOv4算法優(yōu)化前后部分檢測結(jié)果的對比。
從圖6可以看出,優(yōu)化后的算法無論在目標分類還是目標定位方面都取得了更好的效果,對粉塵圖像識別具有更高的準確率。引入空間變換網(wǎng)絡(luò)后,優(yōu)化的YOLOv4網(wǎng)絡(luò)強化了算法的特征提取能力和空間變換能力,實現(xiàn)了粉塵圖像識別端到端的優(yōu)化。
本文提出了一種基于圖像的優(yōu)化YOLOv4煤礦井下粉塵檢測算法,利用空間變換網(wǎng)絡(luò)對特征圖進行仿射變換,強化了算法的特征提取能力和空間變換能力,優(yōu)化后的YOLOv4網(wǎng)絡(luò)提高了粉塵檢測精度、降低了漏檢率。該算法能夠大體識別出圖像粉塵的位置,這對于實現(xiàn)煤礦采煤處自動噴水除塵或其他方法除塵具有重要作用,不僅可以節(jié)省人工降塵的成本,而且對煤礦安全高效生產(chǎn)有重要意義。但是本文算法仍然存在一些問題,在實驗過程中發(fā)現(xiàn),算法對于圖像粉塵不明顯、低濃度的情況,容易出現(xiàn)漏檢和誤檢。對于煤礦井下復(fù)雜的環(huán)境,沒有驗證該算法是否具有普適性,后續(xù)這將是主要研究方向,以達到適應(yīng)煤礦環(huán)境變化所帶來的影響。