徐 斌 黎 寧,2 朱含杉 徐 智 周揮宇
(1.南京航空航天大學(xué)電子信息工程學(xué)院 南京 211106)(2.南京航空航天大學(xué)雷達(dá)成像與微波光子技術(shù)教育部重點(diǎn)實(shí)驗室 南京 211106)(3.Schoolof Electronics,Electrical Engineering and Computer Science Queen's University Belfast,BelfastBT3 9DT,UK)
無人機(jī)作業(yè)受空間限制小且成本相對較低,可在公共安全監(jiān)控領(lǐng)域發(fā)揮其靈活機(jī)動的優(yōu)勢。相比于傳統(tǒng)固定監(jiān)控攝像頭,無人機(jī)更容易持續(xù)鎖定跟蹤目標(biāo)。但無人機(jī)拍攝的圖像背景更為復(fù)雜;同時無人機(jī)的運(yùn)動會使觀察目標(biāo)的角度發(fā)生變化,從而造成目標(biāo)外觀特征的形變;此外動態(tài)模糊以及光照變化導(dǎo)致圖像出現(xiàn)的陰影或拉絲等現(xiàn)象也給特征提取和選擇造成了困難。無人機(jī)作業(yè)的復(fù)雜性意味著對所提取檢測的目標(biāo)的特征的具有更高的要求。
傳統(tǒng)檢測算法在選取特征上較為單一且多為人工設(shè)計(如HOG[1]),主觀性較強(qiáng),難以適用于復(fù)雜的任務(wù)場景。2012年起,深度學(xué)習(xí)引起了人們的關(guān)注,卷積神經(jīng)網(wǎng)絡(luò)在圖像中得到廣泛應(yīng)用。卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)最大的優(yōu)勢就是可以通過對大規(guī)模數(shù)據(jù)的自主學(xué)習(xí),主動提取出具有代表性的特征,從而克服了人工選擇特征較為單調(diào)且魯棒性差的問題。
R.B.Girshick.首次提出基于卷積神經(jīng)網(wǎng)絡(luò)的檢測模型RCNN[2],該模型首先對每一個輸入的圖片產(chǎn)生近2000個不同種類的候選區(qū)域,使用CNN從每個候選框中提取一個固定長度的特征向量,然后對每個取出的特征向量使用特定種類的線性SVM進(jìn)行分類。該方法首次將CNN引入檢測領(lǐng)域,為檢測問題的解決提供了新的思路。但其速度較慢,不具有實(shí)際應(yīng)用的價值。后R.B.Girshick.提出Fast-RCNN[3]算法,將RCNN中獨(dú)立的分類網(wǎng)絡(luò)與回歸網(wǎng)絡(luò)整合在一起,同時利用了分類的監(jiān)督信息和回歸的監(jiān)督信息,使得網(wǎng)絡(luò)訓(xùn)練的更加魯棒。文獻(xiàn)[4]在Fast-RCNN的基礎(chǔ)上,進(jìn)一步將區(qū)域預(yù)提取的過程使用CNN實(shí)現(xiàn)并與分類、回歸網(wǎng)絡(luò)整合,形成了一個端到端的CNN對象檢測模型,即Faster-RCNN。從R-CNN到Faster R-CNN均采用了區(qū)域提取結(jié)合分類的框架,這種框架的精度雖然很高,但是速度仍舊達(dá)不到實(shí)時的要求。
YOLO[5]提供了另一種更為直接的思路:在輸出層對檢測框位置進(jìn)行回歸并判別框內(nèi)物體類別。YOLO能夠達(dá)到實(shí)時的要求,且使用全圖信息,背景錯誤較少。但網(wǎng)絡(luò)本身參數(shù)較多體量較大,不適于無人機(jī)嵌入式平臺的使用;同時網(wǎng)絡(luò)對小目標(biāo)檢測性能欠佳,難以適應(yīng)無人機(jī)視角下目標(biāo)普遍較小的應(yīng)用場景。
本文受YOLO框架啟發(fā),設(shè)計了一種輕量型CNN檢測方法,采用深度可分離的卷積[6~9]結(jié)構(gòu)作為基本卷積單元,以起到減少網(wǎng)絡(luò)參數(shù),提升訓(xùn)練及檢測速度的目的;去除全連接層,使用能夠保留位置信息的全卷積網(wǎng)絡(luò)對相對偏移量進(jìn)行回歸,加速了網(wǎng)絡(luò)收斂。
考慮到無人機(jī)平臺行人檢測的特殊性,本文設(shè)計了一種適用于無人機(jī)下行人目標(biāo)的輕量級卷積神經(jīng)網(wǎng)絡(luò)實(shí)時檢測模型。圖1是本文模型結(jié)構(gòu)的算法流程圖。本文采用遷移學(xué)習(xí)的方式解決物體檢測問題,將訓(xùn)練樣本充足的分類網(wǎng)絡(luò)遷移學(xué)習(xí)成回歸、分類的多任務(wù)網(wǎng)絡(luò)。該模型前端提取圖片特征,后端將提取特征送入分類器和回歸結(jié)構(gòu),預(yù)測分類及回歸結(jié)果并計算損失。通過最小化分類與回歸誤差不斷迭代更新模型,直至網(wǎng)絡(luò)損失穩(wěn)定。
本文網(wǎng)絡(luò)在設(shè)計中去除了全連接層,用全卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。全卷積神經(jīng)網(wǎng)絡(luò)能夠很好地保留位置信息。圖片輸入網(wǎng)絡(luò)后,經(jīng)過一系列中間層(卷積層、激活層、BN層[15]等)獲得特征圖。此時特征圖上每個像素仍能映射回原圖,因此無須直接對坐標(biāo)位置進(jìn)行預(yù)測,而是采用預(yù)測偏移量的方式。這種方式使得網(wǎng)絡(luò)能夠更快地收斂。

