張 錦,屈佩琪*,孫 程,羅 蒙
(1.湖南師范大學(xué)信息科學(xué)與工程學(xué)院,長沙 410081;2.湖南師范大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,長沙 410081)
建筑業(yè)是一個高風(fēng)險行業(yè),建筑工人在工作過程中極易受傷,如若頭部一旦受傷,結(jié)果往往是致命的。根據(jù)國家安全生產(chǎn)監(jiān)督管理局2015-2018 年發(fā)布的一系列事故數(shù)據(jù)統(tǒng)計(jì),在記錄的78 起建筑事故中,其中有53 起事件是由于工人沒有佩戴安全帽而引發(fā)的,占事故總數(shù)的67.95%。在施工現(xiàn)場的安全管理中,監(jiān)督施工人員佩戴安全防護(hù)器具是必不可少的。安全帽可以承受和分散墜落物體的撞擊,更能防止工人被高處墜落物體砸傷,未佩戴安全帽的施工工人更容易受傷。但由于建筑工人的自我安全防范意識欠缺,往往輕視佩戴安全帽的重要性。在建筑工地上,通常采用人工監(jiān)督的方法判斷工人是否佩戴安全帽,由于施工人員作業(yè)范圍廣,易造成在施工現(xiàn)場不能及時追蹤和管理所有工人等問題。采用自動監(jiān)控方法有利于監(jiān)管施工人員以及確認(rèn)在施工現(xiàn)場中施工人員的安全帽佩戴情況,特別是考慮到傳統(tǒng)人工監(jiān)督方法往往成本高、耗時長、容易出錯,不足以滿足現(xiàn)代施工安全管理的要求,自動監(jiān)督的視覺方法有利于現(xiàn)場實(shí)時監(jiān)控。
傳統(tǒng)的目標(biāo)檢測通常采用人工選擇特征,并根據(jù)特定的檢測對象設(shè)計(jì)和訓(xùn)練分類器,該方法主觀性強(qiáng),設(shè)計(jì)過程復(fù)雜,泛化能力差,在工程應(yīng)用上有較大局限性。近年來,因卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)不采用人工選擇特征這一特點(diǎn),逐漸受深度學(xué)習(xí)領(lǐng)域的學(xué)者們追捧。2014 年,Girshick 等陸續(xù)提出了R-CNN(Region-CNN)、Fast R-CNN 和Faster R-CNN,并分別在PASCAL VOC(the PASCAL Visual Object Classes)2007 數(shù)據(jù)集上進(jìn)行驗(yàn)證,檢測效果逐步得到提升。這些模型提取特征框的方式從選擇性搜索(Selective Search)逐步變化到區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network,RPN),從而擺脫了傳統(tǒng)的手工提取特征方法。2015 年,Redmon 等提出了一階段檢測算法YOLO(You Only Look Once),該算法首次將檢測任務(wù)抽象為回歸問題,避免了R-CNN 系列中將檢測任務(wù)分兩步完成的繁瑣操 作。2016 年,Liu 等提 出SSD(Single Shot multibox Detector)算法,引入了多尺度檢測方法,可有效檢測成群小目標(biāo)。2017 年,Redmon 等提出了YOLOv2,該算法采用了新的基礎(chǔ)算法Darknet-19,并實(shí)現(xiàn)了端到端的訓(xùn)練。2018年,Redmon 等在YOLO、YOLOv2 基礎(chǔ)上,進(jìn)一步提出了YOLOv3,該算法采用特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)方法融合三個不同尺寸的特征圖層(Feature Map)進(jìn)行檢測任務(wù),顯著提高了小尺寸目標(biāo)的檢測效果。2020 年4 月,Bochkovskiy 等提出了YOLOv4,該算法選用CSP(Cross Stage Partial)Darknet-53為骨干網(wǎng)絡(luò),并采用PANet(Path Aggregation Network)路徑聚合方法替換YOLOv3網(wǎng)絡(luò)中的FPN 算法,大幅度提高了算法的檢測精度。2020年6 月,Ultralytics提出了YOLOv5,該算法在骨干網(wǎng)絡(luò)中新增了Focus 結(jié)構(gòu),實(shí)現(xiàn)了速度和準(zhǔn)確率的最佳平衡新基準(zhǔn)。
因深度學(xué)習(xí)在目標(biāo)檢測領(lǐng)域高速發(fā)展,許多研究學(xué)者致力于將深度學(xué)習(xí)領(lǐng)域與實(shí)際應(yīng)用場景相結(jié)合,例如,Zhang等利用Faster R-CNN 中RPN 處理小目標(biāo)以及負(fù)樣本,并采用隨機(jī)森林對候選區(qū)域進(jìn)行分類,使行人檢測中檢測效果不佳狀況得到大幅度改善。宋歡歡等將改進(jìn)的RetinaNet 應(yīng)用于車輛識別領(lǐng)域,實(shí)現(xiàn)了快速檢測車輛。陳磊等將YOLOv3 網(wǎng)絡(luò)最后一層的特征輸出和上一層網(wǎng)絡(luò)的輸出進(jìn)行融合,形成雙向金字塔特征層,改善了對遙感圖像中小目標(biāo)的識別效果。鄧壯來等通過壓縮模型的SSD 對糧倉害蟲進(jìn)行檢測識別,減少了糧食損失。張海川等將UNet++結(jié)合條件生成對抗網(wǎng)絡(luò)(Conditional Generative Adversarial Net,CGAN)實(shí)現(xiàn)了道路裂縫檢測。由此可見,深度學(xué)習(xí)已成為熱門研究領(lǐng)域,將其與實(shí)際應(yīng)用場景相結(jié)合已成為一種主流方向。
安全帽檢測便是目標(biāo)檢測應(yīng)用領(lǐng)域中的一種。截至目前,國內(nèi)外已有大量學(xué)者對安全帽檢測進(jìn)行了一系列相關(guān)研究。2013 年,Kelm 等設(shè)計(jì)了一個移動射頻識別(Radio Frequency IDentification,RFID)門戶,用于檢查人員的個人防護(hù)裝備(Personal Protective Equipment,PPE)的合規(guī)性。然而,射頻識別閱讀器的工作范圍是有限的,只能建議安全帽靠近工人,但不能確認(rèn)安全帽是否被佩戴。2014 年,劉曉慧等使用支持向量機(jī)(Support Vector Machine,SVM)和膚色檢測相結(jié)合的方式來實(shí)現(xiàn)安全帽檢測。2015 年,Shrestha等使用類似Haar 的特征來檢測人臉,并使用邊緣檢測算法查找安全帽輪廓特征。2016 年,Rubaiya 等將圖像中的頻域信息和梯度直方圖(Histogram of Orientation Gradient,HOG)算法結(jié)合用于檢測人體,再采用圓環(huán)霍夫變換(Circle Hough Transform,CHT)檢測安全帽。2017 年,李琪瑞用Vibe(Visual background extractor)算法來定位人體,再采取凸字算法檢測頭部,最后將HOG 算法和SVM 結(jié)合實(shí)現(xiàn)安全帽佩戴檢測。2018 年,Wu 等提出一種由局部二值模式(Local Binary Patterns,LBP)、顏色直方圖(Color Histograms,CH)和Hu 矩陣不變量(Hu Moment Invariants,HMI)組成的混合描述子來提取安全帽特征,再構(gòu)建分層支持向量機(jī)(Hierarchical SVM,H-SVM)對安全帽進(jìn)行分類。因環(huán)境復(fù)雜造成現(xiàn)階段安全帽佩戴檢測檢測準(zhǔn)確率較低,不符合實(shí)際生產(chǎn)環(huán)境的監(jiān)測需求。
本文以佩戴安全帽的施工作業(yè)人員和未佩戴安全帽的施工作業(yè)人員兩類目標(biāo)為檢測任務(wù),并從網(wǎng)上采集7 000 余張圖片進(jìn)行預(yù)處理,構(gòu)建安全帽檢測數(shù)據(jù)集。選取YOLOv5算法為主體,首先采用K
-Means++聚類算法對目標(biāo)框大小進(jìn)行聚類,獲取適合目標(biāo)的邊界框,使算法能夠更快收斂;其次在骨干網(wǎng)絡(luò)特征融合處引入多光譜通道注意力(Multispectral Channel Attention,MCA)模塊,加強(qiáng)對檢測目標(biāo)的關(guān)注從而提高抗背景干擾能力,并采用多尺度訓(xùn)練策略進(jìn)行訓(xùn)練,提高網(wǎng)絡(luò)的泛化能力。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的YOLOv5 算法的均值平均精度(mean Average Precision,mAP)明顯提升,能夠滿足施工場景下的檢測要求。YOLOv5 是YOLO 系列新一代的目標(biāo)檢測網(wǎng)絡(luò),在YOLOv3 以及YOLOv4 基礎(chǔ)上不斷集成創(chuàng)新的產(chǎn)物。其次,YOLOv5 在PASCAL VOC 與COCO(Common Objects in COntext)目標(biāo)檢測任務(wù)上獲得了較好的效果,因而本文采用YOLOv5 檢測網(wǎng)絡(luò)來進(jìn)行安全帽佩戴檢測。
YOLOv5 目標(biāo)檢測網(wǎng)絡(luò)官方給出了YOLOv5s、YOLOv5m、YOLOv51 以 及YOLOv5x四個算法。其中YOLOv5s 算法是YOLOv5 這一系列中深度最小,特征圖寬度最小的網(wǎng)絡(luò),而YOLOv5m、YOLOv51 以及YOLOv5x 這三個算法都是在YOLOv5s 的基礎(chǔ)上不斷加深以及加寬的產(chǎn)物。
YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)分為輸入端、骨干網(wǎng)絡(luò)(Backbone)、頸部(Neck)及預(yù)測部分(Prediction)。YOLOv5 在數(shù)據(jù)輸入部分新加馬賽克(Mosaic)數(shù)據(jù)增強(qiáng);Backbone 中主要采用Focus 結(jié)構(gòu)和CSP(Cross Stage Partial network)結(jié)構(gòu);Neck 中加入FPN+PAN(Path Aggregation Network)結(jié)構(gòu);Prediction 中將邊界錨框的損失函數(shù)由完全交并比(Complete Intersection over Union,CIoU)損失改進(jìn)為廣義交并比(Generalized Intersection over Union,GIoU)損失;在目標(biāo)檢測后處理過程中,YOLOv5 采用加權(quán)NMS(Non-Maximum Suppression)運(yùn)算對多個目標(biāo)錨框進(jìn)行篩選。
相較于YOLOv4,YOLOv5 的骨干網(wǎng)絡(luò)中新增了Focus 結(jié)構(gòu),主要用來進(jìn)行切片操作。在YOLOv5s 算法中,將尺寸為3×608×608 的普通圖像輸入網(wǎng)絡(luò),經(jīng)一次Focus 切片運(yùn)算,轉(zhuǎn)換大小為12×304×304 的特征圖,再將其通過32 個卷積核的普通卷積運(yùn)算轉(zhuǎn)換為大小為32×304×304 的特征圖。不同于YOLOv4 算法在骨干網(wǎng)絡(luò)中只使用CSP 結(jié)構(gòu),YOLOv5 算法設(shè)計(jì)了兩種新的CSP 結(jié)構(gòu),以YOLOv5s 算法為例,骨干網(wǎng)絡(luò)采用CSP1_1 結(jié)構(gòu)和CSP1_3 結(jié)構(gòu),頸部采用CSP2_1 結(jié)構(gòu),加強(qiáng)網(wǎng)絡(luò)之間的特征融合。YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 YOLOv5s的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv5s network structure
傳統(tǒng)的通道注意力模塊致力于構(gòu)造各種通道重要性權(quán)重函數(shù),例如,擠壓激勵網(wǎng)絡(luò)(Squeeze and Excitation Network,SENet)提出了通道注意力機(jī)制,它對通道執(zhí)行全局平均池(Global Average Pooling,GAP),然后使用全連接層來自適應(yīng)地計(jì)算每個通道的權(quán)重。高效通道注意力網(wǎng)絡(luò)(Efficient Channel Attention Network,ECA-Net)在局部使用一維卷積層以減少全連接層的冗余,并獲得了顯著的性能改進(jìn)。集成雙路注意力(Dual Attention Network,DANet)機(jī)制通過模擬通道和空間維度中的語義相互依賴性來提高語義分割的準(zhǔn)確率。卷積注意力模塊(Convolutional Block Attention Module,CBAM)表明由于信息的丟失,GAP 只能獲得次優(yōu)特征,為解決該問題,它采用GAP 和全局最大池來增強(qiáng)特征多樣性。由于計(jì)算開銷受限,權(quán)重函數(shù)要求每個通道都有一個標(biāo)量進(jìn)行計(jì)算,而GAP 由于其簡單高效成為深度學(xué)習(xí)領(lǐng)域的一個標(biāo)準(zhǔn)選擇。雖然這種選擇簡單高效,但GAP 不能很好地捕獲豐富的輸入模式信息,因此在處理不同的輸入時缺乏特征多樣性。
為解決該問題,本文采用多光譜通道注意力(MCA)模塊。文獻(xiàn)[24]表明,GAP 是離散余弦變量(Discrete Cosine Transform,DCT)的最低頻率,僅使用GAP 等價于在特征通道中丟棄了包含大量信息的其他頻率分量。多光譜通道注意力模塊盡管和其他注意力模塊有相同的出發(fā)點(diǎn),但多光譜通道注意力模塊不僅保留了全局平均池,還使用了除全局平均池之外的頻率分量,可以解決因只關(guān)注單個頻率而造成的信息缺失問題,使算法更關(guān)注重要特征,濾除冗余特征。多光譜通道注意力模塊是基于SE(Squeeze and Excitation)模塊改進(jìn)的,具體結(jié)構(gòu)對比示意圖如圖2 所示。
圖2 SENet和MCA的結(jié)構(gòu)對比Fig.2 Structure comparison between SENet and MCA
為了引入更多的信息,多光譜通道注意力模塊采用二維DCT來融合多個頻率分量,包括最低的頻率分量,即GAP。具體操作流程如下:首先,根據(jù)通道維度將輸入X
劃分為n
個部分,其中n
必須能被通道數(shù)整除。對于其中每一部分,分配相應(yīng)的二維DCT 頻率分量,其結(jié)果可作為通道注意力的預(yù)處理結(jié)果(類似于GAP),如式(1)所示:Frep
∈R即為多光譜向量,如式(2)所示:因此,整個MCA 框架可以表示為式(3):
fc
表示映射函數(shù),如全連接層或一維卷積。K
均值(K
-Means)維度聚類,得到Y(jié)OLOv5 初始先驗(yàn)錨框參數(shù),但因COCO 數(shù)據(jù)集的目標(biāo)種類有80 個類別,而本文中的安全帽檢測種類只有兩個類別,不能滿足安全帽佩戴檢測的實(shí)際需要,所以需要重新設(shè)計(jì)先驗(yàn)錨框大小。相較于只依賴人的先驗(yàn)知識而設(shè)計(jì)的錨框尺寸大小,本文采用K
-Means++聚類算法多次對安全帽佩戴數(shù)據(jù)集中已標(biāo)注的目標(biāo)邊界錨框聚類,產(chǎn)生不同數(shù)量、不同大小的先驗(yàn)框,盡可能增加先驗(yàn)框與實(shí)際目標(biāo)框之間的匹配度,從而進(jìn)一步提高檢測準(zhǔn)確率。在聚類過程中,不同簇的中心個數(shù)對應(yīng)的平均交并比(Mean Intersection over Union,MIoU)如圖3 所示。圖3 不同簇的中心個數(shù)與對應(yīng)的MIoUFig.3 Number of centers of different clusters and corresponding MIoU
由圖3 可看出,先驗(yàn)錨框聚類數(shù)目在0 到9 個時,MIoU 呈快速上漲趨勢;但先驗(yàn)錨框數(shù)目在9 到12 個時,MIoU 增長速率逐漸平緩。為了平衡計(jì)算效率與準(zhǔn)確率,最終選用9 個先驗(yàn)錨框尺寸,并等分到3 個大小不同的預(yù)測分支上,確定的先驗(yàn)錨框尺寸經(jīng)歸一化后如表1 所示。
表1 先驗(yàn)錨框尺寸Tab 1 Anchor box size
表2 為算法性能比較,其中,將先驗(yàn)錨框的聚類算法由K
-Means 算法改為K
-Means++算法后,mAP 得到了一定程度的提高,由于網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生改變,改進(jìn)后的YOLOv5 的檢測精度也有了較大提升。同時選取K
-Means++算法和MCA 模塊的改進(jìn)YOLOv5 算法與原始YOLOv5 算法相比,在自制的安全帽佩戴檢測數(shù)據(jù)集上的mAP 提升了3.4 個百分點(diǎn),能夠準(zhǔn)確地檢測出施工作業(yè)人員是否佩戴安全帽。表2 YOLOv5在不同改進(jìn)下的性能對比Tab 2 Performance comparison of different improvements of YOLOv5
文獻(xiàn)[24]的實(shí)驗(yàn)結(jié)果表明:在ResNet(Residual Network)中添加MCA 模塊可在圖像分類領(lǐng)域取得較好的效果,但在目標(biāo)檢測領(lǐng)域,在網(wǎng)絡(luò)哪個位置中融合MCA 模塊能有效提升準(zhǔn)確率仍是一個待研究的問題。
在小目標(biāo)檢測任務(wù)中,隨著網(wǎng)絡(luò)層數(shù)逐步地增加,可采集的小目標(biāo)特征信息也逐步減弱,所以容易引起算法對小目標(biāo)的誤檢和漏檢。而MCA 模塊本身采用全局平均池和其余頻率分量對特征圖中特征進(jìn)行增強(qiáng),使網(wǎng)絡(luò)在訓(xùn)練過程中加強(qiáng)對目標(biāo)特征的易忽視點(diǎn)學(xué)習(xí)。但是現(xiàn)階段仍未有研究表明MCA 機(jī)制模塊應(yīng)融合網(wǎng)絡(luò)哪一位置可有效提高檢測效率。
受文獻(xiàn)[29-31]啟發(fā),本文將MCA 模塊融合至網(wǎng)絡(luò)模型的不同位置,并對檢測結(jié)果展開研究。根據(jù)YOLOv5s 算法的結(jié)構(gòu),本文在YOLOv5s 的骨干網(wǎng)絡(luò)、頸部以及預(yù)測模塊三個區(qū)域分別融合MCA 模塊。由于MCA 模塊是在重要通道以及空間位置進(jìn)行特征增強(qiáng),所以本文將MCA 模塊分別融合至上述三部分中的每一特征融合區(qū)域,從而產(chǎn)生三種基于YOLOv5s的改進(jìn)算法:MCA-YOLOv5s-BackBone、MCAYOLOv5s-Neck、MCA-YOLOv5s-Prediction,圖4展示了MCA模塊融合網(wǎng)絡(luò)的具體位置。
由圖4(a)可以看出,在YOLOv5s 的骨干網(wǎng)絡(luò)中,將MCA模塊融合到CSP1_3 處(即特征融合處);由圖4(b)可以看出,將MCA 模塊融合到Y(jié)OLOv5s 的頸部Concat 層后;由圖4(c)可以看出,在YOLOv5s 每一個預(yù)測模塊的卷積之前分別融合一個MCA 模塊。
圖4 三種融合MCA模塊的YOLOv5s算法Fig.4 Three YOLOv5s algorithms fusing MCA module
在三個不同位置融合MCA 模塊以及未融合MCA 模塊的實(shí)驗(yàn)對比結(jié)果如表3 所示。其中,大中小目標(biāo)以及mAP 評價指標(biāo)均采用0.5 的IoU 閾值。
為了更加清晰觀察到融合MCA 模塊的網(wǎng)絡(luò)在不同大小的目標(biāo)上的檢測能力,本文根據(jù)目標(biāo)大小將實(shí)例劃分為三個比例類別:小目標(biāo)(像素面積≤32)、中等目標(biāo)(32<像素面積≤96)和大目標(biāo)(像素面積>96)。從表3 中觀察可得:在YOLOv5s 的骨干網(wǎng)絡(luò)部分融合MCA 模塊后,小目標(biāo)的檢測準(zhǔn)確率明顯提升,能有效提高網(wǎng)絡(luò)對小目標(biāo)物體的檢測效果,mAP 提高了3.4 個百分點(diǎn);而在YOLOv5s 的頸部和預(yù)測模塊中融合MCA 模塊后,算法的性能不僅沒有得到提升,反之mAP 下降了1.1 個百分點(diǎn)和0.3 個百分點(diǎn)。本文認(rèn)為MCA 模塊融合至算法中不同位置之所以產(chǎn)生不同實(shí)驗(yàn)效果,是由于骨干網(wǎng)絡(luò)中雖語義信息不豐富,但仍隱含著目標(biāo)在中低層中易忽視的紋理信息以及輪廓信息,在骨干網(wǎng)絡(luò)中融合MCA 模塊能夠更好地將特征圖中小目標(biāo)的空間特征和通道特征進(jìn)行融合,從而增強(qiáng)特征信息;而在網(wǎng)絡(luò)更深層的頸部以及預(yù)測模塊,因其特征圖有更豐富的語義特征、更小尺寸的特征圖以及龐大的感受野,MCA 模塊難以區(qū)分重要的空間特征和通道特征。
表3 MCA模塊融合結(jié)果對比 單位:%Tab 3 Comparison of MCA module fusion results unit:%
改進(jìn)后的網(wǎng)絡(luò)使用卷積網(wǎng)絡(luò)提取特征,而不是使用全連接層。因此,在模型訓(xùn)練過程中,不需要固定輸入圖像的大小。
由于改進(jìn)后的算法中包含5 個殘差結(jié)構(gòu),所以在訓(xùn)練過程中輸入圖像的尺寸應(yīng)該是32 的倍數(shù)以及圖像的最小尺寸應(yīng)該是輸入圖像的1/32。將自制安全帽數(shù)據(jù)集中圖片分為多種尺寸,比如320、352、384 和608 等。在算法迭代訓(xùn)練過程中,每隔10 次隨機(jī)更換一種圖像輸入尺寸,使算法能夠適應(yīng)不同大小圖像的變化。多尺度訓(xùn)練過程示意圖如圖5所示。
圖5 多尺度檢測過程示意圖Fig.5 Schematic diagram of multi-scale detection process
采用多尺度策略訓(xùn)練的算法可以接受任意尺寸大小的圖像作為輸入,有助于增強(qiáng)算法泛化能力。
在深度學(xué)習(xí)檢測領(lǐng)域,實(shí)驗(yàn)所需的數(shù)據(jù)集一直都是必不可缺的基礎(chǔ)條件。已開源的安全帽數(shù)據(jù)集只有SHWD(Safety Helmet Wearing-Dataset),該數(shù)據(jù)集中未佩戴安全帽這一類別標(biāo)簽數(shù)據(jù)主要來源于SCUT-HEAD 數(shù)據(jù)集,其中SCUT-HEAD 數(shù)據(jù)集是在教室場景下學(xué)生上課的監(jiān)控圖像或者拍攝的照片,所以該數(shù)據(jù)集不是一個標(biāo)準(zhǔn)的工地場景數(shù)據(jù)集,不符合實(shí)際生產(chǎn)環(huán)境中實(shí)時監(jiān)測需求。為了解決這一問題,本文自制了一個施工場景下安全帽佩戴檢測數(shù)據(jù)集,構(gòu)建該數(shù)據(jù)集的主要過程有:數(shù)據(jù)收集、數(shù)據(jù)篩選和數(shù)據(jù)處理。
3.1.1 數(shù)據(jù)收集
本文數(shù)據(jù)集所需的圖像主要來源于公開數(shù)據(jù)集清洗、施工現(xiàn)場監(jiān)控視頻分幀、施工現(xiàn)場自行采集以及互聯(lián)網(wǎng)爬取等。所搜集到的數(shù)據(jù)包括不同環(huán)境、不同分辨率、不同施工場地的工人佩戴安全帽和未佩戴安全帽兩種類型的圖片,并在該數(shù)據(jù)集中添加多組干擾圖片,例如佩戴棒球帽的施工人員、將安全帽放置在桌上或手持的施工人員、佩戴竹編帽的施工人員等,增加數(shù)據(jù)集的多樣性,以此來增強(qiáng)算法的泛化能力。本次采集到的數(shù)據(jù)集樣本如圖6 所示。
圖6 安全帽樣本圖像示例Fig.6 Sample images of safety helmet
3.1.2 數(shù)據(jù)篩選與處理
從施工現(xiàn)場監(jiān)控視頻中分幀或互聯(lián)網(wǎng)上爬取所采集的圖片中,很多圖片沒有施工人員這一研究對象,可以視為背景圖片,這對本文研究無實(shí)際意義,因此需要刪除這些已確認(rèn)的背景圖片數(shù)據(jù)。本文對采集的圖片數(shù)據(jù)進(jìn)行初步篩選,從中選出符合要求的圖片作為標(biāo)注數(shù)據(jù)集。
對數(shù)據(jù)進(jìn)行預(yù)處理,將符合要求的圖片轉(zhuǎn)化為.jpg 格式,并使用標(biāo)注工具labelImg 對每張圖片進(jìn)行手動標(biāo)注,將圖像中施工人員按照佩戴安全帽(hat)以及未佩戴安全帽(person)這兩個類別進(jìn)行標(biāo)注,如圖7,經(jīng)過處理,形成相應(yīng)的xml 標(biāo)簽文件,該文件包含目標(biāo)在框架內(nèi)的四個坐標(biāo)以及給定的類別(PASCAL VOC 格式)。
圖7 安全帽佩戴情況標(biāo)注Fig.7 Marking of safety helmet wearing
本文最終得到的數(shù)據(jù)集共有7 076 張圖片,其中該數(shù)據(jù)集中佩戴安全帽與不佩戴安全帽的目標(biāo)具體信息如表4 所示。該數(shù)據(jù)集中包含多種施工場景,能夠較為完備地反映真實(shí)施工場景的情況。將所得到的數(shù)據(jù)集按照9∶1 劃分為訓(xùn)練集和測試集,最后7 076 張圖片數(shù)據(jù)集中訓(xùn)練集圖片數(shù)量為6 370 張,測試集圖片數(shù)量為706 張。
表4 數(shù)據(jù)集類別分配Tab 4 Dataset category distribution
3.2.1 實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)需要較好的硬件配置以及GPU(Graphics Processing Unit)加速運(yùn)算。其中模型的搭建、訓(xùn)練和結(jié)果的測試均在Pytorch 框架下完成,使用CUDA(Compute Unified Device Architecture)并行計(jì)算架構(gòu),同時將CU-DNN(CUda Deep Neural Network library)加速庫集成到Pytorch 框架下提高計(jì)算機(jī)計(jì)算能力,實(shí)驗(yàn)所需運(yùn)行環(huán)境具體見表5。
表5 實(shí)驗(yàn)運(yùn)行環(huán)境Tab 5 Experimental operating environment
3.2.2 網(wǎng)絡(luò)訓(xùn)練
在YOLOv5 模型訓(xùn)練中,模型結(jié)構(gòu)的損失函數(shù)Loss 值越小越好,期望值為0。為了實(shí)現(xiàn)模型的最佳性能,在訓(xùn)練過程中,將迭代次數(shù)設(shè)置為1 700,權(quán)重衰減系數(shù)設(shè)置為0.000 1,學(xué)習(xí)率動量設(shè)置為0.937,以防止模型過擬合。最大訓(xùn)練批次設(shè)置為32,在0 到1 000 次時損失函數(shù)值急劇下降;在1 000 到1 200 次時損失數(shù)緩慢下降;在經(jīng)過1 200 次迭代后,損失值在0.02 附近趨于穩(wěn)定,模型達(dá)到最優(yōu)狀態(tài)。訓(xùn)練Loss 變化如圖8 所示。
圖8 改進(jìn)YOLOv5的收斂情況Fig.8 Convergence of improved YOLOv5
在目標(biāo)檢測領(lǐng)域,精度(Precision,P)、召回率(Recall,R)和均值平均精度(mAP)是評估訓(xùn)練算法性能和可靠性的常用指標(biāo),本文同樣使用上述評價指標(biāo)對安全帽佩戴檢測算法性能進(jìn)行評估。
將上述評價指標(biāo)應(yīng)用于安全帽檢測算法的性能測試,可得到兩類結(jié)果圖像,包括佩戴安全帽的施工作業(yè)人員和未佩戴安全帽的施工作業(yè)人員。其中,真正例(True Positive,TP)、假正例(False Positive,F(xiàn)P)、真反例(True Negative,TN)和假反例(False Negative,F(xiàn)N)是用來描述精度的關(guān)鍵指標(biāo)。具體來說,TP
是指在施工現(xiàn)場監(jiān)控范圍內(nèi)未佩戴安全帽的人數(shù),同時檢測結(jié)果正確;FP
表示實(shí)際上佩戴安全帽但被檢測為未佩戴安全帽的人數(shù);TN
表示算法檢測正確;FN
表示未佩戴安全帽但被錯誤檢測到的人數(shù)。計(jì)算公式如下:recall
表示真正例(TP
)與真正例和假反例之和(TP
+FN
)的比值,真正例和假反例之和為實(shí)際安全帽數(shù)量;precision
表示真正例(TP
)與真正例和假真例之和(TP
+FP
)的比值,真正例和假真例之和為安全帽檢出的數(shù)量。平均精度(Average Precision,AP)是指在所有召回率的可能取值情況下得到的所有精度的平均值。其中,AP50 為IoU 閾值取0.5 時對應(yīng)的AP 值。均值平均精度(mAP)為AP值在所有類別下取平均,計(jì)算公式如下:
為了驗(yàn)證本文所提算法(MCA-YOLOv5)具有更好的效果,在相同的配置條件下使用相同數(shù)量的測試集,并使用目前比較流行的幾種目標(biāo)檢測網(wǎng)絡(luò)進(jìn)行對比實(shí)驗(yàn):Faster R-CNN、SSD 以及YOLOv3 等。其中,SSD 和YOLOv3 為一階段檢測算法,F(xiàn)aster R-CNN 為兩階段檢測算法。實(shí)驗(yàn)結(jié)果以AP50 和mAP 這兩項(xiàng)評價指標(biāo)來分別進(jìn)行評價,具體實(shí)驗(yàn)結(jié)果見表6。
表6 多種檢測算法結(jié)果對比Tab 6 Comparison of results of multiple detection algorithms
由表6 可知,本文算法能夠有效提高對安全帽以及未佩戴安全帽的施工人員的檢測精度。本文算法對佩戴安全帽的施工人員檢測平均精度為96.70%;對未佩戴安全帽的施工人員檢測平均精度為95.20%;mAP 達(dá)到96.00%,遠(yuǎn)高于Faster R-CNN 和SSD 的。本文算法與YOLOv3、增加SPP 結(jié)構(gòu)的YOLOv3 以及原始YOLOv5 相比,在AP50 和mAP 上都有一定提升。由此說明,本文算法在安全帽佩戴檢測檢測準(zhǔn)確性方面表現(xiàn)優(yōu)秀,能夠滿足現(xiàn)在復(fù)雜作業(yè)環(huán)境下安全帽檢測的準(zhǔn)確率要求。
此外,為了更加直觀地看出不同算法之間的檢測差距,本文另外采集了187 張施工作業(yè)現(xiàn)場圖片作為驗(yàn)證集。在這個測試集上分別用YOLOv5 和本文改進(jìn)后的YOLOv5 算法進(jìn)行檢測,部分測試結(jié)果如圖9 所示,其中圖中佩戴安全帽的施工作業(yè)人員上方出現(xiàn)“hat”字樣,未佩戴安全帽的施工作業(yè)人員上方出現(xiàn)“person”字樣。圖9(a)為強(qiáng)光照施工場景下的檢測,可以看出YOLOv5 原算法將石膏圓餅錯認(rèn)為一個佩戴安全帽的施工人員,而改進(jìn)算法完全檢測正確;圖9(b)為鋼筋遮擋施工場景下的小目標(biāo)檢測,經(jīng)觀察,原算法漏檢了一個擋在鋼筋后面的佩戴安全帽的施工人員;圖9(c)為不同尺寸目標(biāo)的檢測,近景的目標(biāo)尺寸較大,遠(yuǎn)景的目標(biāo)尺寸較小,改進(jìn)算法全部檢測出來了,而原算法漏檢了遠(yuǎn)景下的小目標(biāo);圖9(d)為遠(yuǎn)距離施工場景下的小目標(biāo)檢測,對比可知,YOLOv5 原算法對遠(yuǎn)距離佩戴安全帽的施工作業(yè)人員以及未佩戴安全帽的施工作業(yè)人員都有出現(xiàn)漏檢和錯檢情況,而改進(jìn)算法檢測效果較好;圖9(e)為弱光照施工場景下的小目標(biāo)檢測,在光照不充足的情況下,因圖像容易因像素模糊、圖像中的目標(biāo)較小等多種情況,YOLOv5原算法對這種情況漏檢較多,但改進(jìn)算法表現(xiàn)較好。由上述多種施工場景下的檢測比較可知,改進(jìn)后的YOLOv5 算法在復(fù)雜作業(yè)環(huán)境下對安全帽檢測效果較好。
圖9 不同施工場景下檢測結(jié)果對比Fig.9 Comparison of detection results in different construction scenarios
K
-Means++算法對自制施工場景數(shù)據(jù)集中目標(biāo)進(jìn)行錨框聚類;其次,在特征提取網(wǎng)絡(luò)中融合多光譜通道注意力模塊,可以獲取更多細(xì)節(jié)信息并采用多尺度訓(xùn)練策略減少圖像尺寸變化帶來的影響。實(shí)驗(yàn)結(jié)果表明,本文算法能夠獲得較好的檢測精度,基本滿足現(xiàn)在復(fù)雜施工場景下安全帽佩戴檢測的均值精度需求。未來將繼續(xù)探索如何減少算法參數(shù)量以及提升算法檢測速率。