蘇州中材建設(shè)有限公司 崔 俊
近年來,目標檢測主要通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取圖片的特征,根據(jù)應(yīng)用場景相應(yīng)地誕生了許多目標檢測算法。對于安全帽與人體的目標檢測這一應(yīng)用場景,國內(nèi)外根據(jù)各種算法已經(jīng)有很多實際的應(yīng)用,并取得了很好的效果。2004年,Alexey等人根據(jù)YOLO v3提出了YOLO v4算法,在速度與精度上有了非常好的提升,與YOLO v3相比,YOLO v4的AP和FPS分別提升了10%和12%。
隨著建筑行業(yè)的發(fā)展,無論是企業(yè)規(guī)模、相關(guān)從業(yè)者的數(shù)量,還是經(jīng)濟總產(chǎn)值都有不同程度的增長。然而在繁榮興盛的背后,由于疏忽大意而時常發(fā)生的建筑事故給工人的生命安全帶來了巨大的威脅。本文所提出的工地工人安全帽佩戴監(jiān)測系統(tǒng)的安全帽監(jiān)測部分主要基于YOLO v4的圖像特征提取處理,通過在工地布置的相關(guān)設(shè)備獲取即時的圖像,并以人體識別為前提判斷其安全帽的佩戴情況,并且通過后臺通知系統(tǒng)進行相應(yīng)的預警和提醒,保證進入人員的人身安全,后臺系統(tǒng)整體是MVC架構(gòu),后臺進程通過socket與監(jiān)測部分進程進行通信,同時將實時的結(jié)果通知系統(tǒng)管理員,進行及時的提醒。
Alexey等人在2020年4月23發(fā)表了論文《YOLO v4: Optimal Speed and Accuracy of Object Detection》,提出了YOLO v4算法。從圖1的結(jié)果來看,相對于YOLO v3在準確率上提升了近10個點,然而速度并幾乎沒有下降,論文主要貢獻如下:提出速度更快、精度更好的檢測模型,僅需要單張1080Ti或2080Ti即可完成訓練;驗證了目前SOTA的Bag-ofFreebies(不增加推理成本的trick)和Bag-of-Specials(增加推理成本的trick)的有效性;修改了SOTA方法,讓其更高效且更合適地在單卡進行訓練,包括CBN、PAN、SAM等。許多特征可以提高CNN的準確率,然而真正實行起來,還需要在大型數(shù)據(jù)集上對這些特征組合進行實際測試,并且對測試結(jié)果進行理論驗證。某些特征僅在某些模型上運行,并且僅限于特定的問題,或是只能在小型數(shù)據(jù)集上運行;而另外有些特征(如批歸一化和殘差連接)則適用于大多數(shù)模型、任務(wù)和數(shù)據(jù)集。YOLO v4使用了以下特征組合,實現(xiàn)了新的SOTA結(jié)果:(1)加權(quán)殘差連接(WRC);(2)Cross-Stage-Partial-connection,CSP;(3)Cross mini-Batch Normalization,CmBN;(4)自對抗訓練(Self-adversarialtraining,SAT);(5)Mish激活(Mish-activation);(6)Mosaic數(shù)據(jù)增強;(7)DropBlock正則化;(8)CIoU 損失。
YOLO v4的基本目標是提高生產(chǎn)系統(tǒng)中神經(jīng)網(wǎng)絡(luò)的運行速度,同時為并行計算做出優(yōu)化,而不是針對低計算量理論指標(BFLOP)進行優(yōu)化。YOLO v4的作者提出了兩種實時神經(jīng)網(wǎng)絡(luò):(1)對于GPU,研究者在卷積層中使用少量組(1-8組):CSPResNeXt50/CSPDarknet53;(2)對于VPU,研究者使用了分組卷積(grouped-convolution),但避免使用Squeeze-andexcitement(SE)塊。具體而言,它包括以下模型:EfficientNetlite/MixNet/GhostNet/MobileNetV3。
圖1 YOLO v4網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLO v4包含了以下三部分:(1)骨干網(wǎng)絡(luò):CSPDarknet53;(2)Neck:SPP、PAN;(3)Head:YOLO v3。
YOLO v4的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。
在模型結(jié)構(gòu)選擇時,主要考慮了三個問題:為了檢測較小的物體,輸入圖片需要較高的分辨率,為了更大的感受野需要更多層的網(wǎng)絡(luò),為了網(wǎng)絡(luò)的容量需要更多的參數(shù)。其中關(guān)于感受野作者分析了三種不同level的感受野:能看到整個目標的感受野,能看到整個圖像的感受野,大于整個圖像的感受野。作者選擇了CSPDarknet53作為主干網(wǎng)絡(luò),SPP與modified-PAN作為Neck,沿用了YOLO v3的Head。
數(shù)據(jù)集的制作:
數(shù)據(jù)集來源主要根據(jù)建筑工地架設(shè)的各個攝像頭,圖像的角度包括后方、側(cè)方和前方的各個圖像,其光照和可見度變化不大,主要集中在白天的不同時間段。根據(jù)此數(shù)據(jù)集得到的訓練集具有代表性,訓練集的制作在Windows10系統(tǒng)下進行,使用NVIDIAGeForce GTX2060通過TensorFlow深度學習框架進行運算。
圖2 檢測結(jié)果
圖3 系統(tǒng)整體設(shè)計
訓練集制作過程中參數(shù)設(shè)置控制其bath參數(shù)為16,表示每一次迭代到網(wǎng)絡(luò)的圖片數(shù)量,經(jīng)過實驗采用16,在訓練時使其不溢出顯存,classes類別數(shù)目設(shè)置為3,num設(shè)置為9,表示YOLO中每個cell預測框的數(shù)量,filters=3*(classes+5)=24,表示輸出特征圖的數(shù)量。進行訓練后,YOLO v4可以監(jiān)測到動態(tài)的訓練過程的loss值圖像,當圖像的loss值下降區(qū)域平穩(wěn)時,表示學習的速度變慢,損失函數(shù)幅度減小,此時進行了800次的迭代。最終將圖片輸入建立好的模型中得到的結(jié)果如圖2所示。
根據(jù)結(jié)果可知監(jiān)測部分的功能符合需求,對于單個的圖片可以完成對安全帽佩戴的監(jiān)測。
系統(tǒng)分為兩個部分,監(jiān)測模塊、后臺實現(xiàn)模塊,架構(gòu)如圖3所示,各個模塊的進程間通過socket進行通信。
(1)圖像分析:工程運行在windows系統(tǒng)上,通過相應(yīng)攝像頭驅(qū)動設(shè)備提供的接口每隔一段時間獲取一張待檢測的樣本圖片,存至特定的緩存目標目錄,用于記錄日志,檢測程序也從該目錄讀取樣本進行檢測。
(2)后臺系統(tǒng)的設(shè)計:系統(tǒng)的整體設(shè)計由控制部分、后臺日志記錄部分、檢測部分組成??刂撇糠郑航缑嬗蒀++/QT開發(fā),主要用于提供管理員的操作界面并負責與后臺系統(tǒng)的交互,方便查詢服務(wù)器上保存的監(jiān)控日志等信息。后臺日志記錄部分:由傳統(tǒng)的MVC架構(gòu)搭建,與前端分離,降低系統(tǒng)的耦合性,主要提供各種API進行數(shù)據(jù)的交互。后臺部分主要負責管理監(jiān)控部分檢測分析到的各種監(jiān)控數(shù)據(jù),并將其按照時間日期生成日志并整理保存進數(shù)據(jù)庫,方便管理人員進行查看。
本系統(tǒng)架構(gòu)設(shè)計簡潔,功能可根據(jù)需求對接口進行相應(yīng)的拓展即可實現(xiàn)擴大,具有可維護性與泛用性,系統(tǒng)可以很好地實現(xiàn)對安全帽佩戴情況的進行實時的監(jiān)測,并且通知相關(guān)責任人采用應(yīng)對措施。
結(jié)論:安全防護從頭做起,在我國各處建筑工地上,因為不戴安全帽等防護設(shè)施,每年發(fā)生的意外的事故約3100起。有時候如果多一個及時的提醒,往往就能避免一場事故的發(fā)生。本文提出了安全帽佩戴檢測系統(tǒng),可以實現(xiàn)工地工人的安全帽快速檢測,通過及時的提醒與記錄,保障了工人的生命安全。同時整個系統(tǒng)架構(gòu)清晰高效,管理員可以方便的查看記錄與操作系統(tǒng),各個部分相互間耦合度低,便于后期的修改維護和功能擴展。