劉增輝,和孫文,張社榮,王 超,王梟華
(1.天津大學水利工程仿真與安全國家重點實驗室,天津 300350;2.中國電力建設集團(股份)有限公司,北京 100048)
根據水利部2018年發布的水電工程施工危險源清單,施工作業類危險源中明確指出高處作業、有限空間和檢查作業時未正確使用防護用品可能導致的物體打擊和人身傷害后果,而安全帽的佩戴和及時的險情(如火情)報警可以有效防止和降低外來傷害,從而更好地保障施工安全,此外,伴隨新冠疫情的常態化,需要尤其重視施工區人員的口罩佩戴。然而,通過對多處水電施工現場進行統計發現,水電施工作業人員的安全帽佩戴意識較為薄弱,現場管理及險情處理滯后,防疫口罩佩戴參差不齊,這無疑增加了施工場區的作業風險。近年來,國內外眾多專家學者對施工區域的安全佩戴和險情識別技術進行了深入研究。馮國臣等[1]提出判別人體像素面積的模型識別方法,并基于安全帽位置和顏色特征統計來完成佩戴檢測;胡超超等[2]將改進型YOLOv2與卡爾曼濾波結合來檢測追蹤多目標;何超[3]提出了在YOLOv3主網絡三層卷積之后增加特征尺寸更大的卷積層,一定程度上提升了小目標識別效果;徐守坤[4]等提出基于改進的Faster RCNN和多部件結合的安全帽佩戴檢測方法用于提高安全帽檢測準確率,但檢測速率較低;張勇等[5]提出采用DenseNet方法處理低分辨率特征層,在一定程度上提高了YOLOv3時序約束效果。但是現有檢測識別方法仍然存在檢測效率低等問題,無法較好地滿足實際工程應用的需要。為此,提出多目標檢測識別算法YOLOv3-SG,以期對目標檢測識別在復雜水電施工環境中的應用效率提升起到指導作用,滿足水電工程施工場區智能識別場景下的人員安全佩戴管控目標。
深度學習網絡相對于傳統的圖像特征提取方法有明顯優勢。當前目標檢測算法主要有R-CNN、Fast R-CNN、SPP-Net、YOLO、SSD、Retina-Net等[6],并按照其產生候選區域和分類回歸是否融合分為two-stage和one-stage兩類,上述前3種算法就屬于two-stage,其中R-CNN作為開山之作,是Girshick等[7]在2014年CVPR會議上提出的,后續提出的算法多是在其基礎上進行優化改進的。one-stage的代表為2016年的YOLO算法,Redmon等[8]將其判識統一,極大地降低了因重疊導致的重復運算,提高了檢測效率。
本文參照的YOLOv3目標檢測網絡結構是基于YOLOv2進行改進的,其特點是在檢測精度提高的同時,檢測速度相對前版本并無降低。不同于YOLOv2的Darknet-19網絡結構[9]和softmax loss邏輯回歸損失函數,YOLOv3采用darknet-53網絡結構[10],在避免信息丟失方面做了2方面的調整:①融合ResNet跳躍連接層(同時避免梯度消失);②去除Pooling層,使用Conv做下采樣,進一步減少特征損失。此外,相對于YOLOv2的5個錨框anchor,YOLOv3新增了4個anchor,對應在每層為3個anchor,使得預測框與錨框的交并比IOU得到了有效提高。
darknet-53一共是53層卷積(全連接層也是由卷積得到的),Convolutional不單單是一個卷積層,它是普通的卷積、BN歸一化處理和LeakyReLU激活函數三者按照固定順序組和而成的。每個方框對應一個Residual殘差結構,具體殘差結構構成如圖1所示,它的主分支組成為1×1和3×3的卷積層,最后將接近主分支上的輸出直接從輸入上引過來,和主分支上的輸出相加,得到最終的輸出,并非在兩個卷積層之后又接了一個殘差結構,而是整個框對應的為一個殘差結構。在模型結構部分,是在3個特征層上進行預測的,使用k-means聚類算法得到9組尺度進行均分,每個尺度在coco數據集上分別預測4個偏移參數+1個置信度+80個類別參數。同時YOLOv3采用特征金字塔網絡,3個特征層的預測輸出并不是獨立的,第二層和第三層都通過前一層進行上采樣處理,然后和本層網絡結構之后的輸出在深度上進行拼接融合,再通過Convolutional Set 處理后得到本層的最終輸出,最后三層輸出分別對應大中小目標的檢測。
本文提出的YOLOv3-SG水電施工區人員安全佩戴識別模型主要針對原有算法的主干網絡結構、損失函數、錨框聚類進行改進優化,從而使得新網絡模型更加貼合水電工程施工區人員佩戴行為和險情數據集,提升施工現場的安全檢測識別精度和速度,更快更高效地鎖定施工風險源以提升管控效率和安全水平,減少事故發生。
網絡結構的優化改進主要是通過在每層的Convolutional Set和Up Sampling之間增加Space pyramid空間金字塔網絡結構(參照于SPP-Net)以及加深層級。其中,SPP-Net中使用的Space pyramid結構一方面可實現特征規范化和降低裁縮損失,另一方面可通過多角度特征提取來提升模型精度。考慮到Darknet-53網絡結構中存在局部特征在提取時未得到充分利用的弊端,本研究參照上述邏輯融入Space pyramid空間金字塔網絡結構進行YOLOv3的改進,同時在池化層上采用5×5,9×9,13×13共3種不同尺寸最大值采樣處理特征信息,設置池化步長為1,最后在路由層進行保存所有輸入特征的融合(區別于殘差層的疊加合并),具體流程如圖2所示。

