趙玉瑩
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院, 大慶 163000)
航拍圖像是指由無人機(jī)搭載高清攝像設(shè)備以俯拍的角度獲取地面的圖像信息。近些年,國家對(duì)于無人機(jī)的研究,已從簡(jiǎn)單的飛行操作到實(shí)現(xiàn)偵查、勘探等功能。隨著人工智能技術(shù)的飛速發(fā)展,結(jié)合無人機(jī)等硬件設(shè)施已在交通監(jiān)管、農(nóng)林管理、智慧城市等領(lǐng)域得到廣泛應(yīng)用。為了實(shí)現(xiàn)對(duì)地面信息的精準(zhǔn)識(shí)別,航空影像的目標(biāo)檢測(cè)技術(shù)已成為人們研究的重點(diǎn)。
在航拍圖像中存在背景龐雜,場(chǎng)景多樣,目標(biāo)相對(duì)較小等情況[1],傳統(tǒng)的目標(biāo)檢測(cè)方法無法滿足當(dāng)前航拍圖像檢測(cè)的要求。自Hinton等人在2012年的ImageNet競(jìng)賽中提出AlexNet網(wǎng)絡(luò)以來[2],依靠手工提取特征的傳統(tǒng)目標(biāo)檢測(cè)方法已被基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的目標(biāo)檢測(cè)方法所取締。目前基于CNN的目標(biāo)檢測(cè)方法可歸納為兩種類型:一種是分兩個(gè)階段來完成目標(biāo)檢測(cè)任務(wù),該方法先將圖像中可能存在目標(biāo)的區(qū)域都標(biāo)記出來,即生成目標(biāo)的候選框;然后采用基于CNN的模型將候選區(qū)域進(jìn)行正確的分類。如R-CNN[3]、Faster R-CNN[4]、R-FCN[5]等都在公共數(shù)據(jù)集上實(shí)現(xiàn)了對(duì)目標(biāo)的精準(zhǔn)檢測(cè)和語義分割。但該類方法中會(huì)存在大量的候選框,使得對(duì)特征提取的計(jì)算量過大,導(dǎo)致檢測(cè)的速度過慢,無法滿足實(shí)時(shí)檢測(cè)的需求。針對(duì)這類方法存在的問題,研究學(xué)者們提出端到端的檢測(cè)方法。2016年,Redmon等人[6]提出了YOLO,其使用了回歸思想,將輸入的圖像分為大小一致的多個(gè)區(qū)域,直接在每個(gè)區(qū)域上預(yù)測(cè)相應(yīng)的目標(biāo)邊框與類別[7],相較于Faster R-CNN算法,檢測(cè)的速度提高許多,但是檢測(cè)的準(zhǔn)確率略有遜色。同年,SSD方法結(jié)合了YOLO算法的回歸思想與Faster R-CNN中的多尺度特征提取方法[8],實(shí)現(xiàn)了檢測(cè)的精準(zhǔn)性與實(shí)時(shí)性,然而對(duì)小目標(biāo)的檢測(cè)結(jié)果依然不夠理想。航拍影像的獲取具有特殊性,存在目標(biāo)尺度小、噪聲較多、背景龐雜等特性,因此無法將這些方法直接用于航拍目標(biāo)檢測(cè)。
為解決以上問題,本文提出一種基于深度殘差網(wǎng)絡(luò)多特征融合的目標(biāo)檢測(cè)模型。本文的主要工作是采用基于端到端的SSD網(wǎng)絡(luò)框架,引入深度殘差網(wǎng)絡(luò)(ResNet)為基礎(chǔ)網(wǎng)絡(luò)增強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力,緩解由網(wǎng)絡(luò)加深產(chǎn)生的梯度消失現(xiàn)象,并采用特征金字塔(FPN)結(jié)構(gòu)實(shí)現(xiàn)底層特征與高層語義信息的融合;提高對(duì)航拍影像中小目標(biāo)檢測(cè)的精準(zhǔn)性與魯棒性。
ResNet是2015年何凱明等人提出的用于圖像分類識(shí)別的一種深度卷積神經(jīng)網(wǎng)絡(luò)[9],其網(wǎng)絡(luò)的核心是通過對(duì)前后卷積層之間添加了“跳躍連接”機(jī)制,如圖1所示。
圖1 殘差塊結(jié)構(gòu)圖
x為殘差塊的輸入;H(x)為模塊的輸出。定義另一個(gè)殘差映射函數(shù)F(x)=H(x)-x,那么原始的映射函數(shù)為H(x)=F(x)+x,可以看作是主路徑上的F(x)與跳躍連接中的x之和,這種結(jié)構(gòu)實(shí)現(xiàn)了恒等映射的學(xué)習(xí),在網(wǎng)絡(luò)訓(xùn)練中促進(jìn)梯度的反向傳播,還可以訓(xùn)練更深的CNN。
將殘差塊的輸入設(shè)為xl,網(wǎng)絡(luò)的輸出設(shè)為xl+1,得到結(jié)構(gòu)的計(jì)算過程為式(1)、式(2)。
yl=h(xl)+F(xl,Wl)
(1)
xl+1=f(yl)
(2)
式(2)中,f為激活函數(shù),本文采用ReLU函數(shù)。如果h(xl)=xl和f(yl)=yl是恒等映射,那么表達(dá)可為式(3)。
xl+1=xl+F(xl,Wl)
(3)
通過網(wǎng)絡(luò)的層數(shù)增加,不斷增加殘差塊,最后得到的遞歸式為式(4)。
(4)
式中,L表示任意深的殘差塊。
而對(duì)于梯度的反向傳播,設(shè)損失函數(shù)為θ,那么可以得到式(5)。
(5)
雖然深度殘差網(wǎng)絡(luò)加深了網(wǎng)絡(luò)對(duì)目標(biāo)特征的學(xué)習(xí),但是對(duì)底層特征圖的利用不充分,致使小目標(biāo)的檢測(cè)結(jié)果不夠理想。本文將FPN的思想添加到檢測(cè)模型的網(wǎng)絡(luò)結(jié)構(gòu)中,把低層特征的邊緣信息和高層特征的豐富語義信息通過橫向連接和top-down網(wǎng)絡(luò)融合起來,實(shí)現(xiàn)對(duì)各個(gè)尺度卷積層的特征信息的充分利用,提升航拍圖像中多尺度目標(biāo)的檢測(cè)精度。
對(duì)ResNet網(wǎng)絡(luò)的conv2,conv3,conv4和conv5層中最后經(jīng)過激活函數(shù)的輸出用{C2,C3,C4,C5}表示,然后在C5上添加1×1的卷積生成特征圖P5,再將P5與經(jīng)過1×1卷積處理后的C4合并生成P4,同理依次生成P3,P2,最后對(duì){P2,P3,P4}的特征圖附加3×3卷積生成最終的特征圖,如圖2所示。
圖2 特征融合網(wǎng)絡(luò)結(jié)構(gòu)
采用特征圖金字塔網(wǎng)絡(luò)結(jié)構(gòu)將淺層特征與深層特征進(jìn)行融合,有效地解決了網(wǎng)絡(luò)較深時(shí)淺層小目標(biāo)易丟失、無法獲取豐富的語義信息的問題。
本文提出的檢測(cè)模型的網(wǎng)絡(luò)結(jié)構(gòu),如圖3所示。
圖3 本文檢測(cè)模型的網(wǎng)絡(luò)結(jié)構(gòu)圖
將原始的ResNet網(wǎng)絡(luò)去掉最后的全連接層和Softmax層后的網(wǎng)絡(luò)層作為本文檢測(cè)模型的基礎(chǔ)網(wǎng)絡(luò),并將conv2,conv3,conv4特征融合后生成的特征圖與新增卷積層中conv6_2,conv7_2,conv8_2的特征圖一同進(jìn)行預(yù)測(cè)。
對(duì)于每個(gè)特征層上的默認(rèn)框本文采取不同的寬高比,由此提取多尺度的目標(biāo)特征。每個(gè)默認(rèn)框大小計(jì)算式為式(6)。
(6)
式中m表示特征圖的數(shù)量;Sk表示默認(rèn)框的大小相對(duì)于整張圖片的比例;Smin和Smax表示比例的最小值和最大值,分別設(shè)為0.2和0.9,可計(jì)算得出每個(gè)默認(rèn)框的尺寸,其寬高設(shè)置為式(7)。
(7)
式中,ar為長(zhǎng)寬比,取值為ar∈{1,2,3,1/2,1/3},由此對(duì)每個(gè)特征圖設(shè)計(jì)5個(gè)不同尺寸的默認(rèn)框用以提取目標(biāo)。
生成特征圖后根據(jù)目標(biāo)函數(shù)進(jìn)行分類與定位,因此目標(biāo)函數(shù)分成類別損失與位置損失兩部分,類別損失是計(jì)算生成的默認(rèn)框與目標(biāo)類別之間的誤差,為式(8)。
(8)
位置損失是計(jì)算預(yù)測(cè)框相對(duì)于真實(shí)物體邊界框的誤差,使用Smooth L1 loss進(jìn)行計(jì)算,為式(9)。
(9)
式中,l代表預(yù)測(cè)框與默認(rèn)框之間的變換關(guān)系;g代表真實(shí)物體邊界框與默認(rèn)框之間的變換關(guān)系。最后的目標(biāo)損失函數(shù)為置信損失Lconf(x,c)和位置損失Lloc(x,l,g)兩部分的加權(quán)和,其計(jì)算式為式(10)。
(10)
式中,N表示與真實(shí)物體邊界框?qū)?yīng)的預(yù)測(cè)框的個(gè)數(shù);α表示用來決定類別損失和位置損失所占權(quán)重的參數(shù),一般取值為1[11]。最后使用非最大值抑制NMS過濾掉重疊度較大的預(yù)測(cè)框,最終剩余的預(yù)測(cè)框即為檢測(cè)結(jié)果。
本文實(shí)驗(yàn)使用的圖像數(shù)據(jù)集是提取了DOTA[12]、UCAS_AOD、RSOD-Dataset等航拍數(shù)據(jù)集以及自己制作的航拍飛機(jī)檢測(cè)數(shù)據(jù)集,并通過鏡像、旋轉(zhuǎn)、添加噪聲、拼接等方式進(jìn)行數(shù)據(jù)增廣,如圖4所示。
最終制作了6 525張航拍飛機(jī)圖像數(shù)據(jù)集,并對(duì)每張圖像中飛機(jī)標(biāo)注的面積占整張圖像的比例進(jìn)行了統(tǒng)計(jì),如圖5所示。
圖4 數(shù)據(jù)增廣示例
圖5 目標(biāo)面積占圖像面積的比例統(tǒng)計(jì)
本實(shí)驗(yàn)的數(shù)據(jù)集中共計(jì)有29 914個(gè)飛機(jī)目標(biāo),其中占整張圖像面積小于5%的就有25 283個(gè),說明該數(shù)據(jù)集中多數(shù)為小目標(biāo)。
實(shí)驗(yàn)環(huán)境及具體配置參數(shù),如表1所示。
在模型訓(xùn)練的過程中,學(xué)習(xí)率初始設(shè)為0.03,采用隨機(jī)下降法進(jìn)行優(yōu)化,處理批次為4,共迭代了3萬次,前15 000次中學(xué)習(xí)率為0.03,然后將學(xué)習(xí)率下調(diào)至0.000 1再訓(xùn)練15 000次,最后模型在20 000次左右整體損失函數(shù)得到收斂的最佳效果,如圖6所示。
圖6 總體損失函數(shù)
本實(shí)驗(yàn)僅對(duì)飛機(jī)一類目標(biāo)進(jìn)行檢測(cè),因此對(duì)模型檢測(cè)的結(jié)果使用平均準(zhǔn)確率(mAP)與每秒處理圖像數(shù)量(FPS)作為評(píng)價(jià)標(biāo)準(zhǔn),對(duì)基于VGG16網(wǎng)絡(luò)、ResNet50網(wǎng)絡(luò)的SSD算法和本文算法進(jìn)行實(shí)驗(yàn)對(duì)比,檢測(cè)結(jié)果如表2所示。
表2 三種檢測(cè)模型實(shí)驗(yàn)結(jié)果對(duì)比
本文算法較基于VGG16的SSD算法對(duì)小目標(biāo)檢測(cè)的準(zhǔn)確率提升了6.7%。
不同算法對(duì)航拍視角下飛機(jī)檢測(cè)的結(jié)果如圖7所示。
由檢測(cè)結(jié)果圖可以看出,無論是在復(fù)雜背景還是密集區(qū)域中,本文算法都能較原始SSD算法檢測(cè)的效果更好。
(a) SSD算法
本文針對(duì)傳統(tǒng)算法對(duì)航拍圖像中小目標(biāo)檢測(cè)效果不理想的問題,通過引入深度殘差網(wǎng)絡(luò)加深網(wǎng)絡(luò)學(xué)習(xí)提升網(wǎng)絡(luò)訓(xùn)練能力,并有效降低網(wǎng)絡(luò)冗余。同時(shí)本文針對(duì)基礎(chǔ)網(wǎng)絡(luò)中對(duì)底層邊緣信息利用不充分的問題,結(jié)合FPN網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)淺層特征圖與深層特征圖融合,充分利用多尺度卷積層的特征信息,增強(qiáng)了模型對(duì)小目標(biāo)檢測(cè)的魯棒性。實(shí)驗(yàn)結(jié)果表明,本文的航拍目標(biāo)檢測(cè)算法可以愈加精確的檢測(cè)出圖像中的飛機(jī)目標(biāo),驗(yàn)證了本算法的有效性。