張子林,喻松林,王 戈,劉 彤
(華北光電技術研究所,北京100015)
目前探測成像的方式主要分為基于可見光的探測成像、基于紅外系統[1]的探測成像和基于雷達的探測成像?;诳梢姽獬上竦哪繕思y理清晰、特征明顯,目前大部分的目標檢測算法研究都是基于可見光的,雖然基于可見光目標檢測技術較為成熟,但難以滿足部分軍事領域全天候的環境需要,如航空領域;雷達能夠獲得圖像更為精細的特征信息,但隨著“電子對抗、反輻射導彈、超低空突破防守和新一代隱形戰斗機”等反偵察技術的不斷提出和改進,這嚴重影響了基于雷達在目標檢測識別的應用;而紅外探測成像具有很強的抗干擾能力、可以無視大部分常規復雜地形空間、并能進行全天工作,可以很好地提供穩定可靠的目標圖像,具有先天的目標檢測識別優勢,隨著紅外探測技術發展,該技術在機載、艦載等領域獲得了廣泛的應用。
目標成像大小往往隨著探測的距離成反比,距離越遠,成像的目標就越小,輪廓就越小,能夠更快更好的檢測到紅外小目標更是有利于快人一步發現對方。
國際光學工程學會定義弱小目標局部信噪比<5 dB,圖像中的像素大小 ≤ 9×9,其所占一幀圖像大小為 256×256 的 0.12 %?;诩t外成像的弱小目標往往缺失色彩、特征模糊,可利用的信息更少,其次,紅外圖像通常會受到強背景雜波和噪聲的影響,因此信雜比和信噪比較低,檢測難度更大。傳統的紅外弱小目標檢測算法針對紅外小目標特性往往采用濾波、局部對比度測量(LCM[2]、MPCM[3]等)等單幀和基于序列的方法去分割圖像中的噪聲與小目標。目前已經形成了良好的體系,但缺點明顯,沒有很好的魯棒性同時難以滿足實時檢測,而隨著深度學習的火熱興起,基于深度學習的目標檢測算法具有斷層式的準確率和良好的實時性。目前深度學習目標檢測算法主要以RCNN[4]系列為代表的兩階段檢測算法與YOLO[5]、SSD[6]代表的一階段檢測算法組成,當然也有一些衍生的基于Transformer和基于關鍵點的一些目標檢測算法也在逐漸嶄露頭角。
YOLO系列算法作為單階段的目標檢測算法,在具有較高的的檢測準確率的同時具有較高的幀率,可以滿足實時性。自提出以來便被研究人員應用于各大領域。在紅外領域中,劉彤[7]提出Darknet-53骨干網絡結合SPP進行特征提取的方法對YOLOv3改進,使其局部特征能夠與全局特征融合,提高了特征圖的表征能力,但準確率較低,且僅針對紅外船舶場景;He[8]針對機載紅外弱小目標提出了IRI-CNN檢測算法,有效降低了虛警率,但難以滿足實時性。Yang,R[9]針對小目標對YOLOv5算法改進,優化了目標錨框和引入注意力機制提高了檢測精度,但依舊低于YOLOv7的實驗結果。
針對以上不足,本文選擇YOLOv7[10]作為目標檢測的基礎模型,對其進行改進以此提高對機載紅外弱小目標檢測的準確率。作為當前最為先進的YOLO系列的目標檢測算法,YOLOv7自公布以來,就迅速被實驗人員應用于各大領域。無論是檢測精度還是檢測速度都超越了已知的檢測算法。本文主要內容主要包括:
(1)對YOLOv7網絡結構進行修改,對其新增一個特征層獲得尺寸較大的特征圖,新增的特征層下采樣較少,但分辨率高,有助于網絡模型學習弱小目標的特征。
(2)針對紅外弱小目標尺寸占比過小及信息特征較少問題,引入注意力機制,激勵網絡模型更加關注需要學習的特征信息。
(3)原先使用損失函數CIOU替換為EIOU[11]損失函數,使其網絡模型能夠更快的收斂。
作為目前最為先進的單階段目標檢測模型,但YOLOv7網絡結構和前幾代幾乎沒有變化。按照功能劃分主要包含三個模塊,骨干網絡(Backbone)、頸部網絡(Neck)以及頭部網絡(Head)。
Backbone的主要作用是進行對輸入的圖像進行特征提取,并最終獲得三個特征層。Backbone網絡結構主要由CBS(Conv卷積+BN歸一化+SiLU激活函數)模塊、MP-1模塊與YOLOv7獨有的ElAN模塊組成,ELAN模塊結構圖如圖1所示。

