朱興動,汪 丁,范加利,王 正,黃 葵
1.海軍航空大學,山東 煙臺 264001
2.海軍航空大學 青島校區,山東 青島 266041
隨著計算機視覺技術的迅速發展,相對成熟的理論促進了工程應用的快速落地,圖像檢測技術在交通以及工業制造領域都已經得到了廣泛應用,也是裝備自動化的核心技術之一[1]。航母作為軍事大國的象征,其戰爭實力和威懾力都得到了世界各國的認可,作為海上艦載飛機起降平臺,其特點主要表現為艦面空間有限,人員及設備繁多,電磁環境復雜多變,因而傳統方法很難滿足各種環境下目標檢測與識別的要求。艦面多類目標的檢測與識別是艦面保障工作的數據入口之一,將為艦面目標定位以及路徑規劃提供目標信息支撐,對保障艦面裝備人員安全和提升艦載飛機的調運效率有重要的意義[2]。
傳統的目標檢測算法都采用人工設計的特征進行檢測,存在較多短板,不僅在候選框的選取上采取低效的枚舉方法,而且需要大量的時間和算力。面對場景復雜多變的艦面,人工設計的特征在此類場景下的魯棒性較差,難以滿足要求。近年來,深度學習算法在圖像目標檢測領域得到了廣泛的應用。當前,滿足在復雜背景條件下檢測與識別要求的深度學習算法主要有R-CNN系列(region convolutional neural network),SSD 系列(single shot multibox detector)以及YOLO(you only look once)系列[3]。R-CNN系列是基于Two-Stage模式,首先產生目標候選框,然后再對候選框進行分類和回歸處理,這種模式精度較高,但同時每個候選區域進行特征提取會產生大量重復的運算,速度較慢,無法滿足后期動態目標檢測實時性的要求。YOLO 系列和SSD 系列都屬于One-Stage 模式,這類算法直接進行分類和回歸分析,檢測速度更快,如圖1所示,但SSD系列會隨著圖片規格的增加運行效率顯著下降。在實際應用中,往往要求在精度不太低的情況下同時滿足實時檢測的需要,因此YOLO系列使用得更加廣泛。

圖1 YOLOv3算法檢測流程Fig.1 Detection process of YOLOv3 algorithm
YOLO 系列算法是Redmon 等人[4]提出的目標檢測算法,目前以發展到V4 版本。YOLOv3 的網絡結構主要是有骨干網絡(Darknet-53)和特征金字塔網絡(FPN)網絡以及輸出層[5]。其中,Darknet-53網絡是V2版本中Darknet-19 的替代品,采用使用CNN+BN+LeakyReLU(convolutional neural networks,batch normalization,LeakyReLU)的卷積塊代替池化操作實現降采樣,構成了一個53 層的卷積神經網絡,提取出13×13、26×26 及52×52尺度的特征層,可以在實現降低計算量的同時減少了池化產生的低級特征的丟失。


在網絡結果輸出時利用非極大抑制算法對輸出的預測結果進行篩選,對每一個預測中心僅保留置信最高的唯一候選框作為最終的目標檢測框,并在圖像上繪制出目標的預測框,網絡結構如圖2所示。

圖2 YOLOv3算法結構Fig.2 Structure of YOLOv3 algorithm
YOLOv3算法已經是一款較為成熟的算法,其在檢測速率和準確度上都有較好的成績。但YOLOv3 原作者檢測的目標主要是汽車、人以及街道等目標和背景,而對于特定的目標識別效果并不能達到原文效果,因此仍需要根據目標和背景等場景信息進行針對性的增強。艦面場景復雜且存在飛機、車輛以及人員等多個種類,各類型號也存在差異,而且作為移動平臺對光照等環境因素的魯棒性要求較高。根據艦面目標的分布情況,將場景分為單一目標,多目標以及密集目標,如圖3所示。通過實驗分析,YOLOv3算法在單一目標識別上基本正確,在多目標識別上會出現遠處目標丟失的情況,而在密集目標上出現了大量漏檢和誤檢的情況。因此,本文針對檢測艦面復雜場景下的多類目標做了具體增強。