圖1 本文算法流程圖
本文所采用的Anchor Box回歸方法可視為在卷積特征圖上進(jìn)行滑窗采樣,每個采樣中心預(yù)測k種不同大小和比例的回歸框。具體作法是:把每個特征點(diǎn)映射回原圖的感受野的中心點(diǎn)作為一個基準(zhǔn)點(diǎn),然后圍繞這個基準(zhǔn)點(diǎn)選取k個不同尺度和比例的Anchorbox。
Anchor box作為回歸的初始值,其長寬比越接近真實(shí)被檢測物體,網(wǎng)絡(luò)收斂的越快??紤]到行人檢測問題中人體長寬比的規(guī)律,本文設(shè)計了如圖2所示的具有5個Anchor box的行人檢測模板。5個候選框比例皆為1∶3,因飛行器視角下小目標(biāo)較多,設(shè)置3個同樣的小尺寸的Anchor box防止相鄰的較小行人像素的漏檢。輸入圖中每個Anchor box對應(yīng)網(wǎng)絡(luò)在最后一層卷積特征圖上的一個特征點(diǎn)所預(yù)測的回歸框。每一個回歸框預(yù)測5+x個坐標(biāo)值,其中前5個坐標(biāo)為:tx,ty,tw,th,to。x代檢測的種類的個數(shù),預(yù)測x類則需要預(yù)測該Anchor box屬于 每 個類別概率 Pr(classi|obiect),i∈{1,2,…x} 。如果特征點(diǎn)距離特征圖左上角的邊距為(cx,cy)且該特征點(diǎn)對應(yīng)的回歸框的長和寬分別為(pw,ph),那么對應(yīng)的值為


圖2 Anchor Box回歸
其中σ(x)是歸一化函數(shù),例如sigmoid函數(shù)。Pr(object)表示該特征點(diǎn)對應(yīng)的原輸入圖像區(qū)域是否包含目標(biāo),若包含為1否則為0。 IOU(b,object)表示預(yù)測框與真實(shí)目標(biāo)位置框的重疊率。特征圖中單個特征點(diǎn)維度如圖3所示。

