張 瑩,劉子龍,萬 偉
(上海理工大學 光電信息與計算機工程學院,上海 200093)
隨著計算機視覺技術的快速發展,民用和軍用方面的高精度目標檢測研究需求逐漸增多,具有目標檢測功能的無人機巡檢系統逐漸成為新的研究熱點。但是無人機視角下的車輛目標中,小目標數量較大,在車輛密集場景下會出現多重疊目標、不完整目標,導致無人機車輛目標檢測精度不高。本文以現階段目標檢測算法為基礎,提出一種基于無人機平臺的車輛目標檢測解決方案,進而實現多目標發現、處理和檢測。
近年來,深度學習在計算機視覺領域得到了越來越多的關注。利用深度學習進行目標檢測與識別已經成為主流方法[1]。常見的用于目標檢測的算法包括以YOLO(You Only Look Once)[2-4]系列算法、SSD(Single Shot Multi Box Detector)[5]算法為代表的一階段檢測算法和以R-CNN(Regions with Convolutional Neural Network)[6-8]系列為代表的二階段檢測算法。一階段的檢測算法運算速度較快,但檢測精度較差,尤其是對于小目標的檢測精度較低,因此在小目標較多的場景下的無人機車輛目標檢測應用中,該系列算法效果欠佳。二階段的檢測算法具有較高的檢測精度,更適于在多場景下的無人機車輛檢測任務。
本文針對無人機物體檢測任務,選擇Faster R-CNN(Faster Regions with Convolutional Neural Network)作為基礎檢測算法,并對其進行優化。本文選擇Faster R-CNN網絡模型為基礎算法的原因為:(1) Faster R-CNN模型是高精度檢測算法的代表;(2)Faster R-CNN模型將Selective Search算法改進為RPN(Region Proposal Network)網絡,提升了檢測速度,且Fast R-CNN網絡和RPN網絡共享特征參數,可進一步提升檢測速度。
本文的具體檢測過程為:無人機到達指定區域后進行圖像采集,并通過無線網絡將所拍攝圖像回傳至地面站;之后采用目標檢測算法進行所需目標的檢測工作。旋翼無人機物體檢測模型框架如圖1所示,旋翼無人機物體檢測算法流程如圖2所示。

圖1 旋翼無人機物體檢測模型框架Figure 1. Rotor-wing UAV object detection model framework

圖2 旋翼無人機物體檢測算法流程圖Figure 2. Rotor-wing UAV object detection algorithm flowchart
無人機采集的數據集,必須具有多樣性。對于深度學習網絡的訓練來說,圖像越多樣,得到的模型越有效,魯棒性也越高。為了增強圖像的多樣性,本文控制無人機在不同飛行高度進行拍攝,并使無人機搭載的云臺相機角度和拍攝姿勢處于不同狀態,同時在多種場景下進行圖像的采集,例如光線充足和光線較差場景、小區和道路場景等。由于時間限制,除了使用無人機采集到的車輛數據之外,本文還挑選了VisDrone數據集[9]中約2 000張包含車輛的圖像,并將其按照本文的標注規則重新標注,以便擴充數據。本文采集到的無人機視角航拍圖像如圖3所示。本文數據集與相似類型的公開數據集對比如表1所示。

圖3 無人機視角航拍圖像示例Figure 3. Examples of aerial images from UAV perspective
對已搜集到的數據采取隨機旋轉、反轉變換、添加顏色抖動等幾種不影響模型檢測結果的數據增強方式來增加數據量。以上操作不僅減輕了模型的過擬合問題,還使得數據具有較強的抗噪聲能力,進而增強了模型的實用性和魯棒性。數據增強前后的效果示意圖如圖4所示。

表1 本文數據集與相似類型公開數據集對比


數據集使用LabelImg來標記,標注文件格式為XML格式[15]。XML文件主要包含圖像的標注信息,例如圖像名稱、圖像大小、object所屬類別以及目標框左上頂點和右下頂點在當前被標注圖像上的像素坐標信息。模型則根據標注信息進行分類和邊框回歸。
遷移學習是將在一項任務中學習到的權重遷移到新的任務中,以提高新任務的泛化性。本文選擇數據集較大的PASCAL VOC數據集預訓練模型來初始化模型參數。深度學習網絡淺層提取到的特征較泛化,深層提取到的特征與數據集的相關性更強,因此,深度學習模型的訓練過程由淺入深。本文在特征提取網絡初始化時,不采用隨機初始化的方案,而是使用預訓練獲得的參數來初始化模型,并在檢測訓練時對無人機物體檢測網絡模型的參數進行微調。
本文采用IoU來衡量目標檢測模型定位的準確性,定位準確度越高則IoU值越高。IoU為真實框和預測框重疊部分與兩者形成圖形總面積比值,如圖5所示,其中G為Ground truth box,P為Proposal truth box,所以真實框和預測框的IoU值為
IoU=(G∩P)/(G∪P)
(1)