圖3 三類場景Fig.3 Three kinds of scenarios
深層神經網絡訓練需要大量訓練數據才能取得相對較為理想的效果,但在艦面數據樣本有限的情況下,可以通過數據增強豐富樣本的信息,避免訓練時出現過擬合,提高模型的魯棒性和泛化能力[8]。
數據增強主要是通過對圖片的大小、比例、亮度、對比度、飽和度以及色調等參數進行調整,利用不同形狀和色彩的圖像降低模型對實驗條件的依賴性,提高模型在不同環境下的檢測能力[9]。常用的數據增強方法有CutMix 和Mosaic 等。CutMix 的處理方式比較簡單,在基本的圖片變換基礎上,隨機生成一個裁剪框Box,將黑色遮擋框填入該區域形成新的樣本,計算損失時同樣采用加權求和的方式進行求解,如圖4(c)所示。Mosaic方法是一次讀取4 張圖片,分別對每張圖片進行翻轉、縮放和色彩變換等操作后,將4張圖片和圖中的標注框進行組合,在同一圖片中實現多背景下多目標的組合,如圖4(b)、(d)所示。在Mosaic 數據增強方法中,在原數據集的范圍內隨機選取一張圖片,并將其后的3張圖片一起進行圖像處理后拼接,該方法存在隨機組合不充分及重復選取等問題。

圖4 數據增強效果Fig.4 Effect of data argumentation
本文針對艦面監控區域背景類別多、環境變化大、目標互相遮擋較為嚴重的情況,提出了一種數據增強的組合方法,同時注重背景復雜和目標遮擋兩個方面。

其中,Ai表示第i張增強的圖,Sq表示q第類數據集,q1和qn表示第q類數據集的始末序號,Bk表示圖像變換組合,k表示變換組合方式。
在網絡模型讀取圖片時,通過改進圖片選取方法,根據設定圖片的組合方式,從數據集中獨立選取四張圖片,翻轉、縮放、色域及遮擋變換后組合成一張新的圖片送入網絡中訓練,如公式(2)所示。將目標根據類型分為q類數據集,在訓練時可以根據需要設定增強的目標類型,也可以對所有類目標進行增強,如公式(3)所示。
通過改進數據增強策略,使圖片的選取方式、變換方式以及組合方式都得到了豐富,以增強網絡模型的魯棒性,也是解決小樣本訓練的一個有效途徑[6]。
由于各類艦面目標尺寸及比例差異都較大,而YOLOv3 算法中原始設定的先驗框尺寸只要是面向行人和汽車等通用目標,而無法滿足艦面目標檢測的要求[10]。因此需要使用K-means 聚類算法[11]對艦面目標數據集進行聚類分析,得到與之適配的先驗錨框尺寸(anchor box)。
先驗錨框是從訓練集的所有ground truth box中統計出來的在訓練集中最經常出現的box 形狀和尺寸。YOLOv3算法沿用了YOLO算法中的anchor box方法,但是將數量增加到9個,輸出3個不同大小的特征圖,從小到大分別對應深層、中層和淺層的特征。特征圖的尺寸越小,感受野越大,利于檢測大尺度物體,而淺層特征圖相反,感受野較小,利于檢測小物體。通過聚類分析調整anchor box 的尺寸大小從而可以使網絡在訓練時具有更快的收斂速度,用于初始化預測邊界框的寬度和高度,同時也可以提高目標檢測的精度[12]。
在VOC 數據集中,標注完成的圖片目標主要有括xmin、ymin、xmax、ymax這4 個位置參數,由此可以獲得目標的寬w與高h,如公式(4)和(5)所示:

對數據集中所有的目標信息進行遍歷,獲取全部寬高信息后,隨機選取K個點作為聚類分析的初始聚類中心,本文中K值根據需要設定為9。然后將計算每一個目標到每一個聚類中心的距離。在算法中利用目標和聚類中心的IoU 值衡量距離關系[13],當IoU 的值越大時,表示距離d越小,如公式(6)所示:

依次比較每一個對象到每一個聚類中心的距離,并將對象分配到距離最近的聚類中心所在類簇中,至此形成了9 個類簇。然后將每一個類簇中所有對象的各個維度的均值設為新的類簇中心,即為下一輪聚類的中心,如公式(7)所示:

其中,yt表示第t個聚類的中心,| |Ct表示第t個類簇中對象的數量,xi是Ct類簇中的第i個對象,t表示寬與高兩個屬性。
根據以上順序繼續迭代,進行目標點的分配和類簇中心點的更新,直至類簇中心點的變化趨于收斂,或者達到指定的迭代次數。
本文對艦面數據集聚類分析得到了9個聚類中心,歸一化后的聚類分布如圖5 所示。聚類分析中因為初始聚類中心的不確定性等因素,每次聚類分析的結果并不一致。為消除隨機初始聚類中心帶來的波動,因此在實驗中對數據集進行了10 次聚類分析,剔除波動較大的數據后取均值,數據平均的總體方差控制在0.1以下,得到了較為穩定的結果,如圖6 所示,與目標的匹配精度由原始anchor box的73.61%提高到78.94%。

