劉聰聰, 應(yīng) 捷, 楊海馬, 劉 瑾, 李 筠
(1.上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院, 上海 200093; 2.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院, 上海 201620)
空中飛行物識別在禁飛區(qū)動態(tài)監(jiān)視、空域交通安全管理等實(shí)際問題中有重要應(yīng)用??罩酗w行物主要包括無人機(jī)(UAV)、飛機(jī)(plane)、飛鳥(bird)三種類型。隨著無人機(jī)日益增多,無序飛行嚴(yán)重影響了空域交通秩序。通過準(zhǔn)確識別空中飛鳥,能夠?yàn)楹罄m(xù)驅(qū)趕飛鳥提供準(zhǔn)確的信息,保障飛機(jī)飛行安全。如何提高空中飛行物的識別效率,是空管部門亟待解決的問題。
國內(nèi)外眾多學(xué)者對目標(biāo)識別方法做了深入研究,這些方法大致可分為傳統(tǒng)的目標(biāo)識別方法[1,2]和基于深度學(xué)習(xí)的目標(biāo)識別方法[3,4]。文獻(xiàn)[1]利用正則化成對約束組件對無人機(jī)目標(biāo)進(jìn)行識別,并利用擴(kuò)頻通信傳輸重要數(shù)據(jù),提高系統(tǒng)魯棒性。文獻(xiàn)[2]使用Hebbian規(guī)則訓(xùn)練的自組織神經(jīng)網(wǎng)絡(luò)來提取主成分特征,然后采用基于有向無環(huán)圖支持向量機(jī)(directed acyclic graph support vector machine,DAGSVM)的分類器來識別飛行目標(biāo)。文獻(xiàn)[3]提出用雙通道卷積神經(jīng)網(wǎng)絡(luò)離線訓(xùn)練,對目標(biāo)進(jìn)行檢測和實(shí)時(shí)跟蹤。文獻(xiàn)[4]采用改進(jìn)的LeNet-5模型構(gòu)建無人機(jī)特征學(xué)習(xí)網(wǎng)絡(luò)。
針對飛行目標(biāo)識別的準(zhǔn)確率低、效率低等問題,本文提出改進(jìn)的基于區(qū)域卷積神經(jīng)網(wǎng)絡(luò)的空中飛行物識別方法,采集空中飛行物圖片并構(gòu)建數(shù)據(jù)集,利用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對數(shù)據(jù)集進(jìn)行訓(xùn)練和測試,利用ETX80攝像頭和PC搭建空中飛行物識別系統(tǒng),能夠?qū)崿F(xiàn)空中飛行物的準(zhǔn)確快速分類、識別和定位,有效保障空域安全。
在過去幾年中,深度學(xué)習(xí)已經(jīng)在各種問題上取得了很好的表現(xiàn),其中在圖像和視頻處理領(lǐng)域,有大量學(xué)者對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了研究。卷積神經(jīng)網(wǎng)絡(luò)利用注釋數(shù)據(jù)量的快速增長和圖形處理器單元強(qiáng)度的巨大改進(jìn),在目標(biāo)識別的任務(wù)上取得了先進(jìn)的結(jié)果[5]。
針對目標(biāo)檢測提出了許多深度學(xué)習(xí)模型,例如VGGNet[6],GoogleNet[7],ResNet[8],Faster R-CNN[11],YOLO,SSD[12]等。VGGNet[6]將網(wǎng)絡(luò)深度推至19個(gè)重疊層,并在每個(gè)卷積層中使用非常小的3×3濾波器。GoogleNet[7]增加了網(wǎng)絡(luò)的深度和寬度。ResNet[8]提出深度殘差網(wǎng)絡(luò)的概念,在一定程度上解決了網(wǎng)絡(luò)層加深時(shí)梯度爆炸的問題。目標(biāo)檢測的最新進(jìn)展是由區(qū)域建議網(wǎng)絡(luò)RPN和基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)R-CNN成功驅(qū)動的[9],F(xiàn)ast R-CNN[10]和Faster R-CNN[11]表明,使用RPN能夠提高區(qū)域建議的質(zhì)量,從而提高整體的目標(biāo)檢測精度。YOLO可以通過直接預(yù)測邊界框的方法提高目標(biāo)檢測系統(tǒng)的速度,但目標(biāo)位置過于粗糙。為此,SSD[12]進(jìn)行了改進(jìn),將不同規(guī)模的滑動窗口用于不同深度的網(wǎng)絡(luò)層回歸,但其對小目標(biāo)的檢測效果仍然次于Faster R-CNN。本文在經(jīng)典的Faster R-CNN算法基礎(chǔ)上進(jìn)行改進(jìn),構(gòu)建空中飛行物識別系統(tǒng),對無人機(jī)、飛機(jī)、飛鳥三種飛行物進(jìn)行識別、分類和定位。
本文構(gòu)建的空中飛行物識別系統(tǒng)的主要流程如圖1所示,首先采集圖片構(gòu)建數(shù)據(jù)集,并按照一定比例劃分為訓(xùn)練集和測試集,然后在Faster R-CNN模型的基礎(chǔ)上構(gòu)建深度學(xué)習(xí)模型,初始化模型參數(shù)并利用訓(xùn)練集對構(gòu)建好的模型進(jìn)行訓(xùn)練,在訓(xùn)練的過程中采用反向傳播的方式對各層的權(quán)重參數(shù)進(jìn)行調(diào)整。
圖1 空中飛行物識別流程圖
實(shí)驗(yàn)數(shù)據(jù)有無人機(jī)、飛機(jī)、飛鳥三類圖像,均通過網(wǎng)絡(luò)進(jìn)行采集,并通過鏡像翻轉(zhuǎn)方式進(jìn)行擴(kuò)充,最終每類圖像采集數(shù)量為600張,數(shù)據(jù)集一共1 800張圖像,在完成數(shù)據(jù)采集的基礎(chǔ)上,對數(shù)據(jù)集進(jìn)行以下預(yù)處理:
1)尺度規(guī)整與重命名:由于數(shù)據(jù)來源均從網(wǎng)絡(luò)得到,圖片分辨率不同,因此對圖片尺度進(jìn)行規(guī)整,設(shè)定圖片尺度最大為1 000×1 000,如果圖片小于該尺寸,進(jìn)行邊緣補(bǔ)0操作。除此之外,為了方便數(shù)據(jù)集的劃分和模型的訓(xùn)練,本實(shí)驗(yàn)將所有圖片按照“000***”的方式進(jìn)行命名,圖片名稱為“000001”~“001800”。
2)保存圖像標(biāo)注信息:在模型訓(xùn)練時(shí),需要訓(xùn)練圖像的邊界框信息作為監(jiān)督,所以要將數(shù)據(jù)集的圖片中所有物體使用框進(jìn)行標(biāo)注,并生成XML格式的文件,保存圖像的地址、尺寸、目標(biāo)物體所在矩形框坐標(biāo)信息,以及目標(biāo)物體種類等信息。
3)數(shù)據(jù)集劃分:對數(shù)據(jù)集類別標(biāo)簽進(jìn)行劃分,分為4個(gè).txt文件,其中train.txt存放訓(xùn)練數(shù)據(jù),比例為64 %;val.txt中存放驗(yàn)證數(shù)據(jù),比例為16 %;trainval.txt將上面兩個(gè)進(jìn)行合并,所占比例為80 %;test.txt中存放測試數(shù)據(jù),比例為20 %。
Fatser R-CNN[11]是繼R-CNN[9],F(xiàn)ast R-CNN[10]之后,由Ross Girshick團(tuán)隊(duì)提出的經(jīng)典模型,在目標(biāo)檢測方面具有檢測速度快、精度高的特點(diǎn)。
本文針對研究目標(biāo)的特點(diǎn),在此模型基礎(chǔ)上進(jìn)行以下改動:將特征提取網(wǎng)絡(luò)VGG-16轉(zhuǎn)換成深度殘差網(wǎng)絡(luò)ResNet;針對數(shù)據(jù)集特點(diǎn),更改網(wǎng)絡(luò)批次數(shù)據(jù)量、迭代次數(shù)等參數(shù);飛行物識別網(wǎng)絡(luò)輸出的類別數(shù)為3類,因此將輸出層神經(jīng)元個(gè)數(shù)改為3。模型結(jié)構(gòu)如圖2所示,主要包括特征提取層、區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)、感興趣區(qū)域池化(ROI pooling)層、分類層。
圖2 模型結(jié)構(gòu)
1)特征提取首先利用全卷積網(wǎng)絡(luò)對圖像進(jìn)行處理,提取特征作為RPN模塊的輸入。本文使用深度殘差網(wǎng)絡(luò)ResNet101來代替VGG16。殘差網(wǎng)絡(luò)通過增加殘差塊解決了深度增加帶來的退化問題,因此更容易優(yōu)化,通過增加網(wǎng)絡(luò)深度來提高準(zhǔn)確率,比VGG16能達(dá)到更好的效果[8]。ResNet101和VGG16的卷積網(wǎng)絡(luò)結(jié)構(gòu)對比如表1所示。
表1 VGG16與ResNet卷積網(wǎng)絡(luò)結(jié)構(gòu)對比
2)區(qū)域建議網(wǎng)絡(luò)
傳統(tǒng)的區(qū)域建議(region proposal)生成方法都是比較費(fèi)時(shí)的,在Fater R-CNN中,RPN被用來生成區(qū)域建議,極大地縮短了運(yùn)行時(shí)間。首先在特征圖上滑動一個(gè)3×3大小的窗口,將當(dāng)前3×3區(qū)域的中心點(diǎn)映射回原圖,然后將錨點(diǎn)(anchor)面積為{1282,2562,5122},面積為{1:1,1:2,2:1}的候選框放置在原始圖上,因此每個(gè)像素對應(yīng)9個(gè)錨點(diǎn)。接著將這些候選框輸入2個(gè)同級的邊框回歸層和分類層,邊框回歸層用于調(diào)整候選框的位置,分類層用于判斷框中物體是否是目標(biāo)(目標(biāo)還是背景)。最后,保存候選框信息,輸入感興趣區(qū)域池化層做進(jìn)一步的處理。
3)感興趣區(qū)域池化層和分類層
通過區(qū)域建議網(wǎng)絡(luò)提取的候選框存在大小不一的問題,感興趣區(qū)域池化層就是為了解決這一問題。感興趣區(qū)域池化層收集ResNet101卷積網(wǎng)絡(luò)得到的特征圖和區(qū)域建議網(wǎng)絡(luò)得到的候選框信息,如果候選框坐標(biāo)為(x0,y0,x1,y1),那么尺寸為(y1-y0)×(x1-x0),如果要求輸出尺寸為heightpool×widthpool,那么候選框中滑動核的大小應(yīng)為
(1)
在感興趣區(qū)域池化層之后,提取候選框特征圖作為分類的輸入。利用邊框回歸使檢測到的目標(biāo)更加準(zhǔn)確。邊框回歸輸出為
(2)
(3)
(4)
(5)
式中x,xa和x*分別為預(yù)測框、候選框和真實(shí)框的中心x坐標(biāo);y,ya和y*表示中心y坐標(biāo);w,wa和w*表示寬;h,ha和h*表示高。圖像的損失函數(shù)定義為
(6)
1)圖像獲取裝置
本文采用的圖像獲取裝置為ETX80消色差折射式望遠(yuǎn)鏡,包含一個(gè)兩片式消色差物鏡,可以減少光線通過透鏡后行程的色差,采用雙光路設(shè)計(jì),能夠在不同目標(biāo)間輕松切換,配置9.7 mm和6 mm目鏡,滿足觀測所需的高低倍率,配置紅點(diǎn)尋星鏡能夠快速鎖定觀察的目標(biāo)。
2)SoftMax分類器
將ETX80攝像頭采集到的圖像輸入訓(xùn)練好的改進(jìn)Faster R-CNN模型中,對圖像類別UAV,plane,bird進(jìn)行判斷,對目標(biāo)進(jìn)行邊界回歸計(jì)算,如式(2)~式(5)所示,同時(shí)利用SoftMax算法計(jì)算目標(biāo)所屬類別的概率值為
(7)
1)實(shí)驗(yàn)環(huán)境與參數(shù)設(shè)置
Intel?Xeon?CPU,運(yùn)行環(huán)境為8 GB的Win10 64位系統(tǒng),編程環(huán)境為PyCharm2017,編程語言為Python3.5.2,深度學(xué)習(xí)框架為Tensorflow1.4.0。
實(shí)驗(yàn)過程中的參數(shù)設(shè)置如下:訓(xùn)練圖片和測試圖片的最長邊像素最大值為1 000;迭代次數(shù)為40 000次;權(quán)重衰減值設(shè)置為0.000 5;學(xué)習(xí)率設(shè)置為0.001;網(wǎng)絡(luò)每批次輸入數(shù)據(jù)量設(shè)置為16。
2)實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)一共進(jìn)行了40 000次迭代,每經(jīng)過10次迭代,記錄一次Loss值,如圖3所示,為了直觀地顯示訓(xùn)練過程中的損失值的變化情況,采用Polyfit函數(shù)對曲線進(jìn)行擬合,可以清楚地看到隨著迭代次數(shù)的增加,損失值不斷減少直至趨于平緩。
圖3 Loss曲線圖
測試過程中的檢測結(jié)果如圖4所示,飛行物位置用矩形框表示,飛行物類別和所屬類別的概率值用白字表示,從實(shí)驗(yàn)結(jié)果可以看到,本文提出的算法對UAV、plane、bird在不同的復(fù)雜背景下都能夠達(dá)到很好的識別效果,輸出概率值在98 %以上,除此之外,考慮到鳥類經(jīng)常以群體姿態(tài)活動,當(dāng)采集到的圖片中出現(xiàn)多個(gè)目標(biāo)或者圖像不完整時(shí),本文算法也能夠很好地進(jìn)行識別。
圖4 實(shí)驗(yàn)效果
對分類算法進(jìn)行評價(jià)的常用指標(biāo)有混淆矩陣(confusion matrix)、ROC曲線和AUC面積,本文采用可視化程度高的混淆矩陣對算法進(jìn)行評價(jià)。在如圖5所示的混淆矩陣中,行表示圖片實(shí)際所屬的類別Actual class,列表示通過算法預(yù)測出來的類別Predicted class,對角線值表示正確識別的飛行物的數(shù)量,而非對角線值表示誤識別的飛行物的數(shù)量。
圖5 混淆矩陣
本文使用的測試圖片數(shù)量一共是360張,每類圖片120張,由混淆矩陣可以直觀地看出以下信息:對于AUV類,120張圖片中有117張識別正確,3張被誤識別為plane類,準(zhǔn)確率為97.5 %;對于plane類,120張圖片中有115張識別正確,4張被誤識別為AUV類,1張被誤識別為bird類,準(zhǔn)確率為95.8 %;對于bird類,120張圖片中有116張識別正確,3張被誤識別為AUV,3張被誤識別為plane類,準(zhǔn)確率為96.7 %。本文方法的平均準(zhǔn)確率為96.7 %。使用FasterR-CNN方法對UAV,plane,bird識別的準(zhǔn)確率分別為93.3 %,95 %,92.5 %,平均準(zhǔn)確率為93.6 %。將本文改進(jìn)的方法與FasterR-CNN方法得到的實(shí)驗(yàn)結(jié)果進(jìn)行對比,準(zhǔn)確率提高了3.1 %。
為了有效管理空域交通,本文針對空中飛行物識別準(zhǔn)確率低的問題,使用改進(jìn)的Faster R-CNN算法對不同背景下多種姿態(tài)的UAV、plane、bird三種飛行目標(biāo)進(jìn)行識別,實(shí)驗(yàn)平均準(zhǔn)確率達(dá)到96.7 %,具有良好的識別效果。由于網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,在達(dá)到高識別率的同時(shí)使識別效率降低,后期將繼續(xù)對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行研究,目的在于提高網(wǎng)絡(luò)模型的工作效率。另外,在實(shí)際運(yùn)用中,后期將不斷對圖像采集系統(tǒng)結(jié)構(gòu)進(jìn)行改進(jìn)。