田楓,白欣宇,劉芳,姜文文
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
隨著深度學(xué)習(xí)等大量智能算法的出現(xiàn)以及計(jì)算機(jī)性能的不斷提升,使用智能算法對(duì)監(jiān)控視頻進(jìn)行快速分析成為可能。在我國(guó)各大油田由建設(shè)數(shù)字化油田轉(zhuǎn)變建設(shè)智慧油田的背景下,油田危險(xiǎn)區(qū)域入侵智能綜合識(shí)別技術(shù)徹底取代了基于人力監(jiān)控油田的高成本低準(zhǔn)確率的方式,為油田安全提供了有力保障,但油田作業(yè)區(qū)設(shè)備算力有限,攝像頭數(shù)量達(dá)上百路,如何在保證模型精度的基礎(chǔ)上,減少模型的參數(shù)量,盡可能地提高模型的運(yùn)算速度是目前亟待解決的問(wèn)題。
目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法根據(jù)預(yù)測(cè)的流程可以分為兩類[1]:第1 類為基于回歸的深度卷積的目標(biāo)檢測(cè)算法,代表性的算法有YOLO(you only look once)系列的YOLOv3[2],其使用深層的特征提取網(wǎng)絡(luò)Darknet-53[2]以及3 個(gè)尺度的特征圖進(jìn)行邊界框的預(yù)測(cè),同時(shí)增加了anchor的數(shù)量,YOLOv4[3]提出使用CSPDarknet53[3]來(lái)替換主干網(wǎng)絡(luò)并采用多種訓(xùn)練策略,YOLOv5[4]設(shè)計(jì)了兩種CSP 結(jié)構(gòu)來(lái)適應(yīng)不同的任務(wù),并加入Focus 做切片操作提高速度。YOLO 系列算法在不同比例的目標(biāo)尺度上泛化性能不好,需要多次下采樣來(lái)獲取標(biāo)準(zhǔn)特征。SSD (single shot multibox detector)目標(biāo)檢測(cè)算法是基于前饋卷積網(wǎng)絡(luò),其特征提取基礎(chǔ)網(wǎng)絡(luò)中每個(gè)特征層用于檢測(cè)的卷積核大小是不同的,卷積后可以得到多個(gè)尺度檢測(cè)的預(yù)測(cè)值,以實(shí)現(xiàn)圖像的多尺度檢測(cè),它使用非極大抑制(non maximal suppression,NMS)算法對(duì)預(yù)測(cè)結(jié)果進(jìn)行處理后獲得最終檢測(cè)結(jié)果。Fu 等[5]在SSD 算法的基礎(chǔ)上提出了反卷積單階段多框探測(cè)器DSSD 算法,在分類回歸之前引入了殘差模塊,加深了網(wǎng)絡(luò)層數(shù)。該算法有效地聯(lián)系上下文,將各類語(yǔ)義信息進(jìn)行融合,提高了檢測(cè)精度。Jeong 等[6]研究提出了一種RSSD 融合算法,該算法通過(guò)特征圖池化加反卷積的操作方式進(jìn)一步融合不同層的網(wǎng)絡(luò)特征,池化與特征圖加反卷積[7]的步驟同步進(jìn)行,有效地解決了原始SSD 特征圖中存在重復(fù)框的問(wèn)題,同時(shí)提升了小目標(biāo)物體檢測(cè)的成功率。Li 等[8]提出FSSD,該算法將網(wǎng)絡(luò)中部分特征調(diào)整為同一尺寸再進(jìn)行連接,得到一個(gè)像素層,并以此層為基礎(chǔ)層來(lái)生成特征金字塔。第2 類是基于候選區(qū)域的深層卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測(cè)算法,代表算法有R-CNN[9]、R-FCN[10]、Fast R-CNN[11]和Faster R-CNN[12],將目標(biāo)檢測(cè)分為兩步,先通過(guò)區(qū)域建議算法生成可能包含目標(biāo)的候選區(qū)域,再通過(guò)CNN 對(duì)候選區(qū)域進(jìn)行分類和位置回歸,得到最終的檢測(cè)框。這類算法需要逐個(gè)處理產(chǎn)生的候選框[13],檢測(cè)速度受到限制。
經(jīng)篩選,YOLOv5 是目前目標(biāo)檢測(cè)中平衡速度與精度最好的算法,本文針對(duì)YOLOv5 參數(shù)量多,計(jì)算量大的問(wèn)題進(jìn)行改進(jìn),提出結(jié)合深度可分離卷積的跨階段卷積模塊與改進(jìn)的SE[14](squeeze-and-excitation)通道注意力模塊的算法模型,并使用DIOU-NMS[15](distance intersection over union-non maximum suppression)中心歸一化非極大值抑制算法進(jìn)行特征推理;提出OilPerson 數(shù)據(jù)集(油田現(xiàn)場(chǎng)工人數(shù)據(jù)集),最后使用TensorRT 加速與射線法共同完成區(qū)域入侵的判定。本文算法在油田作業(yè)現(xiàn)場(chǎng)應(yīng)用良好,有效保障油田施工人員的生命財(cái)產(chǎn)安全。
YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,YOLOv5在Backbone(特征提取網(wǎng)絡(luò)部分)中使用Focus 結(jié)構(gòu)減少計(jì)算量。使用CSPNet[3]的CSP 模塊,增加CNN 的學(xué)習(xí)能力,降低計(jì)算瓶頸并節(jié)約內(nèi)存成本。使用SPPNet[16]的特征金字塔模塊,將卷積神經(jīng)網(wǎng)絡(luò)的輸入轉(zhuǎn)化為任意尺寸。
圖1 YOLOv5 檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv5 detection network structure
在Neck(特征融合部分),采用FPN 和PAN[17]結(jié)構(gòu),使用自上而下的路徑和橫向連接以及自底向上的路徑增強(qiáng),對(duì)語(yǔ)義信息與定位信息進(jìn)行特征融合,用以提高多尺度檢測(cè)的準(zhǔn)確性。
在Prediction(特征預(yù)測(cè)部分),在特征圖上應(yīng)用錨定框生成帶有類概率、對(duì)象得分和包圍框的3 種不同大小的特征圖向量。使用NMS[2]檢測(cè)算法對(duì)同一目標(biāo)產(chǎn)生多次檢測(cè)的結(jié)果進(jìn)行推理,保證每個(gè)目標(biāo)只檢測(cè)一次,找到檢測(cè)效果最好的框。
普通卷積模塊在進(jìn)行卷積操作時(shí),同時(shí)在空間和通道兩個(gè)維度進(jìn)行,而深度可分離卷積[18]在空間和通道兩個(gè)維度分開進(jìn)行卷積操作,形成了空間維度的逐層卷積和通道維度的逐點(diǎn)卷積兩個(gè)部分。具體來(lái)說(shuō),它將標(biāo)準(zhǔn)卷積分成了2 步,即3×3的逐層卷積和1×1 逐點(diǎn)卷積,如圖2 所示。
圖2 深度可分離卷積Fig.2 Depth separable convolution
這種分解方式明顯地減少了計(jì)算量。Mobile-Netv2[19]則在此基礎(chǔ)上,為了改進(jìn)3×3 的逐層卷積在低維空間提取特征效果較差的缺點(diǎn),在逐層卷積前多加入了一個(gè)逐點(diǎn)卷積,如圖3 所示,進(jìn)而完成對(duì)卷積神經(jīng)網(wǎng)絡(luò)中的特征圖升維。
圖3 Inverted residuals 模塊Fig.3 Inverted residuals bottleneck
在逐點(diǎn)卷積的末尾去掉了激活函數(shù),此結(jié)構(gòu)即線性瓶頸模塊。MobileNetv2 由多個(gè)瓶頸模塊堆疊成,其速度與準(zhǔn)確率均得到了提升。
本文提出的網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,相對(duì)于原YOLOv5 模型,在Backbone 特征提取部分由多個(gè)深度可分離卷積與線性瓶頸模塊堆疊而成,使用Inver 在圖中進(jìn)行表示。將線性瓶頸模塊與跨階段局部殘差網(wǎng)絡(luò)結(jié)合形成跨階段線性殘差模塊,大幅減少了模型的運(yùn)算量,在每個(gè)特征金字塔采樣前使用改進(jìn)的SE 模塊提高模型定位精度,使用SE-h-sigmoid 來(lái)表示,最后在Prediction 特征推理部分使用DIOU-NMS[15]替換NMS,使得其避免重疊度較高的同類目標(biāo)出現(xiàn)漏檢的問(wèn)題。此模型在YOLOv5 的基礎(chǔ)上降低了模型參數(shù)量。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Network structure
2.1.1 本文卷積模塊
DConv逐層卷積與PConv逐點(diǎn)卷積的計(jì)算成本如式(1)所示:
式中:CM代表輸入通道的數(shù)量;CN代表輸出通道的數(shù)量;DK代表卷積核大??;DF為特征映射圖。深度可分離卷積與標(biāo)準(zhǔn)卷積的計(jì)算成本的比例如式(2)所示:
使用3×3 的深度可分離卷積時(shí),在少量降低精度的前提下,計(jì)算量相對(duì)于標(biāo)準(zhǔn)卷積減少8 倍以上。
Inverted Resblock 結(jié)構(gòu)在輕量化網(wǎng)絡(luò)方面有較好的性能表現(xiàn),但Sandler 等[19]解釋線性瓶頸模塊存在梯度混淆的情況,同時(shí)1×1 的卷積減少了空間信息,本文根據(jù)線性瓶頸模塊中存在的問(wèn)題將CSPNet 的跨階段局部模塊與MobileNetv2的線性瓶頸模塊進(jìn)行融合,形成跨階段線性瓶頸卷積模塊。輸入的特征映射分為兩個(gè)分支,分別進(jìn)行特征提取,其中一支后接Inver 卷積模塊,進(jìn)行進(jìn)一步特征提取,然后將兩分支通過(guò)級(jí)聯(lián)操作進(jìn)行合并。
如圖5 所示,本文使用的CSP-Inver 卷積塊由兩條分支組成,上面的分支首先經(jīng)過(guò)3×3 卷積,然后經(jīng)過(guò)Inver 卷積,與下面的3×3 卷積的分支進(jìn)行concat 操作。因兩個(gè)分支的梯度信息不同,不會(huì)出現(xiàn)重復(fù)的梯度信息情況,利于學(xué)習(xí)到更優(yōu)的梯度信息。此外,級(jí)聯(lián)操作是對(duì)卷積結(jié)果的拼接,不含矩陣計(jì)算,因此不會(huì)增加過(guò)多的計(jì)算量。
圖5 CSP-Inver:跨階段線性瓶頸模塊Fig.5 CSP-Inver:Cross phase linear bottleneck module
從計(jì)算量的角度分析,若線性瓶頸卷積模塊中共x個(gè)卷積模塊,則卷積層的輸入輸出的內(nèi)存流量可記為xcout+,再引入CSP 后可記為(xcout+(x2+x))/2,通過(guò)式(3)可計(jì)算出使用CSP 后減少的計(jì)算量比例。融合后線性瓶頸卷積模塊的輸入輸出的內(nèi)存流量減少近一半。
因此將重新構(gòu)成的跨階段線性瓶頸模塊與通道注意力模塊融入YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)中,因使用CSP-Inver 卷積塊的Inver 部分先進(jìn)行1×1 逐點(diǎn)卷積,然后進(jìn)行3×3 的逐層卷積與1×1 的逐點(diǎn)卷積取代普通卷積,因此大大減少了網(wǎng)絡(luò)模型的復(fù)雜度。
跨階段線性瓶頸模塊大幅降低了計(jì)算量,減少了模型參數(shù)量,但也存在著局限性,當(dāng)檢測(cè)小目標(biāo)物體或目標(biāo)物體被遮擋時(shí)檢測(cè)精度并不高,出現(xiàn)此問(wèn)題的原因分析如下:
對(duì)于一幀輸入圖像而言,其多尺度特征圖在YOLOv5 網(wǎng)絡(luò)模型中的數(shù)學(xué)定義如式(4)、(5):
式(4)中:函數(shù)sn代表第n層特征圖與第n?1層特征圖之間的非線性映射函數(shù),其中函數(shù)主要操作有3 個(gè),分別為池化、卷積和非線性激活函數(shù)操作;Fn表示第n層的特征圖;s1(t)中的t表示輸入圖像,1 表示第1 層特征;sn(t)表示輸入圖像和第n層的特征圖之間的非線性函數(shù)。再用非線性函數(shù)對(duì)特征圖進(jìn)行卷積操作,并獲得最終的檢測(cè)結(jié)果對(duì)應(yīng)的非線性函數(shù),在式(5)中用f(·)表示;采用非線性映射的方法對(duì)第n層特征圖進(jìn)行處理,進(jìn)而可以獲得位于某一范圍內(nèi)的檢測(cè)結(jié)果,這個(gè)結(jié)果用rn(·)表示。
由式(4)、(5)得,因不同的特征層對(duì)應(yīng)多種不同尺度大小的目標(biāo)結(jié)果,為保證所獲得的檢測(cè)結(jié)果更加準(zhǔn)確,通常需要應(yīng)用各種非線性函數(shù),需要保證網(wǎng)絡(luò)結(jié)構(gòu)中的每一層特征圖包含更多的有效信息。因此以跨階段非線性紡錘形模塊構(gòu)建特征提取網(wǎng)絡(luò),更加需要全局信息進(jìn)行特征篩選,對(duì)重要特征強(qiáng)調(diào)并對(duì)非重要特征進(jìn)行抑制,所以本文在多尺度特征金字塔的每個(gè)尺度中,需要添加改進(jìn)的通道注意力機(jī)制,增強(qiáng)整個(gè)網(wǎng)絡(luò)的表示能力,進(jìn)而對(duì)小目標(biāo)物體或被其他物體遮擋的目標(biāo)物體進(jìn)行較為準(zhǔn)確的檢測(cè)。
2.1.2 改進(jìn)的SE 通道注意力機(jī)制
特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)雖然可以通過(guò)提取不同尺寸的特征信息來(lái)增加感受野,但是金字塔網(wǎng)絡(luò)在將具有很強(qiáng)代表性和區(qū)分性的高層語(yǔ)義信息通過(guò)上采樣操作傳遞到其他層時(shí),高層語(yǔ)義信息將會(huì)被逐漸淡化[20],但高層語(yǔ)義信息因其區(qū)分性與強(qiáng)代表性能夠更好地識(shí)別物體類別。為解決這個(gè)問(wèn)題,通過(guò)在特征金字塔中加入通道注意力層,如圖6 所示,該模塊建立在自底向上路徑的末端,通過(guò)通道注意力層,對(duì)重要的語(yǔ)義信息給予更多的關(guān)注,這些包含有效語(yǔ)義信息的多尺度特征經(jīng)過(guò)通道注意力層的處理后,在自頂向下的過(guò)程中連接在一起,補(bǔ)充自上而下的高級(jí)語(yǔ)義信息。
圖6 通道注意力特征金字塔Fig.6 Pyramid of channel attention characteristics
在每個(gè)特征金字塔的不同尺度模塊采樣前加入SENet 網(wǎng)絡(luò)模塊作為注意力機(jī)制,通過(guò)增強(qiáng)建模通道之間的相互依賴關(guān)系,自適應(yīng)地調(diào)整通道的特征響應(yīng),但通道注意力機(jī)制結(jié)合特征金字塔帶來(lái)了部分計(jì)算參數(shù)與模型參數(shù),降低了模型的運(yùn)算速度,增加了模型的運(yùn)行內(nèi)存。因此對(duì)SE通道注意力機(jī)制進(jìn)行改進(jìn),少量增加計(jì)算量的同時(shí)對(duì)重要特征進(jìn)行強(qiáng)調(diào)。
改進(jìn)前的SE 通道注意力機(jī)制主要步驟:對(duì)輸入的特征圖進(jìn)行全局平均池化,得到長(zhǎng)度等于通道數(shù)M的實(shí)數(shù)列Zgap。在壓縮率r=16 的情況下對(duì)特征圖X=[x1x2···xn]進(jìn)行全局平均池化,得到Fgap,計(jì)算過(guò)程如式(6)、(7)所示:
式中:F1為進(jìn)行降維的全連接層,F(xiàn)1∈;F2為升維的全連接層,F(xiàn)2∈;C為特征圖的索引。
原始的SE 卷積注意力模塊的最后一層使用sigmoid函數(shù)激活,在反向傳播更新梯度時(shí),求導(dǎo)做除法運(yùn)算更加消耗資源。因?yàn)?sigmoid激活函數(shù)其指數(shù)運(yùn)算具有以上缺點(diǎn),如式(7)所示:
所以使用由 Relu[20]激活函數(shù)表示的分段線性函數(shù)hsigmoid[21]降低部分計(jì)算成本,改進(jìn)SE 通道注意力機(jī)制,R代表 Relu6[20]激活函數(shù),如式(8)所示:
生成每個(gè)通道對(duì)應(yīng)的權(quán)重信息S=[s1s2···sc],h代表hsigmoid 函數(shù),如式(9)所示:
根據(jù)權(quán)值對(duì)輸入的特征圖加權(quán)更新,得到更新后的通道特征Y=[y1y2···yc],如式(10)所示:
更換hsigmoid 激活函數(shù)的SE 通道注意力,如圖7 所示。
圖7 更換激活函數(shù)后的通道注意力Fig.7 Channel attention after changing the active function
因YOLOv5 是由自頂向下的特征提取網(wǎng)絡(luò)和自底向上的多尺度目標(biāo)檢測(cè)網(wǎng)絡(luò)兩部分組成,前者負(fù)責(zé)提取的是輸入圖像的低層細(xì)節(jié)特征,后者從前者的低層特征中提取高級(jí)的語(yǔ)義特征,然后將不同尺度的高級(jí)特征與相對(duì)應(yīng)尺度的低層特征通過(guò)特征金字塔進(jìn)行結(jié)合,實(shí)現(xiàn)了多尺度的目標(biāo)檢測(cè)。
因此在特征提取網(wǎng)絡(luò)中的特征金字塔的采樣模塊前使用改進(jìn)的SE 注意力模塊,能夠更好地利用全局信息進(jìn)行特征篩選,對(duì)重要特征強(qiáng)調(diào)并對(duì)非重要特征進(jìn)行抑制,增強(qiáng)了整個(gè)網(wǎng)絡(luò)的表示能力。
2.1.3 DIOU-NMS
本文使用DIOU-NMS 替換YOLOv5 的NMS,提升檢出率。YOLOv5 使用的NMS 其IOU 指標(biāo)常用于抑制冗余框,遮擋時(shí)重疊區(qū)域經(jīng)常導(dǎo)致NMS 產(chǎn)生錯(cuò)誤抑制。IOU 如式(11)所示:
式中:Bgt=(xgt,ygt,wgt,hgt)代表真實(shí)的邊界框;B=(x,y,w,h)為預(yù)測(cè)框。
DIOU 在IOU 的基礎(chǔ)上增加了一個(gè)懲罰項(xiàng),該懲罰項(xiàng)用于最小化兩個(gè)box 的中心點(diǎn)距離,如式(12)所示:
式中:ρ是歐幾里得距離;c是覆蓋兩個(gè)框的對(duì)角線長(zhǎng)度;b、bgt分別是B、Bgt的中心點(diǎn)。
對(duì)于預(yù)測(cè)分?jǐn)?shù)較高的box,DIOU-NMS 除考慮重疊區(qū)域外,還將兩個(gè)檢測(cè)輸出的box 的中心點(diǎn)距離作為考慮因素,DIOU-NMS 如式(13)所示:
式中:si代表分類得分;ε為NMS 閾值;M為得分最高的box。因?yàn)榭紤]中心距離,DIOU-NMS 不抑制兩個(gè)中心點(diǎn)較遠(yuǎn)、得分較高的box,并將其識(shí)別為兩個(gè)目標(biāo)對(duì)象。通過(guò)這個(gè)方式可提升檢出率。
考慮不同視角下的攝像頭位置含有景深信息,而非僅有俯視的二維表面,在傾角較小或者近似平行的攝像頭位置中,僅根據(jù)檢測(cè)目標(biāo)與區(qū)域判斷是否發(fā)生重合來(lái)判定是否發(fā)生區(qū)域入侵并不準(zhǔn)確。
人物是否走入危險(xiǎn)區(qū)域內(nèi),通過(guò)人物落腳點(diǎn)的位置進(jìn)行判斷。因此考慮人物的落腳點(diǎn)是否在危險(xiǎn)區(qū)域內(nèi),如圖8 所示,先通過(guò)目標(biāo)檢測(cè)獲取目標(biāo)位置,然后將人物踏入危險(xiǎn)區(qū)域的區(qū)域入侵問(wèn)題抽象成為落腳點(diǎn)與危險(xiǎn)區(qū)域多邊形是否相交的問(wèn)題,即判斷落腳點(diǎn)是否在不規(guī)則多邊形內(nèi)。
圖8 射線法Fig.8 Ray method
計(jì)算油田工人落腳點(diǎn)Px,如式(14)所示:
式中:b為獲取到的檢測(cè)框坐標(biāo)函數(shù),x1、y1為中心點(diǎn)的坐標(biāo),h為輸出的定位框的高。
對(duì)于平面內(nèi)任意閉合曲線,曲線都把平面分割成了內(nèi)、外兩部分。在平面內(nèi)對(duì)于任意一條直線,在穿越多邊形邊界時(shí),僅有兩種情況:進(jìn)入或穿出多邊形。因此本文設(shè)計(jì)射線法進(jìn)行區(qū)域入侵的判斷。
如圖9 所示,因在不同視角下的攝像頭位置含有景深信息,例如:90°、60°、30°攝像頭位置懸掛下,同一危險(xiǎn)區(qū)域映射到攝像頭圖像的位置不同,若僅憑借目標(biāo)檢測(cè)框與危險(xiǎn)區(qū)域的面積計(jì)算交并比這一方式判斷目標(biāo)發(fā)生危險(xiǎn)區(qū)域入侵不可取,本文以射線法判別目標(biāo)是否處于危險(xiǎn)區(qū)域中,即判別目標(biāo)的落腳點(diǎn)是否位于不規(guī)則的危險(xiǎn)區(qū)域?qū)呅沃?,進(jìn)行區(qū)域入侵判斷,這樣可以有效解決不同視角下的攝像頭是否發(fā)生危險(xiǎn)區(qū)域入侵問(wèn)題。
圖9 不同角度的危險(xiǎn)區(qū)域Fig.9 Dangerous areas from different angles
根據(jù)式(15)判斷是否發(fā)生多邊形區(qū)域入侵:
式中:q為點(diǎn)Px向任意方向做射線;s表示求和;x為自定義危險(xiǎn)區(qū)域;R表示發(fā)生區(qū)域入侵;%2 表示與2 相除后取余數(shù)。當(dāng)目標(biāo)在畫面中出現(xiàn)時(shí),如圖10 所示,從目標(biāo)的落腳點(diǎn)對(duì)任意方向做射線,當(dāng)射線的交點(diǎn)個(gè)數(shù)為奇數(shù)時(shí)發(fā)生區(qū)域入侵。
圖10 判斷點(diǎn)是否在多邊形內(nèi)Fig.10 Determine whether the point is in the polygon
實(shí)驗(yàn)硬件環(huán)境:硬件平臺(tái)為聯(lián)想工作站,i7-6 700 3.4 GHz CPU、NVIDIA CTX 3 080 GPU,操作系統(tǒng)為Ubuntu 18.04。軟件環(huán)境:程序編寫語(yǔ)言為Python3.7。
使用Mosaic[22](馬賽克)數(shù)據(jù)增強(qiáng)策略隨機(jī)改變訓(xùn)練樣本,隨機(jī)讀取4 張訓(xùn)練圖像,進(jìn)行反轉(zhuǎn)和旋轉(zhuǎn)操作,組合成為一張訓(xùn)練圖片,提高模型的泛化能力。batch-size(每批訓(xùn)練的圖片量)設(shè)置為32,momentum(動(dòng)量值)設(shè)置為0.9,學(xué)習(xí)率(learningrate)初始值為0.000 1,通過(guò)余弦退火策略[23]調(diào)整學(xué)習(xí)率,權(quán)重衰減參數(shù)為0.005,epoch 設(shè)置為300。
本文選用PASCAL VOC2007[24]和PASCAL VOC 2012 數(shù)據(jù)集聯(lián)合訓(xùn)練模型,圖片數(shù)量為16 551張,在測(cè)試過(guò)程中選擇的是PASCAL VOC 2007 測(cè)試集,圖片數(shù)量為4 952 張。本文選用的評(píng)價(jià)指標(biāo)為:檢測(cè)精度(mean average precision,mAP)、運(yùn)行速度(frames per second,f/s)、模型大小(model size)。
表1 實(shí)驗(yàn)結(jié)果顯示,網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜的模型檢測(cè)準(zhǔn)確率高,但檢測(cè)速度較慢。輕量級(jí)檢測(cè)網(wǎng)絡(luò)優(yōu)點(diǎn)是檢測(cè)速度較快,缺點(diǎn)是檢測(cè)的準(zhǔn)確率低。在模型體積類似的YOLOv3-tiny 和YOLOv4-tiny 中,mAP 分別提高了17.8%和9.6%,其主要原因是本文的級(jí)聯(lián)基于深度可分離卷積的線性瓶頸模塊與改進(jìn)的SE 通道注意力模塊在特征金字塔上的使用,彌補(bǔ)了特征提取能力不足的問(wèn)題,增強(qiáng)了模型對(duì)特征的利用率,提高了準(zhǔn)確率。使用DIOU-NMS 替換YOLOv5 的NMS 增強(qiáng)了模型的推理能力,避免了在目標(biāo)距離較近情況下的錯(cuò)誤抑制,提升了準(zhǔn)確率。對(duì)訓(xùn)練集使用Mosaic 處理豐富了物體的背景,提高了模型的泛化能力。
表1 不同網(wǎng)絡(luò)在VOC 數(shù)據(jù)集的評(píng)價(jià)值Table 1 Evaluation value of different models in VOC dataset
在VOC 數(shù)據(jù)集上的消融實(shí)驗(yàn)如表2 所示,用√表示使用當(dāng)前模塊,在僅使用CSP-Inver 卷積代替CSP 卷積減少了模型的參數(shù)量,但模型精度有所下降。在基準(zhǔn)網(wǎng)絡(luò)中加入FPN-SE 模塊(即在特征金字塔進(jìn)行特征融合前的卷積模塊使用通道注意力機(jī)制),mAP 提高了2.3%,說(shuō)明本文使用的FPN-SE 模塊能增強(qiáng)特征提取能力,但也帶來(lái)了2.7 MB 的模型參數(shù)量;使用FPN-SE-h-sigmoid 模塊替換FPN-SE 模塊,在保證檢測(cè)精度的同時(shí),減少了0.5 MB 的模型參數(shù)量。加入DIOU-NMS 進(jìn)行特征推理后,在不增加網(wǎng)絡(luò)參數(shù)的前提下,mAP 提高了0.5%。實(shí)驗(yàn)證明:CSP-Inver 卷積大大減少了模型的參數(shù)量,F(xiàn)PN-SE-h-sigmoid 與DIOU-NMS 模塊在提升模型精度的同時(shí)少量增加模型參數(shù),保證了模型的運(yùn)行速度。
表2 本文消融實(shí)驗(yàn)Table 2 Ablation experiments
油田場(chǎng)景中,背景復(fù)雜,因油田工人著裝為紅色所以易與紅色集裝箱、抽油機(jī)等設(shè)備混淆,且油田作業(yè)中,工人作業(yè)姿態(tài)復(fù)雜,例如在擰天然氣或石油閥門時(shí)側(cè)擰、下蹲等作業(yè)姿態(tài)。因此對(duì)油田中典型的復(fù)雜場(chǎng)景(輸油泵房、輸氣泵房、石油閥門、H2S 鉆井口、天然氣閥門、抽油機(jī)、油水分類器、鉆井平臺(tái)、電力高壓間、露臺(tái)/密閉泥漿池、原油倉(cāng)庫(kù))進(jìn)行視頻采樣(約30 000 張)。針對(duì)工人在遠(yuǎn)景攝像頭中目標(biāo)較小、數(shù)量密集、作業(yè)姿勢(shì)復(fù)雜等問(wèn)題,人工制作油田作業(yè)現(xiàn)場(chǎng)工人數(shù)據(jù)集20 000 張,覆蓋油田大部分復(fù)雜場(chǎng)景。
本文劃分訓(xùn)練集、測(cè)試集、驗(yàn)證集的標(biāo)準(zhǔn)為:覆蓋本油田下全部復(fù)雜場(chǎng)景、多種攝像頭傾角、多種人員作業(yè)姿態(tài)。Oilperson 數(shù)據(jù)集按照60%、20%、20%的比例進(jìn)行劃分。
Oilperson 實(shí)驗(yàn)結(jié)果如表3 所示,本文算法模型較其他模型,在大幅減少模型參數(shù)的情況下保證了檢測(cè)精度,證明了其對(duì)油田場(chǎng)景的有效性。實(shí)驗(yàn)結(jié)果顯示,在Oilperson 油田工人數(shù)據(jù)集中,因標(biāo)注的數(shù)據(jù)集覆蓋所有場(chǎng)景、多種作業(yè)人員姿態(tài)以及不同傾角和不同尺度的目標(biāo),所以各個(gè)檢測(cè)算法在本數(shù)據(jù)集上的檢測(cè)結(jié)果均有提升,驗(yàn)證了本文Oilperson 對(duì)油田工人檢測(cè)的有效性。本文檢測(cè)算法mAP 為89.9%,模型大小為7.65 MB,運(yùn)行速度為140 f/s,與表3 中其他輕量化模型算法相比,速度、模型參數(shù)量達(dá)到最優(yōu)。
表3 不同網(wǎng)絡(luò)在Oilperson 數(shù)據(jù)集上的評(píng)價(jià)值Table 3 Evaluation value of different networks on Oilperson dataset
圖11 的檢測(cè)結(jié)果顯示,各個(gè)場(chǎng)景的作業(yè)人員都有較高的檢測(cè)準(zhǔn)確率。針對(duì)遠(yuǎn)景小目標(biāo),對(duì)比其他輕量化算法具有較好的檢出率,驗(yàn)證了本文數(shù)據(jù)集的有效性以及本文算法的魯棒性。
圖11 油田不同場(chǎng)景的檢測(cè)效果Fig.11 Detection effect of different scenes in Oilfield
將生成的模型經(jīng)過(guò)TensorRT 進(jìn)行int8 類型的量化。經(jīng)過(guò)對(duì)500 張圖片進(jìn)行測(cè)試,模型平均處理一張圖片的時(shí)間為1.34 ms。
TensorRT[24]加速后的模型與射線法進(jìn)行結(jié)合,共同進(jìn)行區(qū)域入侵的判定,不同場(chǎng)景的入侵結(jié)果如圖12 所示。
在河北唐山冀東油田進(jìn)行危險(xiǎn)區(qū)域入侵算法的部署與測(cè)試:在不同攝像頭傾角、不同的目標(biāo)大小、不同的危險(xiǎn)場(chǎng)景下,結(jié)果圖12 所示。其中,圖(a)攝像機(jī)為俯角,劃定油罐車上方為危險(xiǎn)區(qū)域,當(dāng)工人進(jìn)入此區(qū)域時(shí)本算法判定為發(fā)生區(qū)域入侵;圖(b)攝像機(jī)為俯角,閥門的正前方區(qū)域設(shè)置為危險(xiǎn)區(qū)域,當(dāng)工人停留時(shí)間達(dá)到5 s 時(shí),算法判定為發(fā)生區(qū)域入侵(工人可能在正擰閥門,而正擰閥門是一種錯(cuò)誤的操作行為,當(dāng)閥門壓力過(guò)大時(shí),易導(dǎo)致閥門噴出致人受傷死亡);圖(c)攝像機(jī)為平角,加熱爐下方危險(xiǎn)區(qū)域禁止進(jìn)入,發(fā)生入侵;圖(d)攝像機(jī)為俯角,在近海區(qū)域發(fā)生翻墻行為,油田工人抄近路易造成危險(xiǎn),本算法判定發(fā)生區(qū)域入侵并顯示工人的行蹤軌跡。
圖12 區(qū)域入侵效果Fig.12 Regional intrusion effect
本文使用基于深度可分離卷積的線性瓶頸模塊與CSP 跨階段局部特征模塊級(jí)聯(lián)形成CSP-Inver(跨階段線性瓶頸模塊),大幅減少了模型參數(shù),提高了運(yùn)算速度。每個(gè)特征金字塔的特征融合層添加改進(jìn)的通道注意力模塊,提高了模型的特征提取能力。特征推理部分使用DIOU-NMS 減少了誤檢次數(shù)。經(jīng)過(guò)TensorRT 加速后,本文模型與射線法結(jié)合,在多種角度、不同景深信息的攝像頭下進(jìn)行部署應(yīng)用。部署結(jié)果顯示,本文算法在冀東油田作業(yè)現(xiàn)場(chǎng)應(yīng)用良好,有效地保障了油田施工人員的生命財(cái)產(chǎn)安全。