圖1 ELAN網絡結構
YOLOv7設計的ELAN(E-ELAN)模塊通過考慮最短梯度路徑使得可以堆疊更多 Block,在不改變原始框架梯度傳輸路徑的基礎上,通過使用組卷積來增加特征的基數,并使用無序合并基數的方法組合出不同的特征。這種方式可以增強通過不同特征圖學習的特征,并改進參數和計算的使用,提高了網絡的學習能力。
Neck主要包含了SPPSCP模塊和Panet模塊,SPPSCP模塊稱為特殊的SPP結構:使用了具有CSP結構的SPP擴大感受野,SPPSCP模塊主要作用是進行特征圖融合,豐富特征信息,有助于檢測出尺寸較小的目標物體。YOLOv7中依然使用了Panet結構,不僅對特征進行上采樣實現特征融合,還會對特征再次進行下采樣實現特征融合。
Yolo Head是YOLOv7的分類器與回歸器,通過Backbone和FPN獲得三個加強過的有效特征層,每一個特征層都有寬、高和通道數,此時可以將特征圖看作一個又一個特征點的集合,每個特征點上有三個先驗框,每一個先驗框都有通道數個特征。Yolo Head所做的工作就是對特征點進行判斷,判斷特征點上的先驗框是否有物體與其對應。YOLOv7使用的解耦頭和以前的版本一樣,把分類和回歸都放在一個1×1卷積里實現。除此之外,YOLOv7借鑒了RepVGG的思想,在強化后的特征層輸入Head之前添加了新設計的RepConv模塊來進行輔助訓練,RepConv的加入不僅降低了網絡的復雜度,而且網絡的預測性能沒有出現下降。
因此,整個YOLOv7網絡所作的工作就是-“特征提取-特征加強-預測先驗框對應的物體情況”。利用FPN特征金字塔,獲得三個加強特征,然后利用這三個shape的特征層傳入Yolo Head進行分類與回歸獲得預測結果。
參考趙元龍[12]的針對小目標的修改網絡設計,本次的網絡設計也同樣增加一個特征層以此來提高對小目標檢測效果。除此之外,成浪對Backbone網絡結構引入注意力機制,但經過實驗發現如果把注意力機制添加到骨干網絡中會影響初始化權值,進而導致檢測準確率問題。故本文考慮把注意力機制添加到骨干網絡輸出的特征層后,以期來提高模型的準確率與穩定性。此次改進的網絡結構圖如圖2所示。

圖2 改進后的YOLOv7網絡結構
如圖所示,新增特征層(160×160)獲取尺寸較大的特征圖,由于感受野較小,故位置信息豐富,有助于提高對紅外弱小目標的檢測效果;然后對骨干網絡Bakbone輸出的特征層引入注意力機制CBAM[13],后面特征層進入Head之前加入通道注意力機制ECA[14],引入注意力機制模塊使其網絡更能關注于小目標特征,增大小目標的信息權重以此來提高網絡模型對小目標的檢測性能。
紅外弱小目標尺寸所占圖像比例較小,所以在卷積訓練的時候不可避免會造成目標信息不明顯問題,所以引入注意力機制,使模型更加關注感興趣的區域和較為特殊的區域。
3.2.1 CBAM
CBAM將通道注意力機制和空間注意力機制進行一個結合,相比于SENet只關注通道的注意力機制可以取得更好的效果。其實現示意圖如圖3所示,CBAM會對輸入進來的特征層,分別進行通道注意力機制的處理和空間注意力機制的處理。

