田 楓,賈昊鵬,劉 芳
(東北石油大學(xué) 計算機(jī)與信息技術(shù)學(xué)院,大慶 163318)
油田作業(yè)現(xiàn)場中工作人員的著裝不規(guī)范問題經(jīng)常出現(xiàn),例如油田工人工作時未佩戴安全帽、未穿著勞保服等,從而導(dǎo)致一些不安全的事件時而發(fā)生,因此,規(guī)范化安全著裝檢測在推進(jìn)企業(yè)智能化安全管理、保障人員生命財產(chǎn)安全等方面起著至關(guān)重要的作用[1].對于規(guī)范化安全著裝檢測任務(wù),由于油田作業(yè)現(xiàn)場的監(jiān)控攝像頭覆蓋范圍廣、拍攝距離遠(yuǎn),畫面中人員目標(biāo)的尺寸較小,導(dǎo)致著裝部件目標(biāo)所占的像素數(shù)較少、攜帶的特征信息很弱,提高了檢測難度.因此,提高小目標(biāo)檢測精度是規(guī)范化安全著裝檢測任務(wù)的關(guān)鍵.本文針對油田作業(yè)現(xiàn)場規(guī)范化安全著裝小目標(biāo)檢測問題,基于YOLOv5 設(shè)計了一種YOLO-people和YOLOdress 級聯(lián)的小目標(biāo)檢測網(wǎng)絡(luò),先定位行人目標(biāo)進(jìn)行尺度變換后再對行人進(jìn)行安全著裝檢測.同時結(jié)合多尺度特征融合的思想,將YOLOv5 中原來的3 尺度檢測擴(kuò)展為4 尺度檢測,充分融合深淺層特征信息,進(jìn)一步提高小目標(biāo)檢測精度,降低漏檢率.
當(dāng)前目標(biāo)檢測算法主要分為兩階段方法和單階段方法.經(jīng)典的兩階段方法[2-4]首先利用區(qū)域候選網(wǎng)絡(luò)來提取候選目標(biāo)信息,再利用檢測網(wǎng)絡(luò)對候選目標(biāo)集合進(jìn)行位置和類別的判定,具有很高的檢測精度,但由于兩階段方法推理速度慢、處理效率低,很難達(dá)到實時性檢測的要求.單階段檢測算法如SSD[5]和YOLO[6,7]系列,這些算法不需要對特征區(qū)域進(jìn)行提取,只需在特征圖上進(jìn)行邊界框的回歸,僅僅一步即可預(yù)測最終結(jié)果,算法推理速度能夠達(dá)到實時.這些方法在通用數(shù)據(jù)集上已經(jīng)取得了較好的檢測效果,但對于某些特定場景比如油田作業(yè)現(xiàn)場,由于監(jiān)控探頭拍攝范圍廣、目標(biāo)距離遠(yuǎn),導(dǎo)致人員身上的著裝部件在監(jiān)控畫面下所占像素較少,攜帶的特征信息十分有限,缺少明顯的紋理、形狀等特征,使得通用的目標(biāo)檢測算法在規(guī)范化安全著裝檢測任務(wù)上表現(xiàn)不佳,在進(jìn)行小目標(biāo)檢測具有一定的局限性.因此,主流的目標(biāo)檢測方法在處理規(guī)范化著裝檢測任務(wù)尤其是針對小目標(biāo)的檢測,仍有較大的提升空間.
目前基于深度學(xué)習(xí)的目標(biāo)檢測算法普遍針對具有一定比例或尺寸的中大型目標(biāo),難以適用復(fù)雜背景下的小目標(biāo),小目標(biāo)檢測的難點總結(jié)成以下3 個方面.
(1)深度神經(jīng)網(wǎng)絡(luò)特征提取和小目標(biāo)尺寸之間的問題.對于如油田作業(yè)現(xiàn)場等特定場景下的監(jiān)控探頭,由于拍攝范圍廣、目標(biāo)距離遠(yuǎn),導(dǎo)致待檢測目標(biāo)尺寸較小,而且多數(shù)目標(biāo)檢測網(wǎng)絡(luò)由于池化層的存在,在特征提取時能夠提取到的特征信息逐漸減少,導(dǎo)致深層特征對小目標(biāo)的表達(dá)能力較弱,檢測效果欠佳.
(2)小目標(biāo)檢測公共數(shù)據(jù)集較少且目標(biāo)尺寸分布不均勻.現(xiàn)有的目標(biāo)檢測算法大多基于Pascal VOC 或COCO 數(shù)據(jù)集進(jìn)行小目標(biāo)檢測研究,數(shù)據(jù)集中小目標(biāo)的分布十分不均勻且占比不多,導(dǎo)致在訓(xùn)練過程中難以充分學(xué)習(xí)小目標(biāo)物體的特征,對小目標(biāo)的泛化能力弱、檢測精度較低.
(3)相關(guān)檢測算法缺乏通用性.目前對小目標(biāo)檢測的研究大多應(yīng)用于特定場景下,如疫情期間對人臉口罩的識別、無人機(jī)視角檢測地理空間小目標(biāo),道路交通方面識別交通標(biāo)志等,由于檢測任務(wù)的多樣性和復(fù)雜性使算法在實際應(yīng)用中面臨很大挑戰(zhàn),難以遷移.
目前針對小目標(biāo)檢測,基于單階段的檢測算法[8-10]大多通過多尺度特征融合的方式充分利用包含較多細(xì)節(jié)信息的高分辨率底層特征,卷積神經(jīng)網(wǎng)絡(luò)能夠自動學(xué)習(xí)不同層次結(jié)構(gòu)的圖像信息特征,底層特征保留了很多局部的圖像細(xì)節(jié)信息如輪廓、邊緣和紋理等,有助于更好地進(jìn)行目標(biāo)定位.深層特征圖感知細(xì)節(jié)信息的能力較差,但包含了更多深層次的語義信息,有助于更好地進(jìn)行目標(biāo)分類.多尺度特征融合采用自頂向下的橫向連接的方式融合底層特征與深層特征,融合后的特征具有更強(qiáng)的描述性,有利于小目標(biāo)的檢測.Lin等人[11]提出特征金字塔網(wǎng)絡(luò)(FPN),結(jié)構(gòu)如圖1所示.深層特征圖經(jīng)過上采樣后與較低層特征圖做元素級別的相加,上采樣時采用雙線性插值法增強(qiáng)了網(wǎng)絡(luò)提取多尺度特征的能力.FPN 結(jié)構(gòu)作為基礎(chǔ)模塊,在各類目標(biāo)檢測算法中被普遍使用并取得了極大成功;Woo 等人[12]改進(jìn)了FPN 上采樣方式,在深層特征圖進(jìn)行上采樣時用反卷積層代替雙線性插值法并獲得了更好的性能;Li 等人[13]將注意力機(jī)制引入FPN 結(jié)構(gòu),使經(jīng)過全局池化后的深層特征對底層特征圖的通道進(jìn)行加權(quán),來引導(dǎo)不用層級信息之間的融合;鄭秋梅等人[14]改進(jìn)YOLOv3 中的FPN 結(jié)構(gòu),將其在3 個尺度檢測增加至4 個尺度,充分融合提取的底層特征信息和深層語義信息,同時改進(jìn)原有的損失函數(shù),最終提升對車輛小目標(biāo)的識別效果.
圖1 FPN 結(jié)構(gòu)
針對規(guī)范化安全著裝小目標(biāo)檢測問題,分析小目標(biāo)檢測的特點,本文提出了Cascade-YOLOv5 網(wǎng)絡(luò)(CYOLOv5),首先搭建YOLO-people與YOLO-dress 級聯(lián)的小目標(biāo)檢測網(wǎng)絡(luò),定位行人目標(biāo),然后裁剪出行人區(qū)域并進(jìn)行尺度變換,最后對行人進(jìn)行安全著裝檢測;同時采用多尺度特征融合方法,更改YOLOv5 中的PANet 結(jié)構(gòu),采用4 個不同尺度的特征層對目標(biāo)進(jìn)行預(yù)測,使底層與深層特征信息充分融合,有效增強(qiáng)小目標(biāo)的檢測效果;并采用旋轉(zhuǎn)、裁剪、縮放等數(shù)據(jù)擴(kuò)充方式處理數(shù)據(jù)集,最終提升小目標(biāo)檢測準(zhǔn)確率,減少漏檢、誤檢.
由于油田作業(yè)現(xiàn)場規(guī)范化著裝檢測任務(wù)對小目標(biāo)的檢測精度要求較高,本文經(jīng)過在速度和精度方面的衡量,最終選擇YOLOv5 作為本文方法的基礎(chǔ)模型,其圖像推理速度最快達(dá)到0.007 s,即每秒可處理140 幀,滿足油田作業(yè)現(xiàn)場視頻監(jiān)控圖像實時檢測需求,同時有非常輕量級的模型大小,適合監(jiān)控視頻下目標(biāo)檢測任務(wù)的模型部署.YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入端、Backbone、Neck和Prediction 四部分組成,YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)
在輸入端包括Mosaic 數(shù)據(jù)增強(qiáng)、圖片自適應(yīng)縮放和自適應(yīng)錨框3 個部分,其中Mosaic 增強(qiáng)方法能夠有效提高小目標(biāo)檢測效果,適用于規(guī)范化安全著裝檢測任務(wù).
在Backbone 特征提取網(wǎng)絡(luò)部分,包括CSP 結(jié)構(gòu)和新增的Focus 結(jié)構(gòu).YOLOv5 中設(shè)計了兩種CSP 結(jié)構(gòu),CSP1_X 結(jié)構(gòu)應(yīng)用于Backbone 主干網(wǎng)絡(luò)中,另一種CSP2_X 結(jié)構(gòu)則應(yīng)用于Neck 中,二者結(jié)構(gòu)具體如圖2中所示.Focus 結(jié)構(gòu)中比較關(guān)鍵的是切片操作,原始640×640×3的圖像,先復(fù)制4 份,然后通過切片操作將這4 個圖片切成了4 個320×320×3的切片,然后使用Concat 從深度上連接這4 個切片,輸出為320×320×12,之后再通過卷積核數(shù)為32的卷積層,生成320×320×32的輸出,最后經(jīng)過Batch_norm和Leaky_ReLU 將結(jié)果輸入到下一個卷積層.提高了特征圖上每個點的感受野,減少原始信息的丟失且減少了計算量加快了檢測速度.
在Neck 結(jié)構(gòu)中采用了PANet 結(jié)構(gòu),由FPN+PAN結(jié)構(gòu)組成.FPN 利用自上而下的方式通過對特征圖進(jìn)行上采樣融合.PAN 結(jié)構(gòu)采用自底向上的方式通過對特征圖進(jìn)行下采樣融合,PANet 結(jié)構(gòu)如圖3所示.
圖3 PANet 結(jié)構(gòu)
在輸出端YOLOv5 采用了GIoU_Loss 來作為損失函數(shù),并采用加權(quán)NMS 來解決遮擋嚴(yán)重導(dǎo)致檢測不準(zhǔn)確的問題.GIoU_Loss 如式(1)所示:
其中,b與bgt表示預(yù)測框與真實框的中心點,ρ(·)表示歐式距離,c表示預(yù)測框與真實框的最小外接矩陣的對角線距離.同時,YOLOv5 通過FPN+PAN 結(jié)構(gòu),最終形成3 個不同尺度的特征層來預(yù)測待檢測目標(biāo),以640×640 分辨率的圖像為輸入,輸出3 個尺度規(guī)格分別為20×20,40×40,80×80的特征圖,這種采用多尺度特征融合的檢測方法在檢測圖像中不同尺寸的目標(biāo)時具有較好的魯棒性,但僅利用3 個尺度的特征層進(jìn)行預(yù)測,并不能充分的利用底層特征信息,從而會導(dǎo)致小目標(biāo)位置信息丟失,不利于油田作業(yè)現(xiàn)場著裝部件小目標(biāo)檢測.
針對YOLOv5的不足之處以及油田作業(yè)現(xiàn)場安全著裝小目標(biāo)檢測任務(wù)的特點,本文提出了改進(jìn)的C-YOLOv5方法,最后通過對比實驗驗證本文方法的有效性.
對實際油田作業(yè)場景進(jìn)行分析,安全著裝檢測任務(wù)有如下幾個特點:一是由于實際油田作業(yè)場景中監(jiān)控攝像頭擺放位置較高,導(dǎo)致拍攝畫面中作業(yè)人員目標(biāo)較小,且監(jiān)控攝像頭長期暴露在空氣中,監(jiān)控畫面會有輕微的模糊現(xiàn)象,都會給規(guī)范化著裝檢測帶來一定的難度;二是由于作業(yè)人員身上的著裝部件相對于作業(yè)人員目標(biāo)尺寸更小,例如安全帽、作業(yè)上衣、作業(yè)褲子、作業(yè)鞋子、手套等部件,這也會給檢測的準(zhǔn)確性帶來影響;三是由于外在環(huán)境的影響,如光照變化、天氣變化、場景遮擋以及監(jiān)控視角的變化等這些因素也會使小目標(biāo)檢測的難度變得非常大.
基于以上這些考慮,由于通用目標(biāo)檢測算法對中大型目標(biāo)有較好的檢測效果.因此對比于直接在監(jiān)控畫面中檢測較小尺寸的著裝部件,先進(jìn)行作業(yè)人員較大目標(biāo)檢測,再進(jìn)行著裝檢測能夠有效地緩解部分小目標(biāo)難以被檢測到的問題.于是本文以YOLOv5為基礎(chǔ)網(wǎng)絡(luò)來搭建安全著裝小目標(biāo)檢測的級聯(lián)網(wǎng)絡(luò)Cascade-YOLOv5 (C-YOLOv5).該網(wǎng)絡(luò)由行人檢測網(wǎng)絡(luò)YOLOpeople和著裝檢測網(wǎng)絡(luò)YOLO-dress 兩部分組成.C-YOLOv5 具體檢測流程如圖4所示.
圖4 C-YOLOv5 檢測流程
以攝像頭源流為輸入,首先利用YOLO-people 網(wǎng)絡(luò)將輸入圖片的像素放縮至640×640,將整幅圖片劃分為S×S個網(wǎng)格,分別在20×20、40×40、80×80和160×160 四種不同大小特征圖上進(jìn)行預(yù)測,在每個特征圖上采用跨鄰域網(wǎng)格匹配策略,從目標(biāo)中心點所在的當(dāng)前網(wǎng)格的上下左右4 個網(wǎng)格中找到離目標(biāo)中心點最近的兩個網(wǎng)格,再加上當(dāng)前網(wǎng)格共3 個網(wǎng)格進(jìn)行匹配,產(chǎn)生更多的anchor 邊界框,每個網(wǎng)格中都會預(yù)測3 個不同尺寸的邊界框,每個邊界框會產(chǎn)生一個5+C維的向量,其中5 表示5 維向量,包含邊框坐標(biāo)(4 個數(shù)值),類別置信度(1 個數(shù)值).C表示預(yù)測類別總數(shù).類別置信度計算方法如式(2)所示:
其中,Pr(object)是指某個網(wǎng)格中是否存在目標(biāo)對對象,如果存在則為1,不存在則為0;是指目標(biāo)預(yù)測框和真實框的交集和并集的比例.當(dāng)網(wǎng)絡(luò)檢測完成時,特征圖將被重新映射至原圖中,同時繪制出預(yù)測框,在原圖中預(yù)測框(DetectionResult)和真實標(biāo)注框(Ground-Truth)之間的面積重合度將以像素為坐標(biāo)值來計算,這一過程如式(3)所示:
如果網(wǎng)格中包含目標(biāo),網(wǎng)格還需要預(yù)測該目標(biāo)屬于第i類的概率Pr(classi|Ob ject),即目標(biāo)分類條件概率.通過計算目標(biāo)類別條件概率Pr(classi|Ob ject)與預(yù)測框置信度 (Con fidence)的乘積可得目標(biāo)位置及類別置信度,能夠綜合評價預(yù)測邊界框的性能.具體計算如式(4)所示:
同時,損失函數(shù)使用CIoU_Loss[15]作為BoundingBox回歸的損失,如式(5)所示:
b與bgt表示預(yù)測框與真實框的中心點,υ用來描述預(yù)測框和真實框長寬比的比例一致性,如式(6)所示:
α是權(quán)重函數(shù),用來平衡比例,如式(7)所示:
CIoU_Loss 函數(shù)增加了相交尺度的衡量方式,有利于解決邊界框有時不重合的問題,同時考慮了邊界框中心點距離的信息與邊界框?qū)捀弑鹊某叨刃畔?使網(wǎng)絡(luò)會有更快更好的收斂效果.
最后,選擇置信度最高的預(yù)測邊界框作為結(jié)果的檢測框,同時去除冗余框,即使用了非極大值抑制(NMS)[16]的方法.然后,將YOLO-people 檢測出的行人目標(biāo)區(qū)域根據(jù)其左上角和右下角坐標(biāo),從原始圖像中裁剪并進(jìn)行放大處理,同時對每一個放大后的行人目標(biāo)區(qū)域做銳化、對比度增強(qiáng)等處理,增強(qiáng)行人目標(biāo)的邊界信息表示,有利于規(guī)范化著裝檢測.然后將每個行人區(qū)域送入YOLO-dress 網(wǎng)絡(luò)進(jìn)行規(guī)范化著裝檢測,檢測流程和YOLO-people 幾乎相同,最后,在原始的輸入圖像中,用不同顏色的框標(biāo)出行人以及行人的著裝部件類別.
對于背景復(fù)雜的圖像,在進(jìn)行目標(biāo)檢測時小目標(biāo)在圖像中只占用很少量的像素點,檢測網(wǎng)絡(luò)從這些像素中能提取出的語義信息非常有限.根據(jù)圖像梯度上升法[17],利用不同層提取出的特征對原始圖像進(jìn)行重構(gòu),得出富含細(xì)節(jié)信息的低層特征比富含語義信息的高層特征可以更好地協(xié)助目標(biāo)檢測的結(jié)論.
本文以YOLOv5L 版本的網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),搭建YOLO-people與YOLO-dress 級聯(lián)的小目標(biāo)檢測網(wǎng)絡(luò),每級網(wǎng)絡(luò)從多尺度融合方式進(jìn)行改進(jìn).原始YOLOv5通過3 個不同尺度的特征圖進(jìn)行目標(biāo)物體的檢測,輸出3 個尺度規(guī)格分別為20×20、40×40、80×80的特征圖,但是僅利用3 個尺度的特征,對淺層信息的利用并不充分,會導(dǎo)致部分小目標(biāo)信息丟失.因此針對CYOLOv5 兩級子網(wǎng)絡(luò),分別將原來的3 尺度檢測擴(kuò)展為4 尺度,構(gòu)成4 個檢測分支結(jié)構(gòu),如圖5所示,輸入尺寸為640×640,每個分支分別從Backbone主干網(wǎng)絡(luò)中提取特征,將從主干網(wǎng)絡(luò)中提取的深層特征圖在FPN 中進(jìn)行上采樣并與網(wǎng)絡(luò)前期相應(yīng)尺寸的底層特征圖由深入淺融合成有效信息,實現(xiàn)了Concat 連接操作.但是在FPN 網(wǎng)絡(luò)中會存在一個問題,淺層特征圖在向深層傳遞信息時,難以與高層特征圖進(jìn)行融合,因此,在FPN 特征金字塔網(wǎng)絡(luò)的基礎(chǔ)上實現(xiàn)PAN 網(wǎng)絡(luò)結(jié)構(gòu),增加了自底向上(bottom-up)路徑,將FPN 網(wǎng)絡(luò)中融合后的特征圖繼續(xù)進(jìn)行自底向上的下采樣融合,實現(xiàn)特征圖的反向融合,這樣會得到更豐富的特征信息.利用PAN 結(jié)構(gòu)的bottom-up 路徑將FPN 網(wǎng)絡(luò)中融合后的特征圖再次自底向上融合并進(jìn)行下采樣操作,實現(xiàn)特征圖的反向融合,最后在4 個尺度的融合特征圖上分別做獨立的檢測.改進(jìn)后的多尺度融合可以從淺特征層中學(xué)習(xí)較強(qiáng)的位置特征,經(jīng)過PAN 結(jié)構(gòu)的bottom-up路徑再次融合使得深層特征可以進(jìn)行更確切的細(xì)粒度檢測.通過融合更多尺度的淺層特征信息,增強(qiáng)路徑聚合網(wǎng)絡(luò)(PANet)的特征表達(dá)能力,提升小目標(biāo)的檢測精度,降低漏檢率.
圖5 改進(jìn)PANet的多尺度特征融合方式
YOLO-people和YOLO-dress的網(wǎng)絡(luò)整體結(jié)構(gòu)基本相同,如圖6所示.差別在于檢測的目標(biāo)和網(wǎng)絡(luò)的輸入分辨率有所不同,YOLO-people 用于檢測行人目標(biāo),網(wǎng)絡(luò)輸入分辨率為640×640,YOLO-dress 用于檢測著裝部件,網(wǎng)絡(luò)輸入分辨率為320×320,圖像信息量的減少加快了檢測速度.最后,由于anchor box的數(shù)量和大小對檢測的精度和速度有直接影響,因此采用K-means聚類方式生成更適合著裝部件檢測的錨點框,通過K-means 聚類選取合適的IOU 分?jǐn)?shù),可以在模型召回率和精確度之間取得平衡.根據(jù)IOU和anchor box的關(guān)系,針對C-YOLOv5 兩級子網(wǎng)絡(luò)分別生成12 個anchor box.
圖6 YOLO-people (YOLO-dress)整體網(wǎng)絡(luò)結(jié)構(gòu)
4.1.1 數(shù)據(jù)集預(yù)處理
由于油田作業(yè)現(xiàn)場要求佩戴安全帽、身穿紅色勞保服,故本文所采用的數(shù)據(jù)集全部源于某油田作業(yè)現(xiàn)場多個監(jiān)控視角下所拍攝的監(jiān)控畫面,對每一個攝像頭設(shè)置每間隔半個小時抓取一張圖片,最后再刪除部分沒有工人的圖片.為了提高數(shù)據(jù)集的泛化性,對4 500 張樣本采取圖像反轉(zhuǎn)、對比度變化等數(shù)據(jù)增強(qiáng)方式,這樣可以有效地避免了訓(xùn)練模型過擬合問題,提高模型泛化能力,避免了因數(shù)據(jù)樣本量少導(dǎo)致的訓(xùn)練不充分的問題,最終獲得9 000 張數(shù)據(jù)樣本圖,用于行人檢測網(wǎng)絡(luò)YOLO-people的訓(xùn)練.著裝檢測網(wǎng)絡(luò)YOLO-dress的訓(xùn)練圖像是根據(jù)每幅圖像中行人的標(biāo)記框坐標(biāo),從原始圖像中切割出行人目標(biāo)區(qū)域再進(jìn)行尺度變換得到,最終每幅圖像中都只有一個行人,共27 000 張樣本圖.行人檢測網(wǎng)絡(luò)和著裝檢測網(wǎng)絡(luò)部分訓(xùn)練樣本圖如圖7、圖8所示.
圖7 工人檢測網(wǎng)絡(luò)訓(xùn)練樣本圖
圖8 著裝檢測網(wǎng)絡(luò)訓(xùn)練樣本圖
4.1.2 圖片標(biāo)注
本文依據(jù)規(guī)范化安全著裝檢測目標(biāo),將設(shè)計行人、安全帽、非安全帽、安全上衣、非安全上衣、安全褲子、非安全褲子共7 類檢測標(biāo)簽,參照PASCAL VOC[18]目標(biāo)檢測數(shù)據(jù)集標(biāo)準(zhǔn)格式,首先對每張訓(xùn)練樣本中出現(xiàn)的行人目標(biāo)進(jìn)行標(biāo)記,采用Labelimg 圖像標(biāo)注工具標(biāo)注外圍框,將外圍框的左上角坐標(biāo)(xmin,ymin)、右上角坐標(biāo)(xmax,ymax)以及目標(biāo)類別person 等相關(guān)信息進(jìn)行記錄,得到行人檢測數(shù)據(jù)集后,根據(jù)標(biāo)記框坐標(biāo)將每張訓(xùn)練樣本圖中的行人目標(biāo)進(jìn)行裁剪并放大,得到每幅圖像只有一個行人,對得到的每幅圖像依據(jù)上述方式進(jìn)行其余6 個類別的標(biāo)注,最終得到著裝檢測數(shù)據(jù)集.將兩類數(shù)據(jù)集分別按8:2 劃分為訓(xùn)練集和測試集,行人和6 類著裝類別目標(biāo)在兩類數(shù)據(jù)集中所占圖像數(shù)量分布如圖9所示.
圖9 數(shù)據(jù)分布量
本文訓(xùn)練和測試實驗均在以下工作條件下完成:Ubuntu 20.04 系統(tǒng);CPU 處理器Intel Xeon Gold 6244;運(yùn)行內(nèi)存128 GB;顯卡為NVIDIA Tesla V100.采用基于PyTorch 框架的YOLOv5 進(jìn)行多尺度融合方法改進(jìn),并利用改進(jìn)后的YOLOv5 網(wǎng)絡(luò)搭建YOLOpeople和YOLO-dress 網(wǎng)絡(luò)進(jìn)行級聯(lián),從而實現(xiàn)安全著裝檢測,訓(xùn)練時需要對兩個子網(wǎng)絡(luò)單獨進(jìn)行訓(xùn)練.YOLO-people 采用行人數(shù)據(jù)集訓(xùn)練,YOLO-dress 采用著裝數(shù)據(jù)集訓(xùn)練,通過K-means 聚類算法,在行人數(shù)據(jù)集上,YOLO-people 選用4 個尺度的12 個anchor box 分別為(11,25)(14,44)(23,22),(30,52)(32,80)(34,53),(45,99)(53,66)(86,104),(106,171)(151,244)(170,321).在著裝數(shù)據(jù)集上,YOLO-dress 選用4 個尺度的12 個anchor box 分別為(5,6)(7,9)(12,10),(10,13)(16,30)(33,23),(47,52)(75,79)(96,102),(116,90)(148,187)(372,324).以訓(xùn)練YOLO-people為例,輸入分辨率設(shè)置為640×640,初始學(xué)習(xí)速率設(shè)置為0.000 5,速度衰減因子為0.000 5,batchsize 設(shè)置為64,NMS 設(shè)置為0.5,每迭代100 次保存一次模型,最后修改網(wǎng)絡(luò)訓(xùn)練相關(guān)參數(shù)開始模型訓(xùn)練.
圖10為兩級子網(wǎng)絡(luò)訓(xùn)練的損失值收斂曲線,可以看出損失值隨著迭代步數(shù)降低,迭代步數(shù)為290 左右時,損失值趨于穩(wěn)定,YOLO-people 網(wǎng)絡(luò)訓(xùn)練loss 值為0.024,YOLO-dress 網(wǎng)絡(luò)訓(xùn)練loss 值為0.005.
圖10 C-YOLOv5 子網(wǎng)絡(luò)訓(xùn)練損失值曲線
本文對于規(guī)范化安全著裝檢測任務(wù)采用查準(zhǔn)率(Precision)、查全率(Recall)、平均精度(AP)、平均精度均值(mAP)及每秒傳輸幀數(shù)(FPS)作為模型的評價指標(biāo).
查準(zhǔn)率(Precision)衡量的是所有預(yù)測為正樣本的結(jié)果中,預(yù)測正確的比率,在規(guī)范化安全著裝檢測任務(wù)中Precision代表模型正確預(yù)測某類著裝部件的個數(shù)(TP) 占預(yù)測該類著裝部件總個數(shù)(TP+FP)的比值,該指標(biāo)如式(8)所示:
查全率(Recall)衡量的是所有正樣本中被預(yù)測正確的比率.在規(guī)范化安全著裝檢測任務(wù)中Recall代表模型正確預(yù)測某類著裝部件的個數(shù)(TP)占該類著裝部件總數(shù)(TP+FN)的比值,該指標(biāo)如式(9)所示:
平均精度(AP)用來計算單類別模型平均準(zhǔn)確度,對于目標(biāo)檢測任務(wù),每一類都可以計算出Precision和Recall并得到一條P-R 曲線,曲線下的面積就是AP的值.平均精度均值(mAP)就是對所有類別的AP值求平均值,N代表類別總數(shù).該指標(biāo)如式(10)所示:
實驗1.利用YOLOv5 算法模型和YOLO-people、YOLO-dress 算法模型進(jìn)行對比實驗,其中YOLO-people和YOLO-dress 算法表示利用了4 個尺度的多尺度特征融合檢測方式進(jìn)行實驗,YOLOv5 沒有進(jìn)行任何改動.在自制行人檢測數(shù)據(jù)集和著裝檢測數(shù)據(jù)集上進(jìn)行實驗,采用mAP和FPS 作為評價指標(biāo).測試結(jié)果如表1,YOLO-people 模型在保證實時檢測的情況下,相比YOLOv5 模型的mAP提高了約0.7%,YOLO-dress模型相比YOLOv5的mAP提升了約0.6%.
表1 C-YOLOv5 子網(wǎng)絡(luò)對比實驗
圖11(a)和圖11(b)為YOLOv5和YOLO-people在同一測試圖像上的檢測效果對比.從圖中可以看出,YOLO-people 網(wǎng)絡(luò)可以檢測出更多的小目標(biāo)行人.圖12(a)和圖12(b)為YOLOv5和YOLO-dress 在同一測試圖像上的檢測效果對比.從對比圖像中看出,原始YOLOv5 對于畫面中兩個人的安全帽佩戴情況沒有檢測出來,而YOLO-dress 模型全部檢測準(zhǔn)確,相比YOLOv5的3 尺度檢測效果更好.以上消融實驗說明改進(jìn)的4 尺度模塊對小目標(biāo)檢測的準(zhǔn)確率有一定的提升.
圖11 YOLO-people 檢測效果測試
圖12 YOLO-dress 檢測效果測試
實驗2.為了驗證級聯(lián)網(wǎng)絡(luò)檢測方式對小目標(biāo)檢測的有效性,本文的級聯(lián)網(wǎng)絡(luò)測試實驗采用兩個原始YOLOv5 網(wǎng)絡(luò)進(jìn)行實驗,在檢測出行人目標(biāo)的基礎(chǔ)上檢測著裝部件,在本文的工人檢測數(shù)據(jù)集和著裝檢測數(shù)據(jù)集上進(jìn)行實驗,采用mAP和FPS 作為評價指標(biāo),測試結(jié)果如表2所示.實驗證明,通過級聯(lián)網(wǎng)絡(luò)檢測的方式,在保證實時的情況下,mAP相比于YOLOv5 算法提升1.05%,由此證明,級聯(lián)網(wǎng)絡(luò)檢測方式對于小目標(biāo)的檢測效果提升確實有效.
表2 級聯(lián)網(wǎng)絡(luò)對比實驗
圖13(a)和圖13(b)為YOLOv5和YOLOv5 級聯(lián)算法對同一圖像的測試結(jié)果.從圖中可以看出,原始YOLOv5 算法沒有檢測出畫面中一個人的安全帽和工作上衣的穿著情況,而級聯(lián)檢測方式對畫面中的行人都進(jìn)行了正確的規(guī)范性著裝檢測,無漏檢情況.
圖13 級聯(lián)網(wǎng)絡(luò)對比測試
實驗3.通過整合多尺度融合改進(jìn)和級聯(lián)網(wǎng)絡(luò)檢測方式,最終形成本文的C-YOLOv5.在整體測試中,本次實驗對比了YOLOv5 算法在自制著裝數(shù)據(jù)集上的檢測效果,根據(jù)FPS和mAP評價指標(biāo)評估本文方法的有效性,如表3所示.
表3 整體改進(jìn)對比實驗
通過對比實驗結(jié)果表明,原始YOLOv5 在自制著裝數(shù)據(jù)集上的傳輸速率達(dá)到了81.93 f/s,檢測精度mAP達(dá)到了91.75%.而本文提出的C-YOLOv5 方法在自制數(shù)據(jù)集上的傳輸速率達(dá)到36.24 f/s,檢測精度mAP達(dá)到了94.03%,相比于YOLOv5 提高了約2.3%,這是因為C-YOLOv5 在改進(jìn)了多尺度融合方式的同時采用了級聯(lián)檢測,不僅增強(qiáng)了小目標(biāo)的特征信息,而且通過級聯(lián)的方式極大減少了背景干擾等影響因素,降低了小目標(biāo)檢測的難度,進(jìn)一步提升了油田作業(yè)現(xiàn)場安全著裝小目標(biāo)的檢測效果.
圖14展示了本文C-YOLOv5 算法在自制數(shù)據(jù)集上的檢測效果與YOLOv5 算法的對比.從對比效果圖中可以看出,對于規(guī)范化著裝檢測任務(wù),C-YOLOv5 算法在監(jiān)控視角拍攝距離較遠(yuǎn)、人員目標(biāo)尺寸較小的情況下,能夠很好地檢測出油田工人的規(guī)范著裝情況,在精確度和查全率方面具有較好的效果,在小目標(biāo)檢測中表現(xiàn)較好.
圖14 整體改進(jìn)對比測試
針對油田作業(yè)現(xiàn)場的監(jiān)控視頻中人員安全著裝小目標(biāo)檢測問題,本文提出了一種改進(jìn)的Cascade-YOLOv5 (C-YOLOv5) 方法,該算法首先針對原始YOLOv5 算法進(jìn)行改進(jìn)多尺度特征融合方式,從原來的3 尺度檢測擴(kuò)展為在4 個尺度的融合特征圖上分別做獨立的檢測,改進(jìn)后的模型充分利用了淺層特征信息并融合高層語義信息,增強(qiáng)了路徑聚合網(wǎng)絡(luò)的特征表達(dá)能力,提高了小目標(biāo)的檢測精度.然后在此基礎(chǔ)上,用兩個多尺度特征融合改進(jìn)后的YOLOv5 算法進(jìn)行級聯(lián),先檢測工人目標(biāo),然后將目標(biāo)進(jìn)行尺度變換處理后進(jìn)行著裝檢測,進(jìn)一步提高遠(yuǎn)距離視頻監(jiān)控中的安全著裝檢測效果.本文方法在自制數(shù)據(jù)集上與YOLOv5算法的對比實驗,證明該方法既能保證實時檢測速度,也提高了小目標(biāo)檢測精度.本文方法最終實現(xiàn)了油田現(xiàn)場對于工作人員的智能化、自動化的規(guī)范化安全著裝檢測,對油田作業(yè)現(xiàn)場安防智能監(jiān)控發(fā)展有著重要的價值,且本文方法適用于不同場景下的小目標(biāo)檢測任務(wù).