徐昭洪 劉 宇 全吉成
(空軍航空大學(xué)數(shù)字地球?qū)嶒?yàn)室 長(zhǎng)春 130022)
在目標(biāo)檢測(cè)研究領(lǐng)域,傳統(tǒng)的目標(biāo)檢測(cè)算法主要是基于匹配和分割的檢測(cè)算法,在目標(biāo)識(shí)別方面高度依賴于人工設(shè)計(jì)的特征,導(dǎo)致始終無法提升其實(shí)效性和檢測(cè)精確度。隨著計(jì)算機(jī)硬件技術(shù)(主要是GPU、TPU)的進(jìn)步和人工神經(jīng)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,深度學(xué)習(xí)為目標(biāo)檢測(cè)提供了新的思路和方法。深度學(xué)習(xí)技術(shù)在目標(biāo)檢測(cè)上的重大進(jìn)步主要在于其強(qiáng)大的特征提取能力,它的多層特征提取不但速度快,并且有利于揭示出目標(biāo)類別之間的根本性特征差異,增加圖像分類的準(zhǔn)確性,同時(shí)滿足了目標(biāo)檢測(cè)任務(wù)的準(zhǔn)確性和時(shí)效性要求。
目前,基于深度學(xué)習(xí)發(fā)展出現(xiàn)的目標(biāo)檢測(cè)方法主要分為兩大類。第一類目標(biāo)檢測(cè)方法是基于區(qū)域提名的方法,包括 R-CNN[1~3]、SPP-net[4~5]、Fast R-CNN[6~7]、Faster R-CNN[8~9]、R-FCN[10~11]等。第二類目標(biāo)檢測(cè)方法是無需區(qū)域提名的一種端到端(End-to-End)的目標(biāo)檢測(cè)算法,包括 YOLO[12~13]、SSD[14~15]等單次檢測(cè)器。這些端到端的目標(biāo)檢測(cè)算法使用了回歸的思想,即給定輸入圖像,直接在圖像的多個(gè)位置上回歸出這個(gè)位置的目標(biāo)邊框以及目標(biāo)類別。曹詩雨[16]等針對(duì)傳統(tǒng)車輛目標(biāo)檢測(cè)問題中需要不同圖像場(chǎng)景選擇適合特征這一問題,提出了一種基于快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast R-CNN)的場(chǎng)景圖像車輛目標(biāo)檢測(cè)方法,避免傳統(tǒng)車輛目標(biāo)檢測(cè)中需要設(shè)計(jì)手工特征的問題,但是該模型的缺點(diǎn)是訓(xùn)練時(shí)間長(zhǎng)、預(yù)測(cè)時(shí)間長(zhǎng)、實(shí)效性不強(qiáng)。龔靜[17]等提出基于YOLOv2的車輛實(shí)時(shí)檢測(cè)算法,采用小批量梯度下降法和沖量更新參數(shù)以及使用多尺度圖像輸入進(jìn)行模型訓(xùn)練,以提高檢測(cè)速度和準(zhǔn)確度,但實(shí)驗(yàn)結(jié)果卻表明該模型的召回率較低。Yang[18]等在RPN網(wǎng)絡(luò)和分類器上利用Focal Loss Function代替?zhèn)鹘y(tǒng)交叉熵?fù)p失函數(shù)和使用跳躍鏈接來改進(jìn)Faster R-CNN網(wǎng)絡(luò),用來檢測(cè)航空?qǐng)D像的車輛目標(biāo),但實(shí)驗(yàn)結(jié)果表明該模型存在漏檢、誤檢率較高和F1分?jǐn)?shù)較低的問題。姜尚潔[19]等利用無人機(jī)視頻數(shù)據(jù)制作訓(xùn)練數(shù)據(jù)集,采用YOLOv2網(wǎng)絡(luò)進(jìn)行航拍圖像的車輛目標(biāo)檢測(cè),利用目標(biāo)框決策融合方法和目標(biāo)框位置優(yōu)化策略來改進(jìn)實(shí)驗(yàn),實(shí)驗(yàn)每幀視頻的預(yù)測(cè)時(shí)間為0.0469 s,但是虛警率為8.13%,漏檢率為7.9%,準(zhǔn)確率為85.9%,錯(cuò)誤率高達(dá)14.1%。王雪[20]等通過訓(xùn)練區(qū)域卷積神經(jīng)網(wǎng)絡(luò)用于遙感影像的車輛檢測(cè),單張圖像處理時(shí)間為0.05 s,準(zhǔn)確率為88%,誤檢率為1%,其準(zhǔn)確率仍舊不高。
針對(duì)使用改進(jìn)的YOLO、Faster R-CNN等網(wǎng)絡(luò)漏檢率、誤檢率較高的問題,本文利用基于GoogLeNet設(shè)計(jì)的DetectNet網(wǎng)絡(luò)進(jìn)行航空?qǐng)D像目標(biāo)檢測(cè),從處理粘結(jié)樣本、改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和制定遷移學(xué)習(xí)策略這三個(gè)方面對(duì)DetectNet網(wǎng)絡(luò)改進(jìn)并實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果證明改進(jìn)效果明顯,得到了精度高、泛化能力強(qiáng)的目標(biāo)檢測(cè)模型,對(duì)于檢測(cè)被建筑物或樹木遮擋的車輛目標(biāo)依然具有非常高的準(zhǔn)確率。
DetectNet網(wǎng)絡(luò)是NVIDIA研發(fā)團(tuán)隊(duì)以GoogLeNet模型的全卷積結(jié)構(gòu)為骨干網(wǎng)絡(luò)設(shè)計(jì)的一個(gè)用于人臉、行人和車輛等通用目標(biāo)檢測(cè)的深度神經(jīng)網(wǎng)絡(luò)。本文對(duì)其進(jìn)行改進(jìn),用來實(shí)施對(duì)航空?qǐng)D像中各型車輛目標(biāo)的檢測(cè)。同其它目標(biāo)檢測(cè)器類似,DetectNet模型卷積層學(xué)習(xí)到的特征將會(huì)被傳遞到分類器或回歸器,分別通過1×1的卷積核獲得1個(gè)輸出量和4個(gè)輸出量,用于預(yù)測(cè)目標(biāo)類別和邊界框坐標(biāo)。為了說明DetectNet網(wǎng)絡(luò)的檢測(cè)原理,假設(shè)訓(xùn)練圖像的尺寸為1024×1024像素。
對(duì)于損失函數(shù),該模型通過L1和L2損失函數(shù)的線性組合來計(jì)算總損失。L1損失函數(shù)如式(1)所示,其中N表示圖像總數(shù),X1t、Y1t、X2t、Y2t表示目標(biāo)真實(shí)邊界框的左上角點(diǎn)和右下角點(diǎn)的坐標(biāo),X1p、Y1p、X2p、Y2p表示預(yù)測(cè)邊界框的左上角點(diǎn)和右下角點(diǎn)的坐標(biāo)。
L2損失函數(shù)如式(2)所示,其中N表示圖像總數(shù),Sit表示第i張圖像的真實(shí)目標(biāo)區(qū)域,Sip表示DetectNet網(wǎng)絡(luò)預(yù)測(cè)第i張圖像得到的目標(biāo)區(qū)域,該損失值本質(zhì)上是歐幾里得距離(Euclidean Distance,ED)。
DetectNet的訓(xùn)練與驗(yàn)證過程如圖1所示。在訓(xùn)練階段,輸入層對(duì)輸入的圖像和標(biāo)簽數(shù)據(jù)以一種在線擴(kuò)充的方式進(jìn)行數(shù)據(jù)增強(qiáng),然后通過GoogLeNet全卷積部分進(jìn)行特征提取,用于目標(biāo)類別和邊界框的預(yù)測(cè),最后通過L1和L2損失函數(shù)的線性組合來計(jì)算模型的總損失,進(jìn)行模型優(yōu)化。在驗(yàn)證階段,圖像通過GoogLeNet全卷積后得到目標(biāo)區(qū)域和邊界框,根據(jù)邊界框重疊閾值對(duì)不合理的邊界框進(jìn)行過濾,再根據(jù)最終的預(yù)測(cè)邊界框和目標(biāo)的真實(shí)邊界框來計(jì)算mAP值,用于評(píng)價(jià)模型的平均檢測(cè)精度。
在數(shù)據(jù)集制作方面,將訓(xùn)練圖像尺寸分別放大至原圖像的2~5倍來尋找最適合DetectNet網(wǎng)絡(luò)檢測(cè)的目標(biāo)尺寸(DetectNet網(wǎng)絡(luò)對(duì)目標(biāo)的最佳檢測(cè)區(qū)間約為50×50像素至400×400像素)。此外,對(duì)于在裁剪、制作訓(xùn)練數(shù)據(jù)集時(shí)產(chǎn)生的邊界樣本,采取對(duì)其進(jìn)行不完全標(biāo)注的方法,來提高訓(xùn)練樣本的質(zhì)量。由于本文的實(shí)驗(yàn)是針對(duì)高空航拍圖像中的車輛(屬于小目標(biāo)檢測(cè)),如果邊界樣本不進(jìn)行標(biāo)注,車輛密集區(qū)域?qū)⒂写罅康倪吔鐦颖颈缓雎缘?,模型將?huì)把這些邊界樣本當(dāng)作圖像的背景來訓(xùn)練,這在小訓(xùn)練樣本訓(xùn)練誤差中是有一定影響的。邊界樣本的特點(diǎn)如圖2的黃色邊界框所示。
圖1 DetectNet的訓(xùn)練與驗(yàn)證
圖2 邊界樣本示意圖
在網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)方面,用兩個(gè)3×3的串聯(lián)卷積結(jié)構(gòu)代替單個(gè)5×5的卷積結(jié)構(gòu)。使用兩個(gè)3×3串聯(lián)卷積結(jié)構(gòu)與單個(gè)5×5卷積結(jié)構(gòu)的作用是等價(jià)的,但前者在參數(shù)數(shù)量上較后者減少了28%,并且網(wǎng)絡(luò)更深,提高了模型的特征提取能力,可獲取更精準(zhǔn)的分類和定位效果。同時(shí),使用批歸一化(BN)層代替局部響應(yīng)歸一化(LRN)層,加速模型收斂速度并抑制小樣本訓(xùn)練過程中的過擬合現(xiàn)象。
在訓(xùn)練策略方面,根據(jù)訓(xùn)練圖像的尺寸、計(jì)算機(jī)的運(yùn)行內(nèi)存和顯存大小,設(shè)定批大小為2,batch accumulation為5(其作用是等價(jià)于設(shè)定批大小為10)來提高GPU的利用率,同時(shí)也能夠發(fā)揮Batch Normalization層抑制過擬合的效果,在訓(xùn)練和收斂速度上達(dá)到最佳效果。學(xué)習(xí)率設(shè)為0.0001并隨著訓(xùn)練過程持續(xù)進(jìn)行指數(shù)遞減,防止在整個(gè)訓(xùn)練過程中因?yàn)閷W(xué)習(xí)率過大而破壞網(wǎng)絡(luò)提取到的特征。利用GoogLeNet模型作為預(yù)訓(xùn)練模型來遷移訓(xùn)練原始的DetectNet網(wǎng)絡(luò),訓(xùn)練之后的模型將作為另一預(yù)訓(xùn)練模型,然后利用該模型對(duì)改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)之后的DetectNet網(wǎng)絡(luò)進(jìn)一步微調(diào),每完成一個(gè)epoch保存對(duì)應(yīng)的Caffe模型以便選取效果最佳的目標(biāo)檢測(cè)模型。
本文基于DetectNet網(wǎng)絡(luò)的目標(biāo)檢測(cè)模型通過Caffe[21]框架進(jìn)行訓(xùn)練。軟件方面,本實(shí)驗(yàn)使用的操作系統(tǒng)版本為64位Ubuntu 16.04 LTS的Linux操作系統(tǒng)。本實(shí)驗(yàn)使用的開發(fā)平臺(tái)是由NVIDIA公司發(fā)布的深度學(xué)習(xí)GPU訓(xùn)練系統(tǒng)(DIGITS)。硬件方面,主要的機(jī)器硬件配置為六核十二線程的英特爾酷睿i7-8750H CPU,顯存為6G的 NVIDIA Ge-Force GTX 1060 GPU,運(yùn)行內(nèi)存為16G。
本實(shí)驗(yàn)使用的航空遙感數(shù)據(jù)集為DLR 3K Munich Vehicle Aerial Image Dataset。該數(shù)據(jù)集共包括20張?jiān)紙D像,標(biāo)簽文件包含了各類車輛的位置、長(zhǎng)度和寬度。按照DetectNet網(wǎng)絡(luò)的數(shù)據(jù)預(yù)處理的要求,本實(shí)驗(yàn)數(shù)據(jù)格式設(shè)定為
Car 0 0 0 112.42 175.76 165.54 212.32 0 0 0 0 0 0 0
其中Car表示目標(biāo)的類型(即車輛目標(biāo)),112.42、175.76、165.54、212.32分別為目標(biāo)邊界框的左上角點(diǎn)和右下角點(diǎn)在圖像中的橫坐標(biāo)與縱坐標(biāo),0在本實(shí)驗(yàn)中無實(shí)際意義。
對(duì)于實(shí)驗(yàn)數(shù)據(jù)集的劃分,根據(jù)機(jī)器學(xué)習(xí)對(duì)數(shù)據(jù)集的劃分準(zhǔn)則,每一組實(shí)驗(yàn)按照6:2:2的比例將數(shù)據(jù)集的所有圖像劃分成訓(xùn)練集(Training Set)、驗(yàn)證集(Validation Set)和測(cè)試集(Test Set)。
3.3.1 改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)后的實(shí)驗(yàn)結(jié)果分析
表1是使用不同放大倍數(shù)的圖像訓(xùn)練Detect-Net網(wǎng)絡(luò)和單獨(dú)訓(xùn)練YOLOv3模型所獲得的實(shí)驗(yàn)結(jié)果。
表1中,RR表示車輛目標(biāo)的召回率,PR表示車輛目標(biāo)預(yù)測(cè)的精確率,mAP表示車輛目標(biāo)的平均檢測(cè)精度。F1Score作為模型綜合評(píng)價(jià)指標(biāo),其計(jì)算方法可表示為式(3)。
表1的實(shí)驗(yàn)結(jié)果表明,訓(xùn)練圖像未放大時(shí),模型召回率和平均檢測(cè)精度較低;訓(xùn)練圖像在放大2倍時(shí),模型獲得了最高的召回率、平均檢測(cè)精度和F1Score,說明此時(shí)車輛目標(biāo)的尺寸達(dá)到了Detect-Net網(wǎng)絡(luò)的敏感檢測(cè)尺寸,更有利于檢測(cè)車輛;訓(xùn)練圖像被放大3倍時(shí),模型的預(yù)測(cè)率和召回率同放大2倍時(shí)相比有所降低;訓(xùn)練圖像被放大4倍時(shí),模型的平均檢測(cè)精度開始明顯下降;當(dāng)訓(xùn)練圖像被放大5倍時(shí),模型召回率非常低,平均檢測(cè)精度已經(jīng)低于10%,表明此時(shí)模型基本不具備車輛目標(biāo)檢測(cè)能力。YOLOv3模型對(duì)車輛的預(yù)測(cè)率最高,但召回率較低。
表1 不同放大比例的圖像實(shí)驗(yàn)結(jié)果
3.3.2 改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)后的實(shí)驗(yàn)結(jié)果分析
將訓(xùn)練圖像放大2倍后,已取得較好的檢測(cè)效果,為了進(jìn)一步提高mAP值,本文采用兩個(gè)3×3的串聯(lián)卷積結(jié)構(gòu)代替單個(gè)5×5的卷積結(jié)構(gòu),改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)后模型的mAP指標(biāo)由56.4%提高到66.4%。網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)前后的檢測(cè)效果如圖3所示,改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)后的模型的誤檢率低,對(duì)密集區(qū)域中車輛目標(biāo)的預(yù)測(cè)更加準(zhǔn)確。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)前后的檢測(cè)結(jié)果
3.3.3 改進(jìn)模型的時(shí)效性分析
評(píng)價(jià)一個(gè)目標(biāo)檢測(cè)模型的綜合性能,除了目標(biāo)檢測(cè)的精確度,還有一項(xiàng)重要的評(píng)價(jià)指標(biāo)——時(shí)效性。表2列出本文方法在DLR 3K Munich Vehicle Aerial Image Dataset上的單張圖像預(yù)測(cè)時(shí)間和目前常用的4種目標(biāo)檢測(cè)算法[23]在COCO數(shù)據(jù)集上的單張圖像預(yù)測(cè)時(shí)間。除了本文的算法之外,其他算法的單張圖像預(yù)測(cè)時(shí)間均是在NVIDIA TITAN X顯卡上測(cè)試得到。
表2 不同目標(biāo)檢測(cè)方法的單張圖像預(yù)測(cè)時(shí)間
本實(shí)驗(yàn)在NVIDIA GeForce GTX 1060顯卡上,通過對(duì)100張320×320像素測(cè)試圖像的預(yù)測(cè)時(shí)間的總和求平均值,得到單張圖像的預(yù)測(cè)時(shí)間。DetecNet模型對(duì)單張尺寸為320×320像素的測(cè)試圖像的預(yù)測(cè)時(shí)間為0.101秒,預(yù)測(cè)速度達(dá)到了令人滿意的結(jié)果,在高級(jí)別顯卡上將可實(shí)現(xiàn)視頻的實(shí)時(shí)檢測(cè)。SSD網(wǎng)絡(luò)和R-FCN網(wǎng)絡(luò)在TITAN X顯卡上的測(cè)試時(shí)間與DetecNet模型相比,分別少0.05秒和0.016秒。YOLOv3檢測(cè)速度最快,在NVIDIA Ge-Force GTX 1060顯卡上,單張320×320像素的測(cè)試圖像的檢測(cè)時(shí)間僅為0.042秒,在TITAN X顯卡上的測(cè)試時(shí)間更是達(dá)到了0.022秒。此外,DetecNet模型對(duì)單張尺寸為1024×1024像素的測(cè)試圖像的預(yù)測(cè)時(shí)間為0.412秒。
針對(duì)應(yīng)用YOLOv2、Faster R-CNN等方法進(jìn)行航空?qǐng)D像目標(biāo)檢測(cè)時(shí)漏檢及誤檢現(xiàn)象比較嚴(yán)重等實(shí)際問題,本文提出利用基于全卷積結(jié)構(gòu)設(shè)計(jì)的DetectNet網(wǎng)絡(luò)進(jìn)行航空?qǐng)D像車輛目標(biāo)檢測(cè),從合理標(biāo)注邊界樣本上提高訓(xùn)練數(shù)據(jù)集的質(zhì)量、利用兩個(gè)3×3的串聯(lián)卷積結(jié)構(gòu)代替單個(gè)5×5的卷積結(jié)構(gòu)來改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和制定合理的訓(xùn)練策略這三個(gè)方面對(duì)DetectNet網(wǎng)絡(luò)進(jìn)行模型改進(jìn)。實(shí)驗(yàn)結(jié)果證明了改進(jìn)方案的合理性,其中最佳DetectNet檢測(cè)模型的mAP值為66.4%,單張1024×1024像素的圖像和320×320像素的圖像在NVIDIA GeForce GTX 1060顯卡上的預(yù)測(cè)時(shí)間分別為0.412秒和0.101秒。改進(jìn)的實(shí)驗(yàn)?zāi)P蛯?duì)于尺寸較小或被樹木建筑等遮擋的車輛目標(biāo),仍能達(dá)到較高的檢測(cè)精度。文中的實(shí)驗(yàn)?zāi)P腿匀淮嬖谶M(jìn)一步改進(jìn)的空間,例如采用特征提取能力更強(qiáng)的骨干網(wǎng)絡(luò)、利用TensorRT等推理加速器的結(jié)構(gòu)優(yōu)化功能來加速模型的推理速度等,都可以作為未來的研究方向。