張俊凱
(中國電子科技集團公司第五十四研究所 河北省石家莊 050081)
行人檢測相當于目標識別與檢測的子任務,通過改進目標識別與檢測算法可以實現對某一特定目標的檢測。近年來,利用深度神經網絡技術進行目標識別與檢測,實現了遠超傳統方法的性能[1-3]。然而深度神經網絡自身的參數規模大、計算復雜度高,很多場景難以滿足實時性要求,因此設計高效率的深度神經網絡模型成為了眾多研究關注的重點[4]。高效率的深度神經網絡模型可以由兩種方法得到。一種是對現有的網絡模型進行壓縮,使用網絡剪枝、稀疏約束、知識蒸餾、網絡量化等方法減少模型的參數量和計算量[5]。另一種是根據需求設計全新的神經網絡模型,在保持參數量和計算量與己有模型相近的前提下,達到更高的性能[6]。
使用單一特征圖進行檢測難以應對多尺度的變化,將特征金字塔中的高層特征疊加至底層特征圖上以增強底層特征圖的語義信息,增強后的特征金字塔對不同尺度物體的檢測性能有了明顯提升[7-9]。高效的目標檢測網絡模型,既要改進網絡的特征融合模塊,又要對骨干網絡部分進行針對性的設計。
針對無人機圖像行人定位任務,本文從如下四方面進行設計:數據增強、主干模型結構優化、上層模型結構優化以及損失函數設計。
由于無人機鏈路通訊不穩定,導致采集的部分圖像存在馬賽克,本文利用數據增強方法豐富數據集,提升模型性能。首先,隨機從數據集選取四張圖片。其次,分別對四張圖片進行翻轉、縮放、色域變化。最后,將第一張圖片放在左上,第二張放在右上,第三張放在左下,第四張放在右下,利用矩陣的方式將四張圖片固定的區域截取下來,拼接形成一張新的圖片,新的圖片上含有對應框等一系列的內容。將新的圖片傳入到神經網絡當中去學習。
針對傳統大型神經網絡檢測模型存在的梯度信息重復引起的優化問題,本文設計跨階段局部模型作為主干網絡的模塊結構,即CSP 模塊。傳統檢測模型主干網絡中的相應計算模塊如圖1(a)所示。
傳統結構每個階段包含一個密集計算模塊和一個過渡層,每個密集計算模塊由k 個卷積計算層組成。第i 個卷積計算層的輸出與其輸入連接起來,連接的結果將成為下一個卷積計算層的輸入。前向傳遞計算機制可以表示為:

圖1:主干網絡中的稠密計算模塊結構改進

反向傳遞過程中的導數可以表示為:

其中gi表示反向傳遞到第i 個卷積計算層的梯度。從公式(2)可見,訓練過程存在大量重復的梯度信息,進而導致不同的卷積計算層參數受到重復梯度信息的引導。為解決這一問題,本課題將輸入的x0分成兩部分:構造部分稠密計算模塊,此模塊的前向傳遞過程變為:

反向傳遞過程變為:

圖2:多尺度特征融合方法

圖3:IOU 計算方法

進而避免了 被反復用于不同卷積計算層的學習過程,有利于不同卷積層提取更多獨特的特征。且由于 仍被保留,因此不存在特征信息丟失現象。除了將稠密計算模塊改進為部分稠密計算模塊,本文還利用轉換層對不同卷積計算層的輸出進行轉換處理,前向和反向傳播過程如公式(5)-(8)所示:
將田口法正交應用于五階恒流快速充電方法中,進行電池充放電實驗,測量充電時間和充電容量的百分比將其作為模糊控制器的輸入量,從而提高充電效率。

通過上述跨階段使用拆分和合并策略,能夠有效地減少信息集成過程中重復的可能性。減少梯度信息的重復能夠大大提高網絡的學習能力。
主干模型最后利用SPP(Spatial Pyramid Pooling)結構充分提取多尺度特征。SPP 旨在解決特征圖上的對應的特征區域的維度不滿足全連接層輸入要求的問題。假定SPP層的輸入為(W, H, C)的矩陣,即每個feature map 的大小是(W, H),一共有C 個feature map 包含在矩陣中。假設目標物體的范圍對應到feature maps上的大小為(w, h, 256),SPP 層利用{1*1,5*5,9*9,13*13}四種池化核大小對輸入特征矩陣進行處理,這樣比單純的使用統一尺度最大池化的方式,更有效的增加主干特征的接收范圍,顯著的分離了最重要的上下文特征。

圖4:測試結果

