徐 斌 黎 寧,2 朱含杉 徐 智 周揮宇
(1.南京航空航天大學電子信息工程學院 南京 211106)(2.南京航空航天大學雷達成像與微波光子技術教育部重點實驗室 南京 211106)(3.Schoolof Electronics,Electrical Engineering and Computer Science Queen's University Belfast,BelfastBT3 9DT,UK)
無人機作業(yè)受空間限制小且成本相對較低,可在公共安全監(jiān)控領域發(fā)揮其靈活機動的優(yōu)勢。相比于傳統(tǒng)固定監(jiān)控攝像頭,無人機更容易持續(xù)鎖定跟蹤目標。但無人機拍攝的圖像背景更為復雜;同時無人機的運動會使觀察目標的角度發(fā)生變化,從而造成目標外觀特征的形變;此外動態(tài)模糊以及光照變化導致圖像出現(xiàn)的陰影或拉絲等現(xiàn)象也給特征提取和選擇造成了困難。無人機作業(yè)的復雜性意味著對所提取檢測的目標的特征的具有更高的要求。
傳統(tǒng)檢測算法在選取特征上較為單一且多為人工設計(如HOG[1]),主觀性較強,難以適用于復雜的任務場景。2012年起,深度學習引起了人們的關注,卷積神經網絡在圖像中得到廣泛應用。卷積神經網絡(Convolution Neural Network,CNN)最大的優(yōu)勢就是可以通過對大規(guī)模數(shù)據的自主學習,主動提取出具有代表性的特征,從而克服了人工選擇特征較為單調且魯棒性差的問題。
R.B.Girshick.首次提出基于卷積神經網絡的檢測模型RCNN[2],該模型首先對每一個輸入的圖片產生近2000個不同種類的候選區(qū)域,使用CNN從每個候選框中提取一個固定長度的特征向量,然后對每個取出的特征向量使用特定種類的線性SVM進行分類。該方法首次將CNN引入檢測領域,為檢測問題的解決提供了新的思路。但其速度較慢,不具有實際應用的價值。后R.B.Girshick.提出Fast-RCNN[3]算法,將RCNN中獨立的分類網絡與回歸網絡整合在一起,同時利用了分類的監(jiān)督信息和回歸的監(jiān)督信息,使得網絡訓練的更加魯棒。文獻[4]在Fast-RCNN的基礎上,進一步將區(qū)域預提取的過程使用CNN實現(xiàn)并與分類、回歸網絡整合,形成了一個端到端的CNN對象檢測模型,即Faster-RCNN。從R-CNN到Faster R-CNN均采用了區(qū)域提取結合分類的框架,這種框架的精度雖然很高,但是速度仍舊達不到實時的要求。
YOLO[5]提供了另一種更為直接的思路:在輸出層對檢測框位置進行回歸并判別框內物體類別。YOLO能夠達到實時的要求,且使用全圖信息,背景錯誤較少。但網絡本身參數(shù)較多體量較大,不適于無人機嵌入式平臺的使用;同時網絡對小目標檢測性能欠佳,難以適應無人機視角下目標普遍較小的應用場景。
本文受YOLO框架啟發(fā),設計了一種輕量型CNN檢測方法,采用深度可分離的卷積[6~9]結構作為基本卷積單元,以起到減少網絡參數(shù),提升訓練及檢測速度的目的;去除全連接層,使用能夠保留位置信息的全卷積網絡對相對偏移量進行回歸,加速了網絡收斂。
考慮到無人機平臺行人檢測的特殊性,本文設計了一種適用于無人機下行人目標的輕量級卷積神經網絡實時檢測模型。圖1是本文模型結構的算法流程圖。本文采用遷移學習的方式解決物體檢測問題,將訓練樣本充足的分類網絡遷移學習成回歸、分類的多任務網絡。該模型前端提取圖片特征,后端將提取特征送入分類器和回歸結構,預測分類及回歸結果并計算損失。通過最小化分類與回歸誤差不斷迭代更新模型,直至網絡損失穩(wěn)定。
本文網絡在設計中去除了全連接層,用全卷積神經網絡的結構。全卷積神經網絡能夠很好地保留位置信息。圖片輸入網絡后,經過一系列中間層(卷積層、激活層、BN層[15]等)獲得特征圖。此時特征圖上每個像素仍能映射回原圖,因此無須直接對坐標位置進行預測,而是采用預測偏移量的方式。這種方式使得網絡能夠更快地收斂。
圖1 本文算法流程圖
本文所采用的Anchor Box回歸方法可視為在卷積特征圖上進行滑窗采樣,每個采樣中心預測k種不同大小和比例的回歸框。具體作法是:把每個特征點映射回原圖的感受野的中心點作為一個基準點,然后圍繞這個基準點選取k個不同尺度和比例的Anchorbox。
Anchor box作為回歸的初始值,其長寬比越接近真實被檢測物體,網絡收斂的越快??紤]到行人檢測問題中人體長寬比的規(guī)律,本文設計了如圖2所示的具有5個Anchor box的行人檢測模板。5個候選框比例皆為1∶3,因飛行器視角下小目標較多,設置3個同樣的小尺寸的Anchor box防止相鄰的較小行人像素的漏檢。輸入圖中每個Anchor box對應網絡在最后一層卷積特征圖上的一個特征點所預測的回歸框。每一個回歸框預測5+x個坐標值,其中前5個坐標為:tx,ty,tw,th,to。x代檢測的種類的個數(shù),預測x類則需要預測該Anchor box屬于 每 個類別概率 Pr(classi|obiect),i∈{1,2,…x} 。如果特征點距離特征圖左上角的邊距為(cx,cy)且該特征點對應的回歸框的長和寬分別為(pw,ph),那么對應的值為
圖2 Anchor Box回歸
其中σ(x)是歸一化函數(shù),例如sigmoid函數(shù)。Pr(object)表示該特征點對應的原輸入圖像區(qū)域是否包含目標,若包含為1否則為0。 IOU(b,object)表示預測框與真實目標位置框的重疊率。特征圖中單個特征點維度如圖3所示。
圖3 Anchor Box的預測輸出
本文使用深度可分離的卷積來構建輕量級的深層神經網絡。該模型可將標準卷積分解成一個深度卷積和一個點卷積。神經網絡進行一次卷積,實質上是對圖像做了濾波和特征線性組合兩個操作。而濾波和特征組合是兩個獨立的過程,可通過將兩個過程分離,使用深度卷積對每個輸入通道(輸入的深度)執(zhí)行獨立濾波、點卷積(1×1卷積)執(zhí)行線性疊加。兩層卷積層都使用了Batch Normalization[15]和ReLU非線性激活?;镜慕Y構單元如圖4所示。下文將證明這種卷積分解模式將大大減少參數(shù)量。
圖4 本文采用的基本卷積單元
如圖5所示,令DF為正方形輸入特征圖譜的寬和高,M為輸入通道的數(shù)量,DG為正方形輸出特征圖譜空間的寬和高,N為輸出通道的數(shù)量,Dk是卷積核的空間維度。輸入維度為DF·DF·M ,經過標準卷積核K得到輸出的維度為DG·DG·N,卷積核參數(shù)量表示為Dk·Dk·M·N。如果計算代價也用數(shù)量表示,計算次數(shù)為 Dk·Dk·M·N·DF·DF?,F(xiàn)將卷積核進行分解,按照上述計算公式,可得深度卷積的計算代價為 Dk·Dk·M·DF·DF,點卷積的計算代價為M·N·DF·DF。將二者進行比較得:
圖5 標準卷積的分解
本文所應用的卷積神經網絡結構如表1所示。由于待檢測目標出現(xiàn)在圖片中心區(qū)域的幾率較大,因此輸出特征圖應奇數(shù),以保證有獨立負責中心位置的Anchor box。該卷積結構整體下采樣倍數(shù)為32,則輸入為416×416大小的圖片,輸出特征層為13×13。每個特征點預測5個Anchor box,每個Anchor box需要預測6個值,因此最終特征層維度為13×13×5×6。為融合不同尺度的特征,將26×26×512的特征層重構為13×13×2048的特征層,并與13×13×1024疊加。表中dw代表深度卷積操作,s2代表卷積步長為2,s1代表卷積步長為1。
深度學習網絡的訓練需要大量的數(shù)據,常見的檢測網絡一般首先在數(shù)據量大的訓練集上將分類器進行預訓練,使網絡能夠較好地提取圖片特征,再用Pascal VOC或MSCOCO等檢測訓練集進行微調,使網絡提取特征更適應某一類或多類檢測問題。
本文預訓練使用的ImageNet1000,該數(shù)據集含有1400多萬幅圖片,兩萬多個類別,其中超過百萬圖片有明確的類別標注和物體位置標注信息。微調階段在Caltech Pedestrian和自建無人機行人樣本庫上進行訓練。Caltech Pedestrian樣本庫為車載相機拍攝的10小時的視頻段,場景為城市標注為行人坐標,即 (x,y,w,h),其中 (x,y)為左上角坐標,w、h分別為圖像寬和高。Caltech Pedestrian中樣本實例如圖6所示。
表1 卷積部分結構
1)分類訓練
預訓練分類器在標準ImageNet1000上進行,設置初始學習率為0.1,動量0.9,權重衰減0.0005。訓練樣本除了進行常規(guī)的翻轉、放大、旋轉、隨機裁剪等數(shù)據增強外,為了模擬無人機樣本情況,還需要加入動態(tài)模糊以增強魯棒性。同時為了使網絡具有一定的尺度不變性,本文將以224×224進行訓練,再以448×448進行微調。
2)檢測訓練
預訓練完成后,將分類網絡最后一個卷積層和softmax層替換成一個含有1024個卷積濾波的3×3卷積層。在3×3卷積后連接1×1的卷積層,輸出數(shù)量為檢測所需要的數(shù)量。對于行人檢測,每個像素點預測5個Anchor box,每個Anchor box包括x、y、w_、h_置信度和類別6個信息,所以輸出維度為5×(1+5)=30維。初始學習率設置為0.01,使用Adam下降法對學習率進行自適應調整。
圖6 Caltech Pedestrian樣本示例
本文受YOLO和深度可分離卷積啟發(fā),結合飛行器下目標檢測的特殊性,設計了一種輕量型的卷積神經網絡檢測模型。將本文結構與幾種典型的檢測模型在PASCALVOC 2007進行性能對比。結果如表2所示,由表可知,F(xiàn)aster-RCNN算法具有較高的檢測精度,但其幀率為6幀/s,遠遠低于實時檢測的要求。本文算法在mAP上與表現(xiàn)最好的YOLOv2算法相比有可忍受的下降,但在計算速度上卻遠遠高于其他算法。
表2 不同檢測性能對比
將應用深度卷積的本文算法與YOLO框架及應用DarkNet的YOLOv2框架在無人機拍攝場景下的檢測效果進行對比,對比結果如圖7~9所示??梢钥闯?,本文算法相比于YOLOv2雖然其準確率有可忍受的降低,但其FPS有明顯的提升。
圖7 無人機下目標檢測場景1
圖8 無人機下目標檢測場景2
圖9 無人機下目標檢測場景3
本文針對無人機下行人目標檢測的特點,設計了一種由粗到細的檢測框架。使用深度可分離的卷積作為基本單元構建CNN特征提取部分,通過將標準卷積拆分成負責提取特征的3×3深度卷積和負責特征組合的1×1卷積兩部分,大大提高了檢測速度。本文在將CNN模型應用到無人機行人檢測問題上進行了初步的探索,但仍存在誤檢與漏檢的情況和對尺度變化較大的無人機目標容忍度低的問題,需要進一步研究改善。