圖3 Anchor Box的預(yù)測輸出
本文使用深度可分離的卷積來構(gòu)建輕量級的深層神經(jīng)網(wǎng)絡(luò)。該模型可將標(biāo)準(zhǔn)卷積分解成一個深度卷積和一個點(diǎn)卷積。神經(jīng)網(wǎng)絡(luò)進(jìn)行一次卷積,實(shí)質(zhì)上是對圖像做了濾波和特征線性組合兩個操作。而濾波和特征組合是兩個獨(dú)立的過程,可通過將兩個過程分離,使用深度卷積對每個輸入通道(輸入的深度)執(zhí)行獨(dú)立濾波、點(diǎn)卷積(1×1卷積)執(zhí)行線性疊加。兩層卷積層都使用了Batch Normalization[15]和ReLU非線性激活?;镜慕Y(jié)構(gòu)單元如圖4所示。下文將證明這種卷積分解模式將大大減少參數(shù)量。

圖4 本文采用的基本卷積單元
如圖5所示,令DF為正方形輸入特征圖譜的寬和高,M為輸入通道的數(shù)量,DG為正方形輸出特征圖譜空間的寬和高,N為輸出通道的數(shù)量,Dk是卷積核的空間維度。輸入維度為DF·DF·M ,經(jīng)過標(biāo)準(zhǔn)卷積核K得到輸出的維度為DG·DG·N,卷積核參數(shù)量表示為Dk·Dk·M·N。如果計算代價也用數(shù)量表示,計算次數(shù)為 Dk·Dk·M·N·DF·DF。現(xiàn)將卷積核進(jìn)行分解,按照上述計算公式,可得深度卷積的計算代價為 Dk·Dk·M·DF·DF,點(diǎn)卷積的計算代價為M·N·DF·DF。將二者進(jìn)行比較得:


圖5 標(biāo)準(zhǔn)卷積的分解
本文所應(yīng)用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。由于待檢測目標(biāo)出現(xiàn)在圖片中心區(qū)域的幾率較大,因此輸出特征圖應(yīng)奇數(shù),以保證有獨(dú)立負(fù)責(zé)中心位置的Anchor box。該卷積結(jié)構(gòu)整體下采樣倍數(shù)為32,則輸入為416×416大小的圖片,輸出特征層為13×13。每個特征點(diǎn)預(yù)測5個Anchor box,每個Anchor box需要預(yù)測6個值,因此最終特征層維度為13×13×5×6。為融合不同尺度的特征,將26×26×512的特征層重構(gòu)為13×13×2048的特征層,并與13×13×1024疊加。表中dw代表深度卷積操作,s2代表卷積步長為2,s1代表卷積步長為1。
深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練需要大量的數(shù)據(jù),常見的檢測網(wǎng)絡(luò)一般首先在數(shù)據(jù)量大的訓(xùn)練集上將分類器進(jìn)行預(yù)訓(xùn)練,使網(wǎng)絡(luò)能夠較好地提取圖片特征,再用Pascal VOC或MSCOCO等檢測訓(xùn)練集進(jìn)行微調(diào),使網(wǎng)絡(luò)提取特征更適應(yīng)某一類或多類檢測問題。
本文預(yù)訓(xùn)練使用的ImageNet1000,該數(shù)據(jù)集含有1400多萬幅圖片,兩萬多個類別,其中超過百萬圖片有明確的類別標(biāo)注和物體位置標(biāo)注信息。微調(diào)階段在Caltech Pedestrian和自建無人機(jī)行人樣本庫上進(jìn)行訓(xùn)練。Caltech Pedestrian樣本庫為車載相機(jī)拍攝的10小時的視頻段,場景為城市標(biāo)注為行人坐標(biāo),即 (x,y,w,h),其中 (x,y)為左上角坐標(biāo),w、h分別為圖像寬和高。Caltech Pedestrian中樣本實(shí)例如圖6所示。

