王雨生,顧玉宛,莊麗華,石 林,李 寧,徐守坤
常州大學計算機與人工智能學院阿里云大數據學院,江蘇 常州 213164
在日常生產中,工人因安全措施不到位受傷占生產安全事故的大部分[1]。由于國情特殊,工人素質參差不齊,盡管各單位經常進行安全教育,總有心存僥幸者因為各種理由不能保證時刻佩戴。
安全帽佩戴檢測經過多年的發展,已經從傳統的機器學習方法轉向深度學習方法。部分學者使用流行的目標檢測網絡檢測安全帽佩戴情況,例如,文獻[2]改進YOLOv2 目標檢測方法,在原網絡中加入了密集塊,實現了多層特征的融合以及淺層低語義信息與深層高語義信息的兼顧,提高了網絡對于小目標檢測的敏感性,利用MobileNet 中的輕量化網絡結構對網絡進行壓縮,使模型的大小縮減為原來的十分之一,增加了模型的可用性。文獻[3]在原始YOLOv3 的基礎上改進GIoU 計算方法,結合YOLOv3算法目標函數組成一個新的目標函數,實現了目標函數局部最優為IoU 局部最優,該方法,相比于YOLOv3算法在檢測精度上有所提高。這一類方法使用改進的目標檢測網絡對安全帽進行檢測,解決了小目標以及部分遮擋的問題,但沒有解決安全帽與人體的相對位置關系。
部分學者通過頭部定位的方法檢測安全帽佩戴情況,例如,文獻[4]提出基于運動對象分割的結果,快速地定位行人,根據行人檢測結果,通過頭部位置、顏色空間變換和顏色特征判別實現安全帽佩戴檢測,該方法中頭部位置的判別是根據行人的身體比例的五分之一進行判別,這樣的方法不具有普適性。文獻[5]通過檢測對應圖像中身體部位的可見段確定骨架點,然后獲取對應于極端節點的線段,并計算其與垂直軸的傾斜度。如果傾斜在一定夾角之內,該線段夾角之內被分類為人的頭部。同樣的,這樣的方法也是針對直立行人,不符合施工人員姿態復雜的情況。此類方法大多針對是直立人員的安全帽檢測,而現實的施工作業現場,施工人員的姿態非常多樣復雜。
基于復雜姿態的情況下對安全帽識別難度增大的原因,本文提出一種基于頭部識別的安全帽佩戴檢測方法,通過面部特征識別與頭部識別交叉驗證,精確定位施工人員頭部區域,解決施工人員復雜姿態下頭部位置難確定的問題。使用YOLOv4 目標檢測網絡進行安全帽佩戴檢測,并解決了安全帽與人體的相對位置關系,從而對安全帽佩戴情況進行判定。本文主要解決了施工人員復雜姿態下安全帽佩戴檢測精度低的問題。
本文設計的安全帽佩戴檢測方法流程如圖1所示,首先對施工人員的頭部進行定位,通過膚色特征識別和頭部檢測識別分別獲取頭部區域并進行交叉驗證,確定頭部區域;接著,使用YOLOv4 目標檢測網絡對安全帽進行識別;最后根據數據集特征,對安全帽是否正確佩戴進行判定。