圖5 IoU示意圖Figure 5. Schematic diagram of IoU
當得到的IoU值超過一定閾值時,說明真實框被預測框命中。當計算得到的IoU值小于等于一定閾值時,提示遺漏了目標或者可能并未命中真實框。可能發生的事件為如下4種:(1)真陽性事件(TP)。模型在某位置處給出了預測框,且在該處有正樣本;(2)假陽性事件(FP)。模型在某位置處給出了預測框,但在該處并沒有正樣本,即預測框處為背景;(3)真陰性事件(TN)。模型在某位置處沒有給出預測框,且該位置為背景;(4)假陰性事件(FN)。模型在某位置處沒有給出預測框,但是該位置處為前景。
在檢測過程中,將上述4個事件發生次數加以統計,即可計算模型準確率P(Precision,表示模型預測正確的概率)和召回率R(Recall,表示所有目標被模型檢測到的概率),計算式如下所示。
(2)
(3)
準確率P和召回率R為負相關,即召回率升高準確率會相應下降,反之亦然。只用準確率和召回率衡量模型整體性能并不科學,理想情況是準確率P和召回率R都盡可能高。為了使兩者得到權衡,引入P-R曲線。AP(Average Precision)值為P-R曲線與x軸和y軸圍成圖形的面積,其取值為0~1,可體現算法模型的綜合性能。AP值越高表明檢測效果越好,所以最終采用AP值來評價模型性能。
ResNet卷積神經網絡[16]引入殘差學習的概念,解決了梯度消失的問題。ResNet卷積神經網絡通過讓卷積層學習殘差映射,簡化目標檢測問題難度。在深度相同時,ResNet卷積神經網絡的性能優于VGG卷積神經網絡。為了使無人機目標檢測具有更優的性能,本文對Faster R-CNN網絡的特征提取網絡部分加以改進,棄用其默認的VGG-16卷積神經網絡,選用ResNet卷積神經網絡。
本文分別采用ResNet-34、ResNet-50和ResNet-101作為特征提取網絡,通過實驗對比性能數據,得到的實驗結果如表2所示。由表2可知,在以上幾種特征提取網絡中,選擇ResNet-101作為本文的特征提取網絡效果最佳。

表2 不同特征提取網絡模型AP值
無人機飛行高度和角度會導致所要檢測目標較小或者存在遮擋的情況。針對這些場景下的目標檢測,本文在調整特征提取網絡的基礎上進一步改進,具體做法為:(1)將每個RPN產生的候選區域進行ROI池化,將池化所得的結果映射至Conv2和Conv4的特征圖中,從而得到該候選區域在Conv2和Conv4中的特征信息;(2)將該特征信息進行池化處理,得到固定維度的特征圖;(3)將所選擇的需合并的特征信息進行歸一化處理,在通道上施行信息融合;(4)使用1×1的卷積進行降維,然后將最終得到的特征圖送入全連接層做分類回歸處理,其結構如圖6所示。