表1 卷積部分結(jié)構(gòu)
1)分類訓(xùn)練
預(yù)訓(xùn)練分類器在標(biāo)準(zhǔn)ImageNet1000上進(jìn)行,設(shè)置初始學(xué)習(xí)率為0.1,動量0.9,權(quán)重衰減0.0005。訓(xùn)練樣本除了進(jìn)行常規(guī)的翻轉(zhuǎn)、放大、旋轉(zhuǎn)、隨機(jī)裁剪等數(shù)據(jù)增強(qiáng)外,為了模擬無人機(jī)樣本情況,還需要加入動態(tài)模糊以增強(qiáng)魯棒性。同時為了使網(wǎng)絡(luò)具有一定的尺度不變性,本文將以224×224進(jìn)行訓(xùn)練,再以448×448進(jìn)行微調(diào)。
2)檢測訓(xùn)練
預(yù)訓(xùn)練完成后,將分類網(wǎng)絡(luò)最后一個卷積層和softmax層替換成一個含有1024個卷積濾波的3×3卷積層。在3×3卷積后連接1×1的卷積層,輸出數(shù)量為檢測所需要的數(shù)量。對于行人檢測,每個像素點(diǎn)預(yù)測5個Anchor box,每個Anchor box包括x、y、w_、h_置信度和類別6個信息,所以輸出維度為5×(1+5)=30維。初始學(xué)習(xí)率設(shè)置為0.01,使用Adam下降法對學(xué)習(xí)率進(jìn)行自適應(yīng)調(diào)整。

圖6 Caltech Pedestrian樣本示例
本文受YOLO和深度可分離卷積啟發(fā),結(jié)合飛行器下目標(biāo)檢測的特殊性,設(shè)計了一種輕量型的卷積神經(jīng)網(wǎng)絡(luò)檢測模型。將本文結(jié)構(gòu)與幾種典型的檢測模型在PASCALVOC 2007進(jìn)行性能對比。結(jié)果如表2所示,由表可知,F(xiàn)aster-RCNN算法具有較高的檢測精度,但其幀率為6幀/s,遠(yuǎn)遠(yuǎn)低于實(shí)時檢測的要求。本文算法在mAP上與表現(xiàn)最好的YOLOv2算法相比有可忍受的下降,但在計算速度上卻遠(yuǎn)遠(yuǎn)高于其他算法。

表2 不同檢測性能對比
將應(yīng)用深度卷積的本文算法與YOLO框架及應(yīng)用DarkNet的YOLOv2框架在無人機(jī)拍攝場景下的檢測效果進(jìn)行對比,對比結(jié)果如圖7~9所示。可以看出,本文算法相比于YOLOv2雖然其準(zhǔn)確率有可忍受的降低,但其FPS有明顯的提升。

圖7 無人機(jī)下目標(biāo)檢測場景1

圖8 無人機(jī)下目標(biāo)檢測場景2

圖9 無人機(jī)下目標(biāo)檢測場景3
本文針對無人機(jī)下行人目標(biāo)檢測的特點(diǎn),設(shè)計了一種由粗到細(xì)的檢測框架。使用深度可分離的卷積作為基本單元構(gòu)建CNN特征提取部分,通過將標(biāo)準(zhǔn)卷積拆分成負(fù)責(zé)提取特征的3×3深度卷積和負(fù)責(zé)特征組合的1×1卷積兩部分,大大提高了檢測速度。本文在將CNN模型應(yīng)用到無人機(jī)行人檢測問題上進(jìn)行了初步的探索,但仍存在誤檢與漏檢的情況和對尺度變化較大的無人機(jī)目標(biāo)容忍度低的問題,需要進(jìn)一步研究改善。