圖1 安全帽佩戴檢測方法流程Fig.1 Process of detection method for wearing helmet
YOLOv4[6]是YOLO系列的最新檢測網絡,在YOLOv3的基礎上進行各種先進算法集成的創新。因此本文使用YOLOv4目標檢測網絡進行安全帽佩戴檢測,以期提高安全帽佩戴檢測方法的性能。
YOLOv4 輸入端的創新包括Mosaic 數據增強、cmBN、SAT 自對抗訓練;主干網絡創新包括CSPDarknet53、Mish激活函數、Dropblock;Neck的創新包括目標檢測網絡在BackBone和最后的輸出層之間往往會插入一些層,比如SPP 模塊、FPN+PAN 結構;預測部分輸出層的錨框機制和YOLOv3 相同,主要改進的是訓練時的損失函數CIOU_Loss,以及預測框篩選的nms 變為DIOU_nms。
YOLOv4 使用了CSPNet[7]與Darknet-53 作為特征提取的骨干網絡,相比于基于ResNet[8]的設計,CSPDarknet53 模型的目標檢測準確度更高,不過ResNet 的分類性能更好一些。但是,借助Mish和其他技術,CSPDarknet53的分類準確度可以得到提升。
為了檢測不同大小的目標,需要使用一種分層結構,使得目標檢測的頭部可探測不同空間分辨率的特征圖。為了讓輸入頭部的信息更豐富,在輸入頭部前,會將來自自底向上和自上而下的數據流按逐元素的方式相加或相連。SPP相較于YOLOv3中使用的FPN[9]網絡能夠極大地增加感受野,分離出最顯著的上下文特征,并且幾乎沒有降低網絡運行速度。且YOLOv4 針對不同級別的檢測器從不同骨干層中挑選PANet[10]作為參數聚合方法。因此,YOLOv4 使用修改版的SPP、PAN 和SAM 逐步實現替換了FPN,保留了來自自底向上數據流的豐富空間信息以及來自自上而下數據流的豐富語義信息。YOLOv4的網絡結構如圖2所示。

圖2 YOLOv4的網絡結構圖Fig.2 Network structure diagram of YOLOv4
同時,YOLOv4 合理利用bag of freebie 和bag of specials 進行調優處理。與YOLOv3 相比,YOLOv4 的AP和FPS分別提高了10%和12%。
因為施工人員姿態復雜,頭部姿態多種多樣,單一的檢測網絡無法準確檢測出頭部區域。本文提出的頭部定位方法用于精確定位施工人員頭部區域,解決施工人員復雜姿態下頭部位置難確定的問題。主要步驟為:(1)識別膚色特征檢測人臉區域;(2)預訓練權重檢測頭部;(3)人臉區域與頭部區域交叉篩選;(4)判斷圖片所有頭部區域。
1.2.1 膚色檢測
工人施工狀態下,露出皮膚的區域基本只有臉部、脖頸、手部區域。因此本文首先對圖片進行光線補償,接著在YCbCr色彩空間上對工人膚色進行聚類,YCbCr顏色空間相較于RGB 便于色度分析[11],RGB 向YCbCr色彩空間的轉換[12]公式如式(1)所示:

