劉川
摘 要:針對當前安全帽佩戴檢測算法存在結構復雜、魯棒性差等問題,提出一種借助改進后的YOLOv3算法進行安全帽佩戴檢測。利用包含通道注意力機制的SE-ResNeXt殘差結構,替換YOLOv3模型中Darknet53網(wǎng)絡的殘差結構,在不加深網(wǎng)絡結構的情況下,利用通道注意力機制,捕獲特征有用信息,達到提高特征表示能力的目的。再利用空間池化金字塔模塊,對待測圖片進行多尺度提取,提高檢測精度。最后將IOU損失函數(shù)替換成CIOU損失函數(shù),在進一步提高檢測精度的同時,加速模型收斂。通過自建數(shù)據(jù)集驗證可知,改進后模型檢測準確率相比于原始YOLOv3模型,檢測平均精確度(mAP)提高了4.29%,每秒檢測幀數(shù)(FPS)提高了8.67%。
關鍵詞:目標檢測;YOLOv3;SE-ResNeXt;SPP-Net;損失函數(shù)
中圖分類號:TP391.41 ? ? 文獻標志碼:A ? ? 文章編號:1003-5168(2022)4-0007-06
DOI:10.19968/j.cnki.hnkj.1003-5168.2022.04.001
Research on the Algorithm of Safety Helmet Wearing Detection Based on the Background of Engineering Environment
LIU Chuan
(School of Information Engineering, Chaohu University, Hefei 238014,China)
Abstract:In view of the complex structure and poor robustness of the current helmet wearing detection algorithm, a helmet wearing detection method is proposed with the aid of the improved YOLOv3 algorithm. The SE-ResNeXt residual structure including the channel attention mechanism is used to replace the YOLOv3 model. The residual structure of the Darknet53 network, without deepening the network structure, uses the channel attention mechanism to capture useful information of features to achieve the purpose of improving feature representation. Then use the spatial pooling pyramid module to perform multi-scale extraction of the image to be tested. Improved the detection accuracy. Finally, the IOU loss function was replaced with the CIOU loss function, which further improved the detection accuracy while accelerating the model convergence. It can be seen from the self-built data set verification that the improved model detection accuracy rate is compared with the original YOLOv3 model. The average accuracy (mAP) has increased by 4.29%, and the number of frames per second (FPS) has increased by 8.67%.
Keywords: target detection; YOLOv3; SE-ResNeXt; SPP-Net; loss function
0 引言
現(xiàn)如今安全生產(chǎn)已成為各施工單位最為重視的一環(huán)[1],為保障施工人員安全,依據(jù)國家安全生產(chǎn)相關法規(guī)條款規(guī)定,工作人員進入施工場地必須佩戴安全帽。然而由于部分施工人員安全意識淡薄、個別施工監(jiān)管單位存在安全責任落實不到位等情況,常常導致施工場地安全事故頻發(fā)。目前各單位對施工員工佩戴安全帽監(jiān)管以人工監(jiān)管形式為主,實際操作起來存在效率低下、浮于表面、效果不佳等情況。因此,利用計算機視覺來自動完成對施工場地實時安全帽佩戴檢測,具有檢測范圍廣、成效優(yōu)、實時報警等特點,為施工場地安全監(jiān)測提供了新方向。
目前利用計算機視覺完成對施工人員佩戴安全帽檢測的方法主要分為以下幾類。一類是利用傳統(tǒng)算法實現(xiàn),Rubaigat等人利用物體色彩信息以及結合物體形狀特征來完成對施工人員安全帽佩戴檢測[2]。李琪瑞運用機器學習領域中SVM分類器以及HOG方向梯度直方圖特征相結合完成對人員佩戴安全帽檢測[3]。在檢測效果方面,雖然以上方法都取得了一定成效,但通過利用傳統(tǒng)人為選取特征進行分類檢測,會依賴較強的先驗知識,實際工程應用背景下會出現(xiàn)魯棒性差、泛化能力不足等問題。
伴隨目標檢測領域中深度學習等相關技術的快速發(fā)展,研究人員借助深度學習技術來完成對圖像中待測目標檢測與識別,并獲得較佳的效果。依據(jù)檢測步驟的不同,深度學習目標檢測算法主要分成單步檢測算法和兩步檢測算法。以Faster R-CNN系列為代表的兩步檢測算法雖檢測精度優(yōu)于單步檢測算法,但檢測速率下降很多。如徐守坤等人使用改進Faster R-CNN檢測安全帽佩戴情況[4],該類方法不適用于實時性要求較高的應用場景。而以YOLO系列、SSD系列等為代表的單階段檢測算法,僅需要將待測圖像送入網(wǎng)絡一次即可預測出所有邊界框;王秋余對YOLO網(wǎng)絡結構進行優(yōu)化調(diào)整,引入半監(jiān)督學習的思想,完成對安全帽佩戴識別[5]。檢測速度雖較兩步檢測算法明顯提升,但在實際復雜檢測環(huán)境下漏檢和誤檢情況較多,尤其對于目標尺寸較小情況檢測精度不佳。
綜上,本研究提出一種基于YOLOv3為主干網(wǎng)絡,進行優(yōu)化改進后的安全帽佩戴識別檢測算法。首先利用ResNeXt網(wǎng)絡結構替換原始YOLOv3網(wǎng)絡結構中的ResNet的殘差結構,再引入通道注意力SE-Net模塊以及在網(wǎng)絡框架中加入SPP空間池化金字塔模塊,然后再使用CIOU損失函數(shù)替換原有IOU損失函數(shù)并基于自建數(shù)據(jù)集重新聚類獲得先驗框,實現(xiàn)安全帽佩戴檢測。最后,在同一測試集下與原始YOLOv3、SSD和Faster-RCNN等檢測算法進行比較,驗證改進后算法的性能。
1 YOLOv3算法介紹
YOLOv3網(wǎng)絡框架是一種單步實時目標檢測模型,在確保高檢測精度的同時,檢測速度要優(yōu)于其他基于兩步檢測網(wǎng)絡檢測算法。其構建的主干網(wǎng)絡由之前的Darknet-19網(wǎng)絡結構改為Darknet-53網(wǎng)絡結構,骨干網(wǎng)絡結構如圖1所示。YOLOv3模型中還增添了殘差結構,保證網(wǎng)絡結構在較深的情況,確保訓練的模型能夠同時收斂,降低了模型的計算量。YOLOv3中Darknet53網(wǎng)絡主要由5個殘差塊構成,每個殘差塊由若干個數(shù)量不等的殘差單元組成。此外,YOLOv3網(wǎng)絡結構也采用多尺度檢測技術,引入了類似于FPN(Feature Pyramid Networks)特征金字塔結構,實現(xiàn)了高維和低維信息融合,提升了檢測的準確率。
YOLOv3網(wǎng)絡具有檢測準確率高、實時性好等特點,但在實際施工場景環(huán)境中存在著檢測目標小,檢測背景復雜等問題,因此本研究在原始YOLOv3網(wǎng)絡模型基礎之上,對其結構進行優(yōu)化調(diào)整,使得模型在復雜場景檢測下具有較高準確率和容錯能力。
2 改進YOLOv3算法
2.1 殘差模塊設計
YOLOv3網(wǎng)絡中的殘差模塊結構Residual單元[7]參考了Jie等人提出的ResNet網(wǎng)絡結構,Residual網(wǎng)絡結構相比于普通的卷積網(wǎng)絡結構引入了跳躍連接,使得殘差塊之前的信息可以無阻礙地流入到下一個殘差模塊中去,既提高信息流入,也能防止由于網(wǎng)絡結構過深所帶來的梯度消失和退化問題。然而基于ResNet結構的網(wǎng)絡模型進一步提高檢測識別準確率,就需要進一步加深或加寬網(wǎng)絡結構,進而會導致網(wǎng)絡中超參數(shù)的數(shù)量進一步增加,使得整體網(wǎng)絡開銷變大。本研究提出利用壓縮激發(fā)網(wǎng)絡SENet和ResNeXt網(wǎng)絡結構融合組成SE-ResNeXt結構替換Darknet53網(wǎng)絡中的ResNet結構,使得改進后的網(wǎng)絡在不增加模型網(wǎng)絡開銷基礎上提高了檢測性能。
壓縮激發(fā)網(wǎng)絡SENet通過在特征通道之間建立相關性,來調(diào)整圖像特征圖的通道權重,加強具有判別能力的特征,弱化非判別能力的特征,特征圖通道的權重是采用學習方式獲得的。進而增強了網(wǎng)絡計算的針對性,達到了提升檢測效果的目的。其中壓縮Squeeze模塊和激勵Excitation模塊,共同構成了其總網(wǎng)絡結構。圖2為SENet網(wǎng)絡結構。
其中,Squeeze操作主要是對特征通道數(shù)分別為H×W×C的輸入進行全局平均池化,使得輸出為1×1×C的數(shù)據(jù)。Squeeze操作如公式(1)所示,其中z∈R是通過對特征u在空間維度H×W進行縮放產(chǎn)生的。
Squeeze操作后,則進行Excitation操作。其主要通過賦值操作,賦予兩層全連接層各自一個權重值,來構建不同通道互相之間的非線性相互作用關系,如公式(2)所示。式(2)中的σ和δ參數(shù)分別表示為激活函數(shù)sigmoid和relu,W1∈R(C/r)×C,W2∈R(C/r)×C。
再進行Reweight操作,則將Excitation的輸出的權重看作每個特征通道的重要性,然后將之前的特征通過乘法逐通道加權到原有的特征上,對原始特征在通道維度上重新校準。Fscale為通道上的乘積,計算過程如公式(3)所示,uc∈RH×W。
ResNeXt網(wǎng)絡結構是在ResNet網(wǎng)絡結構基礎上優(yōu)化得到的,其主要運用了Inception的重構網(wǎng)絡結構的思想,將模型中采用疊加操作卷積層變成了自網(wǎng)絡的疊加,在提高檢測準確率的同時,克服了傳統(tǒng)卷積神經(jīng)網(wǎng)絡模型為了提高模型的準確率需要加深網(wǎng)絡的寬度和深度的困難,解決了網(wǎng)絡結構加深帶來的梯度消失問題。不同于Inception結構之處是,ResNeXt在多路徑上采用相同的拓撲結構共享超參數(shù),通過基數(shù)來控制卷積分支數(shù),減少了需要手動調(diào)節(jié)控制的超參數(shù),進一步提高了模型可擴展性。ResNet和ResNeXt的結構對比如圖3所示。
結合SE-Net網(wǎng)絡的特點,將ResNeXt網(wǎng)絡結構與SE-Net網(wǎng)絡相融合,通過SE-Net通道注意力機制的引入,對各個通道進行加權,從而側重于權重值大的通道特征,削弱對當前任務不重要的通道特征,進而改善ResNeXt網(wǎng)絡性能。改進后的SE-ResNeXt結構,既能避免在網(wǎng)絡層數(shù)激增的同時所帶來的梯度消失問題,又能確立特征通道之間的關聯(lián)情況,提升結節(jié)分類的能力。
2.2 增加SPP模塊
在實際檢測中發(fā)現(xiàn),檢測距離的不同會導致輸入檢測網(wǎng)絡中的安全帽信息尺度存在大小不一致問題。為了克服這一問題,在改進的模型骨干網(wǎng)絡中引入空間池化金字塔模塊SPP結構,空間池化金字塔模塊SPP如圖4所示。此模塊主要利用了空間池化金字塔的思想,通過局部特征和全局特征的提取提升了模型的感受野,消除了因不同大小目標造成特征信息尺度不一致的問題,既能提高檢測準確率,也提高了產(chǎn)生候選框的速度。
改進完成后的網(wǎng)絡框架總體結構如圖5所示,與YOLOv3原始網(wǎng)絡相比較,新網(wǎng)絡結構主要優(yōu)化了殘差網(wǎng)絡結構并引入了空間金字塔模塊。
2.3 基于K-means的錨點框重置
YOLOv3模型采用了聚類算法在PASCAL VOC數(shù)據(jù)集上聚類生成3組9個先驗框anchor box,用于預測邊界框的坐標。為了更加適用于本研究檢測場景,對自建安全帽數(shù)據(jù)集進行重新聚類,運用了主流的聚類算法K-means方法,以確定獲得合適的安全帽聚類錨框。在聚類過程中使用測量真實框和預測框之間的相關度IOU作為度量函數(shù),度量函數(shù)如公式(4)所示。
式中,box是標注的真實目標框,其中聚類中心點為centroid,IOU越大則距離越小,先驗框也越接近于真實框。經(jīng)過K-means聚類算法在自建數(shù)據(jù)集處理,本研究選擇了初始候選框為9個:(6,14)、(13,24)、(23,39)、(36,60)、(52,89)、(75,125)、(96,174)、(143,245)、(260,312),一方面既可以加速損失函數(shù)的收斂,另一方面也可減少候選框過多或過少帶來的誤差損失。
2.4 基于CIOU的損失函數(shù)改進
在YOLOv3算法中利用IOU交并比的值大小,來判定模型所生成的預測框與真實框之間的重疊率。通常人為設定一個IOU值,當檢測目標IOU交并比值大于該閾值時,則判定檢測到待測目標,否則認為未正確檢測到目標。其計算過程如公式(5)所示。其中A和B為預測框的面積和真實框的面積。
然而IOU作為損失函數(shù)時,會存在當檢測框與真實目標框之間未重合時IOU始終值為0的情況,此時不存在梯度,出現(xiàn)無法進行梯度下降優(yōu)化情況。因此,引入CIOU作為邊界框回歸損失函數(shù)來替代原始IOU損失函數(shù),CIOU損失函數(shù)計算如公式(6)所示。
其中,對于檢測框和真實框兩中心點之間的歐式距離的計算,采用ρ(b,b)表示,使用c來表述真實框和預測框之間最小閉包區(qū)域的對角線距離。ν參數(shù)反映檢測框和真實框之間的比例是否一致。計算公式如公式(7)所示。
式中,[α]是用來平衡比例的參數(shù)。計算公式如公式(8)所示。
CIOU相比于IOU,其直接最小化預測框與目標框之間的歸一化距離實現(xiàn)了更快的模型收斂,且具有尺度不變性,同時使得模型會更加傾向于往重疊區(qū)域增多方向優(yōu)化。
3 改進版YOLOv3模型性能試驗分析
3.1 試驗環(huán)境
本試驗模型訓練使用的硬件平臺主要包含Intel i7-10700k CPU 3.8GHz,英偉達RTX 2080 Ti 11G GPU,16GB DDR4內(nèi)存;系統(tǒng)軟件方面采用Windows 10 操作系統(tǒng)、PyTorch 1.6.0框架,采用CUDA10.2和CUDNN7.6為GPU訓練進行加速。
3.2 試驗數(shù)據(jù)集
本研究試驗數(shù)據(jù)主要由兩個部分構成,一部分選用開源的安全帽數(shù)據(jù)集,包括SHWD、Hard Hat Workers Dataset等部分圖片,另一部分圖片主要為從施工場地現(xiàn)場進行視頻拍攝幀截取得到的,避免單一從網(wǎng)上爬蟲獲取導致脫離實際應用背景??倲?shù)據(jù)集共包括了8 000張各種類型安全帽佩戴圖片并參考VOC2007標注格式,利用開源數(shù)據(jù)標注工具Labeling對數(shù)據(jù)集進行標注。其中,正確佩戴安全帽標記為hat,未佩戴安全帽標記為no-hat。訓練集、測試集及驗證集分別從隨機總數(shù)據(jù)集中抽取,對應訓練集6 000張圖片,測試集及驗證集各1 000張圖片。其中,測試集不含標注信息,且測試集和訓練集無重復,從而達到驗證目的。
3.3 評測指標
為了驗證改進后的YOLOv3算法性能,本研究采用了平均精準度(mean Average Precision,mAP)以及每秒檢測幀數(shù)(FPS)等指標來對算法模型進行評估。其中,單類別的平均準確率采用AP表示,mAP則為多類別的AP均值。mAP的值越大則整體的識別率越高。計算方法如公式(9)所示,Precision和Recall為準確率和召回率。其中,TP (True Positives)計算如下。
數(shù)據(jù)集中正確判定為正例的實例數(shù)FP (False Positives)為數(shù)據(jù)集被誤標記為正樣本的實例數(shù)。FN (False Negatives)為數(shù)據(jù)集中誤標記為負樣本的實例數(shù)。
3.4 試驗結果分析
采用建立好的安全帽訓練集對提出的模型進行訓練,訓練的參數(shù)主要參考了YOLOv3原始網(wǎng)絡的訓練參數(shù),結合訓練平臺硬件參數(shù),對訓練中部分參數(shù)再進行優(yōu)化,使得整個網(wǎng)絡檢測效果達到較佳,訓練的參數(shù)設置如表1所示。
3.5 算法性能測試及其對比試驗
為了驗證改進后的網(wǎng)絡模型的檢測效果,本研究將改進版YOLOv3算法與原始YOLOv3模型、Faster-RCNN以及SSD模型運用相同的測試數(shù)據(jù)集進行對比驗證,選擇統(tǒng)計并計算使用mAP指標、每秒識別幀數(shù)進行對比,評估模型。其中輸入測試集圖像尺寸為[416×416],檢測結果如表2所示。
3.6 結果分析
從試驗結果分析可得,改進后的YOLOv3算法mAP相比于其他對比算法都更高,達到了92.14%,對比于原始的YOLOv3算法檢測精度mAP提高了4.29%,且每秒檢測幀數(shù)(FPS)提高了8.67%,達到了每秒28.8幀,基本上達到了實時檢測的要求。盡管SSD算法相比于本研究算法其檢測速度更佳,在實際檢測過程中針對待測目標較小以及遮擋情況等出現(xiàn)了明顯誤檢、漏檢情況,整體檢測精度較差。而本文算法在確保檢測準確率的同時,檢測速率也能達到實時檢測,具備較佳的工程應用價值。
為了進一步展示原始YOLOv3算法以及改進后YOLOv3算法的檢測效果對比,本研究從驗證集中選取了部分樣本進行檢測,其中包含顏色形狀干擾、腳手架遮擋以及小目標檢測等情況,檢測結果如圖6所示。圖7給出了不同狀態(tài)下的部分測試結果,其中最左邊為原始圖像、中間為原始YOLOv3算法檢測圖像、右側為改進后YOLOv3算法檢測結果。由圖7可以看出,在存在遮擋、檢測目標小以及相似形狀等復雜環(huán)境背景下,本算法均能正確識別與檢測,而原始YOLOv3模型卻存在著部分漏檢、誤檢的情況。
4 結論與展望
針對在工程施工領域安全帽佩戴檢測效果不理想情況,本研究在原始YOLOv3網(wǎng)絡模型的基礎上,通過引入SE-ResNeXt殘差單元改進原始特征提取網(wǎng)絡Darknet53中的ResNet殘差結構,在加深網(wǎng)絡深度、獲取更高級別語義信息的同時,減少了由于加深網(wǎng)絡深度帶來的模型退化問題。在模型最后,引入了SPPNet空間池化金字塔模塊,對待測圖片進行多尺度提取,提高了檢測精度。同時,使用CIOU替換原始的IOU損失函數(shù),幫助模型在提高檢測效率的同時,更快收斂。由在自建的數(shù)據(jù)集上測試驗證可知,改進后的YOLOv3檢測模型與原始的YOLOv3檢測模型相比,準確率mAP從87.85%提高到92.14%,提高了4.29%,每秒檢測幀數(shù)(FPS)提高了8.67%,達到了每秒28.8幀。通過對施工現(xiàn)場攝像頭采集視頻流圖像識別結果表明,改進后的YOLOv3算法檢測準確率較高,識別速度快,具備工程使用價值。
參考文獻:
[1] 常欣,劉鑫萌.建筑施工人員不合理佩戴安全帽事故樹分析[J].吉林建筑大學學報,2018,35(6): 65-69.
[2] RUBAIYAT A,TOMA T T,KALANTARI-KH-ANDANI M, et al. Automatic Detection of Helmet Uses for Construction Safety[C]// IEEE/WIC/ACM International Conference on Web Intelligence Workshops. ACM, 2017.
[3] 李琪瑞.基于人體識別的安全帽視頻檢測系統(tǒng)研究與實現(xiàn)[D].成都:電子科技大學, 2017.
[4] 徐守坤,王雅如,顧玉宛,等.基于改進Faster RCNN的安全帽佩戴檢測研究[J].計算機應用研究,2020,37(3):901-905.
[5] 王秋余.基于視頻流的施工現(xiàn)場工人安全帽佩戴識別研究[D].武漢:華中科技大學,2018.
[6] 郭玥秀,楊偉,劉琦,等.殘差網(wǎng)絡研究綜述[J].計算機應用研究,2020,37(5):1292-1297.