圖6 改進后的網絡結構示意圖Figure 6. Schematic diagram of the improved network structure
改進后網絡除了使用特征提取網絡中最高卷積層輸出的特征,還將低層的Conv2輸出的特征和Conv4輸出的特征與高層特征相結合,達到填充小目標和不完整目標細節信息的目的,提高了網絡對小目標和不完整目標的檢測精度。采取此種措施是因為模型低層得到的圖像特征語義信息較少,但目標位置信息較準確;模型高層得到的語義信息較多,但目標位置信息準確性較低,飛行高度較高時無人機目標檢測效果欠佳。
Faster R-CNN模型使用的去除重疊檢測框的算法為NMS(Non-Maximum Suppression)算法[17]。NMS在處理過程中存在無法選擇相近框的情況,即在兩個目標距離相近時存在漏檢問題。為了提高目標樣本在高密度情況下的召回率,對Faster R-CNN模型中的NMS進行改進。本文采用文獻[18]中的方式改進Soft-NMS算法。
根據Soft-NMS算法[19-20]移除檢測框的過程可以看出,如果Soft-NMS算法的閾值選取的恰當,Faster R-CNN算法的整體性能也會變好。然而在實際應用中,選取使算法既有較高準確率又有較高召回率的最優閾值較為困難。因此,本文采用加入約束因子的Soft-NMS算法,其算法流程如下
算法1改進Soft-NMS算法
Input:B={b1,b2,…,bn} //所有檢測框集合
S={s1,s2,…,sn} //檢測框Score集合
D={} //最優檢測框集合,//初始化為空集合
Begin:
whileB≠ empty do
bm=max{B} //Score最高的檢測框
B=B-bm//移除Score最高檢測框bm(最優框)
D=D∪bm//將bm加入集合D
forbiinBdo
ci=cif(IoU(bm,bi))
si=sici
ifsi<σ
B=B-bi
end
end
returnD,S
end
其中,bi為第i個檢測框;si為第i個檢測框的Score;bm為當前迭代Score最高的檢測框。
Soft-NMS算法的計算式為
(4)
本論文中約束因子的計算方法為
ci=α(1-IoU(bm,bi)2)[18]
(5)
ci=α(IoU(bm,bi)-1)2
(6)
式中,ci為檢測框i的約束因子;IoU(bm,bi)為最優檢測框bm與每一檢測框bi的IoU值;α為權重因子。根據檢測框的IoU值計算檢測框對應的約束因子大小,且由式(5)和式(6)可以看到檢測框IoU值越大對該框Score的約束因子越大。在對重疊檢測框處理時加入約束因子的Soft-NMS算法,每次迭代循環都將約束因子加入,從而不斷衰減檢測框的Score,經過數次循環之后將分數低于σ的檢測框丟棄。對NMS算法和Soft-NMS算法而言,T值的選取對這兩種算法的性能影響較大,但是改進的Soft-NMS算法中參數σ的選取對算法性能的影響較T的選取要小很多。在時間復雜度方面與原算法相同,均為O(n2)。
Faster R-CNN中使用的Anchor共包含3種尺寸{1282,2562,5122},3種比例1∶1、1∶2和2∶1。但是因為Faster R-CNN模型是根據Anchor所包含區域的特征來實現分類和回歸的,因此,如果Anchor的尺寸和比例更加貼近數據集目標則可提高分類和回歸效果。
改變Faster R-CNN中原始設定的Anchor尺寸,相應增加小尺寸的Anchor,將數據集所有目標的面積和比例加以匯總統計,得到圖7和圖8所示分布圖。由面積直方圖可以看到大部分目標大小集中在0~340之間,比例集中在0.7左右。根據直方圖分布,本文擬采用的Anchor比例為{1∶2,1∶7,2∶1}。同時使用不同組合的Anchor,得到如表3所示結果。如果基準Anchor設置過多則會增加模型計算量,設置過少則會使得匹配目標的Anchor較少,Anchor和目標真實框間損失值較大,需要較長時間訓練。因此,本文在兼顧計算量和性能的原則上選擇{162,322,642,962,1282}作為本文Anchor的尺寸。

圖7 數據集Ground Truth面積直方圖Figure 7. The area histogram of dataset Ground Truth

圖8 數據集Ground Truth比例直方圖Figure 8. The scale histogram of dataset Ground Truth

表3 不同組合的Anchor下模型的性能
按照Faster R-CNN模型的原始結構,基準實驗選擇VGG-16作為其特征提取網絡。訓練設定為60 000步,設置初始學習率為0.001,在模型訓練達到50 000步時,步進式地衰減其學習率,將其下降為0.000 1。這樣設置有利于在模型訓練到后期時尋找最優解。在網絡訓練到后期,需要調整的幅度會越來越小,如果設置的學習率過大,可能會產生震蕩,導致模型不收斂或者收斂的地方不是最優解。
模型訓練具體操作步驟為:(1)隨機選取數據集中1 000張圖像組成小樣本集,在此小樣本集上驗證是否過擬合,以確保代碼正確性。Faster R-CNN模型在小樣本集上的Loss曲線如圖9所示,模型在小樣本集上的損失下降明顯,其在小樣本集上過擬合,確定了代碼正確性;(2)在數據集上正式訓練網絡。本文訓練集、測試集和驗證集的劃分比例為8∶1∶1,即訓練集15 622張,測試集1 950張,驗證集1 950張。在訓練網絡的同時步進地調整學習速率。若模型Loss曲線下降不明顯,可以通過衰減其學習速率調整,直到Loss基本上維持不變停止網絡訓練;(3)將訓練完成的模型在測試集上測試,并記錄測試數據及可視化測試結果。