圖3 CBAM網絡結構
通道注意力機制對輸入進來的單個特征層同時進行最大池化和平均池化操作,然后把兩者池化后的的結果放入共享的全連接層(即多層感知機)進行處理,然后對輸出的結果進行相加,然后使用激活函數sigmoid得到(0,1)之間通道注意力特征權重系數,最后再和輸入的特征進行相乘得到空間注意力模塊所需的特征。
空間注意力機制對前面通道注意力機制獲得的特征依次進行最大池化、平均池化和卷積運算,然后經過sigmoid激活函數,得到空間注意力特征權重系數,同樣對系數與輸入特征圖像進行相乘操作,生成最終的特征。
3.2.2 ECA
ECANet按照實現形式屬于通道注意力機制中的一種,網絡結構設計如圖4所示,它是一個非常輕量級的即插即用的模塊。

圖4 ECA網絡結構
ECANet在SENet基礎上進行改進,Wang Q實驗發現對特征圖進行通道壓縮會影響學習通道之間的依賴關系,卷積具有良好的跨通道信息獲取能力,故ECANet提出用1維卷積高效實現了局部跨通道交互,避免了降維,有助于學習有效的通道注意,提高了準確度。
目標檢測的有效性在很大程度上取決于損失函數的定義,損失函數的良好定義將為模型帶來顯著的性能改進。最初始的損失函數用于測量兩個任意形狀(體積)A,B?S∈Rn之間的相似性的IOU通過以下公式獲得:
(1)
不過我們通常使用公式2進行計算(因此IOU損失函數有如下定義:)
(2)
YOLOv7使用CIOU作為損失函數,CIOU損失函數主要考慮了三個重要的幾何因素,即重疊面積、中心點距離和縱橫比。CIOU損失函數定義如下式所示:
(3)


圖5 EIOU損失計算示意圖
CIOU Loss雖然考慮了邊界框回歸的重疊面積、中心點距離、縱橫比。但是通過其公式中的v反映的是縱橫比的差異,而不是寬高分別與其置信度的真實差異,所以有時會阻礙模型有效的優化相似性。針對這一問題,YIFAN在CIOU的基礎上將縱橫比拆開,提出了EIOU Loss。
EIOU的懲罰項是在CIOU的懲罰項基礎上將縱橫比的影響因子拆開分別計算目標框和錨框的長和寬,該損失函數包含三個部分:重疊損失、中心距離損失和寬高損失,前兩部分延續CIOU中的方法,但是寬高損失直接使目標盒與錨盒的寬度和高度之差最小,使得收斂速度更快。其定義的損失公式如下:
(4)
(5)
其中,hw和hc是覆蓋這兩個盒子的最小圍框的寬度和高度。公式(4)將損失函數分為三部分:IOU損失LIOU、距離損失Ldis和方向損失Lasp。通過如此定義,既保留了CIOU損失的盈利特征。同時,EIOU損失直接減小了目標盒和錨盒的寬、高差,收斂速度更快,定位效果更好。
使用本單位紅外設備地對空采集了飛機數據,并使用labelimg軟件自行標注6000張,標注的圖片類型如圖6所示,采集的飛機目標為單一目標,目標尺寸很小且沒有輪廓和紋理信息。考慮到采集的數據較少及背景較為單一,僅對此紅外數據進行訓練很容易過擬合,故本次實驗選取第二屆全國“空天杯”創新創意大賽的“紅外弱小目標檢測跟蹤”賽道的部分數據集來擴充本次實驗數據集,如圖7所示,選取的對地紅外弱小目標和采集的飛機目標較為相似,不僅背景復雜豐富,而且數量較多有助于提高神經網絡模型泛化性。

圖6 機載目標數據