圖5:測試結果
不同于主干網絡,上層模型結構對抽象特征進行處理,并生成最終的檢測結果。本文將FPN 結構和PAN 結構進行組合,如圖2所示。
這樣的多尺度結合操作由FPN 層自頂向下傳達強語義特征,而特征金字塔則自底向上傳達強定位特征。從不同的主干層對不同的檢測層進行參數聚合,充分結合了不同尺度的特征,獲得對大小不同的目標更佳的檢測效果。
用于訓練檢測模型的損失函數包含兩部分,即分類損失與定位損失:

其中,Lcls( )為交叉熵分類損失,pi為模型預測的第i 個檢測框是目標的概率,p*i 為相應的標簽信息。Lbox( )約束模型使其更加準確地預測目標邊框信息。t*i為第i 個目標邊框的標簽信息。檢測模型的輸出分為兩部分:各個候選框包含目標的概率,邊框坐標及尺度信息,后者的數學表達形式為其中w和h 分別為所預測的目標寬高信息,s 為預測的目標尺度,xcenter和ycenter為預測邊框的中心點橫縱坐標。在訓練過程中,與標簽框重合度(Intersection over Union,IOU)高于0.7 的候選框被用于與標簽框匹配,低于0.3 的候選框被判定為背景,介于0.3 和0.7 之間的候選框被忽略掉。

圖6:Precision-Recall(準確度-召回率)曲線
本文在IOU 的計算方法上進行改進。傳統的IOU 計算方法是求預測的目標框與真實目標框的交集和并集的比例,即圖3(a)中紅色區域面積與紅、綠色區域面積之和的比例。但這樣存在兩個主要問題:首先,如果預測框和目標框不相交,IOU=0,但此時IOU 無法反應兩個框距離的遠近,且損失函數不可導,針對兩個框不相交的情況訓練方法無法優化模型。在此基礎上,將差集納入考慮范圍,差集如圖3(b)所示,能夠在預測框和真實框不交疊的情況下正常對模型進行優化,使預測框不斷接近真實框。但假定預測框在真實框內部且預測框大小不變,這時預測框不論存在于真實框的中心位置還是邊緣位置,其和目標框的差集都是相同的,因此這三種狀態的IOU 值也都是相同的,無法優化模型使得預測框對準真實框的中心位置。因此需要將重疊面積、中心點距離和長寬比綜合考慮到IOU中,將IOU 的計算方法改為(10):

其中bpred表示預測框中心位置,bgt表示真實框中心位置。c 表示圖3(b)所示的最外接矩形框對角線長度,IOU 表示傳統方法計算的IOU 數值。除此之外,還將預測框和真實框的長寬比差距納入考慮范圍。
在實際采集的場景中,行人行為包括站立、行走、奔跑、跳躍、騎自行車等,數據集總共包含訓練集300 個視頻,測試集15 個視頻,視頻總幀數超過80,000 幀。不同場景的測試結果如圖4、圖5 所示。
(a)所有行人都被正常檢測到;(b)由于行人重合度較高,模型將兩個行人檢測為一個;(c)由于行人重合度較高,模型僅檢測到行人的一部分,且漏檢一個行人,紅色虛線框表示漏檢;(d)由于光線較暗,模型發生漏檢問題,紅色虛線框表示漏檢。
(a)所有行人都被正常檢測到;(b)由于鏡面反射,鏡面中的行人被模型檢測出,造成虛警問題,紅色框為虛警框;(c)由于光照條件不理想,模型多檢測出一個行人,將一個行人檢測為兩個,紅色虛線框表示錯誤;(d)除了鏡面反射造成的虛警問題之外,由于行人重合度較高,模型漏檢一人,紅色虛線框表示漏檢。
接下來對模型進行定量測試,固定IOU 閾值為0.5,從0 到1選取11 個置信度閾值對模型進行測試。隨著閾值由低升高,虛警率逐漸降低,漏檢逐漸增多,如圖6 所示。
圖6 中的橫坐標表示召回率,召回率隨著漏檢率的降低而升高。縱坐標表示準確度,準確度隨著虛警率的降低而升高。mAP(不同置信度閾值下的平均準確度)為0.656,顯著高于當前研究現狀。
本文設計的基于無人機圖像的多尺度行人檢測技術基于CSPNet 模型結構,采用了對輸入數據進行維度重組的方式,利用了FPN 結構,使不同層級信息充分融合。實驗證明,本文算法在無人機視角下的圖像中,克服了行人存在尺度、視角及圖像質量的變化,獲得了較好的行人檢測及定位效果。