中國礦業(yè)大學(北京)機電學院 裴宇軒 宋超凡 曾日桓 張國英
為了解決巷道及煤礦工作面人體目標檢測的準確和實時問題,本文設計一種基于預測目標損失優(yōu)化的YOLOv3網(wǎng)絡模型。實驗結(jié)果表明,基于損失函數(shù)優(yōu)化的網(wǎng)絡模型的礦下人體識別方法,損失顯著下降,誤檢下降,漏檢得到改善。
煤礦巷道及工作面環(huán)境復雜,存在著一定的危險性。對煤礦巷道及工作面工作人員實時準確識別,是降低煤礦傷亡事故的基礎。
深度學習方法模擬人類大腦的神經(jīng)元,直接從圖像提取特征,逐層傳遞,獲得圖像的高維信息[1-2],傳統(tǒng)方法則需要手動提取特征信息。目前基于深度學習目標檢測方法可分為兩類:第一類,首先生成目標候選框,再對候選框做分類和回歸預測,如R-CNN、Fast R-CNN、Faster R-CNN等。另一類,不需要產(chǎn)生候選框,卷積神經(jīng)網(wǎng)絡直接預測不同目標的位置和種類,如SSD、YOLO系列網(wǎng)絡等。對于實時性要求較高的場景,選用一階段類型FPS較高的目標檢測方法更為合適。
本文提出了用于礦井環(huán)境下人體識別的YOLOv3檢測算法。首先改進了錨框中心坐標的損失函數(shù)[3],利于訓練迭代的收斂[4];接著將無關背景造成的損失權(quán)重進一步下降,減少其對總損失的貢獻,以便更好的符合實際礦井環(huán)境[5]。
YOLO首創(chuàng)了使用回歸思想進行目標檢測的方法,這么做將目標檢測問題轉(zhuǎn)化為了回歸問題,通過預測變量的方式來檢測物體的邊界框坐標和物體類別。
YOLOv3網(wǎng)絡結(jié)構(gòu)如圖1所示,分為骨干網(wǎng)絡Darknet-53以及目標檢測網(wǎng)絡兩部分。
圖1 驗證集損失曲線對比Fig.1 Comparison of loss curve of verification set
Darknet-53的每一個卷積層都使用了特有的二維卷積的結(jié)構(gòu),在每一次卷積時都進行L2正則化,卷積完成后進行標準化以及Leaky ReLU。一般的ReLU是把所有的負數(shù)都設為0,而Leaky ReLU則是把負值都賦予一個非零斜率,數(shù)學表達式如式(1)所示:
YOLOv3采用參考錨框的偏移量作為預測值機制,預測錨框中心點的坐標以及錨框的寬高。預測錨框與真實框的偏差值是K-means算法的輸出值。原YOLOv3生成9個錨框,不同尺寸大小的特征圖對應三個錨框。但公共數(shù)據(jù)集的樣本具有普遍性,所設定的錨框參數(shù)對特定樣本不具有普適效果。所以為了更好的預測真實邊界框,需要調(diào)整預設的錨框參數(shù)[6]。
在YOLOv3中,Anchor聚類生成的計算公式為:
最終在自制的礦井人員數(shù)據(jù)集經(jīng)過K-means聚類得到9個錨框,如表1所示。
表1 修改后的錨框參數(shù)Tab.1 Modified anchor frame parameters
訓練過程中,對于不需要檢測出的物體稱為誤檢測樣本,要為其添加一個權(quán)重,該權(quán)重通過損失函數(shù)來定義。代表著檢測錯誤受到的懲罰,因此也稱為懲罰項。設計符合實際場景的損失函數(shù),對訓練模型的收斂速度和檢測精度有著很大影響。
1.3.1 損失函數(shù)
YOLOv3的損失函數(shù)采用均方差結(jié)合交叉熵的形式,見公式(3)。
公式3中前兩項是錨框誤差,對中心坐標和驗證框的寬高做平方均值化處理,其中λcoord為權(quán)重;代表第i個網(wǎng)格的第j個錨框是否包含物體中心。和是網(wǎng)絡經(jīng)過歸一化操作后得到的預測值,值域為[0,1]。
為了增加背景和人體區(qū)域的差異性,提出一種動態(tài)調(diào)節(jié)權(quán)重的YOLOv3損失函數(shù)[7],在迭代收斂速度上有較好的優(yōu)化,準確度也有一定的提升。
1.3.2 無樣本權(quán)重降低
在面對本文特殊的數(shù)據(jù)集時,會產(chǎn)生以下阻礙模型得到高效訓練的困難:
(1)背景環(huán)境占據(jù)圖像大面積:若背景環(huán)境的權(quán)值過高會導致網(wǎng)絡訓練收斂非常緩慢,因為降低了識別目標的占比過小,網(wǎng)絡會傾向于識別成背景環(huán)境。
(2)難以識別樣本損失優(yōu)化:如果某個樣本很明顯是真實樣本,那么它的值極其接近1,但可能它的預測值遠小于1。以上情況需要對其損失函數(shù)進行復雜的優(yōu)化,否則會對損失收斂和識別準確率造成巨大的代價。
1.3.3 優(yōu)化錨框中心偏移損失
均方差損失會將背景環(huán)境與識別目標的預測概率和真實概率都進行計算,而交叉熵函數(shù)只會關注識別目標的預測概率。本實驗是單分類任務,交叉熵比MSE更為合適。
在本文實驗中,優(yōu)化后的損失值為原損失的三分之一。
以下是原中心坐標的損失表達式:
改進后的表達式為:
在礦井下這一特定環(huán)境中,僅僅使用礦井的原始樣本是不夠的。于是加入了VOC2007中272張人體圖片,加強訓練模型的魯棒性。
樣本主要是通過兩種方式獲得,從礦井監(jiān)控攝像頭的視頻經(jīng)過逐幀截取得到的,此類圖片大都是弱光照,背景對比度較強的樣本,一共780張;另一部分選取了VOC 2007公共數(shù)據(jù)樣本,一共272張,合計1052張。
2.2.1 數(shù)據(jù)劃分
按照訓練集、驗證集、測試集18∶2∶5的比例劃分數(shù)據(jù)集。最終劃分結(jié)果為訓練集+驗證集843張,測試集209張。
2.2.2 標注方法及內(nèi)容
本文使用Labelimg軟件標注每張圖像,標注信息為人體分布情況以及人體邊框的左上坐標和右下坐標。
對數(shù)據(jù)集訓練處理的步驟:(1)構(gòu)建VOC的文件目錄;(2)由訓練集(Train)與測試集(Val)9∶1的比例,生成存放有標注信息的文本;(3)生成最終訓練的文本。接著設置好訓練參數(shù),即可開始訓練。
本文訓練了兩個網(wǎng)絡模型,一個是標準YOLOv3網(wǎng)絡,設為對照組,其具體的網(wǎng)絡結(jié)構(gòu)見文獻;另一個是本文構(gòu)建的網(wǎng)絡。
本文實驗平臺為:Windows10操作系統(tǒng),IntelCorei7-7700hq處理器,NVIDIAGTX1060獨立顯卡,6G顯存,8G內(nèi)存。采用Pytorch框架進行訓練,Torch版本1.2.0,Torchvision版本0.4.0,Cuda版本10.0,Cudnn版本7.4.1.5。
最后對實驗得到的權(quán)重進行準確率測試,最終得到如下結(jié)論。
(1)改進了錨框中心偏移損失函數(shù)的YOLOv3模型對訓練過程中損失的收斂速度有著大幅提高,并且最終得到的權(quán)重損失有著大幅下降。如圖1所示,改進的模型在20輪次已經(jīng)收斂,而原網(wǎng)絡在40輪次接近收斂;改進模型的最終損失下降了三倍之多。
(2)如圖2所示,原網(wǎng)絡mAP值為96.83%,改進后的網(wǎng)絡mAP值為96.92%,有了一定的提升。
圖2 測試集mAP(左:本文網(wǎng)絡,右:YOLOv3原網(wǎng)絡)Fig.2 Test set map(left: this network, right: YOLOv3 original network)
本文提出了一種基于錨框優(yōu)化及改進損失函數(shù)的YOLOv3網(wǎng)絡模型,對于復雜背景、背景環(huán)境多的場景,降低背景環(huán)境對網(wǎng)絡損失的影響,從而提高識別目標的準確率和訓練損失的收斂速度。
迄今為止,YOLOv3作為一階段網(wǎng)絡模型中檢測速度快,檢測效果好的優(yōu)異方案,已經(jīng)在軍事、工業(yè)生產(chǎn)、航空航天、教育等方面大量落地實施。本文提出的方法,在礦井這一特定光照較暗,背景無關信息較多的環(huán)境下有較好的表現(xiàn)。
引用
[1] 陳聰,楊忠,宋佳蓉,等.一種改進的卷積神經(jīng)網(wǎng)絡行人識別方法[J].應用科技,2019,46(3):51-57.
[2] 秦升,張曉林,陳利利,等.基于人類視覺機制的層級偏移式目標檢測[J].計算機工程,2018,44(6):253-258.
[3] 張寬,滕國偉.基于位置預測的目標檢測算法[J].電子測量技術,2019,42(19):164-169.
[4] 麻森權(quán),周克.基于注意力機制和特征融合改進的小目標檢測算法[J].計算機應用與軟件,2020,37(5):194-199.
[5] 喬婷,蘇寒松,劉高華,等.基于改進的特征提取網(wǎng)絡的目標檢測算法[J].激光與光電子學進展,2019,56(23):134-139.
[6] 鞠默然,羅海波,王仲博,等.改進的YOLO V3算法及其在小目標檢測中的應用[J].光學學報,2019,39(7):253-260.
[7] 劉曉楠,王正平,賀云濤,等.基于深度學習的小目標檢測研究綜述[J].戰(zhàn)術導彈技術,2019(1):100-107.