圖7 空天杯數據
兩個數據集具體細節如表1所示,空天杯的數據集選取了10000張作為擴充數據,圖片尺寸為640×480,而使用紅外探測采集的圖像尺寸640×512,雖然尺寸不一,但放入神經網絡前會統一resize為640×640。

表1 數據集目標信息
本實驗所需要的實驗環境如表2所示。

表2 訓練環境配置

表3 TP、TN、FP、FN的定義
在算法模型評價指標方面,主要選擇采用圖像信噪比(SNR)、準確率(Precision)、召回率(Recall),平均精度均值(mean AP,mAP),以及每秒檢測圖片的幀數(frames per second,FPS)作為評價指標。
了解準確率(Precision)、召回率(Recall)之前我們需要了解TP、TN、FP、FN的含義,如表2所示。
(1)在局部信噪比不小于3下的檢測率和虛警率,信噪比的定義如下:
(6)
其中,μ_T表示目標的灰度均值;μ_B表示背景的灰度均值;σ_B表示背景的標準差,由于整幅圖像中不同區域的背景灰度差異較大,所以使用局部信噪比對背景的起伏程度進行描述,局部選取的背景尺度長和寬均為目標的3倍。經公式計算可得,機載紅外圖像的SNR約為3.5 dB。
(2)準確率的定義如下所示:
(7)
(3)召回率的定義如下所示:
(8)
(4)AP的定義如下:
這里使用插值法來計算AP,選取固定的K={0,0.1,0.2,…,1.0} 11個閾值,K為閾值索引,PR曲線下的面積表示召回率0~1的平均精度。其中PR曲線下面積越大表示模型的性能越好,AP的定義如下式所示:
(9)
(10)
Pintep(r)表示取第r個閾值所對應的樣本點之后的樣本中的最大值。
(5)mAP就是所有類別AP值的平均值,公式如下式所示:
(11)
我們通常設定多個 IOU 閾值(0.5~0.95,0.05為步長),在每一個IOU閾值下都有某一類別的 AP 值,然后求不同 IOU 閾值下的 AP 平均,就是所求的最終的某類別的AP值。
訓練過程epoch為300輪,初始學習率Lr=0.01,并使用Adam優化器優化。Epoch前70輪默認使用Mosaic數據增強。訓練過程中的損失函數結果如圖8所示,各算法在紅外數據集上的表現如表4所示。

表4 不同算法在紅外數據集上的表現

圖8 損失函數迭代對比
由圖8可以看到,在網絡模型訓練中,本文使用得EIOU損失函數明顯比原YOLOv7使用的CIOU損失函數收斂的更快更小,在Epoch為220輪次時,EIOU便基本收斂穩定,而CIOU損失函數需要250輪次才達到穩定。
各算法在紅外數據集上的表現如表4所示,在模型評估中,改進后的YOLOv7算法相較于原始算法在檢測精度上有所提升,對紅外弱小目標檢測的準確率對測試集可以達到98.50 %,mAP可以達到98.49 %,相較于原始算法提升了1.24 %,參數量也僅僅增加了2.515 M,FPS減少了5,數據說明,改進后的YOLOv7算法更適合紅外弱小目標檢測場景。圖9(a)、(b)為檢測效果對比圖。

圖9 算法對比圖
針對機載紅外弱小目標檢測困難的問題,本文在YOLOv7算法模型的基礎上進行改進,對骨干網絡進行修改新增一個淺層特征層獲取更多位置信息,然后對骨干網絡Backbone輸出的特征層引入CBAM注意力機制以及在輸入Head之前引入ECA注意力機制以此來提高弱小目標的權重;并使用EIOU損失函數替換原損失函數,解決了CIOU縱橫比的模糊定義,提高了回歸精度和加快模型收斂。在目標檢測性能測試中,改進后的YOLOv7算法平均檢測精度在損失較少幀率的情況下可以達到98.49 %,提高了1.24 %,驗證了模型的準確性,所以本文的實驗對機載紅外弱小目標檢測領域具有一定的參考意義,有助于后續基于人工智能的目標檢測算法部署到機載設備上去。