郝 立, 張皓迪
(1.東南大學自動化學院, 江蘇南京 210096;2.東南大學吳健雄學院, 江蘇南京 211189)
高效準確的目標檢測對無人機作戰(zhàn)效能的發(fā)揮至關重要。隨著無人機作戰(zhàn)應用日趨廣泛, 無人機作戰(zhàn)環(huán)境亦日趨復雜, 尤其是夜間作戰(zhàn), 不僅要考慮自然環(huán)境, 還要考慮多種光源并存的復雜光照環(huán)境。由于傳統(tǒng)的以模式識別為主的檢測算法在復雜光照環(huán)境下魯棒性較差, 目前小目標檢測領域多采用以深度學習為主的檢測算法, 但其在實際應用中仍難以適應眾多光源的干擾。為解決復雜光照環(huán)境下小目標檢測問題, 本文以引入注意力機制的YOLOv5s-Se模型為基礎, 設計了基于Ghost模塊與形狀損失函數(shù)的YOLOv5s-Se_Point改進模型, 進一步提高了復雜光照環(huán)境下小目標檢測的準確性和效率。同時, 圍繞無人機夜間突防的典型作戰(zhàn)樣式, 設置了模擬實驗場景, 對YOLOv5s、YOLOv5s-Se和YOLOv5s-Se_Point等3種模型進行了實驗驗證, 結果表明, 本文提出的方法在準確率和檢測速度上具有優(yōu)勢。
小目標, 指的是小于32×32像素面積的物體。目前, 小目標檢測方法主要包括基于形狀與顏色信息的傳統(tǒng)視覺檢測和基于深度學習的檢測[1]。
傳統(tǒng)視覺檢測算法通過形狀和顏色特征識別目標, 常見的處理方法為通過大小不同的滑動窗口遍歷整張圖像, 并通過人工設計的特征提取算子對目標特征進行提取, 如SIFT特征算子[2]等。其基本流程如圖1所示, 具體過程主要包括數(shù)據(jù)采集、預處理、模式識別及后處理等。
從篩選標準看, 傳統(tǒng)算法并未充分考慮到光照條件的影響。針對復雜的光照條件, 傳統(tǒng)的處理方法主要包括基于光照不變量的處理, 如Retinex算法;基于數(shù)據(jù)增強的處理, 如直方圖均衡化等[3]。這些方法主要考慮場景和光源的顏色、亮度, 以便從明暗圖像中恢復信息。但當目標本身包含發(fā)光亮度大的光源或場景光照條件復雜等情況, 顏色信息往往具有偏差, 這對傳統(tǒng)的閾值分割算法造成了極大的挑戰(zhàn), 導致設計好的特征算子在環(huán)境特征發(fā)生變化時出現(xiàn)提取能力下降的問題。另外, 光照條件變化也會導致目標與場景的明暗關系發(fā)生改變。因此, 上述傳統(tǒng)的處理方法魯棒性較差, 可用深度學習算法來處理小目標檢測問題。
基于深度學習的目標檢測方法可分為兩類。一類是雙步目標檢測算法[4], 如R-CNN系列等。這些算法將目標檢測分為兩步, 首先生成Region Proposal(候選區(qū)), 再將Region Proposal送入網絡結構中提取特征, 并預測檢測目標的位置、識別檢測目標的類別。另一類是單步目標檢測算法[5], 如目前最流行的YOLO系列模型, 其官方系列模型已經從早期的YOLOv1發(fā)展到了YOLOv5。此類算法直接把圖片分成S×S個網格, 在網格的基礎上提取特征, 并由網絡輸出目標的位置和類別信息, 所以檢測速度很快。以YOLOv5s模型為例, 其網絡結構如圖1所示。該模型采用SSD金字塔結構進行多尺度學習, 并使用了不同大小的檢測頭和Anchor對不同尺度的目標分別檢測, 使得YOLOv5系列模型在小目標檢測性能上有了極大的提升。同時, YOLOv5系列模型作為端到端的模型, 使用簡單, 具有較好的可部署性, 在實際生產生活中應用越來越廣泛。
圖1 YOLOv5s模型結構Fig.1 Structure diagram of YOLOv5s model
相較于基于傳統(tǒng)視覺的目標檢測方法, 深度學習方法具有更好的魯棒性, 但是應用到復雜光照環(huán)境場景時依然不能完全滿足需求。復雜光照環(huán)境一般同時具有點光源、線光源以及面光源, 光源形狀復雜多變。由于小目標本身的特征就已不明顯, 經過各類光源的干擾后, 其信息進一步丟失, 使得網絡的檢測精度進一步下降, 誤識別率提高。為此, 前人通過引入注意力機制對YOLOv5s模型進行了改進, 稱為YOLOv5s-Se模型, 如圖2所示。
圖2 YOLOv5s-Se模型結構圖Fig.2 Structure diagram of YOLOv5s-Se model
注意力機制為20世紀90年代認知科學領域的學者根據(jù)人類處理信息機制所抽象出的數(shù)據(jù)處理方法。傳統(tǒng)特征識別假設各個特征的重要性是固定不變的, 而引入注意力機制后, 模型會根據(jù)對數(shù)據(jù)的學習, 不斷調整對各個通道特征的關注權重, 從而使模型達到更好的效果。
SE模塊[6]結構圖如圖2中注釋細節(jié)圖所示, 主要包括壓縮、激勵和Scale操作3個步驟。首先通過全局池化層(圖2 SE_Layer中的Global_Pooling模塊)使用平均池化, 即使用和輸入特征圖等大小的滑窗, 計算該滑窗內某通道圖層的平均數(shù)。對C個輸入通道計算后, 可將輸入特征圖壓縮為1×1×C的向量。之后, 通過2個全連接層(圖2中FC層)+激活層(圖2中ReLu、Sigmoid函數(shù))結構, 使用數(shù)據(jù)集訓練全連接層, 輸出對每個通道的重要性的預測結果, 得到1×1×C的權重參數(shù)向量。此后, 即可將該權重作用在W×H×C的特征圖上, 從而使模型更好地專注于特征圖某一通道, 盡可能地從復雜光照環(huán)境中提取出目標的特征。
直接使用YOLOv5s-Se模型雖然可以更好地在復雜光照環(huán)境中提取出目標的特征, 但其目標定位的精度有所下降。這是因為YOLOv5s模型通過回歸訓練出的數(shù)據(jù)在擬合時存在誤差, 還需要在損失函數(shù)中進一步增加其他指標以滿足定位需要。同時, 由于SE模塊引入了卷積參數(shù)和全連接層, 模型的尺寸也有所增加。因此, 本文將重點研究如何提高模型精確定位和減小模型尺寸。主要思路是基于YOLOv5s-Se模型引入形狀損失函數(shù)和Ghost模塊[5], 新的改進模型稱為YOLOv5s-Se_Point模型
為了提高模型對小目標的定位精確性, 首先在YOLOv5s模型的損失函數(shù)中引入形狀損失項。此方法可以使模型在訓練中更有效地利用目標的幾何形狀特征, 從而提高網絡的識別準確率。YOLOv5s模型提供的損失函數(shù)為
式(1)中, 1oi,bjj代表正樣本, 1ni,ojobj代表負樣本, BCE函數(shù)為二元交叉熵損失,ck為該類預測值為該類標簽值, GIOU函數(shù)[4]為對IOU函數(shù)的改進, 引入后可以對被遮擋目標進行更好地判斷,pc為預測類別概率。
應用式(1), 可以有效地對目標框的長寬進行擬合, 但未考慮目標的形狀特征, 故而亦可以通過形狀限制排除環(huán)境光源的干擾, 進一步增強檢測的準確性。
假設目標的幾何結構幾乎不隨視角移動發(fā)生變化, 在損失函數(shù)中追加定義形狀損失項。具體定義為識別區(qū)域的4個角點距離中心點的平方, 即
式(2)中,d*為anchor_point 4個角點與中心的真實距離, 即,d為當前4個角點與中心的預測值, 即分別為預測框寬高和對應anchor_point的寬高。此函數(shù)可以在損失函數(shù)第一項擬合目標框長寬的同時, 讓模型更注意目標框的長寬比。
由此, 定義新的損失函數(shù)為
將式(3)應用于模型訓練的推理過程, 充分地考慮了目標的形狀特征, 可提高識別的準確率。
為提高模型推理速度和減小模型尺寸便于部署, 本文使用Ghost模塊對模型內的卷積模塊進行替換。在一個充分訓練的網絡中, 需要通過傳統(tǒng)的通用卷積層使卷積操作形成較多相似的特征圖, 以達到對目標特征較為充分的理解;而Ghost模塊首先通過少量卷積運算生成基礎特征圖, 再通過對這些少量特征圖進行線性變換得到大量相似的特征圖, 在相同的計算復雜度下生成更多的相似特征圖, 提高了檢測速度并減小了模型大小, 使模型便于部署。
根據(jù)無人機典型夜間作戰(zhàn)環(huán)境和突防作戰(zhàn)樣式, 借鑒RoboMatser超級對抗賽實驗場地, 設計模擬實驗場景。場地分為紅藍方, 每一方都由基地、前哨站、哨兵及攻擊無人機組成, 通過遙控己方無人機, 按順序摧毀敵方前哨站和哨兵, 解除敵方基地防御態(tài)勢, 發(fā)射彈丸摧毀敵方基地。哨兵、前哨站以及基地都裝有裝甲板, 無人機主要通過識別裝甲板對目標實施攻擊。
選取比賽中一組滯空時間較長的作戰(zhàn)視頻作為典型圖片數(shù)據(jù)集, 共計883張圖片。該數(shù)據(jù)集包含6種標記目標, 分別為藍方前哨站(op_blue)、紅方前哨站(op_red)、死亡前哨站(op_dead)、藍方哨兵(st_blue)、紅方哨兵(st_red)、死亡哨兵(st_dead)。在該數(shù)據(jù)集中, 待識別的距離較遠的哨兵機器人滿足對小目標的小于32×32像素面積的定義。同時, 距離較近的前哨站滿足對大目標96×96像素面積的定義, 便于測試模型的泛用性。在光照環(huán)境中, 不同的機器人具有不同顏色的光源、不同的光源分布、與無人機不同的距離并實時運動, 改變無人機的朝向;同時各機器人的裝甲板本身具有自發(fā)光的特征, 可視為點光源。前哨站哨兵死亡后, 哨兵在軌道上做不規(guī)則運動, 可視為線光源。由于哨兵距無人機最遠飛行半徑較遠且目標較小, 且易與場地光源相互干涉, 嚴重影響視覺算法的識別;同時場地中還有眾多的燈光、裝飾燈條等光源, 使得場地成為光源形狀、強度和顏色都時刻在變化的復雜光照環(huán)境, 因此該數(shù)據(jù)集能較好地模擬復雜光源環(huán)境及識別難點, 滿足測試需求。
采用小批量隨機梯度下降法(SGD)分別對YOLOv5s模 型、YOLOv5s-Se模 型、YOLOv5s-Se_Ghost模型和YOLOv5s-Se_Point模型進行小目標檢測訓練。4個模型的小批量參數(shù)(batch_size)均設為16, 最大訓練次數(shù)設為100, 其余參數(shù)為保證消融實驗的對照特性均設置為默認值。
分別通過測試精度P(precision)、召回率R(Recall)、各類別AP的平均值(mAP)及F1曲線來評價各模型的性能。其中AP為P對R的積分, 取各類AP的平均值mAP;F1是在P與R之間尋找較為平衡的值給出的綜合評價指標, 用來評價檢測模型的整體性能。F1值越大, 算法性能越好。F1曲線是以F1值為縱坐標, 置信度閾值為橫坐標所畫出的曲線。
以YOLOv5s、YOLOv5s-Se、YOLOv5s-Se_Ghost模型作為對照組進行消融實驗, 對比YOLOv5s-Se_Point模型的改進效果。本次實驗得到的F1曲線如圖3-5所示, 依次為YOLOv5s模型、YOLOv5s-Se模型和YOLOv5s-Se_Point模型。結合圖3-5和表1可以看出, 4種模型的mAP都達到了0.93以上, 說明該模型對6種目標均具有較好的識別精度, 其中YOLOv5s-Se_Point模型更是可以達到0.963。但是從圖表中可以發(fā)現(xiàn), 使用YOLOv5s模型檢測時, 容易出現(xiàn)誤識別現(xiàn)象, 包括誤識別背景光源為目標、重復識別等。使用YOLOv5s-Se模型后, 相比YOLOv5s模型, 模型的尺寸有所提升。這是因為模型額外引入了Se模塊的參數(shù), 但其在模型mAP及置信度方面有了較好的綜合表現(xiàn)。引入Ghost模塊后, YOLOv5s-Se_Ghost模型相比YOLOv5s-Se模型雖然mAP下降了0.4%, 但是可以在幾乎不影響精度的前提下提升了3.4%的推理速度, 減小了25.2%的模型尺寸。同時, 引入了形狀損失函數(shù)的YOLOv5s-Se_Point模型相比YOLOv5s-Se_Ghost模型準確率提高了1.6%, 但在尺寸上幾乎沒有變化, 因此在檢測速度上變化也不大。
表1 模型改進前后性能比較Tab.1 Performance comparison of the model before and after improvement
圖3 YOLOv5s模型F1曲線Fig.3 F1 curve of YOLOv5s model
綜上所述, 本文給出的YOLOv5s-Se_Point模型能夠在復雜光照環(huán)境下有效地改善小目標檢測的精度和速度, 且模型尺寸顯著降低, 適合部署于小型設備在實際場景中的應用。
圖4 YOLOv5s-Se模型F1曲線Fig.4 F1 curve of YOLOv5s-Se model
圖5 YOLOv5s-Se_Point模型F1曲線Fig.5 F1 curve of YOLOv5s-Se_Point model
本文針對復雜光照環(huán)境下無人機的小目標檢測問題, 以引入注意力機制的YOLOv5s-Se模型為基礎, 通過引入形狀損失函數(shù)和Ghost模塊, 設計了基于Ghost模塊與形狀損失函數(shù)的YOLOv5s-Se_Point改進模型, 通過模擬實驗場景進行驗證, 表明本文提出的方法可以有效地改進復雜光源下以YOLO為例的目標檢測算法的缺陷, 提高算法的魯棒性, 實現(xiàn)對小目標的有效識別。未來本文的研究將集中在提高模型的泛化能力方面, 通過選取更加接近于實際場景的數(shù)據(jù)集, 不斷豐富訓練樣本, 使模型更加適用于真實場景。