林 健,張巍巍,張 凱,楊 堯
(1.西北工業(yè)大學(xué) 無人系統(tǒng)技術(shù)研究院·西安·710000;2.上海航天控制技術(shù)研究所·上海·201109)
目標(biāo)檢測是機器視覺領(lǐng)域最具挑戰(zhàn)性的任務(wù)之一,在現(xiàn)實世界中有著深遠(yuǎn)的意義。在自動駕駛、導(dǎo)航制導(dǎo)等任務(wù)中,要求檢測算法能夠在各種照明和環(huán)境條件(包括白天、夜間、雨中、霧中等)下都具有魯棒性。然而在這些情況下,基于可見光的系統(tǒng)一般無法發(fā)揮作用,導(dǎo)致上述任務(wù)無法完成,紅外成像系統(tǒng)通過接收目標(biāo)的熱輻射成像,對復(fù)雜天氣、光照情況有較強的適應(yīng)性,可以全天候工作,探測距離遠(yuǎn)。同時相較于可見光數(shù)據(jù)的采集,紅外數(shù)據(jù)擁有更強的隱私保護性,在當(dāng)前人們對隱私保護越來越重視的背景下,足以獲得更多的學(xué)習(xí)數(shù)據(jù),用于優(yōu)化模型。
紅外成像系統(tǒng)具有上述全天候、遠(yuǎn)距離、抗干擾的特性,被廣泛地應(yīng)用在民用、軍用領(lǐng)域。雖然紅外目標(biāo)檢測跟蹤算法的需求日益增長,但是紅外圖像普遍存在紋理信息差、低分辨率、高噪聲的特點,對目標(biāo)原有的灰度信息破壞嚴(yán)重,給紅外目標(biāo)檢測算法帶來嚴(yán)峻挑戰(zhàn)。經(jīng)典的目標(biāo)檢測算法模板匹配、HOG-SVM,以及當(dāng)前主流的深度學(xué)習(xí)算法等,在設(shè)計之初都是針對可見光圖像,在目標(biāo)細(xì)節(jié)、特征明顯的RGB圖像上可以獲得較好的性能,但在紅外圖像目標(biāo)檢測上,算法性能均有不同程度下降。
基于深度學(xué)習(xí)的目標(biāo)檢測算法——YOLO,在學(xué)術(shù)界和工業(yè)界都取得了許多顯著的成果,下面簡要介紹YOLO系列算法的發(fā)展歷程。J.Redmon等在2015年6月提出了YOLOv1算法,該算法不僅具有良好的識別性能,而且具有較高的實時性。此外,該算法具有良好的泛化能力,易于訓(xùn)練,收斂速度較快。在接下來的5年里,YOLO算法得到了更新,5個版本融合了目標(biāo)檢測社區(qū)的許多創(chuàng)新想法。在前3個版本中,YOLOv3是一個里程碑,通過引入多尺度特征(Feature Pyramid Networks,F(xiàn)PN)、更好的骨干網(wǎng)絡(luò)(Darknet53)以及將Softmax分類損失函數(shù)替換為Logic損失函數(shù),在性能和速度方面取得了較大改進。2020年初,在原YOLO作者從研究領(lǐng)域離開之后,YOLOv4由不同的研究團隊發(fā)布。YOLOv4團隊對YOLO算法的幾乎所有方面進行了探索,改進了主干網(wǎng)絡(luò),以及提出了很多在目標(biāo)檢測領(lǐng)域?qū)嵱玫募记?。YOLOv4在Tesla V100上以65 FPS的實時速度實現(xiàn)了MSCOCO數(shù)據(jù)集65.7%的平均準(zhǔn)確率。1個月后,另一個不同的研究團隊發(fā)布了YOLOv5,該算法具有更小的模型尺寸、更快的速度、與YOLOv4相似的性能,以及在Python中的完整實現(xiàn),使得YOLOv5在目標(biāo)檢測社區(qū)得到了廣泛關(guān)注。
為解決紅外圖像普遍存在的紋理信息差、低分辨率、高噪聲帶來的檢測難題,本文改進了YOLOv5算法的特征提取網(wǎng)絡(luò),選擇了具有殘差特性的ResNet50網(wǎng)絡(luò)。針對紅外場景中存在大量的小目標(biāo),避免過大采樣率導(dǎo)致目標(biāo)被過濾,改進了YOLOv5檢測頭方案,使用了更為密集的特征融合網(wǎng)絡(luò)提升檢測效果。本文的主要工作如下:
1)構(gòu)建了基于ResNet50的骨干特征提取網(wǎng)絡(luò),改進了YOLOv5的3個檢測頭方案,增加了下樣率為4的檢測頭。
2)重新設(shè)計了特征融合網(wǎng)絡(luò),提出了一個Detection Block模塊,提升了紅外目標(biāo)的檢測能力,同時獲得了較小的模型參數(shù)。
3)在FLIR紅外自動駕駛數(shù)據(jù)集上,相比原始的YOLOv5m模型,在平均精度上提升4%。
本文提出了一種基于YOLOv5的紅外目標(biāo)檢測算法(Target Detection Based on YOLOv5, YOLOv5-IF),具體結(jié)構(gòu)如圖1所示。本文所提算法和現(xiàn)有的大多數(shù)目標(biāo)檢測算法一致,結(jié)構(gòu)上分為三部分:特征提?。˙ackbone),特征整合(Neck),檢測頭(Head)。輸入的紅外圖像,經(jīng)過特征提取網(wǎng)絡(luò)得到目標(biāo)不同尺度上的語義信息,并將特征圖(FeatureMap)劃分為不同大小的網(wǎng)格。同時,紅外圖像經(jīng)過特征提取網(wǎng)絡(luò)之后,特征信息被映射在不同尺度的特征圖上,紅外圖像中存在大量的小目標(biāo),而過大的采樣率會導(dǎo)致目標(biāo)特征經(jīng)多次采樣之后難以在特征圖上體現(xiàn)。出于這方面的考慮,增加了下采樣率為4的特征輸出。在Neck部分將前一級得到的特征信息進一步加工處理,利用FPN和路徑聚合網(wǎng)絡(luò)(Path Aggregation Network,PAN)實現(xiàn)不同尺度特征信息的融合。網(wǎng)絡(luò)的最后一部分為Head,即輸出預(yù)測部分,利用卷積層得到前級特征圖上每一網(wǎng)格內(nèi)包含目標(biāo)信息(目標(biāo)位置,置信度)的預(yù)測值。這些預(yù)測值為事先設(shè)定的錨框的調(diào)整參數(shù),在后處理部分根據(jù)網(wǎng)絡(luò)的輸出信息對預(yù)先設(shè)定的錨框做相應(yīng)的調(diào)整,最后通過非極大抑制(Non-Maximum Suppression,NMS)操作得到最可能包含目標(biāo)的預(yù)測框。
圖1 YOLOv5-IF算法總體框圖Fig.1 The architecture of YOLOv5-IF
這一部分簡要分析YOLOv5算法的改進之處,以及YOLOv5算法在解決紅外圖像識別上存在的問題。
(1)YOLOv5改進點:
基于錨框目標(biāo)檢測算法的先天不足,導(dǎo)致了正負(fù)樣本不均衡,為了緩解這種缺陷帶來的問題,研究者提出了Focal LOSS等算法。YOLOv5在算法設(shè)計時提供了另一種解決思路,通過采用跨鄰域網(wǎng)格匹配,有效增加了正樣本數(shù)量,使得YOLOv5算法整體的精度得到了巨大提升,具體邊界框回歸公式為式(1),式(2)為YOLOv2、v3、v4回歸公式。
(1)
(2)
式中,、、、為目標(biāo)真實的中心點坐標(biāo)以及寬高;、為目標(biāo)中心所屬網(wǎng)格的左上角坐標(biāo)值;、為預(yù)設(shè)錨框的寬高值;、、、為算法輸出的錨框的中心點及寬高的調(diào)整值;為Sigmoid函數(shù)。
(2)不足之處:
Focus模塊:YOLOv5創(chuàng)新性地引入了一個全新的模塊Focus,具體的實現(xiàn)流程為:將特征圖切分為4份,每份數(shù)據(jù)量都是相當(dāng)于2倍下采樣得到的,然后在通道維度進行拼接。這種操作可以在不增加計算量的同時使得特征圖減半,通道增加4倍。相比采用最大池化或步長為2的卷積操作,F(xiàn)ocus模塊帶來的計算量更小,對YOLOv5的快速推理起到了重要作用。然而,由于Focus會造成圖像上的空洞,這種操作必然會導(dǎo)致圖像信息的丟失,對于紅外圖像中的小目標(biāo)檢測是不利的, 因此在本文中拋棄了這種結(jié)構(gòu)。
SPP模塊:YOLOv4中提出了一個全新的SPP,在經(jīng)典的SPP模塊中,特征地圖在進行多尺度最大池化之后被轉(zhuǎn)換為一維向量。新的SPP將3個尺寸為××5124的特征圖分別使用∈(5,9,13)的池化核池化,再將輸入特征圖與池化后的特征圖相連形成××2048的特征圖。有效避免了在3個尺度最大池化的情況下丟失圖像的重要特征,輸入不僅提取了使訓(xùn)練更容易的重要特征,而且保持了空間維度。大量的實驗證明,SPP模塊能有效提升可見光圖像的檢測率,因此這種結(jié)構(gòu)在YOLOv5中也被保留了下來。Qi D.等提出了針對小目標(biāo)可采用較小的池化核,然而在針對紅外圖像的測試中,不論是原始的池化核還是采用較小的池化核,對于檢測結(jié)果都沒有提升,因此在本文中拋棄了這種結(jié)構(gòu)。
基于上述分析,本文針對YOLOv5算法在解決紅外目標(biāo)識別方面的不足,提出了一種改進的YOLOv5-IF算法。原始的YOLOv5中,沿用了YOLOv3版本中的骨干網(wǎng)絡(luò)CSPDarkNet53作為特征提取網(wǎng)絡(luò), CSP 跨階段連接受殘差連接啟發(fā),在不同層之間實現(xiàn)特征復(fù)用,在實際測試中發(fā)現(xiàn)CSPDarkNet53并不能很好地提升紅外圖像中目標(biāo)的特征信息?;跉埐钸B接的ResNet網(wǎng)絡(luò)可以解決深層模型梯度消失的問題,同時加入了一定的正則項可以加速模型收斂,一定程度上也減少了模型參數(shù)。針對紅外圖像存在的分辨率低、細(xì)節(jié)特征不明顯、高噪聲等問題,本文選擇ResNet50作為特征提取網(wǎng)絡(luò)。
為了提升算法對紅外小目標(biāo)的檢測能力,本文在骨干網(wǎng)絡(luò)上增加了4倍下采樣的特征圖,即輸入圖像為416×416時,對應(yīng)特征圖大小為104×104,依舊采用每個網(wǎng)格生成3個先驗錨框的策略。這種情況下,會給輸出增加104×104×3=32448個預(yù)測結(jié)果,相比原始的(13×13×3+26×26×3+52×52×3=10647)增加了3倍之多。為了解決這一問題,必然需要一個輕量高效的Neck。本文將Neck部分拆分為FPN和PAN兩部分,具體結(jié)構(gòu)如圖2所示。圖中(∈(2,3,4,5))為骨干網(wǎng)絡(luò)輸出的不同下采樣倍率的特征圖,上采樣通過線性插值實現(xiàn),特征疊加則是在通道維度上合并特征圖,卷積操作均為1×1卷積用于調(diào)節(jié)特征圖通道,Head(∈(1,2,3,4))對應(yīng)不同尺度的檢測頭,同時替換原始的CSPBottleNet為更高效的Detection Block,在不影響模型精度的情況下,極大縮減了模型規(guī)模,結(jié)構(gòu)如圖3所示。
(a) FPN模塊網(wǎng)絡(luò)結(jié)構(gòu)
(b) PAN模塊網(wǎng)絡(luò)結(jié)構(gòu)圖2 Neck模塊網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Neck module network structure
圖3 Detection Block模塊Fig.3 Detection Block module
Detection Block設(shè)計之初就是為了得到一個輕量化的網(wǎng)絡(luò),同時能夠有效融合紅外目標(biāo)的特征,將目標(biāo)從背景中凸顯出來,如圖3所示。具體實現(xiàn)流程為:對輸入的特征圖通過兩個卷積實現(xiàn)通道減半,其中一側(cè)首先會經(jīng)過一個卷積和Leak Relu激活函數(shù),接著通過兩個堆疊的Conv Block模塊,該模塊使用了卷積加深度可分離卷積的配置,如圖4所示,借助深度可分離卷積,在保證不影響感受野的同時,極大減小了模型參數(shù),其中卷積核大小為3,步長為2;另一側(cè)則采用了卷積加Leak Relu激活函數(shù)的配置,形成了一個殘差連接。
圖4 Conv Block模塊Fig.4 Conv Block module
本文在骨干網(wǎng)絡(luò)上增加了一個輸出,對應(yīng)4倍下采樣的特征圖,經(jīng)過上述的Neck部分融合,最終得到預(yù)期的4檢測頭檢測結(jié)構(gòu),有效提升了紅外弱小目標(biāo)的檢測能力。
4倍下采樣的檢測頭能夠輸出細(xì)粒度更高的特征圖,并準(zhǔn)確保留紅外圖像上的小目標(biāo)特征信息。各個檢測頭的輸出可視化如圖5所示,將各個檢測頭輸出得分和類別融合后,可以看到更高細(xì)粒度的檢測頭能關(guān)注到圖像中的弱小目標(biāo)。
圖5 檢測頭熱圖Fig.5 Heat map of detection head
本文使用FLIR提供的紅外場景數(shù)據(jù)集。該數(shù)據(jù)集是在美國加利福尼亞州圣塔芭芭拉市的街道和高速公路上拍攝的,包括從5月~11月不同時間的各種天氣變化,例如霧和雨。圖像的背景包括城市、山脈、隧道、樹木、建筑物等,背景比較復(fù)雜。訓(xùn)練集共包含7659幅紅外場景圖像,采用COCO數(shù)據(jù)格式進行標(biāo)注。類別包括人、自行車、汽車和狗。本次實驗僅選取人、自行車、汽車作為檢測目標(biāo),其中行人22356個、自行車3986輛、汽車41247輛,共67589個目標(biāo),圖6展示了不同類別的目標(biāo)占比分布。測試集包含1360幅紅外場景圖像,包括5579個行人、471輛自行車、5432輛汽車,共計11482個目標(biāo)。數(shù)據(jù)集的目標(biāo)尺度分布如圖7所示,其中目標(biāo)的寬高比為目標(biāo)高/寬與圖像高/寬的比值。由圖8可見,數(shù)據(jù)集中包含了大量小目標(biāo),同時場景中目標(biāo)的模糊程度不同,增加了檢測的難度。
圖6 目標(biāo)占比分布Fig.6 Target proportion distribution
圖7 目標(biāo)尺度分布圖Fig.7 Target scale distribution map
圖8 部分?jǐn)?shù)據(jù)集樣例Fig.8 Part of the sample datasets
網(wǎng)絡(luò)訓(xùn)練時采用了如下配置:Batch-Size為16,采用Adam優(yōu)化器,初始學(xué)習(xí)速率為0.01,訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)均采用FLIR提供的訓(xùn)練和驗證集。使用YOLOv5提供的數(shù)據(jù)增強策略,采用NVIDIAGTFORCE 1080TI顯卡,pytorch 1.8深度學(xué)習(xí)框架,操作系統(tǒng)為Ubuntu20.04,共訓(xùn)練100個Epoch。對數(shù)據(jù)集采用K-means聚類算法得到了4組錨框,分別為:[9,10,10,19,17,14],[13,29,26,21,18,44],[40,31,30,70,60,45],[92,66,55,120,142,105]。
本文通過平均準(zhǔn)確率(mean Average Precision,mAP),即各個類別的平均值(Average Precision,AP)來評價算法的性能,在計算mAP之前首先需要計算查準(zhǔn)率(Precision)和召回率(Recall)。查準(zhǔn)率是實際是正樣本且模型預(yù)測也是正樣本數(shù)量與模型所有預(yù)測的正樣本數(shù)量的比值。令代表實際的正樣本,模型預(yù)測也是正樣本的數(shù)量;代表實際的負(fù)樣本,但預(yù)測是正樣本的數(shù)量。計算精度的公式為
(3)
召回率是實際為正且正確預(yù)測的樣本數(shù)量與所有實際為正樣本的數(shù)量之比。令代表實際的正樣本但模型預(yù)測的是負(fù)樣本,召回率的公式為
(4)
AP的計算公式如下
(5)
mAP就是不同種類的AP求平均值,mAP0.5表示預(yù)測框與真值框的交并比(Intersection-over-Union,IoU)大于等于0.5情況下準(zhǔn)確預(yù)測的概率;mAP 0.5 0.95表示預(yù)測框與真值框的IoU大于等于0.5小于等于0.95情況下準(zhǔn)確預(yù)測的概率均值。
YOLOv5的損失函數(shù)包括:分類損失(classification loss)、定位損失( localization loss)(預(yù)測邊界框與真實框之間的誤差)、置信度損失(confid-ence loss)。因此,總的損失函數(shù)為: classification loss+localization loss+confidence loss。YOLOv5使用二元交叉熵?fù)p失函數(shù)計算類別概率和目標(biāo)置信度得分的損失。圖9和圖10分別展示了訓(xùn)練過程中各種損失(loss)和評價指標(biāo)的變化趨勢。
圖9 Loss變化曲線Fig.9 Loss curve
圖10 評價指標(biāo)變化曲線Fig.10 Curve of evaluation
為了驗證所提的4檢測頭方案、Detection Block,設(shè)計了如下消融實驗。如表1所示,√表示當(dāng)前網(wǎng)絡(luò)中包含此模塊或改進,×表示當(dāng)前網(wǎng)絡(luò)中不包含此模塊,↑表示該指標(biāo)越大越好,↓表示該指標(biāo)越小越好,紅色代表算法表現(xiàn)最佳,藍(lán)色表示算法表現(xiàn)最差。使用mAP和模型參量作為評價指標(biāo)。模型的訓(xùn)練參數(shù)配置參照2.1節(jié)的實驗設(shè)置。
正如表1所示,僅僅在模型上增加輸出對YOLOv5m的檢測精度并無明顯提升。同時由于在骨干網(wǎng)絡(luò)上增加輸出,導(dǎo)致輸出結(jié)果增加3倍之多,使得模型的檢測速度下降。因此,替換了原始的CSPDarkNet53,采用ResNet50作為特征提取網(wǎng)絡(luò),使得檢測精度和推理速度得到了提升。由表1可見,Detection Block模塊的加入不僅使得模型精度提升,而且模型規(guī)模得到了縮減,這對于后續(xù)部署模型工業(yè)化應(yīng)用是十分有利的。
表1 消融實驗Tab.1 Ablation experiments
圖11展示了消融實驗中不同模塊的檢測效果圖,分別是小目標(biāo)、行人遮擋、多尺度變化等場景, 可以看到V5-IF(圖中綠色框線算法)相比其他算法出現(xiàn)誤檢的情況最少。
圖11 消融實驗效果圖Fig.11 Effect of ablation experiment
選取了當(dāng)前主流的目標(biāo)檢測算法CenterNet、SSD、EfficientDet、YOLOv5m、Faster R-CNN,在FLIR數(shù)據(jù)集上進行測試,對比結(jié)果如表2所示。以上算法均訓(xùn)練100Epoch,紅色、藍(lán)色分別對應(yīng)算法結(jié)果最優(yōu)和次優(yōu),F(xiàn)PS為每秒處理圖像幀數(shù)。
表2 SOTA算法對比結(jié)果圖Tab.2 Comparison results of SOTA methods
如表2所示,改進的YOLOv5-IF算法相比最新的YOLOv5m算法能夠保證一定運行實時性,同時在mAP檢測精度上提升了4%,模型參數(shù)量減少了68%。基于Anchor-Free的CenterNet使用了ResNet50作為特征提取網(wǎng)絡(luò),但在模型規(guī)模和檢測精度上都不及YOLOv5-IF。SSD算法中引入了多尺度檢測頭,但是沒有加入FPN和PANet,因此沒有實現(xiàn)尺度融合,檢測效率也表現(xiàn)一般。兩階段的目標(biāo)檢測算法Faster R-CNN,在推理速度上明顯低于其他算法。
本文針對通用目標(biāo)檢測算法在紅外場景下的不足,考慮到紅外圖像普遍存在的低分辨率、高噪聲、低對比度以及小目標(biāo)等問題,提出了一種YOLOv5-IF算法,主要創(chuàng)新點有:
1)使用了ResNet50作為骨干特征提取網(wǎng)絡(luò),該骨干網(wǎng)絡(luò)基于殘差機制構(gòu)建,實現(xiàn)了特征圖通道信息的高效交互,能夠更加有效地獲取紅外圖像中的目標(biāo)信息,得到更加豐富的語義信息。同時考慮到紅外圖像中存在大量小目標(biāo)的問題,在Backbone上增加了一個輸出,并由此構(gòu)建了一個4檢測頭的算法,使得模型的檢測精度得到了提升。
2)考慮到模型規(guī)模對模型在邊緣移動設(shè)備部署和推理速度的影響,提出了一個高效特征整合網(wǎng)絡(luò),通過構(gòu)建Detection Block模塊,使得模型的檢測精度得到了小范圍提升,同時獲得了更小的模型規(guī)模。最后在紅外自動駕駛數(shù)據(jù)集FLIR上,與現(xiàn)有SOTA算法進行對比,本文所提算法的mAP為74%,參數(shù)量僅19.5MB,優(yōu)于現(xiàn)有的算法。
YOLOv5-IF算法在精度和參數(shù)量方面取得了較好的效果,同時也存在一些問題:由于4檢測頭的引入,輸出結(jié)果的增加導(dǎo)致模型的推理速度并不是最優(yōu),如何均衡算法精度和模型推理速度是后續(xù)研究的重點方向,同時模型在邊緣設(shè)備上的部署問題也是后續(xù)的研究方向。