辜誠煒 諶志東 羅仁強 周宏貴 鄭春華
摘? 要:在電廠作業(yè)現(xiàn)場因未佩戴安全帽而導(dǎo)致人員傷亡的事件時有發(fā)生,人工監(jiān)測方式不能做到及時發(fā)現(xiàn)實時提醒,且容易因視覺疲勞而錯過一些目標,從而造成不必要的人員傷亡?;诖?,文章提出一種基于PP-YOLOv2電廠場景的安全帽佩戴檢測方法?;诎俣蕊w槳深度學(xué)習(xí)框架,使用PP-YOLOv2神經(jīng)網(wǎng)絡(luò),向訓(xùn)練數(shù)據(jù)集中添加電廠數(shù)據(jù)并使其占比超過1/3,可訓(xùn)練安全帽識別mAP(Mean Average Precision)高達94%的神經(jīng)網(wǎng)絡(luò)模型。同時,文章舉例了電廠攝像頭景深較深的畫面,人在攝像頭畫面中占比較小,而公開數(shù)據(jù)集數(shù)據(jù)的景深較淺,在訓(xùn)練前該團隊成員對部分數(shù)據(jù)進行了重新標注,增強了模型在電廠應(yīng)用的泛化能力。
關(guān)鍵詞:深度學(xué)習(xí);安全帽佩戴檢測;PP-YOLOv2網(wǎng)絡(luò);神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391.4? 文獻標識碼:A? 文章編號:2096-4706(2023)18-0114-05
Safety Helmet Wearing Detection Based on PP-YOLOv2 Power Plant Scenario
GU Chengwei1, CHEN Zhidong2, LUO Renqiang2, ZHOU Honggui2, ZHENG Chunhua2
(1.Shenzhen Datang Baochang Power Supply Co., Ltd., Shenzhen? 518110, China;
2.Hunan Datang Xianyi Technology Co., Ltd., Changsha? 410001, China)
Abstract: There are frequent incidents of casualties caused by not wearing safety helmets at the power plant operation site. Manual monitoring methods cannot detect real-time reminders in a timely manner, and it is easy to miss some targets due to visual fatigue, resulting in unnecessary casualties. Based on this, this paper proposes a safety helmet wearing detection method based on the PP-YOLOv2 power plant scenario. Based on the Baidu Feijiang deep learning framework, the PP-YOLOv2 neural network is used to add power plant data to the training dataset and make it account for more than 1/3. It can train a neural network model with a helmet recognition mAP (Mean Average Precision) of up to 94%. At the same time, the paper provides examples of images with deep field in power plant cameras, where humans make up a relatively small proportion of the camera image, while the depth of field in public dataset data is relatively shallow. Before training, the team members re annotate some of the data, enhancing the application generalization ability of the model in power plant.
Keywords: deep learning; safety helmet wearing detection; PP-YOLOv2 network; neural network
0? 引? 言
一直以來,施工人員佩戴安全帽是一項硬性規(guī)定。有研究表明,在建筑工地及巡檢現(xiàn)場中,接近90%的腦損傷因未正確佩戴安全帽引起[1]。盡管電廠管理明確規(guī)定,任何人進入電廠必須佩戴安全帽,卻仍有臨時工、民工等外單位人員進入電廠作業(yè)未佩戴安全帽,安全意識薄弱,存在很大的安全隱患[2]。傳統(tǒng)的安全帽檢測通常是人工現(xiàn)場監(jiān)督,或通過攝像機使工作人員在監(jiān)控室進行監(jiān)控,在電廠環(huán)境下,面對幾十甚至上百個監(jiān)控畫面,因監(jiān)控人員責任心、工作狀態(tài)、視覺疲勞等各種因素的影響下,整個視頻監(jiān)控系統(tǒng)的有效性無法得到保證,通常存在漏檢的風險。
近年來,為了智能化檢測安全帽的佩戴情況,涌現(xiàn)出大量新穎算法,主要是基于傳感器和圖像處理兩種方式?;趥鞲衅鞯臋z測主要通過定位技術(shù)采集人、機、材的信息位置,提供給安全風險識別系統(tǒng)進行風險評估[3-5],但該模式受設(shè)備精度以及傳感器實際應(yīng)用推廣難度大。隨著深度學(xué)習(xí)的發(fā)展,使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練識別安全帽佩戴的模型層出不窮。基于深度學(xué)習(xí)的檢測算法因其檢測速度快、準確性高等特點,成為當前安全帽檢測的主流算法[6]。
雖然深度學(xué)習(xí)在目標檢測領(lǐng)域深受歡迎,但針對安全帽這樣的小目標識別準確率及檢測速度并不能滿足工程需求。直到文獻[7]提出了Faster R-CNN神經(jīng)網(wǎng)絡(luò)模型后,研究人員將該網(wǎng)絡(luò)進行改進并應(yīng)用于安全帽檢測。文獻[8]提出了Faster R-CNN+ZFNet的組合應(yīng)用在安全帽的檢測,mAP高達90.3%,檢測速度可達27 FPS。文獻[9]提出基于YOLO的半監(jiān)督學(xué)習(xí)安全帽佩戴識別算法,在一般場景下視頻流的建筑工人與安全帽檢測準確率在85.7%~93.7%。文獻[10]使用卡爾曼濾波和Hungarian匹配算法跟蹤人員軌跡,配合YOLOv3實現(xiàn)安全帽檢測,獲得了18 FPS的檢測速度和89%的準確率。文獻[11]將SSD算法和Mobilenet網(wǎng)絡(luò)融合,取得89.4% mAP。文獻[12]使用RetinaNet作為檢測網(wǎng)絡(luò),對快速移動的安全帽佩戴情況進行檢測,測試集上實現(xiàn)了72.3% mAP,處理速度14 FPS。然而,針對電廠的應(yīng)用場景,安全帽在整個視頻畫面中占比很小,若非人使用先驗知識,也無法分辨出安全帽。作者僅使用公共數(shù)據(jù)集訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,雖然訓(xùn)練完成正確率最高可達98.6%,但部署在電廠700多路攝像頭,每分鐘取一幀圖片進行識別,一天的誤報可達數(shù)萬條(包含誤報重復(fù)告警的情況),模型的泛化能力較差。通過分析數(shù)據(jù)、模型,發(fā)現(xiàn)訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)之間的特征像素點相差較大,且電廠場景包含大量的鋼管設(shè)備、關(guān)照條件不均衡等因素導(dǎo)致誤報嚴重。本文研發(fā)團隊采集一個月的電廠數(shù)據(jù),數(shù)據(jù)清洗后將其標注并添加到公共數(shù)據(jù)集一同參與訓(xùn)練,使用百度飛漿的PP-YOLOv2模型,訓(xùn)練出識別率較高的網(wǎng)絡(luò)模型,并滿足電廠要求,且已上線使用。
1? PP-YOLOv2簡介
PP-YOLOv2是百度于2021年4月提出基于PP-YOLO改進的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),PP-YOLO是百度2020年8月基于YOLOv3改進的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),使用百度開發(fā)的Paddle Paddle神經(jīng)網(wǎng)絡(luò)框架訓(xùn)練,因此命名為PP-YOLO。
PP-YOLO擁有45.2% mAP的正確率和72.9 FPS的幀率,優(yōu)于當年較為流行的EfficientDet和YOLOv4的準確率和推理速度。PP-YOLO的主干網(wǎng)絡(luò)將Dacknet-53替換成改進后的ResNet50-vd,并在最后將3×3卷積替換為Deformable Convolutional Networks(DCN),因此形成ResNet50-vd-dcn命名的Backbone。選擇ResNet作為Backbone一方面因為其被大眾廣泛使用、優(yōu)化程度更深、部署方便;另一方面是主干網(wǎng)絡(luò)和數(shù)據(jù)增強是相互獨立的關(guān)系。數(shù)據(jù)增強使用最基本的MixUP,并將訓(xùn)練的batch size從64增大至192,增大batch size可提高訓(xùn)練的穩(wěn)定性和得到更好的訓(xùn)練結(jié)果。PP-YOLO并沒有提出創(chuàng)新的技巧,只是組合使用了現(xiàn)有的技巧,使YOLOv3提高精度的同時不損失速度。
PP-YOLOv2是基于PP-YOLO的改進,通過多種有效改進方法的組合,使PP-YOLO在COCO2017 test-dev數(shù)據(jù)上的性能從45.9% mAP提升到49.5% mAP,故稱模型為PP-YOLOv2。PP-YOLOv2的推理能力可達68.9 FPS@640×640的輸入尺寸。采用百度飛漿的Paddle推理引擎+TensorRT+FP16+bs1,可進一步將PP-YOLOv2的推理速度提升至106.5 FPS。這樣的性能超越了同等參數(shù)量的檢測器YOLOv5l、YOLOv4-CSP等模型,如圖1所示。此外,采用ResNet101-vd-dcn作為骨干網(wǎng)絡(luò)的PP-YOLOv2可在COCO2017 test-dev數(shù)據(jù)集上獲得50.3% mAP的性能[13]。
下文針對PP-YOLOv2相比PP-YOLO的主要改進進行描述:
1)預(yù)處理:首先采用Mixup訓(xùn)練[14](服從Beta(1.5,1.5)分布);然后以0.5概率逐個執(zhí)行RandomColorDistortion、RandomExpand、RandCrop、RandomFlip方案;執(zhí)行歸一化mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225];最后輸出尺寸從[320、352、384、416、448、480、512、544、576、608]中隨機抽取進行多尺度訓(xùn)練。
2)基準模型:PP-YOLOv2的基準模型為YOLOv3改進版的PP-YOLO,進一步說明,它的骨干網(wǎng)絡(luò)是ResNet50-vd,通過總計10個改進方案(包含SSLD、Deformable Conv、DropBlock、CoordConv、SPP等)改進了YOLOv3的性能,并且?guī)缀醪挥绊懲评淼男省?/p>
3)訓(xùn)練機制:在COCO train 2017上,采用隨機梯度下降(SGD)訓(xùn)練網(wǎng)絡(luò)500k次迭代,minibatch設(shè)置為96,分布在8張GPU上計算。在前4k次迭代中學(xué)習(xí)率線性地從0提升到0.005,然后在400k和450k處除以10。權(quán)值衰減設(shè)置為0.000 5,動量設(shè)置為0.9,與此同時,采用了梯度裁剪的方法穩(wěn)定訓(xùn)練過程。
4)Mish激活函數(shù):Mish激活函數(shù)[15]在YOLOv4和YOLOv5等探測器中被證明是有效的,它們在主干中采用Mish激活函數(shù)。由于PP-YOLOv2有一個非常強的預(yù)訓(xùn)練骨干模型(在ImageNet上達到82.4%的top-1精度),為保持骨干結(jié)構(gòu)不變,我們僅將Mish用到了Neck部分。
5)更大的輸入大?。涸黾虞斎氤叽缈梢栽龃竽繕吮桓兄拿娣e,因此,小尺度的目標信息將比之前更好地保存,進而可提升模型的性能。然而,更大尺寸輸入會占用更多內(nèi)存,因此,需通過減少batch應(yīng)用此技巧。具體來說,我們將單個GPU的batch從24減少到12,并將輸入尺寸從608增加到768。輸入尺寸均勻地從[320、352、384、416、448、480、512、544、576、608、640、672、704、736、768]中獲取。
6)IoU感知分支:在PP-YOLO中,IoU感知損失是以軟加權(quán)方式計算的,IoU損失定義為:
其中,t為錨點與其匹配的真實框之間的IoU,p為原始IoU分支的輸出,σ (·)為sigmoid激活函數(shù)。值得注意的是:僅僅正樣本的IoU損失進行了計算。通過替換損失函數(shù),IoU損失表現(xiàn)更佳。
2? 模型訓(xùn)練
論文所提及的安全帽識別目標檢測模型訓(xùn)練基于百度開源的深度學(xué)習(xí)框架飛槳(PaddlePaddle)、目標檢測框架PaddleDetection。訓(xùn)練的硬件條件和環(huán)境配置:Intel Core i7-9700處理器、16 GB運行內(nèi)存、64位操作系統(tǒng)、GeForce RTX 2070 SUPER(GPU型號)、8 G顯存、磁盤500 G、Python 3.8、PaddlePaddle 2.4.2??偣矆D片12 977張,其中訓(xùn)練圖片9 084張、驗證圖片2 595張、測試圖片1 298張。
參數(shù)設(shè)置:因訓(xùn)練集中包含了5 396張電廠數(shù)據(jù),每張大小為1 920×1 280,在已有的GPU資源訓(xùn)練時間較長,因此設(shè)置一個較大的epoch記錄訓(xùn)練過程的loss和mAP值,本實驗設(shè)置epoch為500 000次。batch size設(shè)置為8(設(shè)置16顯存不夠),其余參數(shù)使用飛槳默認即可,可按照百度飛槳官方文檔(https://github.com/PaddlePaddle/PaddleYOLO)準備訓(xùn)練。
訓(xùn)練結(jié)果:在epoch大約為50 000次時,loss值開始動蕩,mAP值也達到了94%的峰值,loss-iteration-mAP曲線如圖2所示,最后在epoch為130 700時,我們終止了訓(xùn)練。
3? 實驗結(jié)果和分析
針對上一章節(jié)的訓(xùn)練結(jié)果,并不是目前學(xué)術(shù)界及工業(yè)界最好的mAP(IoU 0.5),但是它是本文作者所在團隊部署到電廠檢測效果最好的模型(注:并不是主流模型作者都進行了實驗)。目前該算法已部署在電廠700余路高清攝像頭,覆蓋主要生產(chǎn)及保衛(wèi)區(qū)域,基本實現(xiàn)重要設(shè)備及通道的視頻覆蓋。在廠區(qū)部署了3個5G宏基站和10個室分基站,做到5G信號全覆蓋,滿足偏遠區(qū)域視頻監(jiān)控及移動監(jiān)控的需求。
電廠場景安全帽檢測結(jié)果如圖3所示,安全帽的類別標簽為“helmet”“helmet”字符后面顯示的數(shù)值是置信度。圖3中的a部分展現(xiàn)了電廠外景攝像圖的正常監(jiān)視范圍,可以了解到電廠室外攝像頭的景深較深,人在場景內(nèi)的占比很小,安全帽則更小,在景深較深處的工人是否佩戴安全帽人眼也難分辨。圖3的b~g是與a圖同樣像素點大小的圖片中截取目標檢測部分,方便讀者看清楚。b~g截圖時保留了目標在原圖的大小顯示,可知訓(xùn)練的模型要滿足電廠室內(nèi)和室外的場景需求,室內(nèi)的工作人員在攝像圖片中占比相對較大,安全帽也比較清晰,使用公共數(shù)據(jù)集訓(xùn)練的模型識別的正確率也相對較高,但是針對外景,人距離攝像頭較遠時,如圖3的a示例展現(xiàn)的工作人員大小,漏報及錯報的情況相當嚴重。
通過僅公共數(shù)據(jù)集訓(xùn)練的模型錯檢的案例如圖4所示,導(dǎo)致這些場景錯檢的原因主要是標注數(shù)據(jù)時,僅標注了人頭及佩戴安全帽的部分,且公共數(shù)據(jù)集的背景環(huán)境相對簡單,電廠生產(chǎn)區(qū)域存在各種專業(yè)設(shè)備、鋼管結(jié)構(gòu)等復(fù)雜場景,這些通過公共數(shù)據(jù)集訓(xùn)練無法學(xué)習(xí)到的,即使更換數(shù)據(jù)集甚至增加數(shù)據(jù)集數(shù)據(jù)(注:本文作者所在團隊因前期沒有電廠數(shù)據(jù)已試過增加數(shù)據(jù)集和更換數(shù)據(jù)集的方法),仍存在設(shè)備誤檢且置信度高于0.5的結(jié)果。
針對電廠環(huán)境內(nèi)使用深度學(xué)習(xí)算法實現(xiàn)安全帽佩戴檢測的難點主要是數(shù)據(jù)收集,如圖5所示。公開的安全帽數(shù)據(jù)集中安全帽在整幅圖片占比如圖5的a~c所示,相對于電廠場景圖片的安全帽在整張圖片中占比較大。電廠的實際情況如圖5的d~f所示,可見表示安全帽的像素點很少,考慮到使用公共數(shù)據(jù)集訓(xùn)練的模型泛化能力不高的情況,本文作者所在團隊決定采集一個月的電廠數(shù)據(jù)。通常,電廠場景內(nèi)施工人員較少,95%以上的攝像頭拍攝場景內(nèi)大部分時間沒有人出現(xiàn),團隊成員使用JAVA和Python編程語言編寫一個針對每個場景若檢測到人則將該幀圖片保存的程序,人的檢測使用了YOLOv7預(yù)訓(xùn)練模型,盡管存在部分誤報的情況,但少了工作量。將上述程序部署在電廠服務(wù)器可實時計算攝像頭場景是否有人,抓圖時間間隔1分鐘。
經(jīng)過對收集到的數(shù)據(jù)進行清理,總共放入數(shù)據(jù)集中的電廠數(shù)據(jù)5 396張,使用百度的“飛漿EasyDL”軟件進行數(shù)據(jù)標注,電廠數(shù)據(jù)和公共數(shù)據(jù)集數(shù)據(jù)總數(shù)是12 977張。標注框僅為脖子以上部分,如圖6所示,紫色矩形框的標簽為人頭(head),藍色矩形框的標簽為安全帽(helmet)。用于訓(xùn)練的電廠數(shù)據(jù)中每個場景添加了兩張無人的圖片,由于收集一個月的數(shù)據(jù),有些場景并沒有抓到有人的圖片,一方面原因一分鐘抓一幀,人已不在攝像頭所監(jiān)控的范圍內(nèi)(一分鐘走過了攝像頭所監(jiān)控的范圍);另一方面是YOLOv7預(yù)訓(xùn)練模型正確率的問題。使用無人的圖片訓(xùn)練有助于背景的學(xué)習(xí)。
將數(shù)據(jù)集重新標注之后,使用PP-YOLOv2進行訓(xùn)練,可取得如圖7所示的約為94%mAP。將模型直接部署到電廠后,我們通過設(shè)置置信度0.5濾除設(shè)備誤報的情況,同時,在用戶界面配置算法時,開啟了可由用戶調(diào)整當個監(jiān)控場景置信度的功能,可根據(jù)場景降低置信度,減少漏檢的發(fā)生。此外,部署后偶爾會出現(xiàn)誤報,比如光照條件較暗,易將安全帽識別成頭,這種情況通常需要人的先驗知識判斷。
4? 結(jié)? 論
本文主要闡述了電廠內(nèi)人員佩戴安全帽對安全作業(yè)的重要性,以及提出了智能化實時監(jiān)測的必要性。本文花費大量的篇幅描述了為什么使用公共數(shù)據(jù)集訓(xùn)練的模型在電廠泛化性差,主要由于安全帽數(shù)據(jù)特征表征差異大。作者所在團隊通過在電廠內(nèi)服務(wù)器上部署抓圖軟件對電廠有人的圖片進行采集,最終將5 376張電廠數(shù)據(jù)并入公共數(shù)據(jù)集,使用百度“飛漿EasyDL”重新標注所有的數(shù)據(jù),基于百度飛漿PaddlePaddle訓(xùn)練PP-YOLOv2模型,最終得到mAP為94%的模型。
參考文獻:
[1] LI H,LI X Y,LUO X C,et al. Investigation of the causality patterns of non-helmet use behavior of construction workers [J].Automation in Construction,2017,80:95-103.
[2] 朱明增.變電站現(xiàn)場佩戴安全帽智能監(jiān)控預(yù)警系統(tǒng)研究 [J].中國新技術(shù)新產(chǎn)品,2015(24):178-179.
[3] DONG S,HE Q H,LI H,et al. Automated PPE Misuse Identification and Assessment for Safety Performance Enhancement [EB/OL].[2023-02-18].https://ascelibrary.org/doi/10.1061/9780784479377.024.
[4] KELM A,LAUSSAT L,MEINS-BECKER A,et al. Mobile passive Radio Frequency Identification (RFID) portal for automated and rapid control of Personal Protective Equipment (PPE) on construction sites [J].Automation in Construction,2013,36:38-52.
[5] BARRO-TORRES S,F(xiàn)ERNANDEZ-CARAMES T M,PEREZ-LGLESIAS H J,et al. Real-Time Personal Protective Equipment Monitoring System [J].Computer Communications,2012,36(1):42-50.
[6] 李政謙,劉暉.基于深度學(xué)習(xí)的安全帽佩戴檢測算法綜述 [J].計算機應(yīng)用與軟件,2022,39(6):194-202.
[7] REN S Q,He K M,GIRSHICK R,et al. Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks [J/OL].arXiv:1506.01497 [cs.CV].[2023-02-18].https://arxiv.org/abs/1506.01497.
[8] FU J T,CHEN Y Z,CHEN S W. Design and Implementation of Vision Based Safety Detection Algorithm for Personnel in Construction Site [EB/OL].[2023-02-18].https://www.semanticscholar.org/paper/Design-and-Implementation-of-Vision-Based-Safety-in-Fu-Chen/9e22ef48b825eac3f417437ff2cc43c3d85128a7.
[9] 王秋余.基于視頻流的施工現(xiàn)場工人安全帽佩戴識別研究 [D].武漢:華中科技大學(xué),2018.
[10] ZHAO Y,CHEN Q,CAO W G,et al. Deep Learning for Risk Detection and Trajectory Tracking at Construction Sites [J].IEEE Access,2019,7:30905-30912.
[11] 李小偉.輕量級深度學(xué)習(xí)目標檢測算法研究及系統(tǒng)設(shè)計 [D].合肥:安徽大學(xué),2019.
[12] CROITORU I,BOGOLIN S V,LEORDEANU M. Unsupervised Learning from Video to Detect Foreground Objects in Single Images [C]//2017 IEEE International Conference on Computer Vision (ICCV).Venice:IEEE,2017:4345-4353.
[13] HUANG X,WANG X X,LV W Y,et al. PP-YOLOv2:A Practical Object Detector [J/OL].arXiv:2104.10419[cs.CV].[2023-02-18].https://arxiv.org/abs/2104.10419v1.
[14] ZHANG H Y,CISSE M,DAUPHIN Y,et al. mixup: Beyond Empirical Risk Minimization [J/OL].arXiv:1710.09412 [cs.LG].[2023-02-19].https://arxiv.org/abs/1710.09412.
[15] MISRA D. Mish:A Self Regularized Non-Monotonic Activation Function [J/OL].arXiv:1908.08681[cs.LG].[2023-02-19].https://arxiv.org/abs/1908.08681v2.
作者簡介:辜誠煒(1993—),男,漢族,湖南長沙人,助理工程師,本科,主要研究方向:智能發(fā)電研究;諶志東(1978—),男,漢族,湖南益陽人,高級工程師,本科,主要研究方向:智慧電廠、數(shù)據(jù)通訊;羅仁強(1972—),男,漢族,湖南衡陽人,助理工程師,??疲饕芯糠较颍褐腔垭姀S、自動化管理;周宏貴(1973—),男,漢族,湖南衡陽人,高級工程師,本科,主要研究方向:能源生產(chǎn)數(shù)字化化轉(zhuǎn)型研究、生產(chǎn)技術(shù)與信息技術(shù)兩化融化技術(shù)研究;鄭春華(1982—),男,漢族,河南衡水人,工程師,本科,主要研究方向:智慧電廠與智能發(fā)電研究。