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

圖1:主干網(wǎng)絡(luò)中的稠密計(jì)算模塊結(jié)構(gòu)改進(jìn)

反向傳遞過程中的導(dǎo)數(shù)可以表示為:

其中g(shù)i表示反向傳遞到第i 個(gè)卷積計(jì)算層的梯度。從公式(2)可見,訓(xùn)練過程存在大量重復(fù)的梯度信息,進(jìn)而導(dǎo)致不同的卷積計(jì)算層參數(shù)受到重復(fù)梯度信息的引導(dǎo)。為解決這一問題,本課題將輸入的x0分成兩部分:構(gòu)造部分稠密計(jì)算模塊,此模塊的前向傳遞過程變?yōu)椋?/p>

反向傳遞過程變?yōu)椋?/p>

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

圖3:IOU 計(jì)算方法

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

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

圖4:測(cè)試結(jié)果

圖5:測(cè)試結(jié)果
不同于主干網(wǎng)絡(luò),上層模型結(jié)構(gòu)對(duì)抽象特征進(jìn)行處理,并生成最終的檢測(cè)結(jié)果。本文將FPN 結(jié)構(gòu)和PAN 結(jié)構(gòu)進(jìn)行組合,如圖2所示。
這樣的多尺度結(jié)合操作由FPN 層自頂向下傳達(dá)強(qiáng)語義特征,而特征金字塔則自底向上傳達(dá)強(qiáng)定位特征。從不同的主干層對(duì)不同的檢測(cè)層進(jìn)行參數(shù)聚合,充分結(jié)合了不同尺度的特征,獲得對(duì)大小不同的目標(biāo)更佳的檢測(cè)效果。
用于訓(xùn)練檢測(cè)模型的損失函數(shù)包含兩部分,即分類損失與定位損失:

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

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

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