本文使用基于YCrCb 顏色空間范圍篩選法對膚色進行識別。實驗選取100 張圖片對膚色的RGB 特征進行k-means 聚類,再轉換得出Y、Cr、Cb范圍分別為85 最后在圖像相關形態學處理后,將連通區域較大的部分定位,待定為人臉區域,便于后續交叉驗證。基于YCrCb顏色空間對膚色進行識別效果,如圖3所示。 圖3 基于YCrCb顏色空間對膚色進行識別效果Fig.3 Effects of skin color recognition based on YCrCb 1.2.2 頭部檢測 因為施工人員姿態復雜,頭部姿態多種多樣,目前沒有一個針對施工場景的頭部數據集,所以本文使用HollywoodHeads 數據集[14]和YOLOv4 網絡預訓練頭部檢測權重。 HollywoodHeads數據集包含來自21部好萊塢電影的224 740 個視頻幀中的369 846 人物頭部。對于每個人物頭部,在幾個關鍵幀上手動標注了頭部邊界框。該數據集分為訓練,驗證和測試子集,這些子集在動作方面沒有重疊。能見度較差的人物頭部(例如,強烈的閉塞、低光照條件)被“困難”標志標記,并被排除在評估之外。 HollywoodHeads 數據集在YOLOv4 網絡訓練下,AP 值達到95.4%。預訓練權重對正常姿態(直立、行走等)的人頭檢測效果良好,預訓練權重效果如圖4 所示。但是對于姿態復雜的人頭檢測,存在漏檢的情況。于是,本文就人臉檢測區域與人頭檢測區域進行交叉篩選,從而判斷圖片所有頭部區域。 圖4 頭部預訓練權重效果Fig.4 Effects of head pre-training weight 1.2.3 頭部區域交叉篩選 本文提出頭部區域交叉篩選方法,為了解決頭部檢測網絡存在漏檢的現象。根據本文數據集特點,施工工人在復雜姿態下,部分頭部難以檢測,但仍能檢測出面部膚色特征。故本文將已檢測出的膚色區域以及人頭區域進行對比篩選,具體流程如圖5所示。 圖5 頭部區域交叉篩選流程Fig.5 Cross screening process of head area 在進行膚色區域及人頭區域進行對比篩選時,連通區域較大的膚色區域并不全是人臉區域,存在手臂,雙手,脖子等膚色區域。本文數據集樣本中,工人姿態復雜,脖子等膚色區域亦可輔助判斷頭部區域,所以本文保留手臂、雙手、脖子等膚色區域,并對所有區域進行評估。當膚色區域與人頭區域有重疊時,評估該區域為頭部區域,評估值為10;當有且只有人頭區域,評估該區域為頭部區域,評估值為8;當有且只有膚色區域時,評估該區域為疑似頭部區域,評估值為5。令膚色區域為F,人頭區域為H,評估值為x則頭部區域交叉篩選公式為: 通過設定評估值,進一步確定圖片中的頭部區域,可以提高安全帽佩戴檢測的精確度,也為安全帽佩戴判斷方法提供支持。 本文使用YOLOv4網絡對安全帽進行檢測,再在頭部區域判斷施工工人是否佩戴安全帽。前文中已經對頭部區域進行評估,通過安全帽區域與頭部區域的位置判定,本文即可判斷安全帽佩戴情況。 根據數據集特點,若安全帽區域He交于評估值為10 和8 的頭部區域H10和H8,則判定施工工人佩戴了安全帽。對于頭部區域H5(疑似頭部區域),包含面部、脖子、手臂、雙手等膚色區域,安全帽區域He與H5相交存在手持安全帽的危險情況。本文根據人體結構以及數據集特征發現,安全帽區域只存在頭部和手部,即施工人員頭部佩戴安全帽和手持安全帽。因此,本文計算所有膚色區域(除已經定性為頭部區域)的面積Fi(Fi?H5)和中心點Mi,面積計算使用Seed Filling(種子填充法),其思路為: 選取一個前景像素點作為種子,然后根據連通區域的兩個基本條件(像素值相同、位置相鄰)將與種子相鄰的前景像素合并到同一個像素集合中,最后得到的該像素集合則為一個連通區域。下面給出基于種子填充法的連通區域分析方法。 (1)掃描圖像B,直到當前像素點B(x,y)==1: ①將B(x,y)作為種子(像素位置),并賦予其一個label,然后將該種子相鄰的所有前景像素都壓入棧中; ②彈出棧頂像素,賦予其相同的label,然后再將與該棧頂像素相鄰的所有前景像素都壓入棧中; ③重復②步驟,直到棧為空。 此時,便找到了圖像B中的一個連通區域,該區域內的像素值被標記為label。 (2)重復第(1)步,直到掃描結束: 掃描結束后,就可以得到圖像B中所有的連通區域; 計算中心點使用image moments(圖像矩)求得,對每個連通區域運用計算幾何距算法得到中心,數學表達為: 其中,M00是零階矩,M10和M01是一階矩,ic和jc是圖像的中心坐標。 通過對比膚色區域面積判斷手部區域和頭部脖頸區域,再根據中心點和安全帽區域中心點的相對位置判斷安全帽的佩戴情況。一般情況下,大多頭部脖頸區域處在手部區域上方。故可根據這一特征,當且僅當最大膚色區域max(Fi)處于區域上方Top(Mi)時,判斷該區域為頭部區域,若安全帽區域與頭部區域相交,即He?max(Fi),則判定施工工人佩戴了安全帽,否則判定施工工人未佩戴安全帽。具體流程如圖6所示。 圖6 安全帽佩戴判斷方法流程Fig.6 Process of judgment method for wearing helmet 本文安全帽數據集由網絡爬蟲收集,公共數據集選取,實地采集所組成,共8 000張。數據集包含各類施工場景中單人以及多人的各種姿態的圖片。并且,本文考慮了正負樣本之間的平衡(其中佩戴安全帽的正樣本4 500張,未佩戴安全帽的負樣本3 500張),同時本文對數據集進行了數據增廣,通過翻轉,模糊,平移等操作擴充數據集至40 000張。數據樣本示例如圖7所示。 圖7 數據樣本Fig.7 Data samples 實驗環境配置:GPU 為NVIDIA TITAN Xp×2,CUDA 10.0,Ubuntu 16.04,內存12 GB。 本文實驗使用精確度(precision)、誤檢率(false positive,FP)、漏檢率(miss)、交并比(IoU)和平均精度(mAP)來衡量方法的有效性,計算公式如(6)~(9)所示: 其中,TP(true positive)表示被模型預測為正值的正樣本;FP(false positive)表示被模型預測為負值的正樣本;FN(false negative)表示被模型預測為負值的負樣本;TN(true negative)表示被模型預測為正值的負樣本。PartAcreage 是檢測后框出地安全帽區域,Overall-Acreage是標記的安全帽區域。 3.1.1 YOLOv4網絡訓練 本文使用YOLOv4 目標檢測網絡檢測頭部區域和安全帽區域。本文將安全帽數據集與頭部數據集合并訓練,按6∶2∶2分為訓練集、驗證集和測試集,其中對訓練集與驗證集進行標注。 本文網絡訓練參數設置如表1 所示,訓練學習率(learning rate)為0.001,輪次(epoch)為80 次,每一輪次迭代次數(iterations)為100 次,一共迭代次數(batches)為8 000,每一次迭代訓練的樣本數為64。學習率變動步長(steps)設置為(6 400,7 200),根據batch_num 調整學習率。學習率變動因子(scales),迭代到6 400 次時,學習率×0.1;迭代到7 200次時,學習率又會在前一個學習率的基礎上×0.1,Steps 和scales 相互對應,這兩個參數設置學習率的變化。 表1 網絡訓練參數設置Table 1 Network training parameter settings 最后損失值(Loss)在0.5左右振蕩。數據集的訓練損失值如圖8所示,卷積層特征可視化如圖9所示。 圖8 訓練損失曲線Fig.8 Training loss curve 圖9 卷積層特征可視化Fig.9 Feature visualization of convolutional layer 3.1.2 目標檢測網絡效果對比 本文從精度、平均精度、交并比、檢測時間4個指標評估Faster RCNN[15]、RetinaNet[16]、YOLOv3[17]、YOLOv4這4 個目標檢測網絡的檢測效果,其中YOLOv3、YOLOv4為一階目標檢測網絡,faster RCNN、RetinaNet為二階目標檢測網絡。對比實驗效果如表2所示。 表2 目標檢測網絡實驗結果對比Table 2 Comparison of experimental results of target detection network 從表2 可以看出針對本文數據集,YOLOv4 目標檢測網絡無論從精度上還是從檢測時間上都要優于其余3種網絡。甚至,從precision 值以及mAP 值看,YOLOv4作為一階目標檢測網絡也要優于Faster RCNN、RetinaNet這兩個二階目標檢測網絡。YOLOv4作為YOLO系列的最新檢測網絡,大大提高了本文對頭部區域和安全帽區域的檢測精度。4種網絡對測試數據集檢測效果如圖10、11所示。 圖10 4種網絡檢測結果對比Fig.10 Comparison of four network detection results 圖10展示的是4種網絡檢測測試圖片的各項指標,分析數據可以看出YOLOv4 各項指標都要優于其余3種網絡。綜合圖11 看,工人在直立姿態下,4 種網絡檢測效果相近,在復雜姿態下,YOLOv4 檢測頭部區域和安全帽區域效果都要優于Faster RCNN、YOLOv3,而RetinaNet 作為較新的二階目標檢測網絡檢測效果與YOLOv4 相近,但是檢測時間相對弱勢。所以,本文選取YOLOv4 作為目標檢測網絡檢測頭部區域和安全帽區域。 圖11 4種網絡檢測效果對比Fig.11 Comparison of four network detection effects 為了驗證本文方法的效果,對比文獻[4]和[5]的安全帽檢測方法。文獻[4]和文獻[5]均采用了頭部定位的方法檢測安全帽。 3.2.1 頭部區域檢測實驗 本文通過頭部區域交叉篩選方法,解決頭部檢測網絡存在漏檢的現象。并且施工工人在復雜姿態下,針對部分頭部難以檢測,本文方法仍能通過膚色特征與頭部特征,判斷安全帽佩戴情況。實驗效果如圖12所示,本文方法進行膚色檢測,篩選出膚色連通區域,通過種子填充法計算出各連通區域的面積和中心坐標,判斷頭部區域。圖12(b)、(d)為圖12(a)、(c)的中間計算效果圖,可以計算出圖12(a)、(c)中的最大連通區域面積(分別為2 113.0 和1 609.5)和中心坐標((100,117)和(237,89))。實驗結果顯示方法標記的區域為頭部區域。 圖12 安全帽佩戴判斷方法Fig.12 Judgment method of wearing helmet 3.2.2 安全帽檢測對比實驗 在施工人員為復雜施工姿態下,文獻[4]使用的方法失效,其檢測人體的上部1/5 區域的方法只適合直立的施工人員;文獻[5]使用的方法相較文獻[4]的方法有所提高,但是還是存在漏檢的現象,主要是因為其通過計算骨架點與垂直軸的傾斜度來判斷頭部位置,也是適用于直立的施工人員。 根據表3數據顯示,本文方法在精度和速度上均優于文獻[4]和文獻[5]的安全帽檢測方法,實驗使用本文數據集,上述兩種方法對于部分樣本失效。然而從圖13可以看出,本文方法不受限于工人的姿態。 表3 安全帽檢測方法結果對比Table 3 Comparison of safety helmet detection method results 圖13 安全帽檢測方法效果對比Fig.13 Comparison of safety helmet detection method effects 同時,本文方法通過頭部區域與安全帽區域的位置關系,判斷安全帽佩戴情況,可以檢測出手持安全帽這類危險情況。如圖14 所示,當頭部區域與安全帽區域相交時,則判斷施工人員佩戴了安全帽。當手持安全帽,或者未帶安全帽的情況下,頭部區域與安全帽區域未相交,則判斷施工人員未佩戴安全帽。 圖14 安全帽佩戴檢測實驗結果Fig.14 Test results of wearing helmet 本文挑選不同環境條件下的樣本測試其檢測性能,選擇小目標、目標尺度差距大、部分遮擋等不佳條件的樣本,測試效果如圖15 所示。發現本文方法在目標尺度差距大、部分遮擋以及目標模糊的情況下檢測效果均表現良好。但是在小目標的情況下,仍存在漏檢的情況,本文在后續的研究中會進一步深入探索。 圖15 本文方法在不同環境條件下的檢測效果Fig.15 Detection effects of method in this paper under different environmental conditions 本文首先采用YOLOv4 網絡預訓練頭部和安全帽的權重;接著利用YCbCr顏色空間對施工人員進行膚色檢測,通過頭部區域交叉篩選確定頭部區域;最后通過安全帽區域與頭部區域的位置判定,即可判斷安全帽佩戴情況。實驗結果表明,本文方法對不同姿態的施工人員安全帽佩戴檢測有較好的結果,由于頭部區域的圈定,安全帽佩戴的檢測精度也要優于以往方法。然而,因為方法使用膚色特征和網絡檢測互補檢測頭部區域,所以在人物目標極小的情況下效果不太理想。在以后的研究中將對其進行深入研究,以期提高模型的效果。




1.3 安全帽佩戴判斷方法


2 數據集

3 實驗分析

3.1 目標檢測網絡效果對比實驗






3.2 安全帽檢測方法對比實驗




3.3 本文方法在不同環境條件下檢測效果

4 結束語