国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

孿生網(wǎng)絡(luò)跟蹤算法并行計算結(jié)構(gòu)研究

2021-04-07 06:29:46盧金儀唐維偉徐文輝顏露新
測控技術(shù) 2021年3期
關(guān)鍵詞:功耗嵌入式尺度

盧金儀, 唐維偉, 徐文輝, 顏露新, 鐘 勝, 鄒 旭

(1.華中科技大學 人工智能與自動化學院,湖北 武漢 430074;2.華中科技大學 多譜信息處理技術(shù)國家級重點實驗室,湖北 武漢 430074)

隨著人工智能及計算機視覺[1]等技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)被逐漸應(yīng)用在目標跟蹤任務(wù)中。目標跟蹤的主要流程包括候選預(yù)測、特征提取、模板表征和建模求解。在建模求解的步驟中,按照所采取的建模技術(shù)將目標跟蹤算法大致分為兩大類:生成式方法和判別式方法[2]。傳統(tǒng)的判別式模型在特征提取步驟中,主要提取的是人工定義并構(gòu)建的特征,常用的人工定義特征包括:HOG特征、SIFT特征、Haar特征等。在統(tǒng)計建模步驟中,使用支持向量機、Boosting算法等常見分類器對目標和背景兩者進行區(qū)分,得到跟蹤結(jié)果。得益于卷積神經(jīng)網(wǎng)絡(luò)特征的強大表征能力,傳統(tǒng)人工定義特征逐漸替換為卷積特征,基于卷積神經(jīng)網(wǎng)絡(luò)的跟蹤框架的一個重要方向便是孿生網(wǎng)絡(luò)跟蹤框架。其中全卷積網(wǎng)絡(luò) Siamese-FC由Bertinetto等[3]提出,這種端到端網(wǎng)絡(luò)參數(shù)量小,在前向推理時有較快的跟蹤效果,同時網(wǎng)絡(luò)可以將一部分工作離線解決,在將算法部署于嵌入式設(shè)備時,只需要計算搜索區(qū)域的前向推理部分,減少了在線跟蹤的計算量,因此輕量化的孿生網(wǎng)絡(luò)在嵌入式部署時有快速和低計算量的優(yōu)勢。

卷積網(wǎng)絡(luò)強大的特征提取和泛化能力是以大參數(shù)量以及計算量為代價的,如常用的網(wǎng)絡(luò)框架AlexNet[4]的計算量達到了727MFLOP,VGG-16[5]的計算量達到了16GFLOP。如此大的計算量和參數(shù)量對嵌入式平臺部署應(yīng)用造成壓力,為滿足多場景下嵌入式平臺網(wǎng)絡(luò)推理的需求,提出一種硬件部署方案十分必要。目前主要的邊緣端解決方案使用的芯片有ASIC[6]、SoC以及FPGA。相較于專用ASIC或者SOC器件,F(xiàn)PGA的可重構(gòu)特性使電路能根據(jù)實際情況靈活配置。

FPGA上的卷積加速研究主要在提高運算的并行度上,卷積可以展開的并行類型[7]有輸入通道并行、輸出通道并行、特征圖并行和卷積核并行,Qiu等[8]根據(jù)卷積的滑窗過程設(shè)計了line-buffer結(jié)構(gòu)實現(xiàn)卷積運算,但時鐘頻率很難提高。Gokhale等[9]根據(jù)卷積計算過程設(shè)計了脈動陣列結(jié)構(gòu)實現(xiàn)卷積運算,提高時鐘頻率,但存在乘法器利用率不足的問題。Zeng等[10]使用離散傅里葉變換將卷積的計算過程轉(zhuǎn)換成頻域的點積計算。離散傅里葉變換在卷積模板的尺寸大于5×5的情況下可以大量減少計算量。除結(jié)構(gòu)設(shè)計外,在嵌入式平臺的邊緣計算場景,網(wǎng)絡(luò)的輕量化工作尤為重要,網(wǎng)絡(luò)量化的思想在于將網(wǎng)絡(luò)計算中的浮點數(shù)運算轉(zhuǎn)換為定點數(shù)運算[11]或設(shè)計輕量化的網(wǎng)絡(luò)結(jié)構(gòu)[12],減少計算資源消耗。Gysel等[13]提出了Ristretto框架來近似網(wǎng)絡(luò)模型,通過分析模型中的卷積層和全連接層中權(quán)重和輸出特征圖的數(shù)據(jù)分辨率,將浮點數(shù)轉(zhuǎn)為低bit整數(shù),但該操作較為復(fù)雜,增加了開發(fā)時間。