圖9 在小樣本集上的Loss曲線Figure 9. Loss curve on a small sample set
基礎Faster R-CNN檢測效果如圖10所示,圖10(a)為白天小目標檢測效果,個別小目標被漏檢;圖10(b)為白天非小目標檢測效果,有些不完整目標和被遮擋目標被漏檢;圖10(c)為夜晚非小目標檢測效果;圖10(d)為夜晚小目標檢測效果,也存在小目標漏檢和重疊目標檢測效果欠佳的現象。圖11~圖13展示了幾種漏檢的情況。實驗AP值為80.57%,AP值表征算法模型的整體綜合性能,也是本文之后優化實驗的基準實驗結果。

(a)

(b)

(c)

(d)圖10 Faster R-CNN基礎模型的測試效果(a)白天小目標檢測效果 (b)白天非小目標檢測效果 (c)夜晚非小目標檢測效果 (d)夜晚小目標檢測效果Figure 10. Test effect of Faster R-CNN basic model(a)Detection effect of daytime small targets(b)Detection effect of daytime non-small targets(c)Detection effect of nighttime non-small targets(d)Detection effect of nighttime small targets

圖11 小目標漏檢樣例Figure 11. Example of missed detection of small targets

圖12 不完整目標漏檢樣例Figure 12. Example of missed detection of incomplete targets

圖13 檢測框重疊嚴重的目標漏檢樣例Figure 13. Example of missed detection of targets with severe overlapping detection frames
為了驗證加入約束因子的Soft-NMS算法不依賴于閾值T的選取,實驗參數設置和基準實驗相同。首先,進行NMS算法和Soft-NMS算法的測試實驗,以確認不同閾值T對算法性能的影響,得到兩種算法在不同閾值T下,模型AP值及其變化,如圖14所示。

圖14 不同閾值T對應的NMS算法和Soft-NMS算法的AP值Figure 14. AP values of NMS algorithm and Soft-NMS algorithm corresponding to different thresholds T
不同閾值T所對應的模型AP值差值較大,在閾值T上升的過程中,AP值逐漸減小。產生這種現象的主要原因是,當閾值T增大時,一些本應被抑制丟棄的檢測框,因閾值T過大沒有得到抑制。雖然閾值T的增加會降低重疊度高的檢測框被抑制的可能,但會導致真正目標框的增加幅度低于假陽性目標框的增加幅度,進而降低整體檢測精度。
對加入約束因子Soft-NMS算法進行測試實驗,設置同上,默認σ取值為0.001,得到不同α下模型性能。如表4所示,表中改進Soft-NMS算法1代表采用式(5)改進算法;改進Soft-NMS算法2代表采用式(6)改進算法。可以看到不同α取值下AP值變化較平穩,且精度也滿足需求,AP值在α為0.6時達到了91.81%。之后選取α值為0.6,測試不同σ值對模型性能的影響,得到如表5所示的AP值。σ為0.001時AP最高,且不同σ值對AP值的影響在小范圍內平穩波動。該結果證明加入約束因子Soft-NMS算法在達到一定AP值的基礎上減小了閾值T對模型性能的影響。

表4 不同α取值對應的AP值

表5 不同σ取值對應的AP值

表6 改進NMS算法前后模型AP值
表6為改進NMS算法前后模型的評價指標。NMS算法改進之后AP值為91.81%,提高了1.17%。主要原因是NMS算法改進之前相互重疊的目標有一部分會被NMS算法抑制掉,而且閾值T選取不當會降低模型整體精度。但是重疊的目標在整個數據集中所占的比重相對來說較小,故對于綜合性能的影響幅度較小。
對改進前后的Faster R-CNN模型進行無人機車輛目標檢測實驗,得到性能數據如表7所示。將各步改進的Faster R-CNN模型和原Faster R-CNN模型性能指標進行對比。模型改進前的AP值是80.57%,調整特征提取網絡后AP值上升了5.61%,改進特征提取網絡后AP值再次上升1.89%。經過之后的NMS算法改進和Anchor改進,進一步完善Faster R-CNN對于小目標和重疊目標的檢測精度。最終,經過本文改進后,模型的AP值為94.03%,整體提升了13.46%,指標總體向好發展,表現出比原Faster R-CNN模型更佳的綜合性能,尤其在特征提取網絡改進之后,模型AP值上升幅度大于其他改進措施的幅度,說明該改進方案對于模型全局性能優化具有較大的積極作用。特征提取網絡結構的改進主要針對小目標和不完整目標比較難以檢測的問題,加之無人機視角下的車輛目標存在小目標占比較大、不完整目標較多的特征,所以模型性能提升幅度較大。改進后的Faster R-CNN模型對無人機車輛目標檢測綜合性能有較顯著的提升。

