葉采萍,陳炯,馬顯龍,胡宗杰
(1. 上海電力大學電氣工程學院, 上海 200090;2. 云南電網(wǎng)有限責任公司電力科學研究院,昆明 650217)
隨著人們對電力需求的廣泛性不斷提升,變電站的數(shù)量和規(guī)模也在不斷擴張,作為電力系統(tǒng)中電能輸送和配送環(huán)節(jié)的重要一環(huán),變電站運維的安全性和可靠性至關重要[1-4]。但由于無人機技術發(fā)展迅猛,普及率高,極大降低了該類產(chǎn)品的使用門檻,導致無人機的“黑飛”現(xiàn)象嚴重,對變電站安全運行的不良影響逐漸增強,開展反無人機入侵的目標檢測逐漸成為研究熱點。
目前反無人機探測技術大多是利用各種傳感器收集到無人機的物理屬性(如光學特性、磁學特性、聲學特性)來發(fā)現(xiàn)目標對象。常用的無人機檢測技術主要包含雷達探測、無線電信號探測和光電探測[5]。但由于無人機體積?。?],傳統(tǒng)雷達對無人機探測存在一定局限,雷達對無人機探測時受到地面雜波干擾嚴重,雖然探測距離可達近10 km,但是識別性能較差。光電探測又稱無源光學成像技術,雖然成本低,但雜波和天氣對其影響很大。無線電信號探測是通過不同波長的紅外成像獲得圖像,然后對圖像進行分析,但大部分微小型無人機的熱學特征不是很明顯,需要和具有大范圍搜索能力的模塊配合使用[7]。針對這些問題,基于深度學習的目標檢測算法[8]為反無人機檢測提供了更多的解決方案。
基于深度學習的主流目標檢測算法主要分為兩類,一類是基于候選區(qū)域的雙階段算法,另一類是基于回歸分析的單階段算法[9]。雙階段算法[10]的“看兩眼”含候選框的提取和分類,與單階段算法的“只需要看一眼”相比,雖然在檢測正確率和精度上略占上風,但存在檢測速度慢的問題,而且目前對單階段算法引入損失函數(shù)、結(jié)構(gòu)優(yōu)化等舉措不僅能保證檢測的實時效果也能滿足實際應用的精度要求。目標檢測在反無人機檢測中具有重要的應用價值。雖然現(xiàn)在的計算機視覺技術發(fā)展迅猛,但針對無人機這類異物檢測的內(nèi)容尚少,且基于視覺信息的無人機檢測是一個非常具有挑戰(zhàn)性的任務,現(xiàn)階段主流算法的檢測成功率都在70%~80%之間。孫顥洋等人[11]結(jié)合深度殘差網(wǎng)絡和YOLOv3 提取目標類別信息和像空間位置信息。薛珊等人[12]將圖片的SIFT 特征作為支持向量機的輸入向量作為解決小樣本問題的解決方案。崔令飛等人[13]將輕量化算法與國產(chǎn)嵌入式計算平臺結(jié)合構(gòu)建出MobileNet-SSD 模型。雖然這些算法的設計與研究對于目前較為空白的反無人機視覺檢測技術作出了一定的貢獻,但普遍存在對微小信息檢測難、深層信息挖掘效果不佳的情況。
為了保證無人機檢測算法的檢測速度和檢測精度,本文旨在從輕量化主干網(wǎng)絡出發(fā),在保障實時檢測速度的同時提高模型對于物體小、移動速度快等特點的無人機目標的識別精度。本文主要貢獻如下。
1)考慮實際工程應用,基于YOLOv5 Nano 輕量化的基準模型進行改進,并進一步減少模型參數(shù)量和計算復雜度。
2)為了改善小目標識別能力差的缺陷,本文設計了四尺度檢測結(jié)構(gòu),在 YOLOv5結(jié)構(gòu)上增加一個基于淺層特征圖的檢測層,增加深層語義與淺層語義信息的融合,有效地提升小目標對象的檢測效果。
3)將通道注意力機制和多頭注意力機制用于專注目標對象識別,提高對于目標特征信息的提取能力,增強背景干擾下待檢測目標的顯著度。
4)考慮到網(wǎng)絡最深處下采樣倍數(shù)大極易導致獲取信息難度大的問題。因此,本文在C3 模塊內(nèi)嵌入Transformer 編碼器模塊從而加強像素塊之間的關聯(lián)性。
Ultralytics LLC 在2020 年提出的YOLOv5 是用Python 語言開發(fā)的YOLO 系列的最新模型,采用pytorch 框架的YOLOv5 具有非常輕量級的模型結(jié)構(gòu),相比YOLOv4 模型量級小了近90%,使檢測速度與精度達到較好的平衡。YOLOv3 和YOLOv4 的模型計算速度均受到網(wǎng)絡結(jié)構(gòu)影響,較深層級模型會消耗更多的計算成本。
因此,本文作者于2021 年推出了YOLOv5n(YOLOv5 Nano)用于支持移動端部署的最輕量化模型。YOLOv5n 是YOLOv5 系列中網(wǎng)絡深度最淺、訓練速度最快的網(wǎng)絡結(jié)構(gòu)。Nano 型號保持了YOLOv5s 深度倍數(shù)為 0.33,但將 YOLOv5s 寬度倍數(shù)從 0.50 減少到 0.25。YOLOv5n 擁有190 萬個參數(shù),相比于YOLOv5s 的750 萬參數(shù)量減少近75%,計算復雜度大幅降低,故模型大小也從7.5 M降低至1.9 M。模型具備了更加輕量化、精度更高、速度更快的優(yōu)勢。其整體網(wǎng)絡結(jié)構(gòu)如圖1所示。
在網(wǎng)絡結(jié)構(gòu)上,模型訓練時除了采用Mosaic數(shù)據(jù)增強方式豐富數(shù)據(jù)集,還增加了MixUp 和Copy-Paste[14]增強方式,通過隨機縮放圖片、數(shù)據(jù)上采樣等方式增加了訓練樣本的多樣性,以此提高了網(wǎng)絡魯棒性的同時,還能提升模型訓練效率。
為了能從圖像中提取出豐富的特征信息,YOLOv5n的主干網(wǎng)絡結(jié)構(gòu)延續(xù)CSPDarknet53結(jié)構(gòu),通過解析重復的梯度信息幫助特征在網(wǎng)絡路徑中的傳播,有效減少模型參數(shù)量。此外,YOLOv5n 在YOLOv5s的基礎上對主干網(wǎng)絡主要進行以下4處改動:1)Focus 模塊替換為Conv 模塊;2)將位于主干層P3 的C3 模塊的堆疊個數(shù)降低至6 個;3)SPP 模塊優(yōu)化為SPPF 模塊,并置于主干網(wǎng)絡末端;4)最后一個C3 模塊重新引入快捷方式。上述操作不需要引入過多的計算開銷就可以提高速度,幫助高層特征進行提取與融合。YOLOv5 Nano 的頸部網(wǎng)絡采用特征金字塔(feature pyramid network, FPN)和路徑聚合網(wǎng)絡(path aggregation network, PAN)相結(jié)合[15]的方式,F(xiàn)PN[16]自頂向下加強特征由底層向高層間的傳遞[17],PAN[18]則自底向上地傳遞位置信息,減少計算量,促進信息流的傳輸。
針對變電站場景下對無人機的檢測精度和檢測速度均需要較高要求的實際情況,本文提出基于YOLOv5n的改進算法。整體模型結(jié)構(gòu)框架上本文繼續(xù)延續(xù)原始版本的結(jié)構(gòu),主要是參考CSPDarknet53和路徑聚合網(wǎng)絡的結(jié)構(gòu)作為本文算法的主干網(wǎng)絡和頸部網(wǎng)絡。CSPDarknet53在分類和其他問題上具有更為強大的特征提取能力,并且其頸部設計用于更好地利用主干提取的特征,并在不同階段對主干網(wǎng)絡提取的特征圖進行再處理和合理使用。本文的整體架構(gòu)如圖2所示。
原始YOLOv5 框架中采用路徑聚合網(wǎng)絡結(jié)構(gòu)對多尺度特征進行融合[19],對小目標檢測采用的淺層特征圖是8 倍降采樣輸出的特征圖,為了更充分地利用圖片的語義特征來提高檢測網(wǎng)絡的檢測精度,本文對這部分結(jié)構(gòu)進行改進,如圖3所示。
圖3 新增檢測層后的特征提取模型Fig. 3 Feature extraction model after adding detection layer
本文將640×640 大小的圖像作為網(wǎng)絡輸入,新增一個更小的尺度來進行小目標檢測,同時仍保留原有的 3 種不同大小尺寸。經(jīng)過5 次卷積操作,其大小為2,步長(stride)為2,padding 為1 的下采樣操作后,獲得以下4 組不同尺度的特征圖:20×20、40×40、80×80和160×160。
對40×40 和80×80 兩個中尺度特征圖而言,同一級網(wǎng)絡的輸入節(jié)點和輸出節(jié)點之間加入殘差模塊,保證特征信息的傳遞的同時融合更多的特征。對新增預測尺度160×160 而言,在4 倍下采樣的部分開始提取特征,然后對8倍、16倍和32倍下采樣特征再進行上采樣,最后將相同尺寸的特征進行級聯(lián)從而輸出4倍降采樣的特征融合檢測層。
當前,新增特征映射尺寸為160×160,其含有更為豐富的淺層特征信息,對應原圖的感受野較小,檢測效果顯著提升,能有效緩解小目標漏檢情況。
對大尺度160×160 特征圖而言,由于其含有較多位置信息,感受野最小,故用來檢測小目標。同理,大尺度特征圖應配小尺度錨框,小尺度特征圖應用大尺度錨框進行預測框的回歸。本文采用四尺度特征融合結(jié)構(gòu),各尺度的特征圖大小與錨框尺寸的對應關系如表1 所示,當前錨框均在COCO2017數(shù)據(jù)集上,通過K-Means聚類算法統(tǒng)計得出。
表1 特征圖大小與錨框尺寸對應關系Tab. 1 Corresponding relationship between the sizes of feature drawing and anchor frame
本文受Transformer 編碼器結(jié)構(gòu)具有提取特征能力顯著和運行效率高的啟發(fā),將其從自然語言處理(natural language processing, NLP)領域應用于計算機視覺[20-21],以C3 模塊為基礎結(jié)構(gòu)嵌入注意力機制改進為C3TR模塊。
Transformer編碼器的核心在于注意力值計算和特征加權聚合,通過注意力值計算獲取兩塊像素圖(pixel)之間的關系,再用注意力值作為權重指導去聚合其他像素圖的特征,最終效果使得特征的表征更加顯著,信息量更多。本文的編碼器結(jié)構(gòu)與Attention is all you need[22]的編碼器結(jié)構(gòu)類似,使用了多頭注意力機制和全連接網(wǎng)絡(multi-layer perceptron, MLP)兩種殘差塊,其區(qū)別在于前置模塊采用了歸一化層Norm(normalization)并通過MLP替換了前饋網(wǎng)絡,Transformer編碼器結(jié)構(gòu)如圖4所示。
圖4 Transformer 編碼器模塊Fig. 4 Transformer encoder module
C3 模塊[23]原型為BottleneckCSP 模塊,以跨階段局部(cross stage partial, CSP)結(jié)構(gòu)為架構(gòu),上支路先通過一個1×1 的點卷積減少通道數(shù),再通過瓶頸模塊(bottleneck module)先降后升維并獲取特征,與下支路的Conv模塊并行后進行拼接(concat),再經(jīng)過一個Conv 模塊還原通道數(shù),從而實現(xiàn)分層特征融合時減少計算量。具體結(jié)構(gòu)如圖5(a)所示。
圖5 改進前后模塊對比圖Fig. 5 Comparison of module before and after improving
C3TR 模塊的結(jié)構(gòu)延續(xù)CSP 主體包含3 個標準卷積層的架構(gòu)。其優(yōu)化點方式如下。
1)原瓶頸模塊是通過先降維后升維的方式減少卷積層參數(shù)量,而C3TR 模塊嵌入3 層Transformer編碼器模塊替代原瓶頸模塊,保持原有結(jié)構(gòu)帶來的低推理量特性,計算復雜度更優(yōu)。
2)利用編碼器中的兩個主要模塊:多頭注意力機制和全連接層MLP。其中,多頭注意力機制不僅可以幫助當前節(jié)點注意當前特征,還可以獲得前后像素塊的相關性,而歸一化層和丟棄層(dropout layers)則有助于網(wǎng)絡更好地收斂,防止網(wǎng)絡過度擬合。C3TR模塊如圖5(b)所示。
本文在 YOLOv5 Nano 的基礎上只在主干網(wǎng)絡末端和預測部分使用C3TR 模塊,在底層特征圖上形成一個基于C3TR 的預測頭。由于網(wǎng)絡末端的特征圖分辨率較低,在低分辨率特征圖上應用C3TR預測頭可以有效地減少計算量和存儲成本。同時結(jié)合其他3 個尺度的預測頭,本文所提改進YOLOv5算法的四頭結(jié)構(gòu)可以更加有利于小目標物體的識別。此外,為了達到模型輕量化效果,只需在底層特征圖上應用一個C3TR 預測頭,過多增加預測頭雖然會讓該尺度特征圖對微小物體敏感,但相應的計算和儲存成本也會增加。因此,在模型的小目標檢測性能差距不大的情況下應用于深層網(wǎng)絡對模型整體而言更優(yōu)。
為了提高無人機目標的局部特征表達能力,本文在YOLOv5 網(wǎng)絡模型Neck 中的每一尺寸預測輸出前都加入了卷積注意力模塊(convolutional block attention module ,CBAM)[24],其結(jié)構(gòu)圖如圖6所示。
圖6 CBAM模塊結(jié)構(gòu)圖Fig. 6 Structure of the CBAM module
CBAM 模塊包括兩個注意力模塊,即一個通道注意力模塊和一個空間注意模塊[25]。首先,它通過通道注意模塊執(zhí)行全局最大池化(max pooling)和平均池化(average pooling),然后分別通過MLP 層添加結(jié)果并傳遞Sigmoid 激活函數(shù),從而提高特征圖的準確性。通道注意力模塊輸出權重參數(shù)張量MC(F)計算公式如式(1)所示。
式中:σ(?)為Sigmoid 非線性函數(shù);MLP(·)為MLP 層的計算函數(shù);Maxpool(·)為全局最大池化的計算函數(shù);Avgpool(·)為平均池化的計算函數(shù);特征圖F為尺寸為H×W×C的圖片R,以圖片R最左上角點為原點,水平向右為x軸,豎直向下為y軸,建立坐標系,其中H為R的高度,即縱坐標值,W為R的寬度,即橫坐標值,C為通道數(shù),圖片R作為RGB 圖像,其顏色空間有3 個通道,分別為:紅(red)、綠(green)、藍(blue);和分別為經(jīng)過最大池化和平均池化的輸出特征;W0和W1分別為MLP層的隱藏層權重和輸出層權重。
然后將生成的通道特征映射通過空間注意力模塊傳遞,利用空間子模塊提取內(nèi)部空間中的關系并計算出相應顯著特征,從而降低特征信息在網(wǎng)絡中跨連接問題造成的圖像丟失概率,其空間注意力模塊輸出權重參數(shù)張量MS(F)計算公式如式(2)所示。
式中:f7×7為7×7的卷積層;和分別為在空間注意力模塊中經(jīng)過最大池化和平均池化的輸出特征。
輸入特征圖F=RH×W×C。在經(jīng)過通道注意模塊和空間注意模塊后為MC=R1×1×C和MS=RH×W×1,該過程如式(3)—(4)所示。
式中:F′為經(jīng)通道注意力模塊特征變換的輸出結(jié)果;F″為經(jīng)空間注意力模塊特征變換的輸出結(jié)果。
融合該模塊后可以使模型更加關注關鍵處特征并抑制不相關的信息,以此能夠有效提高識別精度和識別效率的同時又能保持原基礎模型的檢測速度,實現(xiàn)小目標的快速檢測。本文引入了4 個卷積注意力模塊,分別位于每個特征融合的末端、預測輸出的前端。根據(jù)Sanghyun Woo所做實驗[26]可知,在不同的分類和檢測數(shù)據(jù)集上將 CBAM 集成到不同的模型中后模型的性能得到了很大的提高,這證明了CBAM模塊的有效性。在變電站的背景下檢測場景包含各類用電設備,監(jiān)控畫面中尋找小目標無人機存在一定困難,引入CBAM可以增強復雜背景中待檢測目標的顯著性,提升網(wǎng)絡抵抗混亂信息的能力,對檢測精確性也有一定程度的幫助。引入通道注意力模塊后其部分特征可視化效果如圖7所示。
圖7 特征圖可視化效果Fig. 7 Visualization effect of feature map
實驗環(huán)境使用Windows 10 操作系統(tǒng),使用NVIDIA GeForce 1080Ti顯卡進行模型訓練和測試,CPU 配置為Intel(R) Core(TW) i7-10700CPU,CUDA 版本為10.1, Pytorch 版本為1.11.0,Python語言環(huán)境版本為3.8。
目前公開的無人機數(shù)據(jù)集較少且尚無權威數(shù)據(jù)集。本文所用數(shù)據(jù)集主要由兩部分組成,一部分選用Real World 公開數(shù)據(jù)集,其中包含51 446 張圖像,另一部分選用Det Fly 公開數(shù)據(jù)集[27],包含13 798 張圖像,兩種數(shù)據(jù)集環(huán)境背景均包含天空、城鎮(zhèn)、田野和山脈,視角都包括前視圖、頂視圖和底視圖。本次實驗選用上述數(shù)據(jù)集作為模型訓練和測試的數(shù)據(jù)集,將樣本圖像大小統(tǒng)一調(diào)整為640×640。采用動量參數(shù)為0.937 的梯度下降法[28](stochastic gradient descent,SGD)作為優(yōu)化策略,總迭代次數(shù)(epoch)為100 次,迭代批量大小(batch_size)為16,初始學習率lr0=0.01。為了避免初始訓練時發(fā)生過擬合現(xiàn)象,本文在在前3 次迭代時使用動量參數(shù)為0.8 的Warm-up 方法進行預熱。Warm-up 結(jié)束后采用余弦退火方式對學習率進行更新,達到最終學習率0.0001。
為了客觀評價本文算法的優(yōu)勢,本文采用召回率(recall)、準確率(precision)、平均精度(average precision, AP)[29]和平均檢測處理時間(frames per second, FPS)[30]作為評價指標,各指標具體計算公式如式(5)—(8)所示。
式中:Recall為召回率;Precison為準確率;NTP為正確分類數(shù);NFP為錯誤分類數(shù);NFN為含有真值框但錯判的數(shù)量;AP為平均精度;p(r)為Precision-Recall曲線中橫坐標r對應的縱坐標p值。
式中:NFPS為平均檢測處理時間;Nframes為算法所處理圖像的幀數(shù);Ttime為處理全部幀圖像所消耗的單位時間,通常是1 s。
為驗證本文改進算法的有效性及輕量化水平,將本模型與YOLOv4[31]、MobileNet-YOLOv5[32]、YOLOv5s、 YOLOv5n 等主流算法作為對照,MobileNet-YOLOv5是以MobileNetv3[33]為主干網(wǎng)絡的算法,其余算法的主干網(wǎng)絡均為CSPDarknet53,以上算法均使用相同樣本和參數(shù)進行訓練,并與本文提出算法進行性能比較,實驗結(jié)果如表2所示。
表2 主流檢測算法模型性能對比Tab. 2 Performance comparison of mainstream detection algorithm models
從表2可以看出,本文算法與主流算法相比較,模型復雜度最低、檢測準確度最高,并且保持著較高的推理速度,對于計算能力較弱的設備更加友好。
從準確率(precision)和召回率(recall)來看,本文算法的準確率最高,可達90.2%;召回率為85.0%,較MobileNet-YOLOv5、YOLOv5s、YOLOv5n 模型分別提高了7.1%、2.4%和4.3%。雖然略低于YOLOv4 的召回率,但YOLOv4 過低的準確率會導致錯檢率的提升,且該模型實時性低,無法達到變電站安全運維要求。
從平均精度(AP)來看,本文算法的AP 為89.5%,與YOLOv4 相差不大,相比MobileNet-YOLOv5、YOLOv5s、YOLOv5n 模型分別提高了4.8%、1.5%和4%。
從檢測速度來看,本文模型FPS可達160幀/s,顯然高于其他模型,相比YOLOv4、MobileNet-YOLOv5、YOLOv5s、YOLOv5n算法每秒分別提高了64幀、26幀、4幀、2幀。實時監(jiān)測普遍要求檢測幀率大于25幀/s,本文算法可以達到實時目標檢測標準。
從輕量級角度來看,輕量級網(wǎng)絡應具備參數(shù)少、計算量小、推理時間短的優(yōu)勢。本文通過模型的參數(shù)量(params)和計算量(giga floating-point operations per second, GLOPs)具象化評估模型的計算空間復雜度和計算時間復雜度。MobileNetv3在圖像實時分類領域以輕量化著稱。但是從表2中可以看出,MobileNet-YOLOv5 雖然相比YOLOv4 和YOLOv5s在參數(shù)量和浮點運算數(shù)上大幅降低,但本文模型不僅比MobileNet-YOLOv5 復雜度低,平均精度還提高了4.8%。本文模型比原模型YOLOv5n 的190 萬參數(shù)量減少了6.8%,計算量減少了6.7%。
綜合來看,本文算法相比于其他算法,從綜合模型大小、算法復雜度、平均精度和檢測速度考慮,在保證檢測精度較高的同時兼顧了較快的檢測速度,實現(xiàn)了以較小的檢測精度換來模型復雜度的大幅降低,與其他算法相比具有一定的優(yōu)勢。
為驗證每個改進點對本文算法的貢獻,本文進行消融實驗。在相同實驗條件下以YOLOv5n 模型作為基準算法,在此基礎上逐步添加四尺度特征融合結(jié)構(gòu)、混合注意力模塊、改進C3TR 模塊的順序加入基線模型中。消融實驗結(jié)果如表3所示。
從表3 中可以看出,實驗2 新增一大尺度預測層,檢測平均精度稍微提升,但貢獻度不夠大。實驗3 在網(wǎng)絡中嵌入的混合注意力模塊和改進C3TR模塊,AP 達到88.2%,說明在本文算法中注意力機制的融合對網(wǎng)絡精度貢獻度高于結(jié)構(gòu)上的改進。實驗4 是在實驗2 的基礎上嵌入混合注意力模塊,可以看出,在四尺度特征融合結(jié)構(gòu)下引入混合注意力模塊可以增強模型對目標框的識別能力,提高模型檢測平均精度。最后將實驗3 與本文算法綜合分析,在精度近似的情況下召回率比其他實驗都有顯著提升,能有效緩解小目標檢測的漏檢情況,使得模型平均精度得到有效提升。
消融實驗整體證明,相較于基準模型,本文提出的3 處改進點對精確度和召回率都有所提高,在模型大幅減少計算量和參數(shù)量的同時對網(wǎng)絡性能提升也有一定幫助。
為了驗證優(yōu)化后算法在真實場景中的檢測效果,本文挑選一些具有代表性的無人機視頻進行檢測,檢測結(jié)果如圖8所示。
圖8(a)和8(b)分別為無人機在背景干擾時的原圖和檢測圖,圖8(c)和8(d)分別為無人機近距離的檢測圖,圖8(e)和8(f)分別為多架無人機遠距離超小目標時的原圖與檢測圖,圖8(g)和8(h)分別為較暗環(huán)境下無人機的原圖與檢測圖。可以看出,本文算法對不同拍攝角度下的復雜背景和超小目標都展現(xiàn)出較為優(yōu)異的檢測效果,還能有效抑制背景噪聲干擾,一般情況下人眼很難在這些圖中迅速找到無人機,但通過改進后的YOLOv5檢測模型能夠?qū)@些場景中的無人機快速準確識別。
當前無人機缺乏規(guī)范管控,且其目標小,速度快,成為目標檢測領域的難點。為提高變電站背景下對無人機的實時檢測能力,本文對YOLOv5模型的結(jié)構(gòu)改進,新增一個大尺度檢測層,提高模型對微小目標的檢測能力??紤]到特征在深層網(wǎng)絡中傳遞容易造成信息丟失的問題,對小尺度檢測層改進C3 模塊設計,引入Transformer 編碼器模塊從而增強像素信息之間的關聯(lián)性。在Neck 網(wǎng)絡集成入混合注意力模塊,一定程度上提升模型對于特征篩選能力。實驗結(jié)果表明,本文算法可同時兼?zhèn)漭p量化、高精度和實時性要求,可以更好服務于變電站安全運行場景。