立足于以上研究,使用基于KL相對熵的量化方案減少目標跟蹤算法Siamese-FC計算量,并根據(jù)算法特點及FPGA結(jié)構(gòu)特點,設(shè)計不同方式并行度的組合,提高嵌入式平臺部署神經(jīng)網(wǎng)絡(luò)對復(fù)雜背景場景目標進行跟蹤的算法效率。實驗結(jié)果與CPU前向推理相比,在保證精度的同時,提升了運行速度,降低了功耗,得到了較好的加速效果。

1 資源約束下跟蹤算法分析

1.1 Siamese-FC網(wǎng)絡(luò)的計算結(jié)構(gòu)

Siamese-FC網(wǎng)絡(luò)的流程如圖1所示,網(wǎng)絡(luò)有兩個輸入x和z,其中z表示大小為127×127的目標模板圖像,x表示大小為255×255待搜索區(qū)域圖像。將兩個輸入送入兩個共享權(quán)值的特征提取網(wǎng)絡(luò)φ,該網(wǎng)絡(luò)φ是在AlexNet的基礎(chǔ)上去掉計算量大的全連接層結(jié)構(gòu)構(gòu)成的,在Siamese-FC網(wǎng)絡(luò)模型中特征提取網(wǎng)絡(luò)φ采用的是全卷積神經(jīng)網(wǎng)絡(luò),將兩個輸入項x和z以相同的方式提取特征,得到22×22×128的x的網(wǎng)絡(luò)特征和6×6×128的z的網(wǎng)絡(luò)特征,并將兩個輸出的特征通過卷積運算獲得最后的17×17×1的置信得分圖,目標區(qū)域會得到高分,而非目標區(qū)域?qū)玫降头?,故只要比較計算置信得分圖之中得分最高的位置,并通過插值的方式獲得疑似目標位置區(qū)域。

Siamese-FC網(wǎng)絡(luò)的結(jié)構(gòu)分為兩路全卷積網(wǎng)絡(luò),其中輸入目標模板一路的網(wǎng)絡(luò)前向推理可以離線計算,同時,網(wǎng)絡(luò)最后的卷積操作也可以在嵌入式平臺以外操作,因此,在嵌入式平臺中可以只計算輸入待搜索區(qū)域圖一側(cè)的網(wǎng)絡(luò)前向推理過程。

1.2 Siamese-FC網(wǎng)絡(luò)的計算復(fù)雜度

在卷積網(wǎng)絡(luò)中,一般是通過由卷積層—BN層—激活層—池化層—…—卷積層—BN層—激活層—池化層—全連接層的基本形式組合成,其中卷積層作為主要計算流程,計算量和存儲量都是整個網(wǎng)絡(luò)中占比最大的部分,可以通過計算卷積層的存儲資源要求和計算資源要求,對Siamese-FC網(wǎng)絡(luò)的計算量和存儲量有一個直觀的認識,以及為后續(xù)在有限資源的嵌入式平臺部署時提供參考。表1是根據(jù)Siamese-FC網(wǎng)絡(luò)的計算過程得到的各卷積層的計算量以及存儲量需求。

表1 Siamese-FC網(wǎng)絡(luò)各個卷積層的計算量與存儲量

