李海濱,孫 遠,張文明,李雅倩
基于YOLOv4-tiny的溜筒卸料煤塵檢測方法
李海濱1,2,孫 遠1*,張文明2,李雅倩2
1燕山大學電氣工程學院,河北 秦皇島 066004;2燕山大學工業(yè)計算機控制工程河北省重點實驗室,河北 秦皇島 066004
煤炭港在使用裝船機的溜筒卸載煤的過程中會產生揚塵,港口為了除塵,需要先對粉塵進行檢測。為解決粉塵檢測問題,本文提出一種基于深度學習(YOLOv4-tiny)的溜筒卸料煤粉塵的檢測方法。利用改進的YOLOv4-tiny算法對溜筒卸料粉塵數(shù)據(jù)集進行訓練和測試,由于檢測算法無法獲知粉塵濃度,本文將粉塵分為四類分別進行檢測,最后統(tǒng)計四類粉塵的檢測框總面積,通過對這些數(shù)據(jù)做加權和計算近似判斷粉塵濃度大小。實驗結果表明,四類粉塵的檢測精度(AP)分別為93.98%、93.57%、80.03%和57.43%,平均檢測精度(mAP)為81.27%,接近YOLOv4的83.38%,而檢測速度(FPS)為25.1,高于YOLOv4的13.4。該算法較好地平衡了粉塵檢測的速率和精度,可用于實時的粉塵檢測以提高抑制溜筒卸料產生的煤粉塵的效率。
煤粉塵檢測;YOLOv4-tiny;深度學習;目標檢測
近年來,隨著大眾環(huán)保觀念的提高以及環(huán)保政策的收緊,如何有效減少或者快速抑制生產過程中產生的粉塵不僅成為了煤炭港口必須面對的問題,而且是煤炭港口清潔生產的首要任務[1]。港口的裝船機通過溜筒卸載煤料到貨船是整個生產環(huán)節(jié)的最后一環(huán),各大煤炭港口在前面的生產環(huán)節(jié)里采用了諸如防風抑塵網(wǎng)、干式除塵系統(tǒng)、堆場灑水及單機灑水、干霧除塵、筒倉儲煤、翻車機底層灑水抑塵等多種抑塵措施[1],這些措施雖然有效地減少了煤炭灑落到船艙時產生的揚塵,但是由于前期的抑塵措施并沒有和卸料環(huán)節(jié)形成控制閉環(huán),并不能自動抑制卸料環(huán)節(jié)時有出現(xiàn)的揚塵,所以單獨處理卸料粉塵仍然是整個環(huán)保作業(yè)的重要一環(huán)。目前國內煤炭港口抑制此類揚塵的主要措施是灑水,由于卸料粉塵只是偶有出現(xiàn),如果一直開啟灑水除塵裝置,會導致灑水過多,這無疑會減少貨船的實際裝煤量,影響到經(jīng)濟效益,如果采用專人觀察,手動控制除塵裝置,則存在效率低的問題,不利于無人化港口的建設。所以開發(fā)一種自動實時檢測卸料煤粉塵的方法,當檢測到粉塵時發(fā)送預警信號,通知抑塵作業(yè)環(huán)節(jié)采取相應措施是必要的。
目前常見的粉塵檢測儀主要基于光散射、靜電感應和濾膜稱重三種原理。光散射法(包括紅外線和激光散射)是指光照射到粉塵顆粒上產生的散射光會與粉塵濃度成一定函數(shù)關系,通過檢測散射光強度得到粉塵濃度;而靜電感應法是指通過靜電感應探頭檢測粉塵粒子摩擦產生的靜電量大小檢測粉塵濃度;濾膜稱重法則通過采樣一定體積的含塵空氣,把粉塵過濾到濾膜上,然后稱量得到粉塵濃度。其中基于光散射原理和靜電感應原理可實現(xiàn)粉塵濃度的在線檢測,但是由于運煤船不是固定的,想要實現(xiàn)自動檢測,粉塵檢測儀則只能安裝到裝船機上,這限制了粉塵檢測儀的使用。同時基于光散射原理的檢測儀存在無法進行面域檢測且校準難的問題,而基于靜電感應原理的檢測儀在港口戶外環(huán)境易受干擾。綜合以上因素,煤炭港口至今仍依賴現(xiàn)場工作人員充當粉塵報警器來獲知開啟灑水除塵裝置的時機。
近幾年,隨著深度學習技術的興起,計算機視覺技術尤其是目標檢測技術得到很大的進步[2]。國內外在和粉塵檢測比較接近的煙霧檢測和火警預測等方面的研究方興未艾,例如Frizzi等[3]和Tao等[4]分別將深度學習算法用于煙或火災的檢測取得了比傳統(tǒng)方法更好的效果;Zhang等[5]使用雙通道卷積網(wǎng)絡分別用于提取通用特征和特定的詳細的特征,將煙霧檢測率提升到99.33%。但基于深度學習的粉塵檢測相關的研究和應用很少。目前基于CNN的目標檢測算法分為兩個類型:一種是以Fast RCNN[6]、Faster RCNN[7]系列為代表的基于檢測框和分類器的兩階段算法,兩階段算法精確度更高,但是由于較深的網(wǎng)絡結構造成了對計算資源更多的占用,檢測速度較慢,難以用于有實時性要求的場合。另一種是以YOLO[8](You Only Look Once)系列為代表的基于回歸的一階段算法,一階段算法運算速度更快,實用性更強。YOLO系列的算法作為實用中最流行的目標檢測算法之一,經(jīng)過YOLOv2[9]、YOLOv3[10]兩次大的改進之后,2020年推出的YOLOv4[11]在保持較高檢測速度的基礎上能取得不錯的檢測精度,而YOLOv4-tiny是YOLOv4[11]的簡化版,檢測精度較低但擁有更高的檢測速度。鑒于粉塵檢測與煙霧檢測類似,本文的溜筒卸料粉塵的檢測也可通過基于深度學習的目標檢測技術實現(xiàn),一來深度學習算法相較傳統(tǒng)的機器視覺技術在性能和魯棒性方面均有很大的提升,可以勝任粉塵檢測任務;二來溜筒作業(yè)監(jiān)控攝像頭安裝方便,除了能完成粉塵檢測的任務,也能方便工作人員監(jiān)控現(xiàn)場,干預除塵裝置的運行。
由于溜筒卸料煤塵檢測對實時性的要求較高,在煤塵檢測中使用精度和速度比較均衡的YOLOv4算法仍存在較大的滯后性。本文通過對速度更快的YOLOv4-tiny網(wǎng)絡的進行改進,以得到與YOLOv4精度相當?shù)珯z測速度更快的模型,實現(xiàn)對粉塵的實時檢測。改進措施包括提出SERes模塊加強檢測算法網(wǎng)絡特征通道之間的信息交互;提出XRes模塊增大算法網(wǎng)絡的空間維度;添加SPP[12]模塊和PRN[13]模塊增強算法的特征融合能力。由于檢測算法無法直接獲知粉塵濃度,本文將粉塵分為四類分別進行檢測,最后統(tǒng)計四類粉塵的各自的檢測框面積,通過加權和計算近似判斷粉塵濃度大小。實驗結果表明,改進后的網(wǎng)絡模型很好地滿足了卸料煤粉塵的檢測需求,在速度和精度上取得較好的平衡,為煤炭港實現(xiàn)自動除塵提供了助力。
YOLOv4-tiny是YOLOv4作者在其開源程序中提供的YOLOv4的簡化版本,包括YOLOv4-tiny-2l和YOLOv4-tiny-3l兩個版本。不過作者只提供了這兩個版本的配置文件,沒有做任何正式的闡述。研究兩者的配置文件可發(fā)現(xiàn)YOLOv4-tiny-2l和YOLOv4-tiny-3l主要在檢測層有所不同——YOLOv4-tiny-2l提供13×13和26×26兩種尺度的輸出結果,而YOLOv4-tiny-3l提供19×19、38×38和76×76三種尺度的輸出結果。由于煤粉塵沒有固定的形態(tài)且大小不一,為了更好地檢測粉塵,這里選擇能更好地將低層的特征和高層的特征融合起來進行多尺度圖像預測的YOLOv4-tiny-3l進行改進,下文的YOLOv4-tiny統(tǒng)一指代YOLOv4-tiny-3l。
如圖1所示,YOLOv4-tiny網(wǎng)絡分為骨干網(wǎng)絡(Backbone)、頸(Neck)和檢測頭三部分。相比YOLOv4,在Backbone部分,算上最大池化層,YOLOv4-tiny也僅僅只有28層,圖2為Backbone網(wǎng)絡結構圖。網(wǎng)絡中使用了來自CSPNet[14]的CSP結構,但相比原結構有所簡化;在Neck部分,YOLOv4-tiny只采用了特征金字塔[15](FPN)結構,沒有添加SPP[12]結構和PAN[16]結構;不過在YOLO檢測頭部分,YOLOv4-tiny與YOLOv4基本相同,均采用YOLOv3檢測頭。
YOLO是一種端對端的卷積神經(jīng)網(wǎng)絡,核心思想是將目標檢測問題處理為回歸問題。首先將輸入圖片的尺寸調整為固定大小,然后將其劃分為×的網(wǎng)格單位(grid cell),每個grid cell預測個邊界框(bounding box),并在輸出層回歸得到bounding box的位置大小、置信度,以及類別。在YOLOv4-tiny中,輸入圖片被調整為608×608,然后融合FPN思想,進行多尺度檢測,輸出三個檢測層,這三個檢測層將圖片分別劃分為19×19,38×38和76×76。然后每個網(wǎng)格預測3個邊界框,每個邊界框包含(Objec)五個元素。其中,和指相應單元格的偏移量,和為邊界框以整張圖片為基準歸一化后的寬度和高度。Object指邊界框置信度得分,反映了一個框內包含有檢測目標的可能性以及檢測框的準確程度。置信度的計算式為
, (1)
其中:Object為框內有檢測目標的概率,即有檢測目標,則Object為1,沒有則為0;IoU為預測框和真實物體邊界框的交并比(intersection over union,IoU)。當?shù)玫娇虻闹眯哦戎?,使用非極大值抑制(non-maximum suppression,NMS)算法,留下置信得分較高的預測框。接下來可計算每個預測框的類別置信度得分Class,其計算方法為
圖1 YOLOv4-tiny網(wǎng)絡結構圖
圖2 YOLOv4-tiny backbone結構圖
為了更好地預測邊界框,YOLOv4-tiny通過K-means聚類算法生成9個anchor box(錨框),作為檢測時的建議框。另外YOLOv4-tiny的損失函數(shù)由邊界框回歸損失、置信度損失和分類損失三部分組成,其中邊界框回歸損失函數(shù)采用CIoU函數(shù),后兩者采用與YOLOv3相同的交叉熵函數(shù)。
YOLOv4-tiny簡單的網(wǎng)絡模型不足以學習到足夠多的粉塵特征,而且粉塵與一般的實體檢測物不同,沒有固定的形態(tài)和體積大小,增大了檢測難度。同時由于不同工況下粉塵的分布不同,不同工況出現(xiàn)的機率也不同,導致不同場景下的粉塵在數(shù)據(jù)集中出現(xiàn)的概率不同,這帶來了比較嚴重的數(shù)據(jù)不均衡。為了克服數(shù)據(jù)不均衡,減少粉塵檢測中出現(xiàn)的誤檢和漏檢,提高檢測精度,本文在添加有mosaic[11]等數(shù)據(jù)增強技術的YOLOv4-tiny的基礎上在其Backbone和Neck上增加自定義的SERes和XRes模塊以及現(xiàn)有的SPP和PRN模塊,分別從特征通道、網(wǎng)絡空間維度和特征融合三個角度進行改進。
如圖3所示,粉塵檢測網(wǎng)絡的整體結構是通過消融實驗,在原YOLOv4-tiny網(wǎng)絡的基礎上不斷改進得到的。在網(wǎng)絡的Backbone部分,使用SERes模塊取代YOLOv4-tiny中由Res殘差組件和route層組成的CSP結構;使用步長為2的3×3卷積取代原結構中的第二個Max pool層,然后在其后面添加XRes模塊;接著在Neck部分添加SPP模塊;最后將PRN結構組合到FPN結構上。綜合這些模塊,粉塵檢測網(wǎng)絡在保證實時性的情況下實現(xiàn)了網(wǎng)絡性能的明顯提升。
在實現(xiàn)對裝船機卸載煤料產生的煤粉塵進行實時檢測的基礎上,為了獲取更多關于粉塵的信息,幫助除塵裝置獲知溜筒卸料粉塵的相對大小,本文中將溜筒卸料粉塵分成4種類別進行區(qū)分檢測,故改進后的網(wǎng)絡最后輸出的通道數(shù)為27(計算公式為“網(wǎng)格預測邊界框數(shù)×(類別數(shù)+每個邊框包含的元素數(shù))”,即3×(4+5)),并提供19×19、38×38和76×76三種尺度的輸出結果。
圖3 改進的YOLOv4-tiny算法結構圖
檢測網(wǎng)絡的Backbone部分負責從訓練集中學習檢測目標的特征,通常網(wǎng)絡深度越深寬度越大,網(wǎng)絡學習特征的能力越強,但同時也會增加計算量。為了均衡速度和精度,本文使用了下面兩個組件。
3.2.1 XRes模塊
Xception[17]是對Inception-v3[18-19]模塊的原理進行進一步推進而改進出的卷積結構,它首先對1×1卷積結果的每個通道(channel)分別進行3×3卷積操作,然后將結果通過route層進行拼接。這樣可以對通道相關性與空間相關性做最大程度的分離,從而在保持原網(wǎng)絡深度的同時,減少網(wǎng)絡的計算量。本文中將Xception基本模塊添加殘差邊之后得到的網(wǎng)絡結構稱為XRes模塊,并將其添加到YOLOv4-tiny的Backbone網(wǎng)絡中,能在不大幅度增加算法計算量的情況下增加網(wǎng)絡的空間維度,從而提高模型的特征學習能力。XRes模塊結構如圖4所示,圖中Dwise指使用深度卷積對每個channel分別進行3×3卷積操作。
3.2.2 SERes模塊
SERes模塊是由SENet[20]論文中提出的輕量級SE模塊嵌入到ResNet[21]論文提出的殘差模塊中形成的,在本文中用于取代YOLOv4-tiny中原有的三個CSP結構(見圖1中的Res層和route層),它能增強網(wǎng)絡特征通道之間的信息交互,當搭配本文提到的其它組件使用時可明顯提高粉塵檢測精度。結構如圖5所示,其中第一個CBS層是普通的1×1卷積層用于調整網(wǎng)絡的通道數(shù);第二個CBS層是3×3的Dwise卷積層將網(wǎng)絡通道相關性與空間相關性分離;接下來的全局平均池化(Avg pool)層將網(wǎng)絡層空間大小降為1×1,即一個實數(shù),這個實數(shù)具有全局感受野,完成Squeeze操作;接著第一個全連接(FC)層把網(wǎng)絡層通道降到指定大小,第二個FC層再恢復網(wǎng)絡層的通道數(shù),得到和通道數(shù)相同的權重數(shù),每個權重用于給對應的一個通道進行加權,完成Excitation操作。該操作使用兩個FC層可以更好地擬合通道間復雜的相關性,同時減少參數(shù)計算量;然后通過scale channels層將得到的權值與第二個CBS卷積層進行逐通道乘法運算,恢復網(wǎng)絡層的空間大小;最后經(jīng)過CBL層后與最初輸入進行route融合,得到最終的特征圖。在SERes模塊中第一個FC層搭配有Swish激活函數(shù),且通道數(shù)是第二個FC層的通道數(shù)的1/16。整個網(wǎng)絡中添加的三個殘差組件中的第一個FC層的通道數(shù)分別為8、16和32。
圖4 XRes模塊
目標檢測網(wǎng)絡的Neck部分作為骨干網(wǎng)絡和最后的輸出層之間的連接處,負責將骨干網(wǎng)絡學習到的特征進行融合,使提取網(wǎng)絡特征得到更加充分的利用,為網(wǎng)絡的輸出做準備。為了對輸出結果進行更好的預測,本文在FPN的基礎上添加如下兩種模塊提升特征融合的效果。
3.3.1 空間金字塔池化模塊(SPP)
在網(wǎng)絡的Neck部分加入的SPP模塊如圖6所示。SPP模塊的主要部分是三個平行的最大池化層,池化核尺寸大小分別為5×5、9×9、13×13,步長均為1。不同大小的池化層可以提取不同角度的特征,形成帶有不同感受野的特征圖,然后通過route層將前面獲得的特征圖進行通道維度上的拼接,進而提取到更多有用的多尺度信息。這樣將較低層次的特征組合為較高層次的特征,通過融合,提高了語義信息,使得模型檢測的準確率提高。
3.3.2 PRN模塊
本文在FPN的基礎上添加PRN模塊,即將FPN的兩個上采樣層(upsample)分別與網(wǎng)絡的第19層和38層通過route層進行拼接,接著連接一個3×3的卷積層,最后再與上采樣層(upsample)進行直連(shortcut)。圖7為PRN結構圖,PRN將輸入特征劃分為兩部分,一部分經(jīng)過卷積,另一部分和上一部分卷積操作的結果進行特征融合從而得到包含較多語義信息的特征圖。
圖5 SERes模塊
圖6 SPP模塊
圖7 PRN模塊
本文從神華黃驊港安裝在裝船機上的攝像頭監(jiān)控系統(tǒng)中采集溜筒卸載煤料作業(yè)時產生的煤粉塵。圖8為裝船機上的溜筒,為了能得到最優(yōu)的拍攝視角,監(jiān)控攝像頭安裝在圖中箭頭指示的溜筒平臺上,鏡頭垂直向下放置。針對港口復雜的工作環(huán)境,本文采用??低晄mart IPC H265 200萬紅外筒型網(wǎng)絡攝像頭。該攝像頭最大可輸出Full HD 1920×1080@30 fps實時圖像,且支持透霧、電子防抖、背光補償、自動電子快門等功能,采用防雜光玻璃,能排除雜光干擾保證畫面效果。
由于粉塵檢測算法只能檢測有無粉塵,無法檢測粉塵濃度,使對應的除塵操作難以精細化,限制了粉塵檢測算法在除塵作業(yè)中發(fā)揮更大的作用。本文對現(xiàn)場采集的粉塵視頻進行分析后,根據(jù)煤粉塵形態(tài)的不同,將粉塵分為四類。對這四類粉塵分開檢測,分別統(tǒng)計四類粉塵檢測框的總面積占圖像面積的比值,然后根據(jù)事先分配的權重,對檢測框的面積做加權求和計算,將計算出來的結果作為指代粉塵濃度的指標,為除塵裝置量化除塵措施提供依據(jù)。
圖8 溜筒
第一類為呈現(xiàn)亮白色的疑似粉塵,此類粉塵常被煤炭散發(fā)出的熱氣或海邊霧氣干擾。為降低誤檢率,本文將其與其它粉塵分開檢測,當實際檢測中發(fā)現(xiàn)此類粉塵的檢測框數(shù)量大于指定數(shù)量(例如3個)或者這類粉塵檢測框面積總和大于圖片面積1/4時,發(fā)送警報由人工進行二次判斷。未觸發(fā)警報情況下此類粉塵分配20%的權重;
第二類為藍色或灰黑色的粉塵,此類粉塵辨識度高,不易與熱氣或者大霧混淆,將其單獨分為一類有助于提高粉塵檢測的總體準確率,此類粉塵分配20%的權重;
第三類為除上述被挑選出來的兩類粉塵之外所有相對聚集區(qū)域超過圖片面積1/16的粉塵。此類粉塵濃度較大時會呈彌漫狀,遍布整個攝像頭視野,是實際作業(yè)中最主要的檢測目標,分配50%的權重;
第四類為煤料從溜筒下落時揚起的小區(qū)域粉塵。這類粉塵濃度低,往往達不到啟動除塵裝置的閾值,在大部分情況下會被直接忽略。但為了使粉塵檢測更加精細化,幫助現(xiàn)場工作人員更好地把握粉塵濃度的變化趨勢,所以將其作為一類進行專門檢測,分配10%的權重。
圖9為四類粉塵的示意圖,由于粉塵形態(tài)各異,邊界不清晰,而粉塵檢測不需要精準定位,所以標注時只需框住粉塵的核心區(qū)域;面對彌散開來的粉塵,只標注粉塵相對聚集的區(qū)域;且標注框的面積不超過圖片的1/3,長寬比不大于3,這樣便于K-means聚類算法生成合適的anchor boxes,提高檢出率。標注好的圖片經(jīng)過專人統(tǒng)一修改規(guī)范之后,采用VOC2007的格式制作用于訓練改進算法并驗證改進效果的數(shù)據(jù)集,其中訓練集6220張圖片,驗證集1556張圖片。圖10為測試數(shù)據(jù)集部分圖片,包括了實際作業(yè)中最常出現(xiàn)了幾類粉塵分布情況。
圖9 粉塵示意圖
圖10 數(shù)據(jù)集部分圖片
本實驗使用Intel(R) Core(TM) i7-5930K CPU @ 3.50 GHz處理器,在Ubuntu16.04操作系統(tǒng)下進行,為了提高運算速度,縮短訓練時長,使用NVIDIA GeForce RTX 1080顯卡一張,在CUDA10.1.243、CUDNN7.6.4運算平臺上進行計算。在本實驗中使用的深度學習框架為Darknet,結合OpenCV庫完成程序的編寫及應用。
4.2.1 網(wǎng)絡的訓練
首先從網(wǎng)上下載YOLOv4-tiny作者提供的預訓練權重,然后基于改進后的網(wǎng)絡對粉塵數(shù)據(jù)集進行不斷調參和迭代訓練,最后得到粉塵檢測效果相對最佳的權重參數(shù)。實驗中梯度優(yōu)化采用基于動量(momentum)的隨機梯度下降(SGD)算法,部分訓練參數(shù)的設置如表1所示。
迭代訓練時,圖像輸入尺寸設置為608×608,每次迭代的批量大小為64,subdivisions設為8,經(jīng)過30000次左右迭代后網(wǎng)絡收斂。當?shù)螖?shù)小于burn_in(設置為1000)時,學習率從0開始隨著迭代次數(shù)的增加逐漸變大,直到迭代次數(shù)達到burn_in完成學習率預熱(warmup)后,使用初始學習率0.00261。學習率在迭代次數(shù)為總迭代次數(shù)的80%和90%時采用step調整策略進行調整,比例為0.1。另外飽和度、曝光量、色調和數(shù)據(jù)增強參數(shù)(mosaic)可以用來生成更多的訓練樣本,其中mosaic方法是YOLOv4中提出的一種數(shù)據(jù)增強方式,這種方法將4張圖片拼接成一張圖片,豐富了檢測場景,可以有效解決數(shù)據(jù)不均衡的問題[11]。而權重衰退(decay)和參數(shù)抖動因子(jitter)可以抑制過擬合,前者作為正則項,通過使權重值變小實現(xiàn)效果,后者通過隨機調整輸入圖片的寬高比的范圍增加噪聲來實現(xiàn)抑制過擬合的效果。
表1 網(wǎng)絡參數(shù)表
在訓練過程中,保存了Darknet框架提供的訓練日志且每1000次迭代保存一次訓練權重。根據(jù)訓練日志和訓練權重可繪制平均損失(loss)和平均精度(mAP)隨著迭代次數(shù)的增加其變化曲線。
4.2.2 消融實驗
為了測試SERes模塊、XRes模塊、SPP模塊、特征融合PRN模塊以及YOLOv4算法中使用的SAM空間注意力模塊[11]等能在多大程度上影響到粉塵檢測的效果,本文設置幾組消融實驗。消融實驗均在相同的粉塵訓練集上訓練,相同的測試集上測試。激活函數(shù)、非極大值抑制(NMS)和回歸框損失函數(shù)統(tǒng)一采用leaky激活函數(shù)、greedynms和CIOU損失函數(shù),并選擇mAP值和每秒幀率(FPS)值作為測試指標。
計算mAP之前需要介紹幾個常見的模型評價術語,且假設分類目標只有兩類——正例(positive)和負例(negative):
TP(True positives,簡寫為TP):按照Pascal VOC2007的計算標準,當粉塵的預測框與真實框的交并比(IOU)大于等于50%時,視為匹配正確,檢測出來的粉塵是正確的;
FP(False positives,簡寫為FP):如果IOU值小于0.5,或者檢測到同一個真實框(GT)的多余檢測框(意思是同一區(qū)域檢測出了多個框,置信度最高的檢測框為TP,剩下的為FP,即使剩下的檢測框IOU大于0.5),視為匹配錯誤;
FN(False negatives,簡寫為FN):指沒有檢測到的真實框的數(shù)量;
TN(True negatives,簡寫為TN):指被正確檢測為負例的數(shù)量;
精確率(Precision/re)
召回率(Recall/)
平均精確度(Average precision,AP)。
精確率和召回率在實際中是相互制約的,單獨比較會有失平衡。AP值作為綜合評價指數(shù),定義為P-R曲線的積分面積。P-R曲線即以precision和recall作為縱、橫軸坐標的二維曲線。
mAP(Mean average precision)即平均AP值,是對多個驗證集個體求平均AP值,作為目標檢測(object dection)中衡量檢測精度的指標。除了檢測準確度,目標檢測算法的另外一個重要性能指標是速度,評估速度的常用指標是每秒幀率(frame per second,F(xiàn)PS),即每秒內可以處理的圖片數(shù)量。
消融實驗結果見表2,綜合表2的前六行可以發(fā)現(xiàn)各模塊對算法模型的mAP和FPS兩個指標均有不同程度的影響,其中SPP模塊和特征融合PRN模塊對算法精度mAP有較明顯的提升,SERes可小幅提高FPS。當模塊進行組合時,能從表中倒數(shù)第二行發(fā)現(xiàn)當集合SPP、PRN、SERes和XRes四種模塊時,模型精度達到81.27,雖然其FPS值明顯小于改進之前的模型,但仍然有25.1,滿足粉塵實時檢測的要求。
為了進一步驗證本文改進后的網(wǎng)絡檢測性能的好壞,以mAP以及FPS(每秒識別幀數(shù))作為檢測效果評價指標,進行了如表3所示的粉塵檢測性能對比實驗。其中YOLOv4-tiny指的是原版模型,未添加消融實驗中提及的任何模塊,YOLOv4-tiny-spp模型在YOLOv4-tiny模型基礎上添加SPP模塊,兩個模型的參數(shù)與本文改進的YOLOv4-tiny-new模型完全一致,這三者統(tǒng)一采用Darknet深度學習框架,訓練批次統(tǒng)一為30000。而SSD模型選擇是PadlePadle框架,訓練批次為60000。Faster RCNN模型選擇的是Pytorch深度學習框架,訓練批次為30。
從實驗結果可以看出YOLOv4模型的mAP值最高,達到83.27%。本文基于YOLOv4-tiny改進的網(wǎng)絡模型YOLOv4-tiny-new的mAP值為81.27%,雖然檢測精度低于YOLOv4,但檢測速度為25.1,高于YOLOv4的13.4,很好地兼顧了粉塵檢測的精度和速度,可以方便地實現(xiàn)溜筒卸料粉塵的實時檢測。SSD的FPS值最高,但檢測精度明顯低于本文改進的算法。值得注意的是,F(xiàn)aster RCNN模型在實驗中表現(xiàn)欠佳,可能是因為Faster RCNN模型不擅長處理沒有清晰的邊界,且形態(tài)大小不一的溜筒卸料粉塵。圖11為各模型粉塵檢測精度mAP值隨迭代次數(shù)的折線圖,其中SSD折線對應的橫坐標名稱為“iteration′2000”,F(xiàn)aster RCNN對應的橫坐標名稱為“iteration”其它的為“iteration′1000”。
從表2消融實驗中可以發(fā)現(xiàn),在原YOLOv4-tiny的基礎上繼續(xù)添加SERes模塊、XRes模塊、SPP模塊和PRN模塊,雖然不能在每一類粉塵檢測中得到最高的AP值,但是可以在保證實時性的前提下得到最高的平均精度(mAP)。其中由于第一類和第二類粉塵是從粉塵數(shù)據(jù)集中專門挑出的特殊情況,它們特征明顯,檢測難度較低,故其精度達到93.98%和93.57%;第三類是溜筒卸料粉塵中最常見的類型,80.08%的檢測精度可以很好地勝任絕大部分場景下此類粉塵的預警任務;第四類粉塵由于是微小粉塵,小目標檢測一直是目標檢測算法的難點,不過此類粉塵對粉塵最終的濃度判定影響不大,本文將其檢測精度提高到57.43%。值得注意的是,SAM空間注意力模塊在實驗中表現(xiàn)不佳,對提高粉塵檢測性能沒有明顯的效果。XRes模塊單獨使用時,對檢測效果影響不大,但當其與其它模塊搭配時,對粉塵檢測精度有一定的增益。圖12是利用Darknet網(wǎng)絡框架訓練本文改進網(wǎng)絡訓練過程中生成的平均損失變化曲線,可以看出,網(wǎng)絡損失在迭代30000次時收斂。
表2 消融實驗
表3 對比實驗
為了直觀體現(xiàn)改進后的算法的檢測效果相比未改進前的區(qū)別,選取了一些檢測圖片進行對比分析。從圖13中可以發(fā)現(xiàn),原版的YOLOv4-tiny算法存在較明顯的漏檢現(xiàn)象,SSD算法容易將同一區(qū)域同時識別為多種粉塵,而Faster RCNN算法存在將非粉塵區(qū)域檢測誤認為粉塵的現(xiàn)象。YOLOv4算法的檢測結果雖然較本文改進的算法更加全面,但本文算法也很好地對有粉塵的區(qū)域進行了準確的識別,可以勝任生產作業(yè)中的煤粉塵預警工作,而且檢測速度快于YOLOv4,更適合用于有實時性要求的場合。
圖11 粉塵檢測mAP值折線圖
圖12 損失曲線圖
圖13 粉塵檢測效果對比圖
本文首次提出了一種基于深度學習的溜筒卸料粉塵檢測方法。實驗結果證明,SPP模塊、特征融合PRN模塊在粉塵檢測中能發(fā)揮作用。除此之外,本文參考SENet網(wǎng)絡和Xception網(wǎng)絡提出的SERes模塊和XRes模塊也能在不同程度上提高網(wǎng)絡模型的檢測性能。這些模塊有效地解決了YOLOv4-tiny網(wǎng)絡模型檢測速度快但準確率低的問題,在保證實時性的前提下,有效地提高了網(wǎng)絡對煤粉塵的識別能力。
改進后的YOLOv4-tiny網(wǎng)絡模型相比原網(wǎng)絡模型,mAP值提高了3個百分點,達到81.27%,其中速度(FPS)為25.1,很好地滿足了工業(yè)現(xiàn)場對粉塵檢測的實時性與準確性的要求,解決了在煤炭港口溜筒卸料粉塵識別預警過程中,需要專人長期檢查作業(yè)現(xiàn)場帶來的工作效率低下的問題,很好地推動了煤炭港口的無人化建設。
由于基于深度學習的粉塵檢測算法只能檢測有無粉塵,無法有效判斷粉塵濃度,本文對粉塵進行了細分,將疑似干擾物和特征最明顯的粉塵作專門檢測,同時為了加強算法對小目標粉塵的檢測能力,也將小目標粉塵單列出來。最后綜合四類粉塵的各自檢測框的總面積作加權和計算,將計算結果作為粉塵濃度的指代,為港口除塵裝置量化除塵措施提供依據(jù)。
本文研究的溜筒卸料粉塵檢測算法還存在許多不足:一方面粉塵的檢測精度需要進一步提升,本文第三類粉塵其實存在多種分布情況,這是其精度相比前兩類低的主要原因,可以考慮從提高算法性能和進一步細化粉塵分類這兩個角度提高檢測效果。而針對第四類小目標粉塵,需要進一步優(yōu)化算法。另一方面,根據(jù)粉塵檢測框的面積大小進行加權計算,根據(jù)計算結果判斷粉塵濃度的方法存在很大的不確定性。這種方法主要依據(jù)粉塵擴散的面積,不同類型粉塵的加權系數(shù)只能依據(jù)經(jīng)驗選擇,往往不夠可靠。下一步需要研究找到與粉塵濃度相關性更高的物理量用于判斷粉塵濃度。在未來的研究工作中,我們將進一步結合港口現(xiàn)場的作業(yè)環(huán)境,對多種復雜場景進行研究,將深度學習與粉塵檢測更好地結合。
[1] Wang D C. Study about dust controlling techniques in Huanghua port[J]., 2017, 15(5): 89–92.
汪大春. 黃驊港粉塵治理技術研究[J]. 神華科技, 2017, 15(5): 89?92.
[2] Yao Z Y. Research on the application of object detection technology based on deep learning algorithm[D]. Beijing: Beijing University of Posts and Telecommunications, 2019.
姚筑宇. 基于深度學習的目標檢測研究與應用[D]. 北京: 北京郵電大學, 2019.
[3] Frizzi S, Kaabi R, Bouchouicha M,. Convolutional neural network for video fire and smoke detection[C]//, Florence, 2016: 877–882.
[4] Tao C Y, Zhang J, Wang P. Smoke detection based on deep convolutional neural networks[C]//, Wuhan, 2016: 150–153.
[5] Zhang F, Qin W, Liu Y B,. A Dual-Channel convolution neural network for image smoke detection[J]., 2020, 79(45): 34587–34603.
[6] Girshick R. Fast R-CNN[C]//, Santiago, 2015: 1440–1448.
[7] Ren S Q, He K M, Girshick R,. Faster R-CNN: towards real-time object detection with region proposal networks[J]., 2017, 39(6): 1137–1149.
[8] Redmon J, Divvala S, Girshick R,. You only look once: unified, real-time object detection[C]//, Las Vegas, 2016: 779–788.
[9] Redmon J, Farhadi A. YOLO9000: Better, faster, stronger[C]//, Honolulu, 2017: 6517–6525.
[10] Redmon J, Farhadi A. YOLOv3: An Incremental improvement[Z]. arXiv: 1804.02767, 2018.
[11] Bochkovskiy A, Wang C Y, Liao H Y M. YOLOv4: optimal speed and accuracy of object detection[Z]. arXiv: 2004.10934, 2020.
[12] He K M, Zhang X Y, Ren S Q,. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]., 2015, 37(9): 1904?1916.
[13] Wang C Y, Liao H Y M, Chen P Y,. Enriching variety of layer-wise learning information by gradient combination[C]//, Seoul, 2019: 2477–2484.
[14] Wang C Y, Liao H Y M, Wu Y H,. CSPNet: a new backbone that can enhance learning capability of CNN[C]//, Seattle, 2020: 1571–1580.
[15] Lin T Y, Dollár P, Girshick R,. Feature pyramid networks for object detection[C]//, Honolulu, 2017: 936–944.
[16] Liu S, Qi L, Qin H F,. Path aggregation network for instance segmentation[C]//, Salt Lake City, 2018: 8759?8768.
[17] Chollet F. Xception: deep learning with depthwise separable convolutions[C]//, Honolulu, 2017: 1800?1807.
[18] Szegedy C, Liu W, Jia Y Q,. Going deeper with convolutions[C]//, Boston, 2015: 1?9.
[19] Szegedy C, Vanhoucke V, Ioffe S,. Rethinking the inception architecture for computer vision[C]//, Las Vegas, 2016: 2818?2826.
[20] Hu J, Shen L, Sun G. Squeeze-and-Excitation networks[C]//, Salt Lake City, 2018: 7132?7141.
[21] He K M, Zhang X Y, Ren S Q,. Deep residual learning for image recognition[C]//, Las Vegas, 2016: 770?778.
The detection method for coal dust caused by chute discharge based on YOLOv4-tiny
Li Haibin1,2, Sun Yuan1*, Zhang Wenming2, Li Yaqian2
1School of Electrical Engineering, Yanshan University, Qinhuangdao, Hebei 066004, China;2Key Laboratory of Industrial Computer Control Engineering of Hebei Province, Yanshan University, Qinhuangdao, Hebei 066004, China
Dust detection
Overview:In recent years, with the improvement of the public's environmental protection concept and the tightening of environmental protection policies, how to effectively reduce or quickly suppress the dust generated in the production process has become a problem that coal ports must face. It is the last link of the whole production link that the ship loader unloads the coal to the cargo ship through the chute. In the front production link of the coal ports, various dust suppression measures are adopted, such as wind proof and dust suppression nets, dry dust removal systems, and so on. Although these measures effectively reduce the dust generation when the coal spills into the cabin, the dust suppression measures in the early stage do not form a closed-loop control with the unloading link, and cannot automatically suppress the dust from the unloading link. Thus, the separate treatment of the unloading dust is still an important part of the whole environmental protection operation. At present, the main measure to suppress this kind of dust in domestic coal ports is watering. As the discharge dust only occurs occasionally, if the sprinkler dust removal device is always turned on, it will lead to excessive watering, which will undoubtedly reduce the actual coal loading of cargo ships and affect the economic benefits. If the dust removal device is manually controlled by workers on site, it is not conducive to the construction of unmanned ports. Therefore, it is necessary to develop an automatic real-time detection method of coal dust discharge. When the dust is detected, an early warning signal is sent to inform the dust suppression operation to take corresponding measures. The improved deep convolution neural network (YOLOv4-tiny) is used to train and test on the data set of dust, and then to learn its internal feature representation. The improvement measures include: a SERes module is proposed to strengthen the information interaction between the detection algorithm network channels; a XRes module is proposed to increase the depth and width of the algorithm network; a SPP module and a PRN module are added to enhance the feature fusion ability of the algorithm. Because the detection algorithm cannot get the dust concentration, this paper divides the dust into four categories for detection, and finally counts the total area of the detection frame of the four categories of dust. After that, the dust concentration is approximately judged by weighting and calculating these data. The experimental results show that the detection accuracy (AP) of four types of dust is 93.98%, 93.57%, 80.03% and 57.43%, the average detection accuracy (mAP) is 81.27% (which is close to 83.38% of YOLOv4), and the detection speed (FPS) is 25.1 (which is higher than 13.4 of YOLOv4). The algorithm can balance the speed and accuracy of dust detection, and can be used for real-time dust detection to improve the efficiency of suppressing coal dust generated by chute discharge.
Li H B, Sun Y, Zhang W M,The detection method for coal dust caused by chute discharge based on YOLOv4-tiny[J]., 2021, 48(6): 210049; DOI:10.12086/oee.2021.210049
The detection method for coal dust caused by chute discharge based on YOLOv4-tiny
Li Haibin1,2, Sun Yuan1*, Zhang Wenming2, Li Yaqian2
1School of Electrical Engineering, Yanshan University, Qinhuangdao, Hebei 066004, China;2Key Laboratory of Industrial Computer Control Engineering of Hebei Province, Yanshan University, Qinhuangdao, Hebei 066004, China
The coal port will produce dust in the process of unloading coal by the chute of the ship loader. In order to solve the problem of dust detection, this paper proposes a method of coal dust detection based on deep learning (YOLOv4-tiny). The improved YOLOv4-tiny network is used to train and test the dust data set of chute discharge. Because the detection algorithm cannot get the dust concentration, this paper divides the dust into four categories for detection, and finally counts the area of detection frames of the four categories of dust. After that, the dust concentration is approximately judged through the weighted sum calculation of these data. The experimental results show that the detection accuracy (AP) of four types of dust is 93.98%, 93.57%, 80.03% and 57.43%, the average detection accuracy (mAP) is 81.27% (which is close to 83.38% of YOLOv4), and the detection speed (FPS) is 25.1 (which is higher than 13.4 of YOLOv4). The algorithm can balance the speed and accuracy of dust detection, and can be used for real-time dust detection to improve the efficiency of suppressing coal dust generated by chute discharge.
coal dust detection; YOLOv4-tiny; deep learning; object detection
李海濱,孫遠,張文明,等. 基于YOLOv4-tiny的溜筒卸料煤塵檢測方法[J]. 光電工程,2021,48(6): 210049
Li H B, Sun Y, Zhang W M,The detection method for coal dust caused by chute discharge based on YOLOv4-tiny[J]., 2021, 48(6): 210049
TP391.41
A
10.12086/oee.2021.210049
2021-02-09;
2021-05-15
河北省自然科學基金資助項目(F2019203195)
李海濱(1978-),男,博士,教授,主要從事基于深度學習的圖像處理算法(目標檢測、圖像分割、目標跟蹤、圖像增強、三維重建等)及其在水下環(huán)境的應用。E-mail:hbli@ysu.edu.cn
孫遠(1996-),男,碩士研究生,主要從事計算機視覺、目標檢測方面的研究。E-mail:2786765531@qq.com
Natural Science Foundation of Hebei Province (F2019203195)
* E-mail: 2786765531@qq.com