圖1 Darknet-53網絡結構和Convolutional、Residual結構示意

圖2 Space pyramid結構配置
根據實測水電施工現場圖像中目標尺寸與整圖尺寸的對比發現,實際檢測過程中的目標分布占比大多數不超過0.2(小目標),本文研究對象采用的是416×416原始輸入尺寸,考慮到小目標的尺寸小,分辨率低,需要經過多層卷積后才能有效進行特征提取,而單純地進行更深層尺度的特征提取容易造成特征的丟失,因此,可以采用將深層次特征與殘差結構輸出后的特征圖進行深度上的拼接,從而達到增強小目標特征提取的目的,這也符合利用多尺度特征融合來提高小目標檢測精度的邏輯,因此本研究在原有特征融合的基礎上依照上述邏輯采取向上擴充融合的方法,具體步驟為:在第三層52×52之后,首先,通過1個1×1的卷積層和SPP結構特征處理后進行上采樣放大,高寬擴大兩倍后,將之與2個殘差結構之后輸出的特征圖進行深度上的拼接,最后循序前述特征層,得到預測特征層4。即調整為Space pyramid結構(負責每層的局部多池化尺度特征提取)和第四預測特征層(負責抽取更多小目標特征),兩者的融合構成YOLOv3-S網絡結構。經過在本文的水電施工安全佩戴和火災險情數據集(VOC2012)測驗對比,檢測速度FPS從46.5變化到41.2,檢測精度mAP提升了近7個百分點。具體結構形式如圖3所示。
YOLOv3損失函數是在YOLOv2的基礎上將分類損失調換為二分交叉熵,通過剔除softmax改為logistic,在遮擋重疊情況下的檢測效果得到了提升。其損失分為置信度誤差、分類誤差和定位誤差,其中定位誤差又可分為中心坐標和高寬坐標誤差。具體損失函數公式如下
Loss=lxy+lwh+lconf+lcls
(1)
(2)
(3)

圖3 改進后整體結構

通過對以上YOLOv3損失函數置信度損失的理論分析可以發現,交并比IoU是目標檢測中的關鍵評判參數,即某候選框(anchor)與某目標對象的IoU最大時的預測框負責該對象。但是通過分析實際水電工程人員佩戴行為危險源識別模型訓練和結果判定可以發現,存在IoU為0時的無梯度回傳以及IoU相同但是重合度不同的問題,這直接影響了目標的檢測精度。
因此,本研究根據前人經驗提出基于GIOU[11]改進的YOLOv3損失函數用以提升anchor box與ground truth box的擬合效果,同時保留IoU的尺度不變性特征。IoU和GIoU的計算公式如下
(4)
(5)
LGIoU=1-GIoU
(6)