ZYNQ系列FPGA芯片XC7Z045的片上緩存資源Block RAM為19.2 MB,乘法器資源DSP48的數(shù)量為900個, Siamese-FC網(wǎng)絡(luò)最大單層權(quán)重參數(shù)的存儲量超過了40 MB,是XC7Z045芯片片上緩存容量的兩倍,計算量最大的層達到了998M次乘法和938M次加法,而一個DSP48資源在一個時鐘周期之內(nèi)只能進行一次25 bit×18 bit的乘法和一次48 bit的加法。由此可見為了能將其部署在嵌入式平臺上,需要大容量外部緩存如DDR緩存權(quán)重參數(shù)和輸入輸出特征圖,同時需要對網(wǎng)絡(luò)進行定點量化處理,減少網(wǎng)絡(luò)的計算量。

2 跟蹤算法的ZYNQ部署實現(xiàn)

2.1 卷積網(wǎng)絡(luò)部署重點分析與軟硬件規(guī)劃

卷積網(wǎng)絡(luò)部署有兩個重點,第一點是前向推理計算的實現(xiàn),其中包括了卷積層、池化層、BN層、激活層等,根據(jù)計算特性設(shè)計成不同的計算IP,最后整合成一個前向計算的IP;第二點則是圖像數(shù)據(jù)流的控制,其包括了數(shù)據(jù)的輸入、輸出以及數(shù)據(jù)的存儲,這部分的實現(xiàn)重點在于通信協(xié)議的使用和存儲器的結(jié)構(gòu)。

根據(jù)卷積網(wǎng)絡(luò)算法部署的這兩個重點,為了簡化數(shù)據(jù)流通信協(xié)議的使用以及簡化存儲器的讀寫控制邏輯,本文以ZYNQ作為硬件部署的平臺,將數(shù)據(jù)流輸入輸出的控制以及存儲器的讀寫控制任務(wù)交給ZYNQ系統(tǒng)側(cè),而可編程邏輯部分主要負責前向網(wǎng)絡(luò)結(jié)構(gòu)的硬件實現(xiàn)。

基于ZYNQ的卷積網(wǎng)絡(luò)硬件部署的整體架構(gòu)如圖2所示,整個系統(tǒng)的數(shù)據(jù)流輸入與輸出、外部存儲器的讀寫控制、前向網(wǎng)絡(luò)結(jié)構(gòu)的硬件實現(xiàn)均在ZYNQ上實施,使用外部存儲器DDR器件作為緩存,用于算法的前向計算流程獲取數(shù)據(jù)。ZYNQ系列FPGA系統(tǒng)側(cè)(PS側(cè))以ARM作為中心器件,主要負責通過發(fā)布指令來實現(xiàn)數(shù)據(jù)調(diào)度;可編程邏輯部分(PL側(cè))則負責卷積加速器的實現(xiàn)和生成作為中間緩存的片上RAM,其中卷積加速器根據(jù)可編程邏輯器件并行計算的結(jié)構(gòu),可設(shè)計為多個基本處理單元PE。

2.2 Siamese-FC網(wǎng)絡(luò)的定點量化

定點量化指使用一個低比特定點數(shù)表示原來的浮點數(shù),達到減少計算量、提高計算效率的目的。

量化算法的本質(zhì)是將一組一定范圍內(nèi)的浮點數(shù)映射到另一組一定范圍的數(shù)中,也就是等比例縮放。映射方案以是否以零點為對稱點分為對稱量化和非對稱量化。非對稱量化方式相對于對稱量化方式來說,不僅在單個浮點數(shù)量化時要復(fù)雜,同時將量化應(yīng)用在浮點數(shù)的四則運算中也相對復(fù)雜,因此本文采用對稱量化。設(shè)浮點數(shù)集合F*(其中任意元素F∈[Fmin,Fmax])量化到[Qmin,Qmax],量化后F對應(yīng)的值為Q,則式(1)為對稱量化公式。

(1)

式中,S為量化系數(shù)。

對稱量化中,又分為極值量化與飽和量化。若數(shù)據(jù)分布均勻,則直接采用極值量化即可;若數(shù)據(jù)不均勻,則需要采用飽和量化,找到合適的閾值對數(shù)據(jù)進行飽和裁剪。兩種量化方式的計算方式如圖3所示。

