中國礦業大學(北京)機電學院 裴宇軒 宋超凡 曾日桓 張國英
為了解決巷道及煤礦工作面人體目標檢測的準確和實時問題,本文設計一種基于預測目標損失優化的YOLOv3網絡模型。實驗結果表明,基于損失函數優化的網絡模型的礦下人體識別方法,損失顯著下降,誤檢下降,漏檢得到改善。
煤礦巷道及工作面環境復雜,存在著一定的危險性。對煤礦巷道及工作面工作人員實時準確識別,是降低煤礦傷亡事故的基礎。
深度學習方法模擬人類大腦的神經元,直接從圖像提取特征,逐層傳遞,獲得圖像的高維信息[1-2],傳統方法則需要手動提取特征信息。目前基于深度學習目標檢測方法可分為兩類:第一類,首先生成目標候選框,再對候選框做分類和回歸預測,如R-CNN、Fast R-CNN、Faster R-CNN等。另一類,不需要產生候選框,卷積神經網絡直接預測不同目標的位置和種類,如SSD、YOLO系列網絡等。對于實時性要求較高的場景,選用一階段類型FPS較高的目標檢測方法更為合適。
本文提出了用于礦井環境下人體識別的YOLOv3檢測算法。首先改進了錨框中心坐標的損失函數[3],利于訓練迭代的收斂[4];接著將無關背景造成的損失權重進一步下降,減少其對總損失的貢獻,以便更好的符合實際礦井環境[5]。
YOLO首創了使用回歸思想進行目標檢測的方法,這么做將目標檢測問題轉化為了回歸問題,通過預測變量的方式來檢測物體的邊界框坐標和物體類別。
YOLOv3網絡結構如圖1所示,分為骨干網絡Darknet-53以及目標檢測網絡兩部分。

圖1 驗證集損失曲線對比Fig.1 Comparison of loss curve of verification set
Darknet-53的每一個卷積層都使用了特有的二維卷積的結構,在每一次卷積時都進行L2正則化,卷積完成后進行標準化以及Leaky ReLU。一般的ReLU是把所有的負數都設為0,而Leaky ReLU則是把負值都賦予一個非零斜率,數學表達式如式(1)所示:

YOLOv3采用參考錨框的偏移量作為預測值機制,預測錨框中心點的坐標以及錨框的寬高。預測錨框與真實框的偏差值是K-means算法的輸出值。原YOLOv3生成9個錨框,不同尺寸大小的特征圖對應三個錨框。但公共數據集的樣本具有普遍性,所設定的錨框參數對特定樣本不具有普適效果。所以為了更好的預測真實邊界框,需要調整預設的錨框參數[6]。
在YOLOv3中,Anchor聚類生成的計算公式為:

最終在自制的礦井人員數據集經過K-means聚類得到9個錨框,如表1所示。

表1 修改后的錨框參數Tab.1 Modified anchor frame parameters
訓練過程中,對于不需要檢測出的物體稱為誤檢測樣本,要為其添加一個權重,該權重通過損失函數來定義。代表著檢測錯誤受到的懲罰,因此也稱為懲罰項。設計符合實際場景的損失函數,對訓練模型的收斂速度和檢測精度有著很大影響。
1.3.1 損失函數
YOLOv3的損失函數采用均方差結合交叉熵的形式,見公式(3)。

公式3中前兩項是錨框誤差,對中心坐標和驗證框的寬高做平方均值化處理,其中λcoord為權重;代表第i個網格的第j個錨框是否包含物體中心。和是網絡經過歸一化操作后得到的預測值,值域為[0,1]。
為了增加背景和人體區域的差異性,提出一種動態調節權重的YOLOv3損失函數[7],在迭代收斂速度上有較好的優化,準確度也有一定的提升。
1.3.2 無樣本權重降低
在面對本文特殊的數據集時,會產生以下阻礙模型得到高效訓練的困難:
(1)背景環境占據圖像大面積:若背景環境的權值過高會導致網絡訓練收斂非常緩慢,因為降低了識別目標的占比過小,網絡會傾向于識別成背景環境。
(2)難以識別樣本損失優化:如果某個樣本很明顯是真實樣本,那么它的值極其接近1,但可能它的預測值遠小于1。以上情況需要對其損失函數進行復雜的優化,否則會對損失收斂和識別準確率造成巨大的代價。
1.3.3 優化錨框中心偏移損失
均方差損失會將背景環境與識別目標的預測概率和真實概率都進行計算,而交叉熵函數只會關注識別目標的預測概率。本實驗是單分類任務,交叉熵比MSE更為合適。
在本文實驗中,優化后的損失值為原損失的三分之一。
以下是原中心坐標的損失表達式:


