魯 博,瞿紹軍,2
1(湖南師范大學(xué) 信息科學(xué)與工程學(xué)院,長沙 410081)
2(湖南師范大學(xué) 湖南湘江人工智能學(xué)院,長沙 410081)
目標(biāo)檢測是對目標(biāo)進行定位和分類,主要任務(wù)是準(zhǔn)確高效地找出給定圖像中所有感興趣的目標(biāo),是圖像標(biāo)注、圖像語義分割、圖像實例分割和視頻理解等基礎(chǔ)[1].目標(biāo)檢測主要分為基于傳統(tǒng)機器學(xué)習(xí)的算法和基于深度學(xué)習(xí)的算法,基于深度學(xué)習(xí)的目標(biāo)檢測算法在近年發(fā)展非常迅速,文獻[1-5]和對深度學(xué)習(xí)在目標(biāo)檢測的研究進展、代表性算法、常用數(shù)據(jù)集和性能評價指標(biāo)進行了比較詳細(xì)的討論.基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩類:兩階段算法和單階段算法[1-4]1,2.兩階段目標(biāo)檢測算法先進行區(qū)域生成(region proposal,RP,一個有可能包含待檢物體的預(yù)選框),再通過卷積神經(jīng)網(wǎng)絡(luò)進行樣本分類.常見的兩階段目標(biāo)檢測算法有:R-CNN[6]、SPP-Net[7]、Fast R-CNN[8]、Faster R-CNN[9]和R-FCN[10]等.單階段算法支持端到端的訓(xùn)練,不用RP,直接在網(wǎng)絡(luò)中提取特征來預(yù)測物體分類和位置.常見的單階段目標(biāo)檢測算法有:OverFeat[11]、Yolo[12]、SSD[13]等.兩階段算法雖然精度較高,但是由于需要預(yù)先生成大量預(yù)選框,其檢測速度極慢.單階段算法雖然速度較快,但是其檢測精度往往有所欠缺,難以達到特定檢測需求.但單階段類檢測框架仍然具有絕對的速度優(yōu)勢和可挖掘的精度潛力.
航拍圖像中的車輛長寬往往不超過幾十像素,在圖片中的面積比例極小,屬于小目標(biāo),無論是單階段還是兩階段檢測模型的小目標(biāo)檢測效果通常較差.文獻[14]對近年來國內(nèi)外小目標(biāo)檢測方法進行了梳理,對小目標(biāo)檢測難點進行分析.當(dāng)前針對小目標(biāo)檢測的方法主要有上采樣,多尺度預(yù)測,生成對抗網(wǎng)絡(luò).此外,特征金字塔(FPN)[15]也是目標(biāo)檢測領(lǐng)域中表現(xiàn)效果極佳的一類結(jié)構(gòu),近年來已演變出各種新的形式:PANET[16],NAS-FPN[17],BiFPN[18]等,旨在對來自不同網(wǎng)絡(luò)層的特征輸出進行融合,增強特征信息.文獻[19]系統(tǒng)總結(jié)了近兩年基于YOLO系列算法對無人機目標(biāo)識別和檢測的研究.文獻[20]提出一種基于多尺度融合單點多盒探測器(SSD)的小目標(biāo)檢測算法,以SSD和DSSD算法的網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),結(jié)合SSD-VGG16擴展卷積特征圖,設(shè)計融合模塊實現(xiàn)Top-Down結(jié)構(gòu)的功能.文獻[21]提出一種基于殘差網(wǎng)絡(luò)的航拍目標(biāo)檢測算法,在SSD目標(biāo)檢測算法的基礎(chǔ)上,用表征能力更強的殘差網(wǎng)絡(luò)進行基準(zhǔn)網(wǎng)絡(luò)的替換.
本文旨在保證網(wǎng)絡(luò)算法檢測速度的同時提高檢測精度,使航拍車輛檢測算法具有更強的性能.本文從輕量級主干網(wǎng)出發(fā),在其基礎(chǔ)上添加特征金字塔結(jié)構(gòu),并設(shè)計新的上采樣結(jié)構(gòu),增強網(wǎng)絡(luò)對圖片特征信息的提取,提高檢測效果.主要創(chuàng)新點為:1)在Yolov3結(jié)構(gòu)上增加調(diào)整過的BiFPN結(jié)構(gòu);2)設(shè)計新的上采樣結(jié)構(gòu)替換原有上采樣結(jié)構(gòu);3)增加高分辨率預(yù)測分支;4)增大網(wǎng)絡(luò)分辨率.
早期的目標(biāo)檢測往往是基于傳統(tǒng)機器學(xué)習(xí)的方法,參照經(jīng)驗手工刻畫特征,再使用分類器進行分類.而隨著卷積神經(jīng)網(wǎng)絡(luò)在計算機視覺領(lǐng)域大放異彩,通過堆疊多層卷積的深度學(xué)習(xí)目標(biāo)檢測算法模型成為了主流方法.與傳統(tǒng)機器學(xué)習(xí)方法相比,兩階段代表性檢測模型R-CNN在區(qū)域生成機制得到候選框后,用CNN進行特征提取并用SVM分類,極大地提升了目標(biāo)檢測的精度.在這之后提出的Fast R-CNN通過在特征圖上進行區(qū)域生成,避免了對同一區(qū)域進行重復(fù)CNN運算,提升了檢測速度.此類方法在第一階段都通過傳統(tǒng)機器學(xué)習(xí)的選擇性搜索(selective search)方法選出多達2000個候選框,每一個候選框都需要進行CNN特征提取和SVM分類,巨大的計算量使得檢測速度極為緩慢.為了解決Fast R-CNN候選區(qū)域生成耗時極大問題,提出了Faster R-CNN,其針對性的提出區(qū)域生成網(wǎng)絡(luò) (region proposal network:RPN)結(jié)構(gòu),用來替代選擇性搜索方法,篩選出候選區(qū)域.雖然速度有所提升,但由于其繁重的網(wǎng)絡(luò)結(jié)構(gòu),每秒檢測幀數(shù)仍然較少,且占用內(nèi)存較大,難以滿足實際應(yīng)用需求.因此,作為單階段檢測模型開山之作的Yolo被提了出來,其獨特的端到端訓(xùn)練結(jié)構(gòu)極具借鑒價值,一經(jīng)提出便成為目標(biāo)檢測的最經(jīng)典的算法之一.Yolo核心思想是將整張圖片作為網(wǎng)絡(luò)的輸入,直接在輸出層對邊界框和類別進行回歸,省去了候選區(qū)域生成這一步驟.同樣具有代表性的一階段檢測模型SSD與Yolo有著異曲同工之處.SSD采用VGG16作為主干骨網(wǎng)絡(luò)對輸入圖片的特征進行提取.額外從主干骨網(wǎng)絡(luò)的6個卷積層獲取6個不同尺度的特征圖,在不同的感受野上進行檢測并借鑒Yolo的回歸思想輸出邊界框和類別.而近段時間谷歌大腦推出的Efficientnet[16]和Mobilenetv3[22]都有著不錯的性能表現(xiàn),也有著較好的應(yīng)用前景.
由于Yolo系列在單階段檢測框架中具有很強的代表性且存在較大的改進潛力,目前已經(jīng)演變出多種版本.其中Yolov3[18]和Yolov3-tiny[23]分別在精度和速度上有著極佳的表現(xiàn)且具有較大的改進空間.
大量實驗表明:在網(wǎng)絡(luò)中增加殘差層可以解決梯度消失與細(xì)節(jié)特征丟失的問題,且FPN對特征語義的加強有著明顯的作用.因此,這兩種網(wǎng)絡(luò)在一定程度上借鑒了殘差網(wǎng)絡(luò)與特征金字塔的結(jié)構(gòu)設(shè)計.Yolov3的主干網(wǎng)使用了darknet53,其具有53層卷積層且引入了殘差塊,同時還加入了特征金字塔結(jié)構(gòu)實現(xiàn)多尺度檢測.而Yolov3-tiny為了提高速度,在Yolov3的基礎(chǔ)上減少了主干骨中的部分卷積,并且只保留了13×13,26×26兩個尺度的預(yù)測分支,在精度上有一定的損失但是速度提升很大.
鑒于車輛檢測實際應(yīng)用中要考慮到硬件性能限制問題,網(wǎng)絡(luò)需要在保證檢測精度的情況下結(jié)構(gòu)盡可能簡單,保證檢測速度,減少運算開銷.因此,本文采用Yolov3-tiny的特征提取網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),在此基礎(chǔ)上提出一種輕量級目標(biāo)檢測算法網(wǎng)絡(luò)模型.
Yolov3-tiny是Yolo系列中的輕量級網(wǎng)絡(luò),由卷積層、池化層,反池化層,連接層組成.其結(jié)構(gòu)如圖1所示.
圖1 Yolov3-tiny網(wǎng)絡(luò)結(jié)構(gòu)(圖中conv表示卷積層)
Yolov3-tiny具有極快的檢測速度與較高的精度,得益于其主干網(wǎng)較強的特征提取能力,因此,本文將其兩個無特征提取作用的預(yù)測分支去除,保留剩下的主要部分網(wǎng)絡(luò)結(jié)構(gòu)作為特征提取的主干網(wǎng).
隨著網(wǎng)絡(luò)層次不斷加深,特征的語義也由低維變向高維,然而,每一層網(wǎng)絡(luò)都會造成一定程度上的特征丟失,因此,需要對不同層級的特征進行融合[24],豐富特征語義信息.構(gòu)造特征金字塔是一種直接有效的融合方式,通過從主干網(wǎng)絡(luò)的中間各層提取出不同尺度的特征,進行自頂向下的特征融合.淺層網(wǎng)絡(luò)分辨率較大,包含更加清晰的位置信息,而深層網(wǎng)絡(luò)感受野大,包含較多和高維語義信息,適合對目標(biāo)進行分類.因此,航拍車輛檢測需要對網(wǎng)絡(luò)特征進行自上而下與自下而上的深淺層特征雙向融合.
由google提出的BiFPN運用雙向融合思想,構(gòu)造由上而下,自底向上的雙向通道,對來自主干網(wǎng)不同尺度的信息,在不同尺度間進行融合時通過上采樣與下采樣統(tǒng)一特征分辨率尺度,并在同一尺度的特征間添加橫向連接,緩解因網(wǎng)絡(luò)層級過多造成的特征信息丟失.其結(jié)構(gòu)如圖2所示.
圖2 BiFPN結(jié)構(gòu)圖
改進后增強型的Yolov3-tiny網(wǎng)絡(luò)(以下簡稱Bi-Yolov3-tiny)如圖3所示,從主干網(wǎng)的conv4,conv5,conv8層提取出特征3種不同尺度的特征,將其通道數(shù)壓縮統(tǒng)一后送入BiFPN網(wǎng)絡(luò),對多尺度特征進行融合,并在最后設(shè)置13×13,26×26,52×52這3種特征分辨率的預(yù)測分支.
圖3 Bi-yolov3-tiny網(wǎng)絡(luò)結(jié)構(gòu)
小目標(biāo)對位置信息偏差比較敏感[25],因此增大網(wǎng)絡(luò)輸入分辨率會使得圖像具有更加精確的位置信息和更加豐富的細(xì)節(jié).本文把Yolov3-tiny的輸入尺度從416×416增大到512×512.增大后的預(yù)測分支分辨率為16×16,32×32,64×64.
原Yolov3-tiny中使用的上采樣方法為鄰近上采樣,直接將同一像素點復(fù)制到相鄰的位置上,容易造成特征細(xì)節(jié)的丟失.而BiFPN使用的雙線性插值采樣雖在水平和垂直方向分別進行了一次線性插值,綜合了其它像素點的信息,但也不具備學(xué)習(xí)能力,對細(xì)節(jié)特征的還原仍然存在不足,這對小目標(biāo)檢測的精度存在一定程度上的影響.
為彌補上采樣過程中特征信息丟失的不足,本文提出了一種融合了鄰近上采樣和反卷積的上采樣結(jié)構(gòu)upsample-block(簡稱ub).首先對輸入的特征圖分別進行鄰近上采樣和反卷積層上采樣,將兩者輸出拼接后用點對點卷積壓縮其通道數(shù),再通過殘差層與拼接結(jié)果再次融合,最后再次通過點對點卷積壓縮通道數(shù)量得到上采樣結(jié)果.用ub替換網(wǎng)絡(luò)中原有的上采樣結(jié)構(gòu),提升網(wǎng)絡(luò)模型檢測精度.ub結(jié)構(gòu)如圖4所示.增加了ub的Bi-Yolov3-tiny結(jié)構(gòu)如圖5所示.
圖4 上采樣模塊(ub)結(jié)構(gòu)圖(其中upsample表示鄰近上采樣,deconv表示反卷積層)
圖5 增加了ub結(jié)構(gòu)的Bi-Yolov3-tiny結(jié)構(gòu)圖
改進后的網(wǎng)絡(luò)在各層的特征分辨率都提高了23%,在特征圖上保留了小目標(biāo)檢測所需要的更多的細(xì)節(jié).其中的BiFPN結(jié)構(gòu)從主干網(wǎng)的conv4、conv5、conv8層獲得不同尺度的特征圖,先通過下采樣與橫向連接進行第一次特征融合,再通過上采樣與橫向連接進行第二次特征融合,最終得到包含來自不同層級含有豐富語義信息的特征圖.此外,新的上采樣結(jié)構(gòu)進一步豐富了特征圖的細(xì)節(jié)特征,有利于小目標(biāo)的檢測.由于改進的BiFPN網(wǎng)絡(luò)結(jié)構(gòu)采用較少的channel數(shù)(128個),計算量較小,因此速度變化不明顯.
改進后的網(wǎng)絡(luò)主要優(yōu)勢:1)檢測精度相比Yolov3有了較大的提升;2)檢測速度極快,接近Yolov3-tiny.
本文以Yolov3、Yolov3-spp、Yolov3-tiny、ssd、mobilenetv3、efficientnet作為對照,在航拍車輛數(shù)據(jù)集vedai上進行實驗,訓(xùn)練4000個epoch,將各對照網(wǎng)絡(luò)與Bi-Yolov3-tiny的速度(fps)和平均精度(map)進行比較,并在增加新上采樣結(jié)構(gòu)ub后對所有網(wǎng)絡(luò)的精度、速度再次進行比較.采用pytorch深度學(xué)習(xí)框架搭建算法模型,在Tesla T4 16GB GPU上進行試驗,結(jié)果如表1所示.
表1 不同網(wǎng)絡(luò)模型的檢測結(jié)果
從檢測精度來看,增加了BiFPN結(jié)構(gòu)后的Bi-Yolov3-tiny-512在精度上比Yolov3高4.9%,比Yololv3-tiny高8.5%.比ssd512高10.1%.比efficientnet_b3高18.7%.在檢測精度上具有很大的提高.而采用了新型上采樣結(jié)構(gòu)(ub)的網(wǎng)絡(luò)直接使Yolov3的精度提高了2.6%,Bi-Yolov3-tiny-512提高了1.1%.
從檢測速度來看,Bi-Yolov3-tiny的檢測速度快過所有對比檢測框架.其中Bi-Yolov3-tiny-512的檢測速度每秒約比Yolov3快23幀,比Yolov3-tiny快8幀,比ssd300多25幀,比mobilenetv3多15幀,比efficientnet多29幀.速度明顯快過其它對比算法.而增加了新型上采樣結(jié)構(gòu)(ub)的Bi-Yolov3-tiny(ub)網(wǎng)絡(luò)的FPS僅僅下降了6幀,速度仍然快過表中大部分網(wǎng)絡(luò).
使用了新型上采用結(jié)構(gòu)(ub)的Bi-Yolov3-tiny-512(ub)的map為0.876,F(xiàn)PS為40,在保證檢測精度同時又很好地兼顧了檢測速度,能夠達到較好的檢測效果.其檢測結(jié)果如圖6所示.
圖6 部分檢測效果圖(數(shù)字代表置信度)
圖6的檢測結(jié)果圖分別展示了在不同環(huán)境下的檢測效果,圖中目標(biāo)邊界框上方的單詞代表檢測類別,右上方的數(shù)字代表置信度.可以看到無論是在簡單的公路環(huán)境還是較為復(fù)雜的房屋區(qū)都能較為精準(zhǔn)地檢測出車輛位置.
Bi-Yolov3-tin-416由于其輕量型的網(wǎng)絡(luò)結(jié)構(gòu),比起采用了darknet53重型網(wǎng)絡(luò)的yolov3,大大減小了運算量,因此速度遠(yuǎn)遠(yuǎn)快過Yolov3(約為yolov3的1.6倍).與yolov3-tiny相比,由于其引入了BiFPN結(jié)構(gòu)增進了不同層級間的特征融合,并且在52×52這個大分辨率上進行了預(yù)測,使得map高出了4.9個百分點.同時,由于FPN結(jié)構(gòu)的計算量較小,其檢測速度變化不大,每秒只減少了6幀.
針對小目標(biāo)檢測的特性,把Bi-Yolov3-tiny的輸入分辨率由416×416增大到512×512后,圖片的細(xì)節(jié)信息得到了更多的保留,同時位置信息更為準(zhǔn)確.512×512分辨率的Bi-yolov3-tiny的map提升了3.6個百分點.
新的上采樣結(jié)構(gòu)ub通過反卷積層學(xué)習(xí)的方式在上采樣時復(fù)原了更多細(xì)節(jié)信息,與鄰近上采樣層的信息結(jié)合后進行卷積融合,最后經(jīng)過殘差結(jié)構(gòu)對多層信息再融合更好地復(fù)原了下采樣過程中損失的細(xì)節(jié)信息.因此,增加了ub結(jié)構(gòu)各網(wǎng)絡(luò)的map提升了1%-3.6%.
最終,使用了512×512分辨率和上采樣結(jié)構(gòu)ub的Bi-yolov3-tiny算法的map達到0.876,高于所有對比網(wǎng)絡(luò)算法,同時也具備較快的檢測速度,相比速度最快的yolov3-tiny,每秒幀數(shù)只減少了2幀,達到了預(yù)期效果.
本文首先對現(xiàn)有目標(biāo)檢測方法和改進手段進行分析,指出單階段和兩階段分別存在精度低和速度慢的問題,且速度與精度往往會根據(jù)網(wǎng)絡(luò)的復(fù)雜程度此消彼長.而航拍圖像中的車輛都為小目標(biāo),進一步加大了檢測的困難.
針對航拍車輛檢測中目標(biāo)小,速度精度需求高的問題,本文把輕量級網(wǎng)絡(luò)Yolov3-tiny的特征提取部分作為主干網(wǎng),并用BiFPN結(jié)構(gòu)加強網(wǎng)絡(luò)特征的融合,豐富語義信息,增大網(wǎng)絡(luò)輸入尺度,增加高分辨率預(yù)測分支,使用新的上采樣結(jié)構(gòu).在vedai數(shù)據(jù)集上進行實驗.最終得到的網(wǎng)絡(luò)模型與Yolov3-tiny相比平均精度提高了9.6%,每秒幀數(shù)無明顯變化,每秒維持在40幀.與Yolov3相比,精度提高了6%,速度提高了79%.新的上采樣結(jié)構(gòu)ub可以讓實驗中各個模型的精度提高1%以上,與ssd、efficientnet、mobilenetv3相比無論是檢測精度還是檢測速度都具有明顯的優(yōu)勢.實驗結(jié)果表明,融合了BiFPN與ub結(jié)構(gòu)的Yolov3-tiny網(wǎng)絡(luò)模型能夠滿足航拍車輛檢測的時效性和準(zhǔn)確性,有較好的工程應(yīng)用價值.