劉增輝,和孫文,張社榮,王 超,王梟華
(1.天津大學(xué)水利工程仿真與安全國家重點(diǎn)實(shí)驗(yàn)室,天津 300350;2.中國電力建設(shè)集團(tuán)(股份)有限公司,北京 100048)
根據(jù)水利部2018年發(fā)布的水電工程施工危險(xiǎn)源清單,施工作業(yè)類危險(xiǎn)源中明確指出高處作業(yè)、有限空間和檢查作業(yè)時(shí)未正確使用防護(hù)用品可能導(dǎo)致的物體打擊和人身傷害后果,而安全帽的佩戴和及時(shí)的險(xiǎn)情(如火情)報(bào)警可以有效防止和降低外來傷害,從而更好地保障施工安全,此外,伴隨新冠疫情的常態(tài)化,需要尤其重視施工區(qū)人員的口罩佩戴。然而,通過對多處水電施工現(xiàn)場進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn),水電施工作業(yè)人員的安全帽佩戴意識較為薄弱,現(xiàn)場管理及險(xiǎn)情處理滯后,防疫口罩佩戴參差不齊,這無疑增加了施工場區(qū)的作業(yè)風(fēng)險(xiǎn)。近年來,國內(nèi)外眾多專家學(xué)者對施工區(qū)域的安全佩戴和險(xiǎn)情識別技術(shù)進(jìn)行了深入研究。馮國臣等[1]提出判別人體像素面積的模型識別方法,并基于安全帽位置和顏色特征統(tǒng)計(jì)來完成佩戴檢測;胡超超等[2]將改進(jìn)型YOLOv2與卡爾曼濾波結(jié)合來檢測追蹤多目標(biāo);何超[3]提出了在YOLOv3主網(wǎng)絡(luò)三層卷積之后增加特征尺寸更大的卷積層,一定程度上提升了小目標(biāo)識別效果;徐守坤[4]等提出基于改進(jìn)的Faster RCNN和多部件結(jié)合的安全帽佩戴檢測方法用于提高安全帽檢測準(zhǔn)確率,但檢測速率較低;張勇等[5]提出采用DenseNet方法處理低分辨率特征層,在一定程度上提高了YOLOv3時(shí)序約束效果。但是現(xiàn)有檢測識別方法仍然存在檢測效率低等問題,無法較好地滿足實(shí)際工程應(yīng)用的需要。為此,提出多目標(biāo)檢測識別算法YOLOv3-SG,以期對目標(biāo)檢測識別在復(fù)雜水電施工環(huán)境中的應(yīng)用效率提升起到指導(dǎo)作用,滿足水電工程施工場區(qū)智能識別場景下的人員安全佩戴管控目標(biāo)。
深度學(xué)習(xí)網(wǎng)絡(luò)相對于傳統(tǒng)的圖像特征提取方法有明顯優(yōu)勢。當(dāng)前目標(biāo)檢測算法主要有R-CNN、Fast R-CNN、SPP-Net、YOLO、SSD、Retina-Net等[6],并按照其產(chǎn)生候選區(qū)域和分類回歸是否融合分為two-stage和one-stage兩類,上述前3種算法就屬于two-stage,其中R-CNN作為開山之作,是Girshick等[7]在2014年CVPR會議上提出的,后續(xù)提出的算法多是在其基礎(chǔ)上進(jìn)行優(yōu)化改進(jìn)的。one-stage的代表為2016年的YOLO算法,Redmon等[8]將其判識統(tǒng)一,極大地降低了因重疊導(dǎo)致的重復(fù)運(yùn)算,提高了檢測效率。
本文參照的YOLOv3目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu)是基于YOLOv2進(jìn)行改進(jìn)的,其特點(diǎn)是在檢測精度提高的同時(shí),檢測速度相對前版本并無降低。不同于YOLOv2的Darknet-19網(wǎng)絡(luò)結(jié)構(gòu)[9]和softmax loss邏輯回歸損失函數(shù),YOLOv3采用darknet-53網(wǎng)絡(luò)結(jié)構(gòu)[10],在避免信息丟失方面做了2方面的調(diào)整:①融合ResNet跳躍連接層(同時(shí)避免梯度消失);②去除Pooling層,使用Conv做下采樣,進(jìn)一步減少特征損失。此外,相對于YOLOv2的5個(gè)錨框anchor,YOLOv3新增了4個(gè)anchor,對應(yīng)在每層為3個(gè)anchor,使得預(yù)測框與錨框的交并比IOU得到了有效提高。
darknet-53一共是53層卷積(全連接層也是由卷積得到的),Convolutional不單單是一個(gè)卷積層,它是普通的卷積、BN歸一化處理和LeakyReLU激活函數(shù)三者按照固定順序組和而成的。每個(gè)方框?qū)?yīng)一個(gè)Residual殘差結(jié)構(gòu),具體殘差結(jié)構(gòu)構(gòu)成如圖1所示,它的主分支組成為1×1和3×3的卷積層,最后將接近主分支上的輸出直接從輸入上引過來,和主分支上的輸出相加,得到最終的輸出,并非在兩個(gè)卷積層之后又接了一個(gè)殘差結(jié)構(gòu),而是整個(gè)框?qū)?yīng)的為一個(gè)殘差結(jié)構(gòu)。在模型結(jié)構(gòu)部分,是在3個(gè)特征層上進(jìn)行預(yù)測的,使用k-means聚類算法得到9組尺度進(jìn)行均分,每個(gè)尺度在coco數(shù)據(jù)集上分別預(yù)測4個(gè)偏移參數(shù)+1個(gè)置信度+80個(gè)類別參數(shù)。同時(shí)YOLOv3采用特征金字塔網(wǎng)絡(luò),3個(gè)特征層的預(yù)測輸出并不是獨(dú)立的,第二層和第三層都通過前一層進(jìn)行上采樣處理,然后和本層網(wǎng)絡(luò)結(jié)構(gòu)之后的輸出在深度上進(jìn)行拼接融合,再通過Convolutional Set 處理后得到本層的最終輸出,最后三層輸出分別對應(yīng)大中小目標(biāo)的檢測。
本文提出的YOLOv3-SG水電施工區(qū)人員安全佩戴識別模型主要針對原有算法的主干網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)、錨框聚類進(jìn)行改進(jìn)優(yōu)化,從而使得新網(wǎng)絡(luò)模型更加貼合水電工程施工區(qū)人員佩戴行為和險(xiǎn)情數(shù)據(jù)集,提升施工現(xiàn)場的安全檢測識別精度和速度,更快更高效地鎖定施工風(fēng)險(xiǎn)源以提升管控效率和安全水平,減少事故發(fā)生。
網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化改進(jìn)主要是通過在每層的Convolutional Set和Up Sampling之間增加Space pyramid空間金字塔網(wǎng)絡(luò)結(jié)構(gòu)(參照于SPP-Net)以及加深層級。其中,SPP-Net中使用的Space pyramid結(jié)構(gòu)一方面可實(shí)現(xiàn)特征規(guī)范化和降低裁縮損失,另一方面可通過多角度特征提取來提升模型精度??紤]到Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)中存在局部特征在提取時(shí)未得到充分利用的弊端,本研究參照上述邏輯融入Space pyramid空間金字塔網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行YOLOv3的改進(jìn),同時(shí)在池化層上采用5×5,9×9,13×13共3種不同尺寸最大值采樣處理特征信息,設(shè)置池化步長為1,最后在路由層進(jìn)行保存所有輸入特征的融合(區(qū)別于殘差層的疊加合并),具體流程如圖2所示。
圖1 Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)和Convolutional、Residual結(jié)構(gòu)示意
圖2 Space pyramid結(jié)構(gòu)配置
根據(jù)實(shí)測水電施工現(xiàn)場圖像中目標(biāo)尺寸與整圖尺寸的對比發(fā)現(xiàn),實(shí)際檢測過程中的目標(biāo)分布占比大多數(shù)不超過0.2(小目標(biāo)),本文研究對象采用的是416×416原始輸入尺寸,考慮到小目標(biāo)的尺寸小,分辨率低,需要經(jīng)過多層卷積后才能有效進(jìn)行特征提取,而單純地進(jìn)行更深層尺度的特征提取容易造成特征的丟失,因此,可以采用將深層次特征與殘差結(jié)構(gòu)輸出后的特征圖進(jìn)行深度上的拼接,從而達(dá)到增強(qiáng)小目標(biāo)特征提取的目的,這也符合利用多尺度特征融合來提高小目標(biāo)檢測精度的邏輯,因此本研究在原有特征融合的基礎(chǔ)上依照上述邏輯采取向上擴(kuò)充融合的方法,具體步驟為:在第三層52×52之后,首先,通過1個(gè)1×1的卷積層和SPP結(jié)構(gòu)特征處理后進(jìn)行上采樣放大,高寬擴(kuò)大兩倍后,將之與2個(gè)殘差結(jié)構(gòu)之后輸出的特征圖進(jìn)行深度上的拼接,最后循序前述特征層,得到預(yù)測特征層4。即調(diào)整為Space pyramid結(jié)構(gòu)(負(fù)責(zé)每層的局部多池化尺度特征提取)和第四預(yù)測特征層(負(fù)責(zé)抽取更多小目標(biāo)特征),兩者的融合構(gòu)成YOLOv3-S網(wǎng)絡(luò)結(jié)構(gòu)。經(jīng)過在本文的水電施工安全佩戴和火災(zāi)險(xiǎn)情數(shù)據(jù)集(VOC2012)測驗(yàn)對比,檢測速度FPS從46.5變化到41.2,檢測精度mAP提升了近7個(gè)百分點(diǎn)。具體結(jié)構(gòu)形式如圖3所示。
YOLOv3損失函數(shù)是在YOLOv2的基礎(chǔ)上將分類損失調(diào)換為二分交叉熵,通過剔除softmax改為logistic,在遮擋重疊情況下的檢測效果得到了提升。其損失分為置信度誤差、分類誤差和定位誤差,其中定位誤差又可分為中心坐標(biāo)和高寬坐標(biāo)誤差。具體損失函數(shù)公式如下
Loss=lxy+lwh+lconf+lcls
(1)
(2)
(3)
圖3 改進(jìn)后整體結(jié)構(gòu)
通過對以上YOLOv3損失函數(shù)置信度損失的理論分析可以發(fā)現(xiàn),交并比IoU是目標(biāo)檢測中的關(guān)鍵評判參數(shù),即某候選框(anchor)與某目標(biāo)對象的IoU最大時(shí)的預(yù)測框負(fù)責(zé)該對象。但是通過分析實(shí)際水電工程人員佩戴行為危險(xiǎn)源識別模型訓(xùn)練和結(jié)果判定可以發(fā)現(xiàn),存在IoU為0時(shí)的無梯度回傳以及IoU相同但是重合度不同的問題,這直接影響了目標(biāo)的檢測精度。
因此,本研究根據(jù)前人經(jīng)驗(yàn)提出基于GIOU[11]改進(jìn)的YOLOv3損失函數(shù)用以提升anchor box與ground truth box的擬合效果,同時(shí)保留IoU的尺度不變性特征。IoU和GIoU的計(jì)算公式如下
(4)
(5)
LGIoU=1-GIoU
(6)
圖4 GIoU代碼實(shí)現(xiàn)
本文在進(jìn)行損失函數(shù)改進(jìn)后,引入k-means++聚類優(yōu)化算法,主要優(yōu)化為初始隨機(jī)點(diǎn)的生成[12]。針對初始聚類中心的隨機(jī)選擇缺陷問題,通過計(jì)算所有樣本與已有聚類中心最短距離D(x),按照D(x)大小進(jìn)行排列,使用輪盤法選出下一個(gè)聚類中心(值越大的被選中的概率越大),直至得到K個(gè)聚類中心為止。具體的實(shí)現(xiàn)步驟如圖5所示。
圖5 優(yōu)化聚類中心實(shí)現(xiàn)流程
(7)
式中,x為數(shù)據(jù)集X中的一個(gè)樣本點(diǎn);D(x)2為樣本點(diǎn)x到聚類中心的最短距離的平方。
輪盤法即獲得距離最遠(yuǎn)的樣本點(diǎn)作為聚類中心點(diǎn),其中enumerate()用于將數(shù)據(jù)對象合成索引,并得出數(shù)據(jù)及下標(biāo)。在經(jīng)過上述步驟的循環(huán)后,得到相對于k-means算法更為合理的K個(gè)聚類中心。本研究在三層9個(gè)錨框的基礎(chǔ)上增加了用于提升小目標(biāo)的第四層,因此選取K值為12進(jìn)行聚類,在經(jīng)過迭代后將得到的聚類數(shù)據(jù)作為網(wǎng)絡(luò)錨框參數(shù)寫入配置。
本文模型訓(xùn)練和測驗(yàn)軟硬件配置如表1所示。
表1 軟硬件配置
本研究數(shù)據(jù)集為7 500張安全佩戴和3 000張火情圖像,采集以水電施工現(xiàn)場拍照和視頻截幀的方式,攝像頭布設(shè)在施工場區(qū)沿線,為了避免完全遮擋,采取對立面交叉的方式布設(shè)。采集到的圖像數(shù)據(jù)采用VOC2012格式處理,標(biāo)注工具采用Labelimg,標(biāo)注后生成對應(yīng)的xml腳本(見圖6),分為:person、head、helmet、mask、nomask、fire共6個(gè)類別。訓(xùn)練和測試樣本比例為6∶1,編寫程序生成對應(yīng)的標(biāo)簽txt并建立標(biāo)簽文件.names,此外,在訓(xùn)練前將train數(shù)據(jù)和val轉(zhuǎn)成TF格式,便可利用其中的數(shù)據(jù)加載和轉(zhuǎn)化等API進(jìn)行高效地訓(xùn)練和評估模型。
圖6 數(shù)據(jù)集制作及部分訓(xùn)練程序
訓(xùn)練輸入圖像尺寸為416×416,batch_size為32,epoch設(shè)置為200(為防止過擬合使訓(xùn)練模型效果變差,在損失值收斂后自動停止訓(xùn)練),權(quán)重衰減值為0.000 5,動量配置為0.9[13],學(xué)習(xí)率的變化隨著訓(xùn)練過程從0.001至0.000 1并趨于穩(wěn)定。訓(xùn)練結(jié)束時(shí)的損失值收斂到0.3,相對于原YOLOv3的2.2有了較大的提升,訓(xùn)練過程平均損失對比如圖7所示。試驗(yàn)檢測對比如表2所示。按照環(huán)境干擾、多人遮擋、密集小目標(biāo)的分類隨機(jī)選取的圖片進(jìn)行的YOLOv3和YOLOv3-SG試驗(yàn),效果圖舉例展示如圖8所示。
圖7 改進(jìn)前后訓(xùn)練過程平均損失對比
表2 YOLOv3-SG網(wǎng)絡(luò)檢測對比
通過對比分析,圖8a中由于背景顏色干擾,改進(jìn)前未能識別到人員佩戴黃色安全帽,圖8d中改進(jìn)后除了識別所有漏檢目標(biāo)外,識別準(zhǔn)確率也有了較大提升;圖8b到圖8e在多人遮擋上,圖8c到圖8f在密集人員佩戴安全帽和人員本身識別上,YOLOv3存在多處漏檢,而改進(jìn)YOLOv3-SG全部正確識別;圖8g和圖8h為改進(jìn)后的施工區(qū)域火情識別,在模糊背景和小目標(biāo)上都保證了精準(zhǔn)度和檢測效率,對各種環(huán)境適應(yīng)性較好;圖8i和圖8j為對人員口罩佩戴行為的檢測識別展示,其在單目標(biāo)和多目標(biāo)情況下都較好地完成了檢測識別。
本文通過對網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)、聚類方法進(jìn)行改進(jìn)優(yōu)化提出了YOLOv3-SG水電施工區(qū)多目標(biāo)檢測識別算法,通過引入Space pyramid空間金字塔網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)特征規(guī)范化及裁縮損失的降低;通過增加特征層提升小目標(biāo)識別精度,解決部分遮擋時(shí)小目標(biāo)漏檢問題;同時(shí)使用GIOU替代IOU交并比方法用以提升anchor box與ground truth box的擬合效果,并保留IoU的尺度不變性特征,較好地解決了水電工程復(fù)雜施工環(huán)境下施工工人、安全帽佩戴、防疫口罩佩戴和火情的識別速度與精度的矛盾問題,其泛化抗干擾能力強(qiáng),具備較好的實(shí)用價(jià)值。
試驗(yàn)表明,本文提出的融合空間金字塔和小目標(biāo)特征層的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化方案,提升了在水電施工場區(qū)部分遮擋、小目標(biāo)和環(huán)境影響下的檢測識別效率。