圖3 兩種對稱量化的量化方法

在實際應(yīng)用中,數(shù)據(jù)的分布并不是均勻的,且映射過程中精度損失客觀存在,如果集合中存在一些噪聲值,采用極值量化會使映射前后的兩個集合的分布相差較大,因此采用閾值量化的方式對卷積網(wǎng)絡(luò)進行量化。本文采用KL相對熵方式[14]對量化前后分布進行差異程度計算,以此找到合適的閾值。

設(shè)兩個大小都為X的有序集合F*和Q*,它們中的元素一一對應(yīng)且任意兩個相對應(yīng)的元素能且僅能被x(x∈{1,2,…,X})索引到,記DKL(F*||Q*)為F*對Q*的相對熵,則DKL(F*||Q*)的計算公式如下:

(2)

其中對數(shù)函數(shù)可以為任意底,因為式(2)一般用在目標函數(shù)中,DKL(F*‖Q*)越小說明兩個集合的分布差異越小。

具體量化流程為:

① 求出F*中的極值|Fmax|;

③ 得到最低相對熵的閾值T即為最優(yōu)閾值。

2.3 基于通道并行的卷積層加速架構(gòu)設(shè)計

卷積網(wǎng)絡(luò)算法計算量和數(shù)據(jù)量大,其中計算量比重最高的層為卷積層,同時由于卷積層的部分連接和權(quán)重共享特性,其計算是可以并行的,故網(wǎng)絡(luò)前向推理的硬件實現(xiàn)部分是在PL側(cè)完成硬件加速。

將Siamese-FC網(wǎng)絡(luò)硬件部署的卷積層結(jié)構(gòu)首層并行度設(shè)計為4×16,結(jié)合輸入特征圖通道并行與輸出特征圖通道并行;后續(xù)層并行度為16×16,結(jié)合輸入特征圖通道并行與輸出特征圖通道并行。首層卷積層的結(jié)構(gòu)和后續(xù)卷積層的結(jié)構(gòu)如圖4所示。

圖4 卷積層卷積并行計算結(jié)構(gòu)

圖4中首層卷積層Tn=4、Tm=16,后續(xù)卷積層Tn=16、Tm=16。并行卷積模塊實際就是并行乘法計算部分,文章設(shè)計的并行卷積模塊結(jié)構(gòu)為樹狀結(jié)構(gòu),并行卷積模塊中的PE指的是基本處理單元(Processing Element),樹狀結(jié)構(gòu)的并行卷積模塊的PE也是樹狀的,結(jié)構(gòu)如圖5所示。由于樹狀結(jié)構(gòu)并行卷積模塊PE內(nèi)部的累加樹的存在,在加法計算數(shù)量不變的情況下,將計算多次加法的時間復(fù)雜度降為了O(logn),所以樹狀結(jié)構(gòu)的并行卷積模塊計算速度較快。

圖5 并行卷積模塊結(jié)構(gòu)圖

2.4 系統(tǒng)側(cè)數(shù)據(jù)調(diào)度設(shè)計

為了PL側(cè)并行計算模塊的高效運行,需要一個合理的數(shù)據(jù)調(diào)度,對于ZYNQ系列FPGA 來說,數(shù)據(jù)調(diào)度的部分可以設(shè)計在PS側(cè),PS側(cè)數(shù)據(jù)調(diào)度的對象包括PL側(cè)卷積網(wǎng)絡(luò)硬件加速核、SD卡、DDR和HDMI。PS側(cè)數(shù)據(jù)調(diào)度的具體流程主要包含以下步驟。

① 初始化。從SD卡中初始幀讀取目標的初始尺度信息和位置信息,并讀取離線計算好的目標模板的Siamese-FC網(wǎng)絡(luò)輸出特征圖。讀取Siamese-FC網(wǎng)絡(luò)的權(quán)重參數(shù)、偏置參數(shù)和量化參數(shù)并放入對應(yīng)的DDR地址區(qū)域。

