周 海,李保權(quán),王懷超,卞春江
(1. 中國(guó)科學(xué)院國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)電子信息技術(shù)重點(diǎn)實(shí)驗(yàn)室, 北京 100190;2. 中國(guó)科學(xué)院大學(xué), 北京 100049; 3. 中國(guó)民航大學(xué) 計(jì)算機(jī)學(xué)院, 天津 300300)
基于紅外傳感器的低空運(yùn)動(dòng)小目標(biāo)探測(cè)因具有隱蔽性高、覆蓋范圍廣和全天候工作的特點(diǎn),在現(xiàn)代國(guó)防、紅外監(jiān)視和空中交通管制等軍民領(lǐng)域均發(fā)揮著重要作用[1-3]。真實(shí)低空?qǐng)鼍跋?,紅外小目標(biāo)檢測(cè)依然受到諸多挑戰(zhàn):①由于觀測(cè)距離遠(yuǎn),無(wú)人機(jī)、飛機(jī)模型、風(fēng)箏等低空目標(biāo)往往很小很弱,形狀和紋理信息不明顯;②由于低空觀測(cè)環(huán)境復(fù)雜,背景中可能含有樹木、植被、地物等強(qiáng)干擾[4](如圖1所示),這些干擾源進(jìn)一步加大了小目標(biāo)檢測(cè)難度;③紅外傳感器在探測(cè)跟蹤系統(tǒng)中主要定位于目標(biāo)發(fā)現(xiàn),在處理中需以極低的時(shí)延生成檢測(cè)信息用于對(duì)系統(tǒng)內(nèi)其他單元進(jìn)行引導(dǎo),檢測(cè)性能與處理實(shí)時(shí)性是決定系統(tǒng)整體性能的關(guān)鍵性設(shè)計(jì)。
(a) 低空復(fù)雜場(chǎng)景代表性目標(biāo)(a) Low-altitude complex scenes representative targets
(b) 低空復(fù)雜場(chǎng)景能量三維圖示(b) Low-altitude complex scenes energy 3D diagram圖1 低空復(fù)雜場(chǎng)景代表性目標(biāo)及相應(yīng)的能量三維圖示Fig.1 Representative targets in low-altitude complex scenes and corresponding energy 3D diagram
近20年來(lái),隨著紅外探測(cè)器的快速發(fā)展與應(yīng)用,出現(xiàn)了大量針對(duì)各種場(chǎng)景的紅外小目標(biāo)檢測(cè)方法。這些方法主要分為兩類:基于單幀的檢測(cè)方法和基于序列的檢測(cè)方法?;趩螏臋z測(cè)方法通常利用圖像空間域的局部差異[5]設(shè)計(jì)不同的濾波器來(lái)抑制噪聲和雜波,如top-hat變換[6]、最大中值和最大均值濾波器[7]等。文獻(xiàn)[8]基于人類視覺(jué)注意機(jī)制提出了局部對(duì)比度量(local contrast measure, LCM)方法。在此方法基礎(chǔ)上,產(chǎn)生了許多改進(jìn)的LCM方法[9],如多尺度相對(duì)局部對(duì)比度量(relative local contrast measure, RLCM)[10]和基于多尺度面片的對(duì)比度量(multiscale patch-based contrast measure, MPCM)[11]等。對(duì)于簡(jiǎn)單場(chǎng)景,這些方法可以有效抑制雜波并增強(qiáng)目標(biāo),但對(duì)于低空復(fù)雜場(chǎng)景,由于存在大量與目標(biāo)相似的干擾導(dǎo)致檢測(cè)虛警率較高?;谛蛄械臋z測(cè)方法利用時(shí)域相關(guān)性對(duì)圖像背景進(jìn)行估計(jì),并利用空域信息對(duì)目標(biāo)進(jìn)行檢測(cè)。時(shí)空局部對(duì)比度濾波器(spatial-temporal local contrast filter, STLCF)使用空間局部對(duì)比度和時(shí)間局部對(duì)比度來(lái)增強(qiáng)目標(biāo)[12]。此外,許多方法使用稀疏表示來(lái)分離連續(xù)圖像上的背景和目標(biāo)[4]。時(shí)間濾波和關(guān)聯(lián)策略(temporal filtering and association strategy, TFAS)方法利用最大濾波和中值濾波的時(shí)間融合(max filter and median filter temporal fusion, MMTF)來(lái)檢測(cè)目標(biāo),然后執(zhí)行關(guān)聯(lián)操作以形成連續(xù)的軌跡[13]。與基于單幀的檢測(cè)方法相比,基于序列的檢測(cè)方法使用了額外的圖像時(shí)間維度信息,其檢測(cè)精度更高。
近些年,深度學(xué)習(xí)方法飛速發(fā)展,在通用目標(biāo)檢測(cè)領(lǐng)域產(chǎn)生了革命性的進(jìn)步,針對(duì)具有豐富紋理特征的大尺度目標(biāo),產(chǎn)生了很多深度檢測(cè)網(wǎng)絡(luò),如FasterRCNN[14]、YOLO[15]、SSD[16]等。但是,針對(duì)低空紅外弱小目標(biāo),由于缺乏顯著的紋理和形狀信息,這些網(wǎng)絡(luò)檢測(cè)性能并不理想。
針對(duì)低空復(fù)雜場(chǎng)景下紅外弱小動(dòng)目標(biāo)檢測(cè)率和虛警率方面的不足,本文在傳統(tǒng)方法基礎(chǔ)上引入全卷積網(wǎng)絡(luò)(fully convolutional network, FCN)進(jìn)行性能提升。
本文算法充分利用時(shí)空域信息實(shí)現(xiàn)弱小目標(biāo)高精度檢測(cè),整體流程如圖2所示。對(duì)于每一幀圖像首先采用全卷積網(wǎng)絡(luò)得到目標(biāo)檢測(cè)概率分布熱圖,并在閾值分割后通過(guò)空域連通將雜散疑似目標(biāo)連通標(biāo)記成備選關(guān)聯(lián)目標(biāo)。由于目標(biāo)檢測(cè)概率分布熱圖中存在的虛警一般由噪聲、地上固定物或盲元產(chǎn)生,通常不具備規(guī)則的運(yùn)動(dòng)信息,故可以將相鄰兩幀備選關(guān)聯(lián)目標(biāo)進(jìn)行軌跡關(guān)聯(lián),進(jìn)一步消除虛警,得到魯棒的檢測(cè)結(jié)果。
圖2 本文算法流程Fig.2 Framework diagram of the proposed method
紅外弱小目標(biāo)由于沒(méi)有顯著的輪廓和形狀信息,很難直接應(yīng)用當(dāng)前的深度檢測(cè)網(wǎng)絡(luò)。低空弱小目標(biāo)在遠(yuǎn)距離情況下會(huì)退化成尺度非常小的目標(biāo),因而需要預(yù)測(cè)一幅圖像中所有像素點(diǎn)的類別,是個(gè)像素密集型檢測(cè)任務(wù)。全卷積網(wǎng)絡(luò)[17]能夠?qū)D像進(jìn)行像素級(jí)的分割,其網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)思想非常適用于紅外弱小目標(biāo)檢測(cè)任務(wù)。同時(shí)該網(wǎng)絡(luò)具有以下幾方面優(yōu)勢(shì):①輸入圖像可以是任意尺寸, 因而圖像處理時(shí)不需要特定步驟對(duì)其進(jìn)行尺寸預(yù)處理,并且當(dāng)需要對(duì)圖像分塊以滿足并行流水化處理要求時(shí),可對(duì)圖像進(jìn)行任意大小的塊分割,便于匹配并行處理架構(gòu)計(jì)算需求;②對(duì)目標(biāo)的分割分類屬于像素級(jí)的分類方法, 并且具備尺度和旋轉(zhuǎn)不變性;③每個(gè)像素對(duì)應(yīng)位置像素點(diǎn)的端對(duì)端訓(xùn)練方式比利用圖像上下文信息和局部特征訓(xùn)練參數(shù)更加高效。
但傳統(tǒng)全卷積網(wǎng)絡(luò)是針對(duì)通用實(shí)例分割任務(wù)設(shè)計(jì),通常分割的目標(biāo)較大,所以不加改進(jìn)直接應(yīng)用于紅外弱小目標(biāo)檢測(cè)會(huì)影響檢測(cè)性能。為提高網(wǎng)絡(luò)的紅外弱小目標(biāo)檢測(cè)精度, 權(quán)衡硬件實(shí)現(xiàn)成本,本小節(jié)對(duì)全卷積網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了優(yōu)化, 構(gòu)建了一種適合紅外弱小目標(biāo)空域檢測(cè)的全卷積回歸網(wǎng)絡(luò)。
1)減少網(wǎng)絡(luò)層數(shù):卷積神經(jīng)網(wǎng)絡(luò)原理上是通過(guò)更深的網(wǎng)絡(luò)層數(shù)來(lái)學(xué)習(xí)更抽象的特征表示,這樣可以有效增加通用場(chǎng)景的目標(biāo)檢測(cè)精度。但對(duì)于低空紅外圖像,由于圖像噪聲強(qiáng)度大,小目標(biāo)形狀和紋理特征非常弱,所以較深的網(wǎng)絡(luò)層數(shù)很難學(xué)習(xí)到有效的抽象特征表示,進(jìn)而影響檢測(cè)精度。對(duì)傳統(tǒng)全卷積網(wǎng)絡(luò)的16個(gè)卷積層進(jìn)行削減,一方面保持對(duì)小目標(biāo)底層特征的充分利用,另一方面隨層數(shù)降低可以有效減小模型參數(shù),降低計(jì)算量。經(jīng)過(guò)多次實(shí)驗(yàn),當(dāng)網(wǎng)絡(luò)層數(shù)逐步減少至5時(shí),網(wǎng)絡(luò)精度變化小于0.3%;當(dāng)網(wǎng)絡(luò)層數(shù)減少至4時(shí),精度下降明顯。權(quán)衡精度與計(jì)算量,算法采用5層卷積層構(gòu)建檢測(cè)網(wǎng)絡(luò)。
2)降低池化層影響:池化層步長(zhǎng)越大,則該層之后的其他各層存儲(chǔ)計(jì)算資源消耗越小,但過(guò)大的步長(zhǎng)也會(huì)損失圖像細(xì)節(jié)特征。為了確保網(wǎng)絡(luò)檢測(cè)精度并得到稠密的檢測(cè)結(jié)果,經(jīng)多次實(shí)驗(yàn),僅在將第一個(gè)池化層的步長(zhǎng)設(shè)置為2、其余池化層的步長(zhǎng)均設(shè)置為1的情況下,可以在不影響檢測(cè)精度的前提下降低部分硬件資源消耗。
3)使用回歸頭:傳統(tǒng)全卷積網(wǎng)絡(luò)輸出層經(jīng)過(guò)softmax函數(shù)得到分類結(jié)果,而對(duì)于小目標(biāo)檢測(cè),如果將其最終結(jié)果簡(jiǎn)單看成是二分類問(wèn)題,那么正負(fù)樣本會(huì)嚴(yán)重失衡,且不能得到小目標(biāo)的精確位置。因此輸出層使用均方誤差回歸損失函數(shù)替代softmax函數(shù),可以得到當(dāng)前像素點(diǎn)x是目標(biāo)的概率p(t|NX,xij∈NX),其中NX表示像素點(diǎn)x的鄰域。
4)優(yōu)化歸一化(batch normalization, BN)層位置:歸一化層主要用于網(wǎng)絡(luò)訓(xùn)練過(guò)程中加快訓(xùn)練收斂,避免梯度消失和過(guò)擬合。傳統(tǒng)全卷積網(wǎng)絡(luò)中歸一化層通常放在激活層后面,但歸一化層僅作用于網(wǎng)絡(luò)訓(xùn)練階段,對(duì)于網(wǎng)絡(luò)推理階段其參數(shù)已經(jīng)固定,適合與卷積層通過(guò)融合處理的方式降低計(jì)算量。將其調(diào)整至卷積層與激活層中間,加速網(wǎng)絡(luò)訓(xùn)練的同時(shí)又充分考慮實(shí)時(shí)處理中的優(yōu)化需求。
通過(guò)采用以上改進(jìn),全卷積回歸網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表1所示。
表1 網(wǎng)絡(luò)參數(shù)Tab.1 Network parameter
軌跡關(guān)聯(lián)利用目標(biāo)多維特性進(jìn)行時(shí)序關(guān)聯(lián)性度量,提取高疑似度目標(biāo)關(guān)聯(lián)序列,抑制虛假目標(biāo)關(guān)聯(lián)序列的產(chǎn)生,從而實(shí)現(xiàn)對(duì)目標(biāo)低虛警率檢測(cè)。軌跡關(guān)聯(lián)前需將相鄰的疑似點(diǎn)連通成一個(gè)目標(biāo)區(qū)域,計(jì)算目標(biāo)特性,包括位置、區(qū)域大小、能量等,利用這些目標(biāo)特性度量歷史軌跡與當(dāng)前目標(biāo)的關(guān)聯(lián)度,實(shí)現(xiàn)時(shí)域上的軌跡關(guān)聯(lián)。關(guān)聯(lián)過(guò)程中未能與歷史軌跡相關(guān)聯(lián)的疑似目標(biāo)均定義為備選起始軌跡供下次關(guān)聯(lián),各歷史軌跡連續(xù)多幀不能與新疑似目標(biāo)關(guān)聯(lián)則判定軌跡消失。關(guān)聯(lián)度量包括:窗口關(guān)聯(lián)度量、能量穩(wěn)定性關(guān)聯(lián)度量、速度方向一致性關(guān)聯(lián)度量。
1.2.1 窗口關(guān)聯(lián)度量
由于目標(biāo)運(yùn)動(dòng)速度有限,相鄰幀間目標(biāo)的位移也是有限的,因此可以基于歷史關(guān)聯(lián)序列位置設(shè)置一定大小的關(guān)聯(lián)窗口,對(duì)落入窗口內(nèi)的疑似目標(biāo)進(jìn)行關(guān)聯(lián)。關(guān)聯(lián)窗口的設(shè)置方式如圖3所示,考慮到目標(biāo)可能會(huì)在某一幀發(fā)生漏檢,若上一幀未關(guān)聯(lián)數(shù)據(jù),則將窗口大小適當(dāng)外擴(kuò)以保證對(duì)受遮蔽目標(biāo)的間斷關(guān)聯(lián)。圖3中Δx和Δy為序列末點(diǎn)與待關(guān)聯(lián)疑似點(diǎn)的坐標(biāo)差,若max(Δx,Δy)小于關(guān)聯(lián)窗口半徑,則認(rèn)為疑似目標(biāo)滿足窗口關(guān)聯(lián)條件。
圖3 窗口關(guān)聯(lián)示意Fig.3 Window association diagram
1.2.2 能量穩(wěn)定性關(guān)聯(lián)度量
同一目標(biāo)量的能量在相鄰幀之間是相對(duì)穩(wěn)定的,可選取軌跡末端點(diǎn)能量峰值Eseq和當(dāng)前疑似點(diǎn)能量峰值Euc中的最小值作為參考值,如式(1)所示,計(jì)算待關(guān)聯(lián)疑似點(diǎn)能量峰值與序列末點(diǎn)能量峰值絕對(duì)變化量,其相對(duì)參考值的百分比為能量關(guān)聯(lián)度,若該值小于閾值Teng,則認(rèn)為待關(guān)聯(lián)點(diǎn)滿足能量穩(wěn)定性關(guān)聯(lián)。
(1)
1.2.3 速度一致性關(guān)聯(lián)度量
速度方向一致性判斷如圖4所示,由于幀間目標(biāo)運(yùn)動(dòng)速度方向在短時(shí)間內(nèi)變化較小,因此基于速度大小和方向一致性可對(duì)疑似目標(biāo)進(jìn)行關(guān)聯(lián)篩選。
圖4 速度方向一致性判斷Fig.4 Consistency judgment of speed and direction
具體方法通過(guò)計(jì)算軌跡方向與目標(biāo)點(diǎn)方向矢量夾角大小來(lái)判斷是否滿足方向一致性條件,通過(guò)計(jì)算軌跡速度與目標(biāo)點(diǎn)速度差值判斷是否滿足速度一致性條件,并通過(guò)閾值進(jìn)行調(diào)整。
本文算法主要面向低空?qǐng)鼍靶∧繕?biāo)紅外探測(cè)跟蹤系統(tǒng)應(yīng)用,為滿足紅外探測(cè)器高幀頻圖像處理需求與系統(tǒng)強(qiáng)實(shí)時(shí)性高穩(wěn)定性要求,采用現(xiàn)場(chǎng)可編程邏輯門陣列(field programmable gate array, FPGA)進(jìn)行實(shí)現(xiàn)。不同于中央處理器(central processing unit, CPU)、數(shù)字信號(hào)處理(digital signal processing, DSP)芯片等傳統(tǒng)嵌入式處理器,F(xiàn)PGA可以為復(fù)雜算法內(nèi)各處理模塊定制單獨(dú)的硬件處理電路,并針對(duì)不同算法模塊計(jì)算特點(diǎn)優(yōu)化處理結(jié)構(gòu),構(gòu)建低時(shí)延并行流水處理架構(gòu)。本節(jié)首先給出算法頂層架構(gòu)設(shè)計(jì)分析,繼而對(duì)算法各模塊進(jìn)行并行化和流水化改進(jìn)。
高幀頻紅外探測(cè)器由于幀周期較短,圖像傳輸時(shí)間P往往占據(jù)幀周期T的80%以上,因而為實(shí)現(xiàn)高幀頻圖像快速處理,實(shí)時(shí)輸出每幀處理結(jié)果,并降低復(fù)雜算法各級(jí)模塊計(jì)算與吞吐壓力,需要采用圖像分塊處理思想構(gòu)建頂層模塊間流水處理架構(gòu),如圖5所示。
圖5 算法實(shí)現(xiàn)頂層流水架構(gòu)示意Fig.5 Schematic diagram of algorithm implementation top-level pipeline architecture
圖像按行傳輸?shù)确譃镸塊,在第N塊圖像傳輸過(guò)程中,可同時(shí)進(jìn)行N-1塊圖像全卷積推理處理、N-2塊圖像連通處理和N-3塊圖像軌跡關(guān)聯(lián)處理。當(dāng)M取值大于等于3且各處理模塊對(duì)塊圖像處理時(shí)間小于等于T/M時(shí),可實(shí)現(xiàn)各級(jí)模塊并行流水高利用率實(shí)時(shí)計(jì)算,此時(shí)一幀圖像處理時(shí)延最大值為3T/M,并隨著M取值增大顯著降低,實(shí)現(xiàn)快速目標(biāo)檢測(cè)處理。
但M取值過(guò)大時(shí)也會(huì)對(duì)塊間數(shù)據(jù)交互與融合帶來(lái)額外處理壓力,本文對(duì)尺寸為512像素×512像素的100 Hz紅外圖像進(jìn)行處理時(shí)取M=16,此時(shí)對(duì)于單塊圖像各級(jí)模塊處理時(shí)間應(yīng)小于0.625 ms。
采用的全卷積網(wǎng)絡(luò)在設(shè)計(jì)中已經(jīng)充分減少網(wǎng)絡(luò)層數(shù)和模型參數(shù),從而構(gòu)建輕量化網(wǎng)絡(luò)。但相對(duì)傳統(tǒng)算法,全卷積網(wǎng)絡(luò)計(jì)算規(guī)模依然較高,因此需進(jìn)一步優(yōu)化網(wǎng)絡(luò)層次、降低計(jì)算復(fù)雜度,并充分利用FPGA內(nèi)邏輯資源、DSP硬核資源與片內(nèi)緩存資源,構(gòu)建高效并行計(jì)算架構(gòu),實(shí)現(xiàn)全卷積網(wǎng)絡(luò)算法快速實(shí)時(shí)處理。
2.2.1 歸一化層融合優(yōu)化
由1.1節(jié)可知,算法中全卷積網(wǎng)絡(luò)主要包含卷積層、池化層與歸一化層(BN層)。其中BN層主要在網(wǎng)絡(luò)訓(xùn)練過(guò)程中解決梯度消失和梯度爆炸問(wèn)題,同時(shí)提高泛化性能。BN層的計(jì)算公式為:
(2)
式中,xbn為BN層輸入,ybn為BN層輸出,γ為尺度因子,β為偏移因子,μ和σ2為每個(gè)通道的平均值與方差,ε為方差調(diào)整因子。BN層計(jì)算涉及高精度乘加運(yùn)算,因而在FPGA實(shí)現(xiàn)時(shí)需要消耗大量計(jì)算時(shí)間與參數(shù)存儲(chǔ)資源,并會(huì)顯著降低全卷積網(wǎng)絡(luò)處理時(shí)延。同時(shí)由于BN層運(yùn)算與卷積計(jì)算模式差別較大,在FPGA實(shí)現(xiàn)中很難與卷積計(jì)算共享一套處理架構(gòu),導(dǎo)致BN層帶來(lái)較大計(jì)算資源開銷。
在網(wǎng)絡(luò)訓(xùn)練結(jié)束后,BN層各參數(shù)在推理過(guò)程中均為靜態(tài)參數(shù),可通過(guò)將BN層參數(shù)融入卷積層參數(shù)的方法移除BN層計(jì)算,顯著簡(jiǎn)化處理流程,具體參數(shù)融合方法推導(dǎo)如下。
設(shè)卷積計(jì)算公式為:
Y=W*X+b
(3)
當(dāng)卷積層輸出為BN層輸入時(shí),式(3)可在式(2)中展開。
(4)
此時(shí)為省略BN層計(jì)算,直接將ybn看成融合后新卷積層輸出,則對(duì)于新卷積層只需要按照式(5)和式(6)更新卷積層參數(shù)即可。
(5)
(6)
由于式(5)和式(6)中所有參數(shù)在訓(xùn)練結(jié)束后均為靜態(tài)參數(shù),且精度相同,因此在全卷積網(wǎng)絡(luò)推理處理前可預(yù)先完成參數(shù)融合,在保證計(jì)算精度的同時(shí)直接減除FPGA內(nèi)原BN層處理資源消耗。融合后網(wǎng)絡(luò)結(jié)構(gòu)如表2所示。
表2 BN層融合后網(wǎng)絡(luò)結(jié)構(gòu)Tab.2 Network structure after BN layer fusion
2.2.2 卷積層并行優(yōu)化
由表2可以看出,經(jīng)融合優(yōu)化后的全卷積網(wǎng)絡(luò)由卷積層、激活層和池化層組成,由于激活層采用ReLU函數(shù),其與池化層在處理上僅需采用簡(jiǎn)單比較,不涉及復(fù)雜乘加運(yùn)算,復(fù)雜度與卷積層卷積運(yùn)算相差較大,因而對(duì)全卷積網(wǎng)絡(luò)計(jì)算優(yōu)化重點(diǎn)主要聚焦在各卷積層。卷積運(yùn)算是涉及輸入特征圖和卷積核權(quán)值的三維乘積運(yùn)算,由4個(gè)層次的循環(huán)實(shí)現(xiàn),如圖6所示。
圖6 卷積運(yùn)算4層循環(huán)示意圖Fig.6 Four layer loop diagram of convolution operation
從數(shù)學(xué)角度來(lái)看,在對(duì)卷積層進(jìn)行并行優(yōu)化設(shè)計(jì)時(shí),可以任意對(duì)一個(gè)或多個(gè)層次循環(huán)進(jìn)行全部或部分展開。但由于展開的大小受限于FPGA片內(nèi)資源,因而如何選擇合適的展開層次與規(guī)模是卷積并行優(yōu)化設(shè)計(jì)的重點(diǎn)。
算法采用的全卷積網(wǎng)絡(luò)雖然卷積層數(shù)只有5層,但卷積核參數(shù)依然高達(dá)30 384個(gè),單層輸入特征圖點(diǎn)數(shù)最大為131 072,F(xiàn)PGA片內(nèi)緩存不足以存儲(chǔ)所有數(shù)據(jù),需要外部存儲(chǔ)器對(duì)卷積核參數(shù)和層間特征圖進(jìn)行緩存。因此,基于FPGA的全卷積網(wǎng)絡(luò)實(shí)時(shí)處理單元由3個(gè)層次的存儲(chǔ)結(jié)構(gòu)組成:①外部大容量存儲(chǔ)器;②FPGA片內(nèi)緩存;③與卷積計(jì)算實(shí)時(shí)處理引擎(processing engine, PE)陣列直接耦合的乘加運(yùn)算臨時(shí)寄存器(register, REG)。存儲(chǔ)結(jié)構(gòu)如圖7所示。
圖7 卷積層實(shí)時(shí)處理存儲(chǔ)結(jié)構(gòu)Fig.7 Convolutional layer real-time processing storage structure
每層網(wǎng)絡(luò)處理時(shí)從外部存儲(chǔ)器中獲取待處理特征圖分塊和相關(guān)卷積核參數(shù)到片內(nèi)緩存,然后按照PE陣列規(guī)模將數(shù)據(jù)轉(zhuǎn)發(fā)PE中的寄存器。在PE陣列計(jì)算完成后將結(jié)果傳遞回片內(nèi)緩存,并在必要時(shí)存入外部存儲(chǔ)器,等待下一層網(wǎng)絡(luò)計(jì)算調(diào)用。
為實(shí)現(xiàn)全連接網(wǎng)絡(luò)低時(shí)延高效處理,上述處理流程應(yīng)在PE陣列并行計(jì)算的基礎(chǔ)上構(gòu)建細(xì)分流水處理架構(gòu),即盡可能保證各PE在每個(gè)時(shí)鐘周期內(nèi)都能執(zhí)行一次運(yùn)算。循環(huán)并行展開方式的不同直接決定了PE陣列規(guī)模和PE數(shù)據(jù)流模式,繼而影響到3個(gè)層次存儲(chǔ)間數(shù)據(jù)存儲(chǔ)訪問(wèn)模式與片內(nèi)數(shù)據(jù)復(fù)用機(jī)會(huì)。
此外,在卷積層優(yōu)化設(shè)計(jì)時(shí)應(yīng)充分考慮不同卷積層尺寸的差異,提高PE陣列并行流水處理架構(gòu)對(duì)不同卷積層的匹配性,以最大限度減少由于各卷積層差異帶來(lái)的計(jì)算效率降低。從表2可以看出,網(wǎng)絡(luò)各卷積層卷積核尺寸差別較大,包含1×1、3×3、4×4三種,因而不適合對(duì)卷積核循環(huán)進(jìn)行展開;輸入特征圖和輸出特征圖通道數(shù)最小均為1,因此也不適合對(duì)輸入輸出通道進(jìn)行展開;全卷積網(wǎng)絡(luò)結(jié)構(gòu)具有良好的輸出特征圖尺寸一致性特點(diǎn),有利于輸入特征圖循環(huán)展開。輸入特征圖循環(huán)并行展開如圖8所示。
圖8 輸入特征圖并行展開Fig.8 Parallel expansion of input feature map
為最大化PE陣列利用率,應(yīng)將并行展開變量(PEx,PEy)設(shè)置為所有卷積層輸入特征圖尺寸變量(Ix,Iy)的公因子,由表2可知網(wǎng)絡(luò)(PEx,PEy)最大可取值為(16,256),但由于每個(gè)PE在實(shí)現(xiàn)上需消耗FPGA內(nèi)1個(gè)DSP硬核,受限于DSP硬核數(shù)量,在實(shí)際設(shè)計(jì)中(PEx,PEy)可取(16,128),此時(shí)并行展開度和PE陣列規(guī)模為2 048。
2.2.3 全卷積網(wǎng)絡(luò)計(jì)算架構(gòu)設(shè)計(jì)
基于BN層融合與卷積并行展開優(yōu)化設(shè)計(jì),圖9給出了全卷積網(wǎng)絡(luò)并行計(jì)算架構(gòu)。架構(gòu)外圍設(shè)置了2個(gè)動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dynamic random access memory, DRAM),分別存儲(chǔ)特征圖和卷積核。每層卷積處理開始時(shí)DRAM在接口管理模塊控制下將特征圖分塊和相應(yīng)權(quán)重分別加載至片內(nèi)輸入特征圖緩存與片內(nèi)權(quán)重緩存中,繼而依據(jù)PE陣列尺寸,通過(guò)內(nèi)部復(fù)用數(shù)據(jù)總線將特征圖和權(quán)重?cái)?shù)據(jù)載入各PE,開始高速并行計(jì)算。
圖9 全卷積網(wǎng)絡(luò)并行計(jì)算架構(gòu)Fig.9 Full convolution network parallel computing architecture
數(shù)據(jù)在PE陣列中按輸入特征圖展開尺度進(jìn)行每周期不間斷并行計(jì)算。為盡快得到對(duì)應(yīng)局部輸出特征圖,降低部分和寄存器數(shù)量,便于后端ReLU與池化流水處理,設(shè)計(jì)時(shí)將輸出通道循環(huán)放在最后一層,先進(jìn)行卷積核循環(huán)與輸入通道循環(huán)。同時(shí)考慮卷積核尺寸較小,為加強(qiáng)PE陣列數(shù)據(jù)復(fù)用降低緩存吞吐壓力,設(shè)計(jì)中先完成卷積核循環(huán)輸出單通道部分和,繼而完成輸入通道循環(huán),最后交由多路部分和緩存與累加單元完成數(shù)據(jù)累加生成。
卷積處理后結(jié)果依次傳輸至偏移累加計(jì)算單元、ReLU計(jì)算單元和池化處理單元,最終按序存入外部DRAM,等待下一層計(jì)算讀取。這三層處理由于計(jì)算規(guī)模較小耗費(fèi)資源較少,在設(shè)計(jì)中為盡可能降低處理時(shí)延,也按特征圖列方向進(jìn)行了不同尺度的并行化設(shè)計(jì)。
由于每層運(yùn)算的參數(shù)和尺寸是固定的,因而在存儲(chǔ)區(qū)中采用少量乒乓緩存技術(shù)就可以實(shí)現(xiàn)4個(gè)卷積循環(huán)迭代并行流水和卷積層間的順序流水計(jì)算。所有緩沖區(qū)讀寫地址和PE陣列計(jì)算順序也在編譯過(guò)程中依據(jù)網(wǎng)絡(luò)模型預(yù)先分配并記錄,有效降低數(shù)據(jù)傳輸額外占用的時(shí)間,支撐PE陣列高效并行工作,提高全卷積網(wǎng)絡(luò)并行計(jì)算架構(gòu)處理性能。
軌跡關(guān)聯(lián)在設(shè)計(jì)中為實(shí)現(xiàn)低時(shí)延處理,重點(diǎn)考慮兩個(gè)層面的優(yōu)化加速:一是歷史軌跡與多個(gè)備選點(diǎn)之間的并行處理,二是單次關(guān)聯(lián)過(guò)程中不同維度一致性計(jì)算間的并行處理。軌跡關(guān)聯(lián)架構(gòu)設(shè)計(jì)如圖10所示,軌跡關(guān)聯(lián)主要包括序列與疑似點(diǎn)存取、關(guān)聯(lián)計(jì)算和序列更新3個(gè)模塊。序列與疑似點(diǎn)存取模塊完成對(duì)已關(guān)聯(lián)序列和待關(guān)聯(lián)疑似點(diǎn)存取;關(guān)聯(lián)計(jì)算模塊完成窗口關(guān)聯(lián)、能量一致性關(guān)聯(lián)和速度一致性關(guān)聯(lián)處理;序列更新模塊對(duì)關(guān)聯(lián)結(jié)果融合判斷產(chǎn)生新的序列,并輸出存入外部緩存等待下次關(guān)聯(lián)。
圖10 軌跡關(guān)聯(lián)架構(gòu)設(shè)計(jì)Fig.10 Architecture design of trajectory association
模塊采用流水優(yōu)化方法提高軌跡關(guān)聯(lián)處理速度。理論上處理性能會(huì)隨流水的級(jí)數(shù)增加而提高,但同時(shí)也會(huì)增大對(duì)硬件資源特別是片內(nèi)有限存儲(chǔ)資源的消耗。依據(jù)模塊劃分采用三級(jí)流水模式,在第二級(jí)流水中通過(guò)采用多個(gè)關(guān)聯(lián)計(jì)算單元支撐多備選點(diǎn)與當(dāng)前軌跡同步并行關(guān)聯(lián)計(jì)算,有效降低多備選點(diǎn)的關(guān)聯(lián)處理時(shí)間。此外,不同于常規(guī)串行關(guān)聯(lián)判斷處理方法,對(duì)窗口關(guān)聯(lián)、能量一致性關(guān)聯(lián)和速度一致性關(guān)聯(lián)采用獨(dú)立并行計(jì)算后,融合表決判斷,進(jìn)一步大幅度縮短計(jì)算時(shí)延、提高處理性能。
實(shí)驗(yàn)數(shù)據(jù)集采用由國(guó)防科技大學(xué)公開的真實(shí)低空?qǐng)鼍凹t外小目標(biāo)數(shù)據(jù)集[18],其中包含22個(gè)紅外序列。序列為地面背景或地面與天空混合背景,包含山、樹木、建筑、植被、水等干擾物。為了充分驗(yàn)證本文算法對(duì)于復(fù)雜場(chǎng)景下紅外弱小目標(biāo)的檢測(cè)性能,選取了其中場(chǎng)景較復(fù)雜的6個(gè)序列用于性能測(cè)試和分析,其余序列用于構(gòu)建訓(xùn)練數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集建立過(guò)程中除圖像中原有目標(biāo),還隨機(jī)添加了不同位置、信噪比和大小的仿真目標(biāo)對(duì)數(shù)據(jù)集進(jìn)行了增廣,共計(jì)13 874幅。表3給出了6個(gè)測(cè)試序列的細(xì)節(jié)描述,共計(jì)6 649幅紅外圖像。從目標(biāo)信噪比范圍可以看出場(chǎng)景中的目標(biāo)為弱目標(biāo)[19],各個(gè)序列的圖像復(fù)雜程度用序列中各圖像場(chǎng)景信噪比(scene signal noise ratio, SSNR)的平均值進(jìn)行描述,值越大表明場(chǎng)景越復(fù)雜,圖像SSNR定義如式(7)所示。
表3 測(cè)試序列與圖像參數(shù)Tab.3 Test sequence and image parameters
(7)
式中,M和N分別代表圖像長(zhǎng)寬,Di,j代表圖像中坐標(biāo)為(i,j)的點(diǎn)鄰域方差,Si,j代表坐標(biāo)為(i,j)的點(diǎn)中心灰度值,Si,j代表坐標(biāo)為(i,j)的點(diǎn)鄰域均值。
實(shí)驗(yàn)與測(cè)試平臺(tái)采用課題組自研高性能實(shí)時(shí)處理機(jī)予以驗(yàn)證,檢測(cè)算法運(yùn)行在圖像處理板上FPGA內(nèi),圖像處理板實(shí)物如圖11所示。
圖11 自研圖像處理板Fig.11 Self-developed image processing board
為驗(yàn)證算法處理性能,以處理機(jī)為中心搭建了一套自測(cè)試驗(yàn)證系統(tǒng),系統(tǒng)組成如圖12所示。系統(tǒng)采用圖像模擬源設(shè)備實(shí)時(shí)高幀頻發(fā)送測(cè)試序列圖,由檢測(cè)結(jié)果記錄設(shè)備實(shí)時(shí)接收并存儲(chǔ)算法各項(xiàng)處理結(jié)果,其中包含全連接網(wǎng)絡(luò)輸出的空域檢測(cè)結(jié)果與多幀關(guān)聯(lián)輸出的時(shí)域檢測(cè)結(jié)果,繼而通過(guò)結(jié)果分析實(shí)現(xiàn)對(duì)算法功能與性能的測(cè)試驗(yàn)證。
圖12 自測(cè)試驗(yàn)驗(yàn)證系統(tǒng)Fig.12 Self-test verification system
圖13按行從上至下分別列出了6個(gè)測(cè)試序列中的典型場(chǎng)景,并標(biāo)注出本文所提算法在FPGA處理后獲得的檢測(cè)結(jié)果。通過(guò)圖13(a)可以看出,受大量干擾物影響,人眼幾乎很難分辨目標(biāo)位置。圖13(b)和圖13(c)為圖13(a)相鄰兩幀經(jīng)過(guò)全卷積網(wǎng)絡(luò)回歸得到的目標(biāo)概率熱圖,如紅框所示位置,目標(biāo)在熱圖中均有很強(qiáng)的響應(yīng)。但由于場(chǎng)景比較復(fù)雜,一些噪聲和干擾物也有較強(qiáng)響應(yīng)。圖13(d)為關(guān)聯(lián)后檢測(cè)結(jié)果,可以直觀看出,相鄰兩幀目標(biāo)概率熱圖之間存在不同位置的高響應(yīng)區(qū)域,這些響應(yīng)由隨機(jī)噪聲引起,通過(guò)軌跡關(guān)聯(lián)可以有效剔除這一類高響應(yīng)引起的虛假目標(biāo),抑制虛警,最終得到準(zhǔn)確的檢測(cè)結(jié)果。
圖13 本文算法實(shí)現(xiàn)測(cè)試結(jié)果Fig.13 Algorithm implementation test results of this paper
本文方法與其他5個(gè)基準(zhǔn)方法的接受者操作特性(receiver operating characteristic, ROC)曲線比較如圖14所示。其中,通過(guò)不同的分割閾值,獲得了MPCM、RLCM、STLCF和MMTF 4種基準(zhǔn)方法的ROC曲線。TFAS方法的ROC曲線通過(guò)不同的位移增量閾值獲得。本文方法的ROC曲線同樣通過(guò)不同的分割與關(guān)聯(lián)閾值獲得。與基準(zhǔn)方法相比,本文方法在很低的誤報(bào)率下,能夠獲得較高的檢測(cè)率。表4給出了本文方法和其他5種基準(zhǔn)方法在6個(gè)測(cè)試序列下的平均虛警率和平均檢測(cè)率對(duì)比。從中可以看出,本文方法在平均虛警率優(yōu)于基準(zhǔn)方法4倍以上(本文為0.000 1)條件下,平均檢測(cè)率相比基準(zhǔn)方法提高20%以上(本文為93%),并對(duì)不同場(chǎng)景具有良好的魯棒性。
(a) 測(cè)試序列1的ROC對(duì)比曲線(a) Comparison of ROC curves of test sequence 1
(b) 測(cè)試序列2的ROC對(duì)比曲線(b) Comparison of ROC curves of test sequence 2
(c) 測(cè)試序列3的ROC對(duì)比曲線(c) Comparison of ROC curves of test sequence 3
(d) 測(cè)試序列4的ROC對(duì)比曲線(d) Comparison of ROC curves of test sequence 4
(e) 測(cè)試序列5的ROC對(duì)比曲線(e) Comparison of ROC curves of test sequence 5
同時(shí)表4給出了測(cè)試中運(yùn)行平均速率,其中5個(gè)基準(zhǔn)方法均在X86平臺(tái)(CPU為Intel Core I72.0 GHz,內(nèi)存為16 GB,操作系統(tǒng)為Windows 10)下運(yùn)行,本文方法分別給出了在X86和FPGA平臺(tái)下運(yùn)行的平均速率??梢灾庇^看出經(jīng)過(guò)并行流水優(yōu)化設(shè)計(jì),算法在FPGA平臺(tái)相對(duì)X86平臺(tái)取得了顯著的加速效果,充分滿足實(shí)時(shí)處理應(yīng)用需求。
表4 各測(cè)試序列中不同方法平均檢測(cè)率、平均虛警率與平均速率對(duì)比Tab.4 Comparison of average detection rate, average false alarm rate and average rate of different methods in test sequence
表5給出了優(yōu)化后的檢測(cè)算法實(shí)現(xiàn)對(duì)FPGA資源使用情況,F(xiàn)PGA型號(hào)為Xilinx公司產(chǎn)XC7VX690T,開發(fā)工具為Vivado 2019.1。如2.2節(jié)所述,由于片內(nèi)塊隨機(jī)存儲(chǔ)器(block random access memory, BRAM)和用于實(shí)現(xiàn)寄存器功能的觸發(fā)器(flip flop, FF)需要緩存部分權(quán)重、輸入和輸出部分特征圖及大量中間計(jì)算結(jié)果,BRAM和FF使用率分別高達(dá)84%與70%。大量BRAM和FF的使用有效保證了整體并行處理架構(gòu)無(wú)阻塞流水運(yùn)行,同時(shí)緩解了布局布線難度提高系統(tǒng)工作時(shí)鐘頻率。算法中乘法運(yùn)算全部使用DSP硬核資源實(shí)現(xiàn),由于PE陣列較大使用率達(dá)76%。
表5 FPGA資源使用情況Tab.5 FPGA resource utilization
圖15給出了FPGA仿真波形,仿真顯示單幀圖像流水線上各模塊最大處理時(shí)鐘數(shù)為1 442 896個(gè)時(shí)鐘周期,F(xiàn)PGA布局布線后給出的最高工作頻率為167 MHz,對(duì)應(yīng)最小處理周期為8.64 ms。實(shí)際應(yīng)用時(shí)板上時(shí)鐘為150 MHz,此時(shí)最小處理周期為9.62 ms,相對(duì)圖像幀傳輸末端時(shí)延為1.8 ms,可有效滿足100 Hz圖像快速實(shí)時(shí)處理需求。
圖15 算法FPGA實(shí)現(xiàn)仿真波形Fig.15 Algorithm simulation waveform based on FPGA
針對(duì)低空復(fù)雜場(chǎng)景下弱小目標(biāo)檢測(cè)難題,本文提出一種時(shí)空域結(jié)合的目標(biāo)檢測(cè)方法和基于FPGA平臺(tái)的實(shí)時(shí)并行優(yōu)化處理方法。算法采用輕量化全卷積回歸網(wǎng)絡(luò)進(jìn)行空域檢測(cè),繼而對(duì)空域檢測(cè)結(jié)果進(jìn)行連通標(biāo)記和時(shí)域關(guān)聯(lián)獲得目標(biāo)精確檢測(cè)結(jié)果。測(cè)試結(jié)果表明,在6個(gè)復(fù)雜低空?qǐng)鼍叭跣∧繕?biāo)測(cè)試序列中,本文研究成果在0.000 1虛警率下實(shí)現(xiàn)93%平均檢測(cè)率,較傳統(tǒng)方法性能提升顯著。并在單片F(xiàn)PGA上完成100 Hz圖像實(shí)時(shí)處理,處理時(shí)延低于1.8 ms,性能充分滿足對(duì)高幀頻紅外圖像中弱小目標(biāo)快速精準(zhǔn)實(shí)時(shí)檢測(cè)應(yīng)用需求。