李 華,王巖彬,益 朋,王 藤,王常亮
(1.西安建筑科技大學 資源工程學院,陜西 西安 710055; 2.中建科工集團有限公司,陜西 西安 710055)
建筑業屬于生產安全事故頻發的行業,依據《企業職工傷亡事故分類》(GB 6441—86),對我國建筑業近十年出現的生產安全事故進行統計分析,其中起重傷害、坍塌、機械以及物體打擊一共發生1 041起,占事故總數的50.42%[1]。在以上4種事故中,因物體高空墜落(撞擊)導致腦部外傷死亡事故占建筑工人施工總事故的24%[2]。針對由于未佩戴安全帽而導致的事故,本文對建筑施工人員安全帽佩戴情況進行識別,對解決此類事故具有重要意義。
建筑業相對于其他行業,安全管理主要依賴管理人員的主觀監測,受人員流動性、環境的動態性以及生產過程的復雜性等因素影響,導致人工檢查效率低、速度慢且精度一般,監測效率低下;信息更新速度快亦存在不容易集成、成本高等問題,因此,需要對建筑施工場所的安全管理方法進行創新提升。
近年來,安全管理與計算機技術相結合以提高施工現場安全管理水平已成為1個主流的研究方向。伴隨著深度學習等技術的不斷成長,目標檢測亦取得了長足的進展,以RCNN為代表的two-stage目標檢測算法,例如R-CNN[3],Fast R-CNN[4],Faster R-CNN[5];以YOLO[6]、SSD為代表的one-stage目標檢測算法。這些方法的出現極大地提高了信息的收集速度、處理能力以及傳遞速度,為建筑施工過程中的安全管理的現代化給予了巨大的技術、理論支持。胡恬等[7]最先通過智能算法設計實現工人安全帽檢測,這是我國研究人員對工人安全帽佩戴自動識別的最初嘗試。Fang等[8]利用深度學習的圖像識別方法對施工現場未佩戴安全帽的工人做了大樣本收集,并根據圖像識別效果影響因素劃分為5個大類和19個小類的數據集,結果表明對安全帽的檢測精度為90%。張明媛等[9]提出1種基于Tensorflow框架的Faster R-CNN網絡框架,監測工人安全帽的使用情況。平均精度達到90.91%。吳冬梅等[10]提出1種基于改進的Faster R-CNN算法,對安全帽的顏色以及佩戴情況進行識別,平均檢測準確率達到85.5%。王兵等[11]針對安全帽佩戴識別精度問題,結合GIOU提出基于yoloV3的識別方法,相較于未改進的yoloV3方法mAP提高2.05%。
文獻[7]-[11]驗證了深度學習方法對安全帽識別問題的可行性,但實際安全帽識別情況中,將Faster R-CNN網絡框架運用于安全帽佩戴檢測存在檢測錯誤率高、網絡難以收斂、精度低等問題;數據層面中建筑作業大多存在于復雜作業環境中,會出現目標重疊以及小目標的安全帽佩戴人員識別情況差等問題。基于網絡框架及數據層面出現的問題,本文建立復雜作業場景下安全帽數據集,提出改進的Faster R-CNN的安全帽檢測方法,通過增加錨點提升小目標的安全帽檢測能力、結合Focal loss[12]替代原本的損失函數解決數據集中類別不平衡問題以及引入ROI Align[13]解決ROI Pooling操作2次量化造成的安全帽預測區域不匹配問題,提升檢測模型準確性,進一步改善復雜作業場景下的安全帽識別的準確率。
Faster R-CNN目標檢測框架主要由2大模塊構成:RPN(候選框提取模塊),RPN屬于全卷積神經網絡,用于候選框的提取;Fast R-CNN(檢測模塊),Fast R-CNN基于RPN提取的proposal檢測并識別proposal中的目標。
RPN結構如圖1所示,其基本思想是在特征圖中找到所有可能的候選區域,獲取候選區域采用滑動窗口機制,在特征圖中使用滑動窗口生成低維向量,低維向量被輸入到2個平行的全連接層進行位置和類別的判斷。每個滑動窗口的最大可能候選區的建議數量為k,故回歸層有4k個輸出來編碼k個區域的坐標。分類層輸出2k個分數用來評估區域包含識別目標的概率。k個建議區域稱為錨點。錨點位于滑動窗口中,并與縱橫比相關聯。
RPN獲取候選區域后,Fast R-CNN模塊實現目標的檢測和識別。利用RPN網絡獲取proposal RIO,同時獲取positive softmax probability,將獲取的數據輸入網絡進行訓練,得到最終的識別分類以及通過邊框回歸獲得檢測框最終的精確位置。Fast R-CNN與RPN通過共享卷積層的技術,實現高效檢測。
本文基于TensorFlow框架對施工人員安全帽使用情況進行識別。采集盡量多的復雜作業場景下施工人員安全帽佩戴圖像和未佩戴安全帽的圖像。所采集的圖像需要進行預先的標注和拆分使其滿足Faster R-CNN網絡框架訓練要求,根據訓練及測試效果改進Faster R-CNN網絡框架,通過對網絡框架的不斷完善,最終實現目標檢測,達到精度要求。安全帽識別流程如圖2所示。
圖2 安全帽識別流程Fig.2 Identification procedure of safety helmet
復雜作業定義為1個多作業組織同時進行多個簡單作業或由多個作業對象1次關聯的所有簡單作業的組合所構成的作業。復雜作業包括2種類型:平行作業和縱向作業,復雜作業由人員組織、時間、作業對象、作業地點4個特征構成,形成過程如圖3所示。黑色實箭頭為平行作業的形成過程,黑色虛箭頭為縱向作業的形成過程。
圖3 復雜作業形成Fig.3 Formation of complex operation
復雜作業場景示例如圖4所示。由圖4(a)可知,2個作業小組在不同區域對同一作業對象進行施工,體現了平行作業下的復雜作業場景。由圖4(b)可知,單個作業小組對多個作業對象在同一區域進行串聯工作,體現了縱向作業下的復雜作業場景。
圖4 復雜作業場景示例Fig.4 Examples of complex operation scenes
目前無完整的關于施工人員在復雜作業情況下安全帽數據集,需要自行收集1個數據集用以訓練和測試Faster R-CNN網絡框架。隨著攝像頭在建筑施工場所的普及以及廣泛應用,極大地提高了信息的收集速度,為收集圖像提供豐富的數據來源。本文通過截取建設項目施工現場攝像頭采集的視頻流對復雜作業條件下施工人員佩戴安全帽情形進行收集。
本文共采集了7 581張人員佩戴或未佩戴安全帽的圖像,使用Labellmg標注工具進行標注,標注包括正(佩戴安全帽)、負(未佩戴安全帽)標簽,注釋結果被保存為VOC格式的XML文件,并可以被Python語言調用。
為使得Faster R-CNN網絡框架更好地應用于復雜作業場景下安全帽數據集,本文提出在原始的Faster R-CNN網絡框架基礎上增加錨點、使用Focal loss損失函數代替原本損失函數以及使用ROI Align代替ROI Pooling 3種策略提升模型精度,使改進后的Faster R-CNN網絡框架能準確識別復雜作業場景下安全帽的佩戴情況。
2.4.1 錨點(anchor)數量
在對施工現場安全帽佩戴情況進行檢測時,由于作業環境復雜,安全帽信息在圖像中占比較小。因此在默認參數上加入3組錨點(比默認值小)以更好地適應小目標的安全帽識別。
2.4.2 Focal loss損失函數
Focal loss損失函數著力解決復雜作業場景下安全帽數據集中正負樣本比重失衡的問題。Focal loss損失函數在訓練中將大量的簡單負樣本的權重降低,使得模型在訓練中注重于難分類的樣本,可作為1種困難樣本挖掘方法。Focal loss損失函數是在交叉熵損失函數基礎上進行的修改,交叉熵損失函數如式(1)所示:
(1)
式中:L為交叉熵損失函數;p為預測樣本屬于1的概率;y為標簽,取[-1,1]。
Focal loss損失函數如式(2)所示:
(2)
式中:Lf為Focal loss損失函數;γ為調節系數;α為平衡因子。
Focal loss損失函數在原有的交叉熵損失函數的基礎上添加調節系數,其中使得γ>0減少易分類樣本的損失,使得更關注于復雜的、困難的樣本。此外,加入平衡因子α,用來平衡正負樣本本身的比例不均。
2.4.3 ROI Align
在ROI Pooling中候選框的位置是由回歸獲得,大多都為浮點數,但在池化后特征圖的大小要求固定,故ROI Pooling操作存在2次量化的過程,如圖5所示,左虛線框中此時的候選框已經和最開始回歸出來的位置有一定的偏差,這個偏差會影響檢測或者分割的準確度。為解決ROI Pooling的缺點,提出ROI Align這1改進方法,ROI Align的思路如右虛線框所示,使用雙線性插值代替最近鄰插值,獲得為浮點數的數值,解決量化偏差。
圖5 ROI Pooling與ROI Align效果對比Fig.5 Comparison on effect of ROI Pooling and ROI Align
2.4.4 改進后的網絡結構
依據在原始Faster R-CNN網絡框架測試中所反應的問題,對網絡框架進行改進,改進的網絡如圖6所示。對比VGG等網絡,當使用更深的網絡時,理論上表達能力會更強,但是隨著學習層數的加深會發生網絡退化、梯度消失及爆炸問題,這個問題很大程度上通過標準的初始化和正則化來解決,這樣可確保幾十層的網絡能夠收斂,但是隨著層數的增加,問題仍然存在。而ResNet網絡引入了跳躍連接,可以使上1個殘差塊的信息沒有阻礙地流入到下1個殘差塊,使得信息的傳播更加流暢,并且在一定程度上擺脫了由于網絡層數過深所引起的網絡退化問題。因此本文Faster R-CNN網絡框架選擇ResNet50網絡進行圖像提取。
圖6 改進后的Faster R-CNN網絡框架Fig.6 Improved Faster R-CNN networkframework
將使用Labellmg標注過的圖像輸入到深度學習的框架中,多次迭代,更新參數。訓練過程主要包括以下步驟:
1)對所有數據進行驗證和訓練集分配。將7 581張標注分類過的圖像按VOC2007格式分成4類,安全帽檢測圖像數據劃分結果見表1。
表1 安全帽檢測圖像數據集劃分Table 1 Classification on data set of helmet detection images
2)修改與訓練有關的參數,如batch-size,anchor-scale等,以得到較好的訓練結果。
1)AP(Average Precision),實際等于Precision-Recall曲線下的面積。AP是針對單個類別的,衡量的是模型在每個類別上的優劣,先計算每一類的精準率,再計算每一類的平均精度,如式(3)~(4)所示:
(3)
式中:precisioni為準確率;N(TruePositives)i為i類圖片真正的數量;N(Totalobjects)i為數據集類別i的所有目標數量。
(4)
式中:∑precisioni為準確率之和;N(TotalImages)i為含有類別i目標的圖像數量。
2)mAP(Mean Average Precision)是針對所有類別,衡量的是模型在所有類別上的好壞。mAP計算如式(5)所示:
(5)
式中:MeanAveragePrecision為平均準確率;ΣAveragePrecisioni為平均準確率之和;N(Classes)為所有類別的數目。
實驗環境設置:Windows 10操作系統,Inter(R) Core(TM) i7-8750H6核12線程處理器,NVIDIA GeForce GTX 1080 Ti顯卡,12GB系統內存,實驗使用基于Tensorflow學習框架進行相關代碼和參數訓練。
使用VOC2007格式的復雜作業情況下安全帽數據集分別對原始的Faster R-CNN網絡框架和改進后的Faster R-CNN網絡框架進行訓練。未改進Faster R-CNN網絡框架迭代到80 000次后,損失值趨向收斂,損失值為0.8效果達到最優。改進后的Faster R-CNN網絡結構迭代到50 000次后,損失值收斂為0.2,獲得最優效果。2種算法最佳效果mAP見表2。
表2 2種模型效果對比Table 2 Comparison on effect of two models
由表2可知,改進后的Faster R-CNN網絡框架的mAP相較于未改進的Faster R-CNN網絡框架提高15%,2種檢測結果如圖7所示,未改進的Faster R-CNN網絡框架檢測出4處,錯檢1處,平均檢測精度為91.48%,改進后的Faster R-CNN網絡框架無錯檢,平均檢測精度為99.99%。實驗證明,改進后的Faster R-CNN網絡框架能夠有效地優化模型。
圖7 改進網絡框架與未改進網絡框架的檢測效果對比Fig.7 Comparison on detection effect of improved network framework and unimproved network framework
為突出所采用的3種改進策略對于復雜場景下安全帽識別的有效性,分別采取不同的策略對網絡進行訓練和測試,測試結果見表3。
表3 不同改進策略的效果Table 3 Effects of different improvement strategies
由表3可知,不同改進策略對網絡性能的影響,策略2和策略1相比mAP提升1.2%,因為本文增加了3組錨點,使得網絡結構能夠檢測到更多的小目標安全帽。策略3和策略2相比mAP提升7.1%,由于替換了原本的損失函數,解決了復雜作業場景下安全帽數據集中正負樣本比重失衡的問題,增強了網絡的分辨率。策略4和策略2相比mAP提升7.6%,解決了2次量化安全帽預測區域不匹配的問題,提升了安全帽預測框的精準度。策略5為本文算法,使用3種改進策略后效果達到最佳。實驗證明,3種改進策略均提升了模型的性能。
除了原始的Faster R-CNN 模型,本文還與不同特征提取網絡的Faster R-CNN模型進行實驗對比,不同提取網絡的檢測對比效果見表4。由表4可知,本文所采用網絡框架效果明顯,mAP達到0.773,相較未改進的Faster R-CNN網絡框架提高15%。
表4 不同提取網絡的檢測效果Table 4 Detection effect of different extraction networks
1)針對智慧工地背景下,施工人員安全防護用具的識別問題,利用Tensorflow構建改進的Faster R-CNN網絡框架。通過采集7 581張圖像,構建復雜作業場景下的安全帽數據集,進行訓練和測試。改進后的網絡框架mAP提升15%。該改進方法可有效地用于安全防護用具識別,改善建筑施工作業現場工作人員的安全管理現狀。
2)使用3種策略對Faster R-CNN網絡框架進行改進,通過增加錨點mAP提升1.2%,改變損失函數mAP提升7.1%,改進ROI層mAP提升7.6%,結果證明3種改進策略都對網絡框架的準確性有所提升。
3)下一步研究中,不只針對防護用具的使用情況,可增加人的不安全動作的實時識別,為智慧工地提供更多的技術層面的支持和參考。