② 從SD卡中讀取下一幀完整圖像,以上一幀的尺度信息和位置信息為中心,擴大和縮小各獲得一個尺度的搜索區(qū)域,加上原本尺度信息的搜索區(qū)域,一共3個尺度的搜索區(qū)域,這3個尺度的尺度因子分別為0.985,1,1.015。截取這3個尺度的圖像并將其插值成255×255作為待搜索區(qū)域圖像。

③ 將一張待搜索區(qū)域圖放入首層卷積層的輸入特征圖的DDR地址區(qū)域。

④ 通過給卷積網(wǎng)絡(luò)加速核配置當前卷積層層數(shù)、卷積并行度、是否有池化層等參數(shù),卷積網(wǎng)絡(luò)加速核就會在對應(yīng)卷積層輸入特征圖DDR地址區(qū)域和權(quán)重參數(shù)的DDR地址區(qū)域讀取數(shù)據(jù),并將卷積層輸出特征圖寫入對應(yīng)DDR地址區(qū)域。

⑤ 重復(fù)步驟④直到結(jié)束卷積網(wǎng)絡(luò)前向推理計算。

⑥ 重復(fù)步驟③、步驟④、步驟⑤直到3個尺度待搜索區(qū)域計算完前向推理計算,得到3張17×17響應(yīng)得分圖。

⑦ 將響應(yīng)得分圖乘以漢明窗,比較出最大的響應(yīng)值,最大響應(yīng)值對應(yīng)的尺度就是當前幀尺度信息,將當前幀尺度的17×17的得分圖插值回原來的255×255并除以尺度值,最大響應(yīng)值對應(yīng)的位置就是當前幀位置信息。

⑧ 將尺度信息和位置信息映射回原圖,標出目標框后,將圖像輸出到HDMI。

⑨ 回到步驟②。

3 實驗結(jié)果

3.1 量化結(jié)果分析

實驗在CPU配置為i5 3470 @ 3.20 GHz 4核、開發(fā)環(huán)境為Visual Studio 2019的條件下,使用C++語言實現(xiàn)浮點數(shù)計算的Siamese-FC網(wǎng)絡(luò),以及使用量化方案后以short類型計算的Siamese-FC網(wǎng)絡(luò)。

本實驗采用目標跟蹤標準數(shù)據(jù)集[15],該數(shù)據(jù)集為目標跟蹤中背景復(fù)雜場景、光照變化場景、快速運動場景、尺度變化場景等的測試序列圖。選取該數(shù)據(jù)集中的4個測試序列,其圖像大小和數(shù)據(jù)集特點如表2所示。

表2 測試圖像序列

分別將4組測試序列的量化前后跟蹤結(jié)果以坐標信息與尺度信息的形式存儲下來,計算各組測試序列圖量化前后的平均交并比(Intersection-Over Union,IOU),實驗結(jié)果如表3所示。

在上述4個數(shù)據(jù)集中,量化前后的平均交并比都在95%以上,其中對量化算法影響最大的是運動模糊,但文中量化算法的平均交并比為95.43%,平均精度損失不超過4.57%,本文的量化方法在減少量化后算法計算量的同時,保證了量化后算法的計算精度,后續(xù)算法部署到FPGA上的前向推理計算精度與在PC上的浮點數(shù)前向推理計算精度達到相近水平。

表3 各序列圖量化前后平均交并比

3.2 卷積加速器實現(xiàn)結(jié)果

在HLS開發(fā)環(huán)境中實現(xiàn)加速器設(shè)計時,經(jīng)編譯后可得到綜合報告,報告中會提供一個估計的資源消耗和各個模塊估計的最大和最小延時等信息,可以根據(jù)估計的資源消耗以及延時的信息,制定下一次優(yōu)化的方向,充分利用FPGA芯片的片上資源。HLS工程仿真后,得到卷積加速核的資源消耗估計如表4所示。

表4 卷積加速器資源消耗估計

