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