改進后的表達式為:
在礦井下這一特定環境中,僅僅使用礦井的原始樣本是不夠的。于是加入了VOC2007中272張人體圖片,加強訓練模型的魯棒性。
樣本主要是通過兩種方式獲得,從礦井監控攝像頭的視頻經過逐幀截取得到的,此類圖片大都是弱光照,背景對比度較強的樣本,一共780張;另一部分選取了VOC 2007公共數據樣本,一共272張,合計1052張。
2.2.1 數據劃分
按照訓練集、驗證集、測試集18∶2∶5的比例劃分數據集。最終劃分結果為訓練集+驗證集843張,測試集209張。
2.2.2 標注方法及內容
本文使用Labelimg軟件標注每張圖像,標注信息為人體分布情況以及人體邊框的左上坐標和右下坐標。
對數據集訓練處理的步驟:(1)構建VOC的文件目錄;(2)由訓練集(Train)與測試集(Val)9∶1的比例,生成存放有標注信息的文本;(3)生成最終訓練的文本。接著設置好訓練參數,即可開始訓練。
本文訓練了兩個網絡模型,一個是標準YOLOv3網絡,設為對照組,其具體的網絡結構見文獻;另一個是本文構建的網絡。
本文實驗平臺為:Windows10操作系統,IntelCorei7-7700hq處理器,NVIDIAGTX1060獨立顯卡,6G顯存,8G內存。采用Pytorch框架進行訓練,Torch版本1.2.0,Torchvision版本0.4.0,Cuda版本10.0,Cudnn版本7.4.1.5。
最后對實驗得到的權重進行準確率測試,最終得到如下結論。
(1)改進了錨框中心偏移損失函數的YOLOv3模型對訓練過程中損失的收斂速度有著大幅提高,并且最終得到的權重損失有著大幅下降。如圖1所示,改進的模型在20輪次已經收斂,而原網絡在40輪次接近收斂;改進模型的最終損失下降了三倍之多。
(2)如圖2所示,原網絡mAP值為96.83%,改進后的網絡mAP值為96.92%,有了一定的提升。

圖2 測試集mAP(左:本文網絡,右:YOLOv3原網絡)Fig.2 Test set map(left: this network, right: YOLOv3 original network)
本文提出了一種基于錨框優化及改進損失函數的YOLOv3網絡模型,對于復雜背景、背景環境多的場景,降低背景環境對網絡損失的影響,從而提高識別目標的準確率和訓練損失的收斂速度。
迄今為止,YOLOv3作為一階段網絡模型中檢測速度快,檢測效果好的優異方案,已經在軍事、工業生產、航空航天、教育等方面大量落地實施。本文提出的方法,在礦井這一特定光照較暗,背景無關信息較多的環境下有較好的表現。
引用
[1] 陳聰,楊忠,宋佳蓉,等.一種改進的卷積神經網絡行人識別方法[J].應用科技,2019,46(3):51-57.
[2] 秦升,張曉林,陳利利,等.基于人類視覺機制的層級偏移式目標檢測[J].計算機工程,2018,44(6):253-258.
[3] 張寬,滕國偉.基于位置預測的目標檢測算法[J].電子測量技術,2019,42(19):164-169.
[4] 麻森權,周克.基于注意力機制和特征融合改進的小目標檢測算法[J].計算機應用與軟件,2020,37(5):194-199.
[5] 喬婷,蘇寒松,劉高華,等.基于改進的特征提取網絡的目標檢測算法[J].激光與光電子學進展,2019,56(23):134-139.
[6] 鞠默然,羅海波,王仲博,等.改進的YOLO V3算法及其在小目標檢測中的應用[J].光學學報,2019,39(7):253-260.
[7] 劉曉楠,王正平,賀云濤,等.基于深度學習的小目標檢測研究綜述[J].戰術導彈技術,2019(1):100-107.