圖5 聚類分布Fig.5 Clustering distribution

圖6 平均IOU變化Fig.6 Average IOU changes
經過聚類分析后得到了9組寬高數據,按照聚類框的大小分為3個組,特征圖為13×13時感受野最大,因此采用最大的anchor box尺寸,特征圖為52×52時感受野最小,因此采用最小的anchor box尺寸,對應結果如表1所示。然后將anchor box 尺寸根據對應特征圖的大小進行調整后便可以更新到模型參數中進行訓練。

表1 調整后的先驗框Table 1 Adjusted prior box
相對于艦面單目標和多目標的檢測,密集場景的出現給算法帶來了新的問題。當固定區域的目標增加到一定數量時,尺寸和形狀不同的目標勢必會出現互相遮擋的問題[14]。傳統的YOLOv3 算法在檢測框選擇上采用的是非極大抑制(non-maximum suppression,NMS)方法[15],當存在被遮擋物體時,算法會識別其為重疊框并將其置信度歸零,導致其無法檢測出,如公式(8)所示:

其中Si表示當前檢測框的得分,Nt為IOU的閾值,M為得分最高的檢測框,bi表示當前檢測框,σ為人工設定的參數。
在使用軟高斯函數的時候,σ參數的設定將會決定算法對重復框的懲罰強度。在目標單一時,較小的σ參數會有較好的效果,但在復雜的遮擋情況下,過小σ同樣會將遮擋目標的得分懲罰至閾值以下導致丟失[17]。為了解決單一目標和復雜目標狀態下不同的σ參數抑制效果不同的情況,文中設定一個線性函數,根據圖像中的目標密集情況進行對參數調整,使其在簡單情況時具有較好的抑制能力,在復雜目標情況時減少因過度抑制導致的目標丟失,如公式(11)所示:

其中σ0為初始參數,N為該類目標的檢測框數量,ω為比例系數。
在圖7(a)中,圖片中間plane1型灰色目標及右上角plane1型灰黃色目標沒有被識別出來,在經過改進的非極大抑制處理后,重疊框被懲罰而被遮擋目標被識別出來,如圖7(b)所示。通過非極大抑制算法的改進,有效減小了因閾值設定導致檢測目標漏檢或者目標重復識別等問題,有效提升了網絡的檢測性能。

圖7 改進的非極大抑制效果對比Fig.7 Comparison of improved non-maximal inhibitory effects
本實驗環境根據等比目標模型進行搭建,對相關模型進行自行組裝上色,盡可能還原真實場景。實驗中使用了多個艦載飛機模型以及配套的牽引車和地勤工作人員模型,具有相對復雜的場景信息。通過工業相機(型號為GigE GE500C-T)在多個角度進行拍攝,獲取分辨率為1 280×720的.jpg格式圖像。再通過YOLO系列算法常用的數據集標注工具LabelImg 手工標注圖像中目標的矩形框坐標以及標簽值,并生成相對應的.xml配置文件??偣膊杉? 000張左右不同角度和狀態下艦面目標的圖像,各類目標的數量如表2 所示,并將其轉化為目標檢測常用的PASCAL VOC數據集格式送入網絡訓練。

表2 實驗數據集Table 2 Experimental dataset
本實驗中網絡的訓練環境:系統是Ubuntu16.04,CPU 是Intel Xeon Silver 4110,GPU 是NVIDIA P4000(8 GB 顯存),深度學習框架是TensorFlow 1.10,Python版本為3.6,迭代輪數為50,初始學習率為0.000 1,結束學習率為0.000 001,設置5 種類型的檢測目標,訓練的Loss曲線如圖8所示。

圖8 Loss曲線Fig.8 Loss curve
為了評價艦面目標檢測網絡的有效性,選取以下指標進行評價。
(1)查準率(precision,P)和召回率(recall,R),其中查準率表示網絡檢測到正樣本數量占檢測到所有樣本的比率,召回率指網絡檢測到的正樣本數量占標記真實樣本數量的比率。計算公式如下:

