劉楊帆, 曹立華, 李 寧, 張云峰
(1.中國科學院 長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100049;3.激光與物質相互作用國家重點實驗室,吉林 長春 130033)
空間紅外弱目標檢測技術是空間目標探測系統(tǒng)的重要組成部分,對于發(fā)現(xiàn)敵方導彈、飛機等各種機動目標具有極其重要的意義。通常情況下當信噪比小于3時,可以認為是弱目標。此時目標的信噪比低,它的紋理特征和結構形狀特別模糊,難以進行有效檢測[1-2]。特別是當目標在空中有云層或者云層較厚的情況下,由于云層的遮擋或者其他因素的干擾可能會丟失多幀目標的紅外圖像,這給空間紅外弱目標檢測帶來了更大的困難。因此,研究空間紅外弱目標檢測對于提升我國國防能力和保障我國空域安全具有極其重要的意義[3]。
目前國外有關空間紅外弱目標的研究機構主要有NASA、加利福尼亞大學、空軍實驗室等[4]。目前他們主要是通過兩個方面來提升空間紅外弱目標的檢測效果,分別是紅外探測技術和紅外弱目標檢測算法。在紅外探測技術方面,主要是研究性能更高的探測器,例如使用新材料制作探測效果更好的焦平面器件,采用大面陣及單片多波段探測;其次是研究復合和雙波段探測技術,例如采用雷達/紅外復合檢測系統(tǒng)。在紅外弱目標檢測算法方面,相較于傳統(tǒng)算法,其越來越傾向于將深度學習應用于空間紅外弱目標檢測研究,類似于CNN系列算法和YOLO系列算法。相比于國外,我國的起步較晚,但國家在空間紅外弱目標檢測技術方面進行了大量的投入,目前也取得了一些不錯的成果。
傳統(tǒng)的紅外目標檢測與跟蹤算法可以分為單幀檢測法和多幀檢測法。單幀檢測法主要是通過對紅外圖像中的某一幀圖像進行處理,從而實現(xiàn)對目標的檢測和跟蹤。通常為了提高檢測的精度,往往會對得到的紅外圖像進行預處理。常用的預處理算法有時間域預處理[5]、變換域預處理[6]、空間域預處理[7]等。由于單幀檢測往往伴隨著較高的虛警,因此人們一般不單獨采用單幀檢測算法,往往是選擇多幀圖像來進行檢測。多幀檢測代表性算法有先跟蹤后檢測(DBT)[8]和先檢測后跟蹤(TBD)[9]算法。與傳統(tǒng)的紅外目標檢測算法相比,卷積神經(jīng)網(wǎng)絡的紅外目標檢測算法計算難度小,適應力強。因此基于卷積神經(jīng)網(wǎng)絡的目標檢測算法已越來越受到人們的重視。
目前,針對空間紅外弱目標檢測存在很多傳統(tǒng)的檢測算法,但是這些傳統(tǒng)的紅外弱目標檢測算法存在檢測率低、漏檢率高以及實時性差等問題。針對以上問題,本文通過深入分析紅外弱目標的幾何特性,以YOLOv4[10]目標檢測網(wǎng)絡為基礎,通過k-means聚類算法設計多種不同尺度的先驗框以及利用多尺度融合來提高弱目標的檢測精度,同時降低漏檢率和虛警率。本文算法處理流程簡單,提高了空間紅外弱目標檢測的準確率,降低了虛警率,而且檢測速度達到38.99 ms/frame,具有很強的應用前景。
對比可見光圖像,紅外圖像成像紋理單一、成像分辨率低,使得特征網(wǎng)絡很難提取目標的特征信息。其次,圖像中的目標和周圍的背景相比灰度值偏低,這導致圖像中的幾何輪廓較為模糊,很難提取目標的邊緣信息。例如在背景相同的條件下,對同一架飛機通過紅外設備和可見光設備分別進行觀測,紅外圖像的輪廓和邊緣信息較為模糊,可見光圖像中的目標輪廓較為清晰,如圖1所示。
圖1 飛機的紅外圖像和可見光圖像對比Fig.1 Comparison of infrared image and visible light image of aircraft
在實際應用中,不同紅外圖像目標的尺寸存在較大差異。針對這一差異,傳統(tǒng)的解決方法有兩種,一是構造圖像金字塔,二是構造不同大小的滑動框,通過這些滑動框來實現(xiàn)對多尺度目標的檢測,但是這兩種方法都存在計算難度大、檢測速度慢以及檢測精度低的問題。因此本文采用目前在深度學習目標檢測算法中性能特別優(yōu)異的YOLOv4算法模型,在其基礎上進行改進,從而實現(xiàn)檢測精度高、實時性能優(yōu)異的空間紅外弱目標檢測算法。圖2展示了紅外弱目標的多尺度特征。在圖2(a)中目標的長寬所占像素為(10,12),核心像素僅占10個像素。圖2(b)中,目標的長寬分別為(16,14),(17,15),核心像素為18個像素。
圖2 紅外弱目標像素特征Fig.2 Pixel characteristics of infrared weak target
YOLOv4是Alexey Bochkovskiy基于YOLOv3的改進目標檢測算法,在YOLOv3的基礎上結合了一些小創(chuàng)新。盡管沒有目標檢測革命性的改變,但是YOLOv4依然很好地結合了速度與精度。如圖3所示,YOLOv4主體分為輸入端(Input)、主干網(wǎng)絡(BackBone)、特征金字塔(Neck)、預測層(Predication)。不同于YOLOv3所使用的主干網(wǎng)絡Darknet53,YOLOv4在其基礎上首先將Darknet53上的resblock_body結構進行修改,使其成為CSPDarknet結構,然后將主
圖3 YOLOv4模型結構Fig.3 Model structure diagram of YOLOv4
干網(wǎng)絡里面的leaky_relu激活函數(shù)改為Mish激活函數(shù),從而使Darknet53網(wǎng)絡結構被修改為CSPDarknet53,YOLOv4的主干網(wǎng)絡Backbone采用CSPDarknet53網(wǎng)絡結構,具有以下優(yōu)點,首先增強了CNN的學習能力,使得在輕量化的同時保持準確性,其次降低了計算瓶頸,最后降低了內存的成本。
YOLOv4為了增強數(shù)據(jù),采用了MOsaic數(shù)據(jù)增強方法,通過該方法將4張訓練圖片先隨機縮放,然后再隨機進行拼接混合成一張新圖片,這樣不僅豐富了圖像的數(shù)據(jù)集,而且在隨機縮放的過程中增加了很多的小目標,從而使得模型的魯棒性更好。另外,相比于YOLOv3的損失函數(shù),YOLOv4不僅考慮了目標框的重疊面積,還考慮了中心點距離、長寬比,最終選擇了CIOU_Loss的回歸方式,使得預測框的回歸速度和精度更高。
在YOLOv4目標檢測模型中,目標先驗框的設置十分重要,它是通過k-means聚類算法對當前要訓練的數(shù)據(jù)集進行統(tǒng)計而得出的。合適的先驗框不僅可以降低模型最后的損失值,而且可以加快模型的收斂速度。在原始的YOLOv4網(wǎng)絡中,用來提取原始圖像更深語義特征是通過52×52、26×26、13×13這3個特征提取層實現(xiàn)的,這3個特征層將輸入的原始圖像分別切割成對應特征層網(wǎng)格的大小。如果真實框中的某個物體的中心坐落在網(wǎng)格框里,那么就用該網(wǎng)格框來對該物體進行預測,其中每個網(wǎng)格框包含3個由先驗框的值構造出來的預測邊界框。通過CIOU_Loss方法計算預測邊界框和真實框之間的重疊面積、中心點距離以及長寬比。如果最后得出的值大于CIOU_Loss規(guī)定的值,那么就將其輸出進行檢測。另外,為了提高模型的檢測效率,減少不必要的檢測次數(shù),本文采用了設置目標置信度的方法,當模型產(chǎn)生的預測邊界框的置信度小于已經(jīng)設定的目標置信度時,就直接將該框刪去進行下一個檢測,式(1)為CIOU_Loss[11]函數(shù),其中ρ2是預測框和真實框中心距離的平方;c2是剛好包含預測框和真實框的最小框的對角線長度平方;υ是衡量長寬比一致性的參數(shù);α是一個正的權衡參數(shù)。
(1)
(2)
(3)
本文訓練所使用的紅外圖像數(shù)據(jù)集是實驗室制作的數(shù)據(jù)集,而原始YOLOv4模型的先驗框的大小是針對COCO數(shù)據(jù)集制作的。因此,為了降低本文模型的損失值同時提高它的檢測精度,有必要對先驗框的大小進行調整。因此在這里重新使用k-means聚類算法對本文的數(shù)據(jù)集進行統(tǒng)計,重新得到適合本文紅外圖像數(shù)據(jù)集的先驗框。COCO數(shù)據(jù)集和本次紅外圖像數(shù)據(jù)集的先驗框值如表1、表2所示。
表1 COCO 數(shù)據(jù)集的先驗框值Tab.1 Value of anchor in COCO data sets
表2 紅外圖像數(shù)據(jù)集的先驗框值Tab.2 Value of anchor in infrared image data sets
YOLOv4目標檢測模型框架中使用了多尺度預測[12],也就是利用13×13、26×26、52×52這3個特征層同時對輸入進來的紅外圖像或者是視頻中的目標進行檢測,在檢測之前都會對其特征層上的網(wǎng)格利用之前計算好的先驗框的值進行預測邊界框的繪制。這種方法雖然可以提高目標的檢測精度,但是對于空間紅外弱目標這種只有較少像素且規(guī)則形狀特征提取較為困難的物體仍然存在漏檢或者難檢的問題。因此針對這一問題,本文深入分析紅外弱目標圖像數(shù)據(jù)集的特性,最后在YOLOv4原模型的基礎上增加了一個特征尺度,以提升對小目標的檢測精度。具體方法為先將52×52的PAnet層進行卷積并進行上采樣,從而使它的大小成為104×104,然后將上采樣后的特征層和CSPDarknet53的104×104層輸出層進行張量拼接,最后再將其進行5次卷積輸出到YOLO Head模塊進行輸出。通過張量拼接,特征層的維度會擴充,這樣就能提取出更多的特征信息。同時,本文對新增加的特征尺度也采用了Mish激活函數(shù)。由于特征尺度增加了,因此先驗框值也要進行調整。改變后的檢測模型和先驗框值如圖4和表3所示。
圖4 改進后的YOLOv4模型結構Fig.4 Model structure diagram of improved YOLOv4
表3 紅外圖像數(shù)據(jù)集的先驗框值Tab.3 Value of anchor in infrared image data sets
算法的實現(xiàn)平臺為:Ubuntu16.04TLS操作系統(tǒng)和Windows10 64位操作系統(tǒng),I7-8700M型號CPU、openCV3.4、python3.6,使用GeForce RTX 1080 Ti型號GPU進行加速運算,在TensorFlow卷積神經(jīng)網(wǎng)絡框架下對改進的YOLOv4空間紅外弱目標檢測模型進行訓練和測試。
針對本文所研究的問題,利用真實紅外數(shù)據(jù)制作了紅外圖像數(shù)據(jù)集,該數(shù)據(jù)集包含了多場景下的各種目標的紅外圖像,該數(shù)據(jù)集共含有圖片40 402張,共包含6個類別:導彈、其他飛機、客機、戰(zhàn)斗機、鳥、直升機。在進行實驗的過程中,將其中的70%作為訓練數(shù)據(jù),20%作為驗證數(shù)據(jù),剩下的10%作為測試數(shù)據(jù)。在實驗中本文還對數(shù)據(jù)集進行了隨機角度的旋轉,擴增數(shù)據(jù)集容量,提升了模型的泛化能力。數(shù)據(jù)集樣圖如圖5所示。
圖5 數(shù)據(jù)集樣圖Fig.5 Sample data set
實驗主要過程如下:(1)數(shù)據(jù)采集,通過紅外測量樣機對檢測目標進行探測,然后將視頻片段每隔40幀進行截取,將截取后的圖片隨機打亂并標注,然后按照7∶2∶1的比例,制作成紅外圖像訓練數(shù)據(jù)集、驗證數(shù)據(jù)集以及測試數(shù)據(jù)集;(2)利用訓練數(shù)據(jù)集訓練空間紅外弱目標檢測模型;(3)用驗證數(shù)據(jù)集對訓練好的空間紅外弱目標檢測模型進行超參數(shù)調整;(4)用超參數(shù)調整完的模型對測試集進行識別;(5)最后對檢測結果進行評價。
實驗a:分別利用COCO數(shù)據(jù)集先驗框值以及通過k-means聚類算法重新得到的紅外圖像數(shù)據(jù)集的先驗框值在紅外圖像數(shù)據(jù)集上對YOLOv3模型、YOLOv4模型進行訓練。在訓練完成之后,分別利用紅外圖像測試集進行測試,最后通過比較測試結果來分析重新調整先驗框對于提升目標的檢測性能。
實驗b:在先驗框值都經(jīng)過k-manes聚類算法得出后,分別利用COCO數(shù)據(jù)集和紅外圖像數(shù)據(jù)集來對YOLOv3、YOLOv4、MY-YOLOv4進行訓練,在訓練完成之后,分別利用制作好的測試數(shù)據(jù)集進行測試,最后通過分析測試結果來比較分析改進后MY-YOLOv4的性能。
實驗c:用改進的MY-YOLOv4模型的檢測算法,利用從長波紅外相機上采集到的真實數(shù)據(jù)進行檢測,最終來判斷該模型對各個目標的檢測效果。
為了更加合理有效地對最后的檢測結果進行判別,根據(jù)檢測速度和檢測精度要求,本文將檢測速率(模型檢驗目標所需的時間)作為檢測速度的評價指標。將檢測精度(P)和召回率(R)作為檢測精度的評價指標[13]。檢測精度和召回率的定義如下:
(4)
(5)
式中,ZTP為檢測正確的目標,ZFN為漏檢的檢測目標,ZFP為檢測錯誤的目標。通過從檢測精度、檢測速度、召回率等3個指標來評估在紅外圖像數(shù)據(jù)集下使用不同先驗框值對于YOLOv3和YOLOv4模型檢測實驗,考察用k-means聚類算法對于提升系統(tǒng)檢測性能的大小,最終得到的模型對比結果如表4所示。
表4 實驗a:紅外圖像數(shù)據(jù)集下不同先驗框值檢測結果
在驗證完k-means聚類算法對于提升系統(tǒng)檢測性能后,為了考察改進后的YOLOv4空間紅外弱目標檢測模型的性能,又進行了實驗b,在不同數(shù)據(jù)集下對YOLOv3、YOLOv4以及改進后的YOLOv4 空間紅外弱目標檢測模型進行對比實驗。最終得到模型實驗對比結果如表5所示。
表5 實驗b:模型對比結果Tab.5 Experiment b: Model comparison results
為了能夠更加有效地驗證本文改進的MY-YOLOv4模型的檢測效果,又進行了實驗c。利用從長波紅外相機上采集到的真實數(shù)據(jù)進行檢測,最后得到各目標的檢測結果(表6),檢測效果圖如圖6所示。
表6 實驗c:模型MY-YOLOv4檢測結果
由表4可以看出,在數(shù)據(jù)集相同的情況下,使用k-means聚類算法計算先驗框值的YOLOv3和YOLOv4模型在檢測速度變化很小的條件下,其檢測精度分別提高了1.43%、1.7%,其召回率分別提高了0.55%、0.61%。因此,通過k-means聚類算法重新調整先驗框可以有效提高弱目標的檢測精度和召回率。
圖6 檢測效果展示圖Fig.6 Display diagram of detection effect
另外通過表5可以看出,針對空間紅外弱目標檢測任務改進后的MY-YOLOv4模型相較于YOLOv4原模型在紅外圖像數(shù)據(jù)集以及COCO數(shù)據(jù)集上雖然在速度上損失了約6 ms,但是在檢測精度上分別提升了2.66%、0.88%,在召喚率上面提升了1.67%、0.92%,同時相較于YOLOv3模型,改進后的MY-YOLOv4模型在檢測速度、檢測精度以及召回率方面都有很大的提升。最后通過表6可以看出,本文算法對于所要檢測的各個目標(檢測精度、召回率)都具有良好效果,而且都達到了實時性的要求,更適用于空間紅外弱目標的檢測。
本文針對空間紅外弱目標這一檢測任務,提出了基于YOLOv4的空間紅外弱目標檢測算法。該算法在YOLOv4模型的基礎上通過提出k-means聚類算法來重新調整先驗框,另外加入多尺度特征融合來進一步提高弱目標的檢測精度。為了驗證算法的有效性,本文充分利用COCO測試集和實驗中制作的紅外圖像測試集,將其和YOLOv4模型和YOLOv3模型進行對比,最終得出以下結論:
(1)改進的YOLOv4算法在目標之間無云層遮擋的情況下,可實現(xiàn)對空間紅外弱目標的準確識別。
(2)通過k-means聚類算法重新計算先驗框值對于紅外圖像數(shù)據(jù)集的檢測精度和召回率有近1.5%、0.5%的提升。
(3)在相同的情況下,改進YOLOv4模型算法對于弱目標的識別效果優(yōu)于YOLOv3和YOLOv4算法。在目標之間有云層遮擋的情況下,改進的YOLOv4算法和原模型算法不能完全準確地識別出圖像中的所有目標。因此針對紅外圖像較差以及目標被遮擋的空間紅外弱目標檢測還需要作進一步的研究。首先是要研究如何通過樣本增廣的方法對目標的數(shù)據(jù)集和測試集進行數(shù)據(jù)的擴充,提升該網(wǎng)絡的泛化能力;另一方面是如何將目標的輻射特性這一特征加入到本文的模型判別過程中,從而實現(xiàn)對模型準確度和精確度的進一步提升。
(4)針對COCO數(shù)據(jù)集,改進后的MY-YOLOv4相較于YOLOv4在速度損失約6 ms的情況下,其精度提升了0.88%,召回率提升了0.92%,因此改進后的MY-YOLOv4對于COCO數(shù)據(jù)集也具有一定的提升效果。
(5)在檢測速度方面,由于本文使用的硬件條件為GeForce RTX 1080 Ti,可以達到25 frame/s,已經(jīng)具備了實時性的要求,目前已在工程中應用。