張 坤,羅亞松,劉 忠
(海軍工程大學(xué)兵器工程學(xué)院,武漢 430033)
為滿足艦炮對海射擊脫靶量自動化測試需求,檢靶系統(tǒng)需要針對海上彈丸水柱和靶球進行準確識別并定位。海上目標識別算法屬于檢靶系統(tǒng)的關(guān)鍵技術(shù),其性能優(yōu)劣直接決定著檢靶系統(tǒng)的可靠性與實用性。當前海上目標檢測研究的主要對象是水面艦船,但與靜止的艦船目標相比,彈丸水柱和靶球檢測更加具有挑戰(zhàn)性:水柱在形態(tài)和顏色上隨時間不斷變化,初始時和浪花極為相似,發(fā)展變化過程很快,從出現(xiàn)到消散只有3~5 s,在消散階段,水柱由凝實轉(zhuǎn)為濃霧狀,對其他目標造成遮擋,并改變了周圍環(huán)境亮度,導(dǎo)致檢測環(huán)境更加復(fù)雜;靶球目標體積小,隨波漂浮,在監(jiān)控畫面上呈現(xiàn)出時隱時現(xiàn)的特點,單靶球的外形表現(xiàn)為被部分遮擋的球形,多靶球的外形表現(xiàn)則更加復(fù)雜。本文設(shè)計一種海上目標識別算法,對海上水柱目標和靶球目標進行快速有效識別。
檢靶系統(tǒng)使用高清光電攝像機作為圖像輸入設(shè)備,以無人艇為觀測平臺,實現(xiàn)目標方位信息在復(fù)雜環(huán)境下(包括濃霧、陰雨天、四級以下海況、逆光、齊射、遠距離、目標重疊等極端情況)的高精度實時檢測。系統(tǒng)必須保證能迅速準確地識別出相應(yīng)目標,因此對目標識別技術(shù)的準確率和實時性都提出了很高要求。為滿足使用要求,選用的識別算法網(wǎng)絡(luò)模型需要同時具備強大的檢測能力和輕量化的網(wǎng)絡(luò)結(jié)構(gòu),具備多目標識別能力和較強的抗干擾能力,能夠應(yīng)對復(fù)雜多變的海上環(huán)境。
本文在研究對比了多種目標識別技術(shù)后(見表1),最終選定使用各方面性能表現(xiàn)較好且運行穩(wěn)定的YOLOv4深度學(xué)習(xí)網(wǎng)絡(luò)作為基礎(chǔ)模型,在基礎(chǔ)上進行改進,以適應(yīng)檢靶系統(tǒng)的識別要求。
表1 多種深度學(xué)習(xí)模型的海上目標識別效果Table 1 Comparison of maritime target recognition effects for a variety of deep learning models
YOLO系列模型是典型的單階段目標檢測算法網(wǎng)絡(luò)模型,能一次性快速識別多種目標,在識別效率上有較大優(yōu)勢,其識別效果如圖1所示。
圖1 YOLO算法識別效果圖
2016年,Joseph Chet Redmon等提出了YOLOv1目標識別模型,奠定了YOLO系列模型的基本檢測流程:輸入圖片并壓縮至規(guī)定大小,將圖像劃分為×個方格,用不同尺寸的錨定框?qū)γ總€格子進行檢測得到每個格子預(yù)測出的Bounding Boxes及其置信度和一張表示每個格子分類可能性的圖,經(jīng)過非極大值抑制(NMS)操作得到輸出結(jié)果。經(jīng)過幾年的發(fā)展和改進,2020年Alexey Bochkovskiy等提出了YOLOv4模型,YOLOv4融合了近年來深度學(xué)習(xí)領(lǐng)域涌現(xiàn)的一些優(yōu)秀檢測技巧,在精度和速度上都得到很大提升。在網(wǎng)絡(luò)結(jié)構(gòu)方面,YOLOv4可分為輸入(input)、骨干(backbone)、頸部(neck)、頭部(head)4個部分,其中backbone部分采用了在檢測速率、參數(shù)數(shù)量、模型層數(shù)等方面表現(xiàn)更加優(yōu)異的CSPDarknet53網(wǎng)絡(luò);neck部分則采用了空間金字塔池化層(Spatial Pyramid Pooling,SPP)作為附加模塊,采用路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PANet)作為路徑聚合模塊;head部分則沿用了YOLOv3的YOLO-head。以上組成了YOLOv4模型的整體框架。在檢測技巧方面,YOLOv4將它們分為Bag of Freebies(BoF)和Bag of Specials(BoS)兩類并應(yīng)用到模型框架的各個部位,以優(yōu)化檢測性能,提高檢測精度和速度。
圖2為YOLOv4的網(wǎng)絡(luò)結(jié)構(gòu)圖,如圖2(a)所示,YOLOv4在輸入端將圖像尺寸調(diào)整為固定大小輸入檢測網(wǎng)絡(luò),圖像數(shù)據(jù)進入CSPDarknet53骨干網(wǎng)絡(luò),CSPDarknet53網(wǎng)絡(luò)是由階段交叉梯度模型(cross stage partial,CSP)和Darknet53網(wǎng)絡(luò)組合而成,將CBM(CNN-BN-Mish)卷積層和多個殘差組件Resunit堆疊而成的CSP模塊通過route層插入到卷積層中,一方面加深了網(wǎng)絡(luò)模型的深度,使網(wǎng)絡(luò)能獲取更高層次的語義信息和更多的特征圖;另一方面通過引入多個殘差網(wǎng)絡(luò)和route分流,使各層的計算量得到一定程度的平衡,提高了運算速度,同時也有效防止了網(wǎng)絡(luò)深度增加導(dǎo)致的梯度爆炸或梯度消失問題。圖像數(shù)據(jù)在骨干網(wǎng)中經(jīng)過多次降維處理,分別在骨干網(wǎng)末端、倒數(shù)第一次降維和倒數(shù)第二次降維處引出三條數(shù)據(jù)通道通向網(wǎng)絡(luò)的頸部,用于檢測不同尺度的目標。三條通道的數(shù)據(jù)經(jīng)過CBL(CNN-BN-Leaky)模塊、SPP結(jié)構(gòu)網(wǎng)絡(luò)后按照PANet結(jié)構(gòu)的方式進行卷積、上采樣和route層融合,最后輸入到頭部。這種處理方式使淺層特征和高級語義特征得到融合,使多個尺度的感受區(qū)域得到融合,進一步強化了網(wǎng)絡(luò)對不同層級特征的利用效率,能有效改善小目標丟失問題并提高檢測精度。在網(wǎng)絡(luò)頭部,數(shù)據(jù)圖像最終被處理成為19×19、38×38、76×76三種不同大小的柵格圖,分別用于實現(xiàn)對大型目標、中型目標和小型目標的檢測。
圖2(b)中,CBM是使用了批量歸一化(Batch Nomalization,BN)和Mish激活函數(shù)的卷積層,圖2(c)CBL則是使用了批量歸一化和Leaky激活函數(shù)的卷積層。Mish激活函數(shù)比Leaky激活函數(shù)更有助于保持小的負值從而穩(wěn)定網(wǎng)絡(luò)中的梯度流,使更多的權(quán)重能夠得到更新,具有更好的泛化能力,有效提高了檢測結(jié)果的質(zhì)量。圖2(d)表示Resunit模塊的組成,“add”表示將相同尺寸大小的特征圖數(shù)據(jù)進行相加。圖2(e)為CSP模塊的組成結(jié)構(gòu),CSP模塊由多個Resunit模塊和卷積模塊的殘差網(wǎng)絡(luò)堆疊而成。圖2(f)為SPP模塊的組成結(jié)構(gòu),將骨干網(wǎng)輸出的特征圖分別進行尺度為5×5、9×9、13×13的最大池化,再將未池化數(shù)據(jù)和3種池化結(jié)果聚合,其中“concat”表示將不同尺寸的特征圖數(shù)據(jù)進行拼接。
圖2 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOv4網(wǎng)絡(luò)在使用時需要預(yù)設(shè)9個錨定框(Anchor Box)用于預(yù)先確定檢測目標的長寬比,并在每個格子中都生成9個錨定框?qū)騼?nèi)物體進行檢測,預(yù)測出目標的Bounding box。由于水柱目標不是靜態(tài)的,它的尺寸、外形隨著時間在不斷變化,YOLOv4默認的Anchor Box并不適用這種單一類型的動態(tài)目標檢測,因此本文使用-means聚類算法對水柱數(shù)據(jù)集中的目標尺寸進行聚類,求出合適的Anchor Box值。
-means聚類算法是一種無監(jiān)督的聚類算法,本文將檢靶數(shù)據(jù)集中標注好的目標邊框的長、寬作為初始數(shù)據(jù)集輸入聚類算法中,算法隨機選擇9個質(zhì)心,然后分別求數(shù)據(jù)集中每個點到各個質(zhì)心的距離,并將該點的類別標記為與它距離最近的質(zhì)心的類別,再對當前各個類別的點求新的質(zhì)心,基于新的質(zhì)心對所有點重新分類,再求質(zhì)心,多次重復(fù)前面2個操作直到質(zhì)心不再改變,最終得到一組比較優(yōu)的Anchor Box值。
HU等提出SE模塊,SE注意力機制如圖3所示。這是一種輕量級的注意力機制模塊,能夠輕易地加入網(wǎng)絡(luò)模型中且只增加少量的模型復(fù)雜度和計算開支。在檢測任務(wù)中,隨著數(shù)據(jù)流在網(wǎng)絡(luò)中不斷加深,目標特征表現(xiàn)逐漸微弱,容易造成小目標和弱目標的漏檢。通過在網(wǎng)絡(luò)中的適當位置嵌入SE注意力模塊,可以增強網(wǎng)絡(luò)對重要通道的學(xué)習(xí)能力,提高識別率。為了在小目標特征消失前對通道特征進行強化,本研究考慮將SE注意力模塊嵌入YOLOv4骨干網(wǎng)絡(luò)的中段,具體結(jié)構(gòu)如圖4所示。將SE模塊添加到Resunit模塊中,形成新的SE-Resunit模塊,并替換原CSP模塊中的Resunit,再在CSP模塊的concat后添加SE模塊,形成新的SE-CSP模塊替換位于Backbone中的所有CSP模塊。
圖3 SE注意力機制框圖
圖4 SE-YOLOv4算法具體結(jié)構(gòu)示意圖
從無人艇平臺的角度進行觀測,可以發(fā)現(xiàn)水柱和靶球的位置幾乎都處于海天線附近,找到海天線位置能夠進一步提高檢測率,降低誤檢率。論文基于灰度共生矩陣原理設(shè)計了一套海天線快速檢測程序,對輸入圖像進行高效計算,能在0.02 s內(nèi)完成一幅1 920×1 080高清圖像的海天線檢測。
灰度共生矩陣是一種描述圖像紋理特征的方法,在圖像分析領(lǐng)域有著廣泛應(yīng)用。其原理是統(tǒng)計灰度圖上任意一點與它0°、45°、90°、135°四個方向固定步長所對應(yīng)的點所形成的灰度對(,)的數(shù)量。這4個方向的灰度統(tǒng)計就是灰度共生矩陣,通過它可以較好地展示出圖像的紋理特征,從而找到海天線位置。因為需要對原圖進行多次遍歷操作,當圖像尺寸較大且灰度值較大時將產(chǎn)生巨大的計算量。受景宏磊等啟發(fā),論文中在計算灰度矩陣前將×高清圖像平均劃分為16×16個矩形區(qū)域,每個區(qū)域的大小為×,分別求每個區(qū)域內(nèi)的灰度和,再將灰度和按比例降低至16以內(nèi)并取整,形成灰度壓縮后的新灰度圖:
(1)
式中,(′,′)為點(′,′)處的灰度值;(,)為(,)區(qū)域向下取整后的灰度和。
新灰度圖的尺寸為16×16,灰度級也為16。圖像在質(zhì)量上有所損失,但海天線檢測對清晰度要求不高,因此不影響檢測效果。對壓縮后的灰度圖求灰度共生矩陣:
(2)
式中,=0°、45°、90°、135°;為點和點之間的距離;#()表示集合中的元素個數(shù)。
對4個方向的灰度共生矩陣分別進行歸一化處理:
(,)=(,,,)
(3)
再利用灰度共生矩陣(,)計算對比度Con:
(4)
取豎直方向?qū)Ρ榷茸兓畲蟮奈恢米鳛楹L炀€位置,并截取其上50像素,下25像素的范圍作為算法的檢測區(qū)域??紤]到海天線檢測對于藍色比較敏感,因此以圖像的藍色通道作為輸入。檢測效果如圖5所示。
由圖5中可以看出,GLCM算法能清晰呈現(xiàn)出海天線的紋理,且該算法對于傾斜度達到45°的海天線和濃霧背景下的海天線都具有良好的檢測能力。
圖5 基于灰度共生矩陣的海天線檢測效果圖
當YOLOv4算法在視頻流中對目標進行檢測時,算法將對每一幀的圖像數(shù)據(jù)都進行檢測。對于不同的圖像來說,每次檢測到的目標位置都存在一些偏差,也會有誤檢和漏檢,從而導(dǎo)致對視頻流進行檢測時檢測框不斷閃爍變換。短時間內(nèi),目標的形狀、位置在前后幀圖片中相差不大,若逐幀檢測不僅浪費算力,還會影響對檢測效果的判斷。本文采用圖像相似性快速檢測的方式,剔除視頻流中相似性程度較高的圖像,改善視頻流檢測效果。
結(jié)構(gòu)相似性檢測,是一種從圖像組成的角度來評價兩幅圖像相似程度的算法。它將圖像失真度定義為圖像亮度、對比度和結(jié)構(gòu)3個獨立因素的組合。
(5)
(6)
(7)
本文先利用滑動窗口將圖像分為塊,再計算每個對應(yīng)分塊的SSIM值,最后求所有SSIM的均值MSSIM:
(8)
(9)
MSSIM值越大,兩張圖像越相似。以上一幀輸入網(wǎng)絡(luò)中的圖像為參考幀,計算當前圖像與參考幀之間的MSSIM值,當該值超過設(shè)定的閾值時,當前圖像不進入檢測網(wǎng)絡(luò),并和上一幀檢測結(jié)果共同輸出;當該值小于閾值時,則將當前圖像輸入檢測網(wǎng)絡(luò)中,并將該圖像更新為新的參考幀。
為 驗證改進后YOLOv4網(wǎng)絡(luò)的有效性,本文在檢靶數(shù)據(jù)集上開展實驗。本次實驗平臺環(huán)境如下:
操作系統(tǒng):Windows 10
深度學(xué)習(xí)框架:Tensorflow2.3.0-GPU
CPU:AMD Ryzen 7 4800H with Radeon Graphics
內(nèi)存:32 GB
顯卡:NVIDIA GeForce RTX 2060
顯存:6 GB
在對比實驗中,需要分別訓(xùn)練原始YOLOv4網(wǎng)絡(luò)與改進后的YOLOv4網(wǎng)絡(luò)。在訓(xùn)練原始YOLOv4網(wǎng)絡(luò)時,若隨機生成初始權(quán)重對網(wǎng)絡(luò)進行訓(xùn)練,不僅花費的訓(xùn)練時間較長,而且訓(xùn)練效果和訓(xùn)練進程不易把握??紤]到COCO數(shù)據(jù)集包含內(nèi)容較為廣泛,其網(wǎng)絡(luò)權(quán)重具有更好的泛用性,因此本文采用遷移學(xué)習(xí)的辦法,將已訓(xùn)練完成的COCO網(wǎng)絡(luò)權(quán)重作為對照網(wǎng)絡(luò)的初始權(quán)重進行訓(xùn)練,可在得到良好效果的同時大大縮短訓(xùn)練時間。
本文采用準確率(Precision)、召回率(Recall)、各類別平均值(mean Average Precision)、幀率(Frame Per Second)4個指標對網(wǎng)絡(luò)性能進行判斷。以交并比為判定依據(jù),當≥0.5時認為該目標被正確識別。
參數(shù)設(shè)置:輸入圖片尺寸為512×512,錨定框數(shù)量為9(Anchor Box=5,8;10,36;11,16;14,55;17,76;19,53;27,24;28,71;45,140),錨定框放大比例XYSCALE設(shè)置為[1.2,1.2,1.05],學(xué)習(xí)率設(shè)置為0.001,BATCHSIZE設(shè)置為2。
實驗首先對YOLOv4_0、YOLOv4_1、YOLOv4_3、YOLOv4_4模型進行遷移學(xué)習(xí),訓(xùn)練Epochs設(shè)置為180。對于引入了SE注意力機制的YOLOv4_2、YOLOv4_5、YOLOv4_6、YOLOv4_7模型由于算法結(jié)構(gòu)發(fā)生改變,不能使用遷移學(xué)習(xí),需從頭開始訓(xùn)練,因此需要提高訓(xùn)練循環(huán)次數(shù),將Epochs設(shè)置為 1 000。使用測試集圖片和檢靶視頻對訓(xùn)練好的模型進行檢驗,具體結(jié)果如表2所示。
表2 不同模型在數(shù)據(jù)集上的效能評估Table 2 Effectiveness evaluation of different models on data sets
通過對比實驗結(jié)果可以發(fā)現(xiàn),-means聚類對網(wǎng)絡(luò)運行速度沒有影響,卻能夠有效提升檢測精度,使值提升了12.8%;SE注意力機制因為嵌入在骨干網(wǎng)絡(luò)中增加了計算量,使FPS值略有下降,但該算法對提升檢測精度有重要作用,強化了網(wǎng)絡(luò)對小目標的檢測能力,提高網(wǎng)絡(luò)對云層和水柱的分辨能力,也提升了召回率,值比初始網(wǎng)絡(luò)提升了22.1%;由于修改后的GLCM快速算法依然有較大計算量,引入海天線檢測算法使值受到了較大影響,但該算法對網(wǎng)絡(luò)檢測精度的提升作用較明顯,原因是該算法將檢測區(qū)域集中到海天線附近,有效避免了艦船尾流對水柱檢測的干擾;SSIM相似性檢測對算法的檢測精度和查準率提升貢獻不大,反而有一些負面影響,但它能減少計算量并提高視頻流的檢測效果。從上述數(shù)據(jù)可以看出,所提出的幾種算法對YOLOv4網(wǎng)絡(luò)的檢測性能都有較好的提升作用,將它們同時應(yīng)用到Y(jié)OLOv4網(wǎng)絡(luò)中檢測效果能相互疊加,最終修改后的網(wǎng)絡(luò)值達到了83.4%,為36幀/s。修改后的網(wǎng)絡(luò)在檢測水柱目標和靶球目標方面比初始YOLOv4網(wǎng)絡(luò)檢測精度提高了29.9%。
為實現(xiàn)對海上水柱目標和靶球目標的準確識別,根據(jù)目標特征制定針對性的改進方案,最終使目標識別網(wǎng)絡(luò)的檢測能力提高了29.9%,值達到了83.4%。
但是本次實驗受到數(shù)據(jù)集規(guī)模限制,無法對海況、光照、氣候等影響檢測效果的變量進行充分地對照實驗,難以考察檢測算法的魯棒性。下一步要繼續(xù)擴大數(shù)據(jù)集規(guī)模,并考慮將數(shù)據(jù)集按場景分類,訓(xùn)練多個模型以更好地適應(yīng)不同場景下的檢測需求。此外由于本算法對檢測實時性要求較高,在一定程度上犧牲了算法的檢測精度,后續(xù)研究將考慮設(shè)計檢測精度更高的目標識別算法用于離線檢靶。