其中,真正樣本(ture positive,TP)表示檢測到的目標類別與真實目標類別一致的樣本數量;假正樣本(false positive,FP)表示檢測到的目標類別與真實目標類別不一致的樣本數量;假負樣本(false negative,FN)表示真實存在但未被網絡檢測出的樣本數量。
(2)平均準確率均值(mean average precision,mAP)是一種多標簽圖像分類任務的評價方法。理想的檢測網絡的準確率和召回率應當都保持在較高的水平,但實際上隨著閾值變化兩個值并不都是正相關變化的,召回率與查準率呈現負相關變化,所以通常采取的方法是將準確率和召回率所形成的PR(precision-recall)所圍成的最大面積作為最優解,圍成的面積便用AP 來衡量,而所有類的AP的均值就是mAP。AP和mAP的計算公式為:

其中P(R)為準確率-召回率曲線,0~1表示閾值變化范圍。
(3)幀率(frames per second,FPS)是每秒鐘預測圖片的數量,用來表示算法的實時性。
為了進一步測評該模型的性能,對比了Faster R-CNN算法、原YOLOv3算法和增強的YOLOv3算法。運用相同的策略和數據集訓練模型,對每種模型進行多次測試并取均值,以查準率、召回率、準確率和幀率作為檢測效果的評價指標,結果如表3 所示。實驗結果表明,增強的YOLOv3算法在艦面復雜場景下,相比于原YOLOv3算法,在滿足實時性要求的前提下,整體準確率得到了較大提升。

表3 算法效果對比Table 3 Comparison of algorithm effects
在檢測效果上,對比圖9和圖10,圖9中漏檢了右上角遠處的plane1、圖片中間被遮擋的兩個plane3 和小目標person 等4 個目標,且在左下角的plane1 處存在重復檢測,在圖10 中兩個問題得以解決并且檢測框的位置和大小也更加合理。其中,單個目標輸入圖像及3個通道的卷積層仿真對比如圖11所示。

圖9 原YOLOv3效果Fig.9 Original YOLOv3 effect

圖10 增強YOLOv3效果Fig.10 Enhanced YOLOv3 effect

圖11 卷積層仿真圖Fig.11 Convolutional layer simulation diagram
如表4 所示,增強的YOLOv3 算法在各類目標上準確率都有較大的提升,尤其是在小目標的檢測效果提升較為明顯。通過圖12 可以看出,各類目標雖然都有較大的提升,但目標由大到小都呈現出準確率降低的趨勢。

圖12 算法準確率對比Fig.12 Comparison of algorithm accuracy

表4 算法效果對比Table 4 Comparison of algorithm effects %
本文共采取了3 個方面的策略對YOLOv3 算法進行了增強,網絡模型性能得到較大提升。下面通過開展消融實驗分析各個策略對網絡模型的影響,結果如表5所示。

表5 消融實驗對比Table 5 Comparison of ablation experiments%
在表5 中,YOLOv3 表示原YOLOv3 算法,數據表示采用數據增強策略,聚類表示采用聚類分析策略,非極大表示采用改進的非極大抑制方法,增強YOLOv3表示采用本文增強方法后YOLOv3算法。
在P-R曲線中,曲線上的點為某一閾值下的查準率和召回率,其顯示的是分類器上查準率與召回率之間的權衡,只有在一個相對平衡點確保曲線所圍成的面積最大時才能保證模型的性能最佳,或者查準率和召回率同時的提高也表現為準確率(AP)的提升[18]。
在相同閾值的情況下經過實驗可以得出,數據增強方法和非極大抑制方法對召回率有較大提升,表明其在增強檢測能力及減少漏檢上有重要作用,而聚類方法對查準率有較大提升,表明與目標相匹配的先驗框在提升查準率上的重要作用。綜上所述,增強的算法通過數據增強使網絡模型抗背景干擾的能力得到了改善,聚類分析讓檢測框的匹配準確率得到提升,而改進的非極大抑制方法有效減少了檢測中因遮擋產生的漏檢等問題。
本文針對艦面復雜場景下的多類目標檢測問題,通過融合裁剪、色域變換、遮擋、形狀變換多種方式以及分類的樣本組合方式,數據增強策略使訓練樣本得到倍數級豐富,尤其是對小樣本訓練有較大幫助。通過大量實驗數據獲取到了總體方差在0.1以下的9類穩定先驗錨框,提高了模型在訓練中的收斂速度和對艦面目標物體的框選精度。改進的非極大抑制方法通過線性函數對抑制參數進行調節,有效解決了目標遮擋和目標漏檢等問題,檢測率提高到了95.24%,幀率達到21.5 frame/s。實驗結果表明,本文提出的方法在艦面復雜場景下提高了密集目標的檢測能力,也可以滿足實時性的要求,且具有較好的魯棒性。