李春賀
(中國礦業(yè)大學(北京)管理學院,北京100083)
研究表明,煤炭行業(yè)的重大事故大多是由于工作人員的不當操作所導致,因此在生產(chǎn)過程中,對礦工危險行為的監(jiān)控和預警是防止發(fā)生事故的重要方法[1-3]。近年來,隨著深度學習、人工智能技術(shù)的不斷發(fā)展和應用,基于計算機視覺的深度學習算法逐漸開始應用到實際項目中[4-5]。為了遏制煤炭安全事故,礦井中安裝有大量的監(jiān)控攝像頭,但是工作人員無法同時關(guān)注多個監(jiān)控攝像頭返回的畫面,因此導致了一定的生產(chǎn)安全隱患產(chǎn)生[2]。使用基于深度學習的計算機視覺算法完成對煤礦井下礦工危險行為的檢測和識別,不但可以有效的抑制煤礦安全事故的發(fā)生,更能提高企業(yè)經(jīng)濟效益。針對煤礦井下背景復雜、目標尺度變化大、小目標較多等問題,提出了一種礦工危險動作檢測算法。該算法在YOLOv3 檢測模型的基礎(chǔ)之上,設(shè)計了一種輕量化的輕量化的特征提取網(wǎng)絡(luò),在保持模型特征提取能力不變的情況下,極大壓縮了模型體積和計算量,有效地提升了模型的測試速度。為了解決YOLOv3 算法對于小目標的漏檢和誤檢這一問題,設(shè)計了一種基于注意力機制的特征融合模塊,該模塊通過空間注意力機制來融合局部細節(jié)信息來增強小目標的檢測性能,通過通道注意力機制來融合全局特征來優(yōu)化目標檢測的精度。經(jīng)過大量對比試驗,結(jié)果證明所提出的方法在礦工危險動作檢測方面具有很好的性能和檢測精度。
煤炭井下環(huán)境復雜多變,一旦礦工出現(xiàn)不安全的行為有可能導致重大安全事故產(chǎn)生[6]。為了使用計算機視覺技術(shù)高效的監(jiān)控礦工的危險行為,預防發(fā)生安全事故,首先需要對礦工的危險行為進行定義[7-9]。根據(jù)實際需求在項目中,將所需檢測的礦工危險行為分為“常規(guī)型危險動作”和“入侵型危險動作”。其中,常規(guī)型危險動作主要包括:未佩戴安全帽、未佩戴探照燈、未佩戴防塵罩、使用手機以及吸煙;入侵型危險動作包括:進入警戒區(qū)域、進入軌道。
目前基于深度學習的目標檢測方法在精度和效率等方面己經(jīng)遠優(yōu)于傳統(tǒng)方法,成為工業(yè)界和學術(shù)界一個熱點的研究課題。一般來說,目標檢測算法主要分為2 階段目標檢測算法和單階段目標檢測算法。2 階段目標檢測算法[6]精度高,但是實時性較差、模型體積大,很難在實際的項目中直接使用。單階段目標檢測算法為了提升檢測速度,直接使用檢測模型來輸出檢測框的位置和分類信息。這種算法主要以SSD[5],YOLO9000 以及YOLOv3[10]為代表,和2階段算法相比,單階段目標檢測模型體積小、檢測速度快、召回率高,具有較強的使用價值,但是檢測精度略差。
在礦工危險動作檢測應用場景中,需要使用算法實時的處理幾十個監(jiān)控攝像頭返回的畫面,所以對算法的運行速度以及檢測精度具有很高的要求[11],因此只能選擇單階段目標檢測算法。YOLOv3 是一種常用的端到端的單階段目標檢測模型,算法使用DarkNet-19 作為特征提取網(wǎng)絡(luò),借助特征金字塔來融合高層的語意信息和低層的細節(jié)信息,實現(xiàn)快速目標檢測。選擇YOLOv3 作為基本框架,通過設(shè)計輕量化特征提取網(wǎng)絡(luò)和基于注意力機制的特征融合模塊來提高算法的實時性和檢測精度。
算法的總體結(jié)構(gòu)如圖1。輸入圖像經(jīng)過輕量化神經(jīng)網(wǎng)絡(luò)進行特征提取后,將最后3 層所輸出的特征圖進行多尺度特征融合,然后使用空間注意力機制(Space Attention Module, PAM)和信道注意力機制(Channel Attention Module, CAM)來分別完成對局部特征進行空間關(guān)聯(lián)性建模和信道關(guān)聯(lián)性建模,最后進行邊框回歸,輸出定位坐標和分類結(jié)果。
圖1 算法總體流程圖Fig.1 Flow chart of proposed algorithm
在原本的YOLOv3 結(jié)構(gòu)中,為了提升目標檢測精度,使用了具有很強特征提取能力的DarkNet-19作為骨干網(wǎng)絡(luò)。經(jīng)過測試,DarkNet-19 的在精度上都取得了較好的結(jié)果,但是DarkNet-19 模型中包含有19 個卷積操作,參數(shù)量較大,在實際運行中需要消耗大量的內(nèi)存;此外該模型的計算量較大,無法做到對多路監(jiān)控攝像頭進行實時處理,因此無法直接應用到我們的項目中。
針對上述問題,同時結(jié)合實際項目需求,提出了一種輕量化的特征提取網(wǎng)絡(luò),該網(wǎng)絡(luò)在保證精度不變的情況下,可以極大的壓縮模型參數(shù)量和計算量。我們采用深度可分離卷積來取代模型中的部分標準卷積,并對模型的Block 結(jié)構(gòu)進行重新設(shè)計,將原本用于降采樣操作的Max Pooling 結(jié)構(gòu)使用Stride=2的3×3 的卷積層代替,加速模型前向傳播速度。為了解決ReLU 在模型訓練時導致的神經(jīng)元退化現(xiàn)象,使用Leaky ReLU 作為輕量化模型的激活函數(shù)。網(wǎng)絡(luò)的具體結(jié)構(gòu)見表1。其中ConvDW 為可分離卷積模塊,ConvDW*為使用卷積層完成特征圖降采樣。
所提出的輕量化模型的參數(shù)量為0.39 M,與DarkNet-19(參數(shù)量為20 M)相比,僅占后者的1.7%。輕量化模型的極小的參數(shù)量和計算量為目標檢測算法的實時性提供了有力的保證。
表1 輕量化模型的具體結(jié)構(gòu)Table 1 Structure of lightweight model
YOLOv3 目標檢測框架,雖然具有檢測精度高、實時性好等一系列優(yōu)點;但是該算法對小目標不敏感,容易造成小目標的誤檢和漏檢影響算法的總體性能;此外算法生成的檢測框貼合度不夠,在這一場景中容易導致系統(tǒng)誤報產(chǎn)生。為了解決上述的這些問題,提出了一種基于注意力機制的特征融合模塊,該模塊包含空間注意力機制(PAM)和通道注意力機制(CAM)2 個部分。
2.3.1 空間注意力機制(PAM)
目標檢測算法在小目標問題上表現(xiàn)不佳,因為深度神經(jīng)網(wǎng)絡(luò)在特征提取階段將部分細節(jié)信息丟失。為了解決這一問題,設(shè)計了一種空間注意力機制來對局部細節(jié)信息進行特征建模。PAM 可以在局部特征上構(gòu)建豐富的上下文語義關(guān)系,從而增強特征的細節(jié)表示能力,空間注意力機制結(jié)構(gòu)如圖2。
圖2 空間注意力機制結(jié)構(gòu)圖Fig.2 Structure of spatial attention mechanism
對于給定的一個特征F∈RC×H×W,需要使用卷積層來生成2 組與原始輸入特征維度相同的新的特征U 和V;然后對新的特征進行Reshape(重塑),將維度調(diào)整為RC×N,其中N=H×W,表示單個同道中特征點的總數(shù);最后使用Softmax 函數(shù)對U 和V 矩陣相乘的結(jié)果進行處理,得到PAM 的特征矩陣S∈RN×N。
在PAM 中,為了獲得特征之間的語義信息,還需要將Reshape(重塑)之后的特征D,與注意力關(guān)系矩陣相乘,然后與原有的特征圖在每一個元素上執(zhí)行相加操作,得到最終的輸出特征中包含局部細節(jié)信息和全局的語義信息,有助于提升目標檢測模型對小目標的敏感程度,提升檢測性能。
式中:η 為一個常數(shù),用來平衡局部細節(jié)特征與原始輸入特征之間的比例關(guān)系;sij為i-th 位置的特征對j-th 特征產(chǎn)生的影響,特征之間的相似度越高sij的值越大;Di為特D 中的i-th 個向量;Fi為特征圖中的i-th 層。
2.3.2 通道注意力機制(CAM)
深度神經(jīng)網(wǎng)絡(luò)所輸出的特征圖中的每一個信道都可以當成是對圖像中某一具體類別的響應,并且不同的信道相應之間具有一定的關(guān)聯(lián)性。因此,提出了一種通道注意力機制來探索不同信道之間的相依賴關(guān)系,增強模型的特征提取和建模能力,從而提高目標檢測的精度,信道注意力機制結(jié)構(gòu)如圖3。
圖3 信道注意力機制結(jié)構(gòu)圖Fig.3 Structure of channel attention mechanism
與PAM 不同,CAM 直接使用深度神經(jīng)網(wǎng)絡(luò)輸出的特征F∈RC×H×W來計算出注意力矩陣X∈RC×C;接下來,將特征圖F 縮放到RC×N這一維度,并計算F的特征轉(zhuǎn)置矩陣;然后使用Softmax 函數(shù)對獲得的矩陣進行處理,獲得最終的注意力矩陣X∈RC×C。
在CAM 中,將注意里矩陣X 與原始的輸入特征X 相乘,獲得信道之間的關(guān)系矩陣,最后將關(guān)系矩陣與原始的輸入特征F 在相加,獲得最后的輸出∈RC×H×W。
式中:γ 為固定參數(shù);xij為第i-th 個通道對j-th個通道的影響;Fi為特征圖中的第i-th 層。
最終輸出的特征圖中的每一個通道都通過全局信息加權(quán)得到的,因此具有更強的特征表達能力。
項目中需要完成“一般型危險動作”和“入侵型危險動作”2 個任務(wù)。因此,根據(jù)實際的需要,訓練2個模型來應對不同的需求。
根據(jù)需求,在項目實際部署和使用的煤礦采集了10 000 張RGB 圖片進行標注。數(shù)據(jù)集一共含有6類標注目標,分別是人、安全帽、安全燈、防塵罩、手機、吸煙,其中8 000 張圖片用于模型訓練,2 000 張圖片用于實驗測試。
模型訓練時使用Adam 進行優(yōu)化,初始學習率為0.001,批次處理(Batch size)是64,共訓練100 epoch,每隔30 epoch 學習率減小為原來的1/10。算法使用mAP、準確率、召回率以及錯誤率作為評價指標。
為了證明所提出算法的可靠性和穩(wěn)定性,與常用的目標檢測算法進行了對比。根據(jù)實際的需要,我們需要針對“一般型危險動作”和“入侵型危險動作”分別進行對照試驗。動作檢測結(jié)果(AP)見表2。表2 中A 任務(wù)是“一般型危險動作”的試驗對照結(jié)果,因為檢測類別較多,所以使用mAP 作為檢測指標;B 任務(wù)是“入侵型危險動作”檢測對比結(jié)果,檢測中只需要檢測一類,AP 作為判斷指標。
表2 動作檢測結(jié)果Table 2 The detection results of dangerous action %
從表2 的結(jié)果中可以看出,提出的基于注意力機制的目標檢測算法在性能上明顯優(yōu)于常用的目標檢測算法。
一般來說,模型的參數(shù)量和計算量會直接影響到模型的推理時間。為了證明提出算法在實時性和參數(shù)量上的優(yōu)勢,將提出的輕量化特征提取網(wǎng)絡(luò)與MobileNet V2 等結(jié)構(gòu)進行對比。網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)對比結(jié)果見表3。
表3 網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)對比Table 3 Comparison of network structure parameters
從表3 對比結(jié)果可以發(fā)現(xiàn),提出的輕量化特征提取網(wǎng)絡(luò)參數(shù)量和計算量明顯小于其他對比網(wǎng)絡(luò)。并且運行速度遠高于其他結(jié)構(gòu);其中輕量化模型的測試速度是6.6 倍。
對于深度學習模型來說,輸入圖片的尺寸越大,模型可以提取的細節(jié)信息越多,最終的檢測精度也就越高,但是模型運行速度會受到一定的影響。為了平衡模型的運算速度和準確率,基于“一般型危險動作檢測”任務(wù)設(shè)計了1 組對比實驗來尋找最佳的圖像輸入尺寸。試驗中使用了多種圖像分辨率進行分析,當輸入圖片的尺寸為512×512 時,模型的速度和準確率都較好,因此在算法中選擇512×512 進行訓練和測試。
為了探索提出的PAM 和CAM 2 種注意力模塊在算法中的作用,進行1 組試驗,來探索注意力模塊對檢測算法所產(chǎn)生的影響。結(jié)果顯示,同時使用了PAM 和CAM 2 種注意力模塊的算法比基準模型在mAP 上提升了5.7%,并且注意力模塊只增加了極少的運算量。
為了有效的對礦工在井下出現(xiàn)的危險動作進行實時監(jiān)控,提出了一種基于注意力機制的危險動作檢測算法。為了解決目標檢測算法對小目標容易產(chǎn)生漏檢和誤檢等問題,提出了PAM 和CAM 2 種基于注意力機制的特征融合算法,優(yōu)化了算法的檢測性能。同時為了適應監(jiān)控場景下對算法實時性的要求,設(shè)計了一種輕量化的特征提取網(wǎng)絡(luò),在不損害性能的情況下,極大地提升了算法的測試速度。此外,對于煤礦井下目標檢測仍然有很多需要解決的問題,例如解決井下光照條件對檢測算法性能的影響等。