圖4 GIoU代碼實現
本文在進行損失函數改進后,引入k-means++聚類優化算法,主要優化為初始隨機點的生成[12]。針對初始聚類中心的隨機選擇缺陷問題,通過計算所有樣本與已有聚類中心最短距離D(x),按照D(x)大小進行排列,使用輪盤法選出下一個聚類中心(值越大的被選中的概率越大),直至得到K個聚類中心為止。具體的實現步驟如圖5所示。

圖5 優化聚類中心實現流程
(7)
式中,x為數據集X中的一個樣本點;D(x)2為樣本點x到聚類中心的最短距離的平方。
輪盤法即獲得距離最遠的樣本點作為聚類中心點,其中enumerate()用于將數據對象合成索引,并得出數據及下標。在經過上述步驟的循環后,得到相對于k-means算法更為合理的K個聚類中心。本研究在三層9個錨框的基礎上增加了用于提升小目標的第四層,因此選取K值為12進行聚類,在經過迭代后將得到的聚類數據作為網絡錨框參數寫入配置。
本文模型訓練和測驗軟硬件配置如表1所示。

表1 軟硬件配置
本研究數據集為7 500張安全佩戴和3 000張火情圖像,采集以水電施工現場拍照和視頻截幀的方式,攝像頭布設在施工場區沿線,為了避免完全遮擋,采取對立面交叉的方式布設。采集到的圖像數據采用VOC2012格式處理,標注工具采用Labelimg,標注后生成對應的xml腳本(見圖6),分為:person、head、helmet、mask、nomask、fire共6個類別。訓練和測試樣本比例為6∶1,編寫程序生成對應的標簽txt并建立標簽文件.names,此外,在訓練前將train數據和val轉成TF格式,便可利用其中的數據加載和轉化等API進行高效地訓練和評估模型。

圖6 數據集制作及部分訓練程序
訓練輸入圖像尺寸為416×416,batch_size為32,epoch設置為200(為防止過擬合使訓練模型效果變差,在損失值收斂后自動停止訓練),權重衰減值為0.000 5,動量配置為0.9[13],學習率的變化隨著訓練過程從0.001至0.000 1并趨于穩定。訓練結束時的損失值收斂到0.3,相對于原YOLOv3的2.2有了較大的提升,訓練過程平均損失對比如圖7所示。試驗檢測對比如表2所示。按照環境干擾、多人遮擋、密集小目標的分類隨機選取的圖片進行的YOLOv3和YOLOv3-SG試驗,效果圖舉例展示如圖8所示。

圖7 改進前后訓練過程平均損失對比

表2 YOLOv3-SG網絡檢測對比
通過對比分析,圖8a中由于背景顏色干擾,改進前未能識別到人員佩戴黃色安全帽,圖8d中改進后除了識別所有漏檢目標外,識別準確率也有了較大提升;圖8b到圖8e在多人遮擋上,圖8c到圖8f在密集人員佩戴安全帽和人員本身識別上,YOLOv3存在多處漏檢,而改進YOLOv3-SG全部正確識別;圖8g和圖8h為改進后的施工區域火情識別,在模糊背景和小目標上都保證了精準度和檢測效率,對各種環境適應性較好;圖8i和圖8j為對人員口罩佩戴行為的檢測識別展示,其在單目標和多目標情況下都較好地完成了檢測識別。
本文通過對網絡結構、損失函數、聚類方法進行改進優化提出了YOLOv3-SG水電施工區多目標檢測識別算法,通過引入Space pyramid空間金字塔網絡結構實現特征規范化及裁縮損失的降低;通過增加特征層提升小目標識別精度,解決部分遮擋時小目標漏檢問題;同時使用GIOU替代IOU交并比方法用以提升anchor box與ground truth box的擬合效果,并保留IoU的尺度不變性特征,較好地解決了水電工程復雜施工環境下施工工人、安全帽佩戴、防疫口罩佩戴和火情的識別速度與精度的矛盾問題,其泛化抗干擾能力強,具備較好的實用價值。
試驗表明,本文提出的融合空間金字塔和小目標特征層的網絡結構優化方案,提升了在水電施工場區部分遮擋、小目標和環境影響下的檢測識別效率。