表7 算法優化前后測試指標對比

圖15 改進前Faster R-CNN網絡Loss曲線Figure 15. Faster R-CNN network Loss curve before improvement

圖16 改進之后Faster R-CNN網絡Loss曲線Figure 16. Improved Faster R-CNN network Loss curve
改進前后模型的損失函數曲線如圖15和圖16所示。改進前的Loss曲線可以看到整體趨勢是逐漸下降的,但是在下降過程中存在較多相較于均值來說的“突變值”。造成這種現象的主要原因是原Faster R-CNN網絡設置的Anchor值相較于本文所檢測的車輛目標來說過大,當Anchor映射至原圖時,對于那些不完整目標或小目標來說,用于訓練的圖像對這類目標的標記框與Faster R-CNN網絡模型生成的目標框之間差異過大,導致模型損失函數值過大,所以出現“突變值”。在改進之后的模型Loss曲線中可以看到,相較于改進前,“突變值”明顯減少,原因為對Anchor的生成加以改進之后,Anchor大小和目標真實框之間的差異減小。雖然還是會有一些“突變值”,但是這些“突變值”大小明顯小于改進之前“突變值”的大小,這是因為改進后Anchor和真實目標標記框之間的差異減小。
選取測試圖像,使用改進后的Faster R-CNN模型進行無人機車輛目標檢測效果測試,效果如圖17所示。圖17(a)為白天小目標檢測效果,相比較原Faster R-CNN模型檢測出了更多的目標,重疊目標也可以被準確地檢測出。圖17 (b)為白天非小目標檢測效果,相比原Faster R-CNN模型檢測定位更加精確。圖17(c)為夜晚非小目標檢測效果,在光線不足的情況下,也能大部分被正確檢測。圖17 (d)為夜晚小目標檢測效果,在光線不足場景下小目標檢測也較精準。

(a)

(b)

(c)

(d)圖17 本文改進Faster R-CNN模型在不同環境下的檢測效果圖(a)白天小目標檢測效果 (b)白天非小目標檢測效果 (c)夜晚非小目標檢測效果 (d)夜晚小目標檢測效果Figure 17. Detection effect diagrams of improved Faster R-CNN model in different environments(a)Detection effect of daytime small targets(b)Detection effect of daytime non-small targets(c)Detection effect of nighttime non-small targets(d)Detection effect of nighttime small targets
在公開數據集VEDAI上進行各算法的對比試驗,得到如圖18所示的各算法在數據集VEDAI上的實測效果和如表8所示的測試指標對比。由于VEDAI數據集為衛星拍攝圖像,目標相較于本文的數據集在分辨率和尺度上會有一定的差距,所以一定程度上降低了檢測精度。但是由圖18和表8可知,本文算法的AP值最高、精度最好,實測效果中本文算法檢測框置信度較高,且誤檢的情況較其他算法也較少,所以本文算法在VEDAI數據集上的表現相較其他算法仍較優。

(a)

(b)

(c)

(d)

(e)圖18 各算法在VEDAI數據集上的實測效果(a)Faster R-CNN算法實測示例 (b)R-FCN算法實測示例 (c)YOLOv3算法實測示例 (d)SSD算法實測示例 (e)本文算法實測示例Figure 18. Measurement effect of each algorithm on the VEDAI dataset(a)Measurement example of Faster R-CNN algorithm(b)Measurement example of R-FCN algorithm(c)Measurement example of YOLOv3 algorithm(d)Measurement example of SSD algorithm(e)Measurement example of algorithm proposed in this study

表8 5種車輛檢測算法在VEDAI數據集上的測試指標對比
本文通過改進網絡結構、anchor生成和Soft-NMS算法,使得改進后的Faster R-CNN算法的AP值達到94.03%,較原Faster R-CNN算法提升了13.46%,目標檢測效果得到顯著優化。與Faster R-CNN模型、YOLOv3模型、SSD模型、R-FCN模型相比,本文改進的Faster R-CNN模型的實際檢測效果和性能數據更優,具有一定的實際應用價值。雖然本檢測算法在檢測精度方面有較大提高,但是該算法為二階段檢測算法,檢測速度還有所欠缺,今后將在保證其高檢測精度的同時進一步提高該算法的檢測速度。