由表4可知,消耗占比最高的是LUT資源,其次就是BRAM_18K資源,資源占用率最少的是FF。FF占比最少但是BRAM_18K占比較高,如果要提高數(shù)據(jù)帶寬,需要緩存更多數(shù)據(jù)進片上存儲時,會占用更多的BRAM_18K資源,所以這種情況下,可以考慮通過HLS指令配置一些RAM由觸發(fā)器資源組成,而不占用BRAM_18K資源。DSP48E資源占比較少,說明卷積加速核的并行度還可以提高。

在綜合報告中還會給出估計最大延時,表5中給出了Siamese-FC網(wǎng)絡(luò)實現(xiàn)的卷積加速核各層最大延時。

表5 卷積層各層最大延時

由表5可知,綜合報告估計的最高延時總和為57883057個周期,按照設(shè)置的時鐘200 MHz來計算,可以得到卷積加速核進行整個Siamese-FC網(wǎng)絡(luò)前向推理需要的時間為0.289 s。

3.3 板級驗證及性能分析

板級驗證系統(tǒng)結(jié)構(gòu)如圖6所示。其中圖6(a)為板上FPGA沒有燒寫任何程序時的功耗情況,此時的功耗為板子的靜態(tài)功耗,在12 V電壓的供電下,電流為0.511 A;圖6 (b)為開發(fā)板運行跟蹤算法時的運行功耗,增加功率包括了DDR功率與FPGA功率,在12 V電壓的供電下,電流為0.878 A。

圖6 開發(fā)板工作的靜態(tài)功耗以及運行功耗

表6中列舉了CPU與FPGA運行一次孿生卷積網(wǎng)絡(luò)前向推理計算所需要的時間,表7列舉了CPU與FPGA運行時功耗。

表6 不同器件測試速度對比

表7 不同器件功耗對比

結(jié)合表6~表7可得出,本文方法在耗時為i5 3470 CPU運行耗時16.15%的前提下,整塊開發(fā)板的運行功耗僅為i5 3470 CPU的13.7%,能夠達到本文的設(shè)計目的。

4 結(jié)束語

本文從復(fù)雜背景的目標跟蹤問題出發(fā),討論了卷積網(wǎng)絡(luò)算法中以全卷積網(wǎng)絡(luò)Siamese-FC進行目標跟蹤的有效方案,并針對性地設(shè)計了卷積網(wǎng)絡(luò)計算加速器。對于Siamese-FC,板級驗證在誤差不超過0.6885±1.4795個像素的前提下,實現(xiàn)了CPU運行耗時16.15%的加速效果,功耗僅為CPU的13.7%,表明本文的設(shè)計在智能視頻監(jiān)控設(shè)備、無人機跟蹤等嵌入式應(yīng)用場景有較高的使用價值。

猜你喜歡
功耗嵌入式尺度
財產(chǎn)的五大尺度和五重應(yīng)對
搭建基于Qt的嵌入式開發(fā)平臺
揭開GPU功耗的面紗
個人電腦(2016年12期)2017-02-13 15:24:40
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
數(shù)字電路功耗的分析及優(yōu)化
電子制作(2016年19期)2016-08-24 07:49:54
宇宙的尺度
太空探索(2016年5期)2016-07-12 15:17:55
“功耗”說了算 MCU Cortex-M系列占優(yōu)
電子世界(2015年22期)2015-12-29 02:49:44
IGBT模型優(yōu)化及其在Buck變換器中的功耗分析
9
Altera加入嵌入式視覺聯(lián)盟
盐津县| 确山县| 雷波县| 清丰县| 宁晋县| 兴安县| 长子县| 桂阳县| 开化县| 宜都市| 麻栗坡县| 平遥县| 襄城县| 锦屏县| 育儿| 三河市| 河北省| 松桃| 三台县| 江油市| 从化市| 昌乐县| 鄂托克前旗| 临潭县| 宁乡县| 巴彦淖尔市| 准格尔旗| 错那县| 青川县| 交口县| 合川市| 喀喇| 平顶山市| 镇安县| 日照市| 伊金霍洛旗| 武隆县| 城口县| 吴旗县| 比如县| 始兴县|