李景琳,姜晶菲,竇 勇,許金偉,溫 冬
(國防科技大學計算機學院,湖南 長沙 410073)
21世紀,目標檢測算法[1 - 5]作為計算機視覺領域的經(jīng)典應用獲得飛速發(fā)展,走向成熟。然而,大規(guī)模的存儲和浮點運算限制了目標檢測算法的廣泛應用,如何將目標檢測算法部署到功率、資源受限的實時邊緣化檢測系統(tǒng)中成為新的研究熱點。通常,目標檢測算法分為前處理、特征提取和后處理3個部分,其中后處理主要使用非極大值抑制算法NMS(Non-Maximum Suppression)去除卷積神經(jīng)網(wǎng)絡輸出的冗余候選框,找到最佳的目標位置,提高檢測的準確率。文獻[6]的研究表明NMS在基于RPN+Fast-R-CNN網(wǎng)絡的目標檢測應用計算任務中占22%左右計算延遲,因此對NMS的量化與加速也很值得研究。
文獻[7]中給出了最常用的Hard-NMS方法,將所有的候選框按得分值從高到低排序,選取得分值最高的候選框(本文稱為靶候選框),刪除所有與靶候選框的重疊率超出閾值(本文設為Nt)的候選框,對未刪除的候選框選取得分值最高的繼續(xù)此操作。Hard-NMS是一種高復雜度的貪心算法,反復迭代計算候選框的重疊率給算法帶來了巨大的延時。不僅如此,Hard-NMS是一種基于唯一固定閾值的方法,當圖像中2個目標物體的重疊率大于Nt時,Hard-NMS會直接刪除得分值較低的目標物體的候選框,導致檢測精度受損。
針對這個問題,文獻[8,9]提出了一些改進方法,其中文獻[9]提出的Soft-NMS最為簡單,與Hard-NMS中直接刪除大于預定義閾值候選框的方法不同,Soft-NMS使用一個衰減函數(shù)逐步減小候選框得分值。文獻[9]認為Soft-NMS是非極大值抑制算法的廣義版本,Hard-NMS是使用不連續(xù)的二值加權函數(shù)作為衰減函數(shù)的特例,其衰減函數(shù)如式(1)所示,當然使用線性函數(shù)和連續(xù)的高斯函數(shù)效果更佳,其衰減函數(shù)分別如式(2)和式(3)所示:
(1)
(2)
(3)
其中,M表示靶候選框;bi表示第i個候選框,得分值為si;iou(M,bi)為bi與靶候選框的面積交集與面積并集的比例,表示bi與靶候選框之間的重疊率;線性函數(shù)使用(1-iou(M,bi))作為懲罰系數(shù);高斯函數(shù)為連續(xù)函數(shù)沒有預定義閾值Nt,但存在預定義參數(shù)σ;D為靶候選框的集合,表示后處理階段的輸出候選框結果。
實驗表明,在標準數(shù)據(jù)集PASCAL VOC2007(較R-FCN和Faster-RCNN提升1.7%)和MS-COCO(較R-FCN提升1.3%,較Faster-RCNN提升1.1%)上使用Soft-NMS檢測精度均有提升。但是,Soft-NMS仍然是一種復雜度較高的貪心算法,逐步減小候選框得分值不僅增加了大量的浮點計算,而且還使得Soft-NMS無法像Hard-NMS一樣用提前排序的方法代替迭代選取最大值的方法。Soft-NMS每輪遍歷之后必須重新調整得分值的排列順序,使得算法的并行難度大大增加。
僅在CPU平臺上實現(xiàn)Soft-NMS計算延遲過高,不能滿足目標檢測任務對性能的要求,因此本文嘗試使用異構計算來加速算法,提高吞吐率。Soft-NMS頻繁修改得分值的特點使得GPU平臺的異構加速方法在付出大量功耗的代價下卻無法發(fā)揮其高度并行的優(yōu)勢。為了實現(xiàn)性能、功耗和成本之間的平衡,本文使用高性能、低成本、低功耗的FPGA平臺實現(xiàn)一種低延時、高效率的Soft-NMS專用加速器。
本文提出一種基于Soft-NMS的加速器體系結構,設計了一種基于細粒度流水線的重疊率計算單元PE(Processing Element),并利用對數(shù)函數(shù)將計算單元中所有的浮點乘除運算轉換為定點加減運算;在加速器中加入一個最值模塊,設計了一種基于粗粒度并行的2級并行結構:包括計算單元組的循環(huán)級并行和最值模塊與計算單元組之間的模塊級并行。根據(jù)最值模塊與計算單元組之間計算速度不匹配的特性,設計了一種預取最值的方法,將可能作為下一輪遍歷靶候選框的候選框預先取入緩沖隊列,節(jié)約排序時間。Soft-NMS加速器充分利用細粒度流水和粗粒度并行組成2級優(yōu)化結構提升算法的吞吐率,在KU-115 FPGA開發(fā)板上對COCO_2017數(shù)據(jù)集進行評估,與CPU實現(xiàn)的Soft-NMS相比,該體系結構實現(xiàn)了36倍的性能加速比。
Figure 1 Two Hard-NMS acceleration methods圖1 2種Hard-NMS加速方法
在目標檢測任務中,卷積網(wǎng)絡輸出的候選框得分值是亂序的,上述2種方案都是用提前排序候選框的方法代替每輪迭代選取最大得分值候選框的方法,而排序操作的計算復雜度為O(N2),計算延時是不可省略的。本文分析Soft-NMS具有頻繁修改得分值的特點無法提前排序,于是加入一個最值模塊在每輪遍歷后選取得分值最大的靶候選框;為了節(jié)約排序時間,提出最值模塊與計算單元組并行計算的策略。但是,最值模塊比計算單元組的計算速度快,并且最值模塊與計算單元組之間存在數(shù)據(jù)相關,即最值模塊選出的靶候選框可能被計算單元組視為冗余候選框刪除,于是本文設計一種預取最值的方法:每輪遍歷中,最值模塊將前k大候選框預先取入緩沖隊列中,每輪遍歷結束后,從緩沖隊列中直接獲得下一輪遍歷的靶候選框,節(jié)約選取靶候選框的時間。如果下一輪的靶候選框存在緩沖隊列中則稱為命中靶候選框,命中靶候選框的概率稱為命中率。當命中率較高時,排序時間幾乎可以完全省略。
為了節(jié)約中間數(shù)據(jù)的存儲空間,與文獻[11]中的方法類似,本文也使用基于位置的位表J來存儲候選框的狀態(tài)信息。不同的是位表J需要使用2位狀態(tài)位表示“0”“1”“2”3種狀態(tài)。候選框與位表之間是一對一映射,該位置寫入“2”表示該候選框得分值低于閾值被刪除或者該候選框被選為靶候選框被輸出。對于被標記為“2”的候選框后續(xù)將不再進行任何操作。該位置寫入“1”表示在當前輪遍歷中該候選框與靶候選框的重疊率大于Nt,該候選框的得分值經(jīng)衰減函數(shù)修改,但修改后的得分值大于閾值θ。對于被標記為“1”的候選框下一輪遍歷開始之前需要將狀態(tài)位的值從“1”修改為“0”。該位置寫入“0”表示該候選框與靶候選框的重疊率小于Nt,不屬于冗余候選框,不進行任何處理或者表示位表為初始化狀態(tài)候選框,還未被處理。
如圖2所示本文方法的步驟為:第1步,位表J所有的元素都初始為“0”,使用最值模塊比較出得分值最大的靶候選框。第2步,計算靶候選框與其它候選框的重疊率(本文將此過程稱為一輪遍歷),同時最值模塊繼續(xù)比較出得分值前k大的候選框序列作為下一輪遍歷可能的靶候選框預先存入緩沖隊列中。以候選框dy為例,計算重疊率的方法為:首先判斷,如果靶候選框與dy的重疊率高于閾值Nt,則候選框dy的得分值將被衰減函數(shù)修改,并且在位表中的狀態(tài)位從“0”修改為“1”,如第1輪遍歷中b3的得分值被修改;如果重疊率低于閾值Nt,則dy的得分值和在位表中的狀態(tài)都保持不變。
接著判斷,修改后dy的得分值是否小于閾值θ,如果是則候選框dy的得分值修改為零,并且在位表中的狀態(tài)位修改為“2”,如第2輪遍歷中b6所示,否則dy的得分值和狀態(tài)位都保持不變,如第1輪遍歷中b6所示。靶候選框與自身的重疊率為1,衰減函數(shù)必定將其得分值修改為0,小于閾值θ,因此它在位表中的狀態(tài)位修改為“2”,如第1輪遍歷中b1所示。第3步,當一輪遍歷結束后,如果從前k大的候選框緩沖隊列中命中靶候選框,即找到位表J的狀態(tài)位為“0”的得分值最大的候選框則可以直接開始下一輪遍歷,否則需要重新調用最值模塊比較出靶候選框。第4步,將位表J中所有狀態(tài)位為“1”的值修改為“0”,繼續(xù)執(zhí)行第2步。重復這些步驟,直到位表J中所有的狀態(tài)位全為“2”時停止。
Figure 2 Soft-NMS acceleration method圖2 Soft-NMS加速方法
基于Soft-NMS的候選框去冗余加速器由DDR4、控制器、最值模塊MAX、位表J、計算單元組(Computation Unit)、片上存儲BRAM(Block RAM)和靶向模塊Target組成,加速器整體結構如圖3所示。控制器負責接收來自主機的指令,控制加速器的狀態(tài);最值模塊MAX負責選擇出N個候選框中得分值最大的候選框;位表J用于記錄N個候選框狀態(tài)信息;計算單元組由S個PE組成,負責計算靶候選框與N個候選框的重疊率并修改候選框的得分值和位表J的狀態(tài)信息;片上存儲BRAM由RAMA、RAMB和RAMC組成,用于存儲輸入數(shù)據(jù)和中間結果;靶向模塊Target負責計算每輪遍歷的靶候選框。
Figure 3 Architecture of hardware accelerator based on Soft-NMS圖3 基于Soft-NMS算法的硬件加速器整體架構
加速器啟動時,片上存儲BRAM、位表J被初始化。其中位表J被初始化為全“0”,RAMA接收來自DDR4的N個候選框的坐標數(shù)據(jù)并將其發(fā)送到計算單元組,RAMB接收來自DDR4的N個候選框得分值數(shù)據(jù)并將其發(fā)送到計算單元組和RAMC。接著在每一輪遍歷中,最值模塊、計算單元組和靶向模塊3個模塊同時并行工作,去除冗余候選框。RAMC接收RAMB的N個候選框的得分值數(shù)據(jù)并將其發(fā)送到最值模塊,最值模塊接收RAMC的N個候選框的得分值數(shù)據(jù),計算出前k大得分值,并將其發(fā)送到Target;Target計算出得分值最大的靶候選框后,從RAMA中獲取靶候選框的坐標數(shù)據(jù),將靶候選框得分值數(shù)據(jù)和坐標數(shù)據(jù)發(fā)送到計算單元組和主機;計算單元組分批(每批S個候選框)接收RAMA中S個候選框的坐標數(shù)據(jù)、RAMB的S個候選框的得分值數(shù)據(jù)、位表J中S個候選框的狀態(tài)信息和來自Target的靶候選框坐標數(shù)據(jù),將計算得到的候選框得分值發(fā)送到RAMB、狀態(tài)信息值發(fā)送到位表J中。當N個候選框的重疊率計算完成時,一輪遍歷結束。每輪遍歷結束后位表J中所有狀態(tài)位為“1”的值修改為“0”。位表J中所有的狀態(tài)位全為“2”時加速器停止,Soft-NMS就完成了。主機使用PCIe傳輸通道發(fā)送N個候選框的坐標數(shù)據(jù)和得分值數(shù)據(jù)到DDR4,接收Target的靶候選框的坐標數(shù)據(jù)和得分值數(shù)據(jù)并將其發(fā)送到主存。
本文針對Soft-NMS的計算特性提出一種細粒度流水和粗粒度并行結合的2級優(yōu)化結構。為了提高資源利用率,減小實現(xiàn)面積和降低功耗,本文設計一種基于細粒度流水的重疊率計算單元PE;為了充分開發(fā)Soft-NMS的并行性,本文設計了一種基于粗粒度并行的2級并行結構;為了解決2級并行結構存在的計算速度不匹配和數(shù)據(jù)相關等問題,本文設計一種預取最值方案。
無乘除法的PE:PE是整個加速器的核心,PE的計算結構對加速器的功耗和資源量起決定性作用。Soft-NMS計算候選框之間的重疊率時,反復進行浮點乘法和浮點除法會消耗大量的存儲空間和運算資源,因此本文使用對數(shù)函數(shù)優(yōu)化計算,設計了一個基于全流水結構無乘除法的計算單元PE。PE由“對數(shù)映射”“計算重疊率”“指數(shù)映射”“寫回”4段流水棧組成,其結構如圖4所示,其計算方法如算法1步驟4所示。
Figure 4 PE based on four-level flow structure圖4 基于4級流水結構的PE
本文以候選框b1和候選框b2為例介紹PE計算重疊率的對數(shù)優(yōu)化方法。候選框b1的坐標表示為(x1,y1)和(x2,y2),得分值為s1,候選框b2的坐標表示為(p1,q1)和(p2,q2),得分值為s2,且s1>s2。運算符A(·)定義為區(qū)域面積,A(b1∩b2)表示候選框b1與候選框b2重疊部分面積。PE更新候選框得分值時,其衰減函數(shù)如式(2)所示。由iou(b1,b2)的定義可知,當候選框b1、b2滿足式(4)時,可認為b1、b2的重疊率過高,需要更新候選框b2的得分值。式(4)中有3個計算矩陣面積的乘法運算和1個除法運算,為了減少乘除法運算量,本文利用式(5)對式(4)的左邊進行縮放,結果如式(6)所示,繼續(xù)對式(6)不等式兩邊同時進行對數(shù)運算,結果如式(7)所示。為了方便表示,我們用lnOR(Overlap Rate)表示式(7)左邊ln (A(b1∩b2))-ln(max(A(b1),A(b2)))的運算結果,在lnOR中代入候選框b1、b2的長和寬h1=x2-x1,w1=y2-y1,h2=p2-p1,w2=q2-q1和b1、b2的重疊部分A(b1∩b2)的長和寬H=min(x2,p2)-max(x1,p1)和W=min(y2,q2)-max(y1,q1)后,如式(8)所示,lnOR中所有乘除運算將全部轉換為對數(shù)加減運算。
A(b1∩b2)/(A(b1)+A(b2)-A(b1∩b2))≥Nt
(4)
max(A(b1),A(b2))≤
(A(b1)+A(b2)-A(b1∩b2))
(5)
A(b1∩b2)/max(A(b1),A(b2))≥Nt
(6)
ln(A(b1∩b2))-
ln(max(A(b1),A(b2)))≥ln(Nt)
(7)
lnOR=(lnH+lnW)-
max(lnh1+lnw1,lnh2+lnw2)
(8)
文獻[9]提出了Soft-NMS的基本原理,與靶候選框重疊率越高的候選框衰減率越高,因為它們有更高的可能性是假陽性,即候選框的衰減率與重疊率之間應該滿足正相關關系。為了簡化計算,節(jié)約資源,減少計算延遲,本文提出用查找表來實現(xiàn)重疊率與衰減率之間的正相關對數(shù)映射。
查找表實現(xiàn)正相關對數(shù)映射的方法為:首先,如描述第1級流水?!皩?shù)映射”方法的步驟4.1所示,用查找表將候選框的長、寬等數(shù)據(jù)映射到對數(shù)空間(本文稱此查找表為ln表);然后如描述第2級流水?!坝嬎阒丿B率”方法的步驟4.2所示,使用加減運算得到用對數(shù)表示的候選框重疊率lnOR;接著,如描述第3級流水棧“指數(shù)映射”方法的步驟4.3所示,用另一個查找表將lnOR映射到衰減率f(OR)上(本文稱此查找表為E表),將衰減率與得分值相乘得到新的得分值;最后,如描述的第4級流水?!皩懟亍狈椒ǖ牟襟E4.4所示,PE將計算得到的新得分值發(fā)送到RAMB、新狀態(tài)信息值發(fā)送到位表J。
可以發(fā)現(xiàn),算法1步驟4.3中得分值與衰減率相乘仍然是一個乘法運算,于是本文將這個乘法運算轉化為移位加法。本文實驗部分將證明使用3位無符號定點小數(shù)表示衰減率不會影響算法的檢測精度,其數(shù)據(jù)表示范圍為0~(1-2-3),因此可以將得分值與衰減率相乘轉化為得分值的3次移位加法。
為了減小冗余存儲,本文將使用64×3 bit的E表,因此需要將16位的lnOR右移10位作為E表的索引鍵,E表中的元素為3位無符號定點小數(shù)表示的衰減率;在圖像像素不超過1024×1024的情況下本文選擇使用1024×16 bit的ln表。由此可知,本文所使用的查找表方法占用的資源很少,適合在FPGA等硬件平臺上實現(xiàn)。
算法1基于Soft-NMS的加速算法
輸入:B={b1,…,bN},Score={s1,…,sN},J={j1,…,jN},Nt,θ。
輸出:D={b1,…,bK}。
步驟1初始化集合D為空,初始化表J全為“0”。
步驟2表J不全為2時執(zhí)行步驟3,否則執(zhí)行步驟5。
步驟3選取集合B中得分值最大的候選框為靶候選框,并將該候選框加入集合D中并從集合B中刪除,將表J中所有狀態(tài)位的值“1”修改為“0”。
步驟4計算靶候選框與集合B中每一個候選框的重疊率:
步驟4.1(對數(shù)映射) 計算出候選框b1與候選框b2的長和寬h1=x2-x1,w1=y2-y1,h2=p2-p1,w2=q2-q1;計算重疊部分的長和寬H=min(x2,p2)-max(x1,p2)和W=min(y2,q2)-max(y1,q1);查找ln表得到lnh1、lnw1、lnh2、lnw2;計算出較大的候選框面積的對數(shù)lnArea_max= max(lnh1+lnw1,lnh2+lnw2)。
步驟4.2(計算重疊率) 查找ln表得到lnH、lnW;計算候選框b1與候選框b2的重疊部分面積的對數(shù)lnA(b1∩b2)=lnH+lnW;計算用對數(shù)表示的候選框重疊率lnOR=lnA(b1∩b2)-lnArea_max。
步驟4.3(指數(shù)映射) 判斷當lnOR>lnNt時,以lnOR?10為索引鍵查E表得到3 bit的f(OR),通過3次移位加法更新b2的得分值s2_new,并將J2從“0”修改為“1”;否則s2_new=s2,J2不變。
步驟4.4(寫回) 判斷s_2_new<θ時,更新集合Score中b2的得分值為0,修改J2為“2”,否則集合Score中b2的得分值不變,J2不變;當靶候選框與集合B中每一個候選框的重疊率都計算完成后返回步驟2。
步驟5算法結束。
2級并行結構:為了提高加速器的吞吐率,本文根據(jù)Soft-NMS的雙循環(huán)結構,設計了一種2級并行硬件結構。此結構包括:計算單元組的循環(huán)級并行和最值模塊與計算單元組之間模塊級并行。計算單元組由S個PE組成,為了開發(fā)計算單元組的循環(huán)級并行性,在每輪遍歷中,分批(每批S個)計算靶候選框與其他候選框的重疊率,修改候選框的得分值和位表J的狀態(tài)信息,減少重疊率的計算延遲。
根據(jù)Soft-NMS頻繁修改得分值的特點,本文在加速器中加入一個最值模塊,用于選取每輪遍歷后得分值最大的靶候選框。為了提高并行度,節(jié)約排序時間,在模塊級別上,本文設計計算單元組與最值模塊并行工作。在每輪遍歷中,計算單元分批求取候選框重疊率的同時最值模塊反復比較出N個候選框的前k大得分值候選框,為下一輪遍歷提供靶候選框,優(yōu)化比較最值的時間。
預取最值方法的硬件實現(xiàn):最值模塊與計算單元組并行工作時,存在計算速度不匹配和數(shù)據(jù)相關等問題,于是本文設計了一種預取最值方案,在加速器中加入一個靶向模塊。在每輪遍歷結束后,靶向模塊從前k大得分值候選框中選取靶候選框,直接開始下一輪遍歷,節(jié)約了選取最值的時間。
本文分析最值模塊選取一個最大值的時間較短,一輪遍歷的時間可以重復進行k次最值選擇的操作,得到N個候選框的前k大得分值序列。其方法為:最值模塊每次找到最大值候選框后都將其在RAMC中的得分值數(shù)據(jù)修改為 0,然后重新選取最大值,重復進行k次最值選擇操作后,將得到N個候選框的前k大得分值序列,并存入Target的緩沖隊列中。一輪遍歷結束后,如果Target能從前k大得分值序列中找到在位表J的狀態(tài)位為“0”的得分值最大候選框作為靶候選框,則視為命中靶候選框,否則視為不命中??梢园l(fā)現(xiàn),當命中率較高時,排序時間幾乎可以完全省略。
假設最值模塊選取一次最大值的時間為tm,計算單元組計算1次候選框重疊率的時間為ts。在一輪遍歷中,最值模塊與計算單元組并行工作,最值模塊選取N個候選框的前k大得分值的時間為k×tm,并行度為S的計算單元組完成N個候選框重疊率計算的時間為N×ts/S,則最值模塊預選候選框數(shù)量k與計算單元組的并行度S滿足公式k×tm=N×ts/S。由此可知在tm、N、ts保持不變的條件下,計算單元組的并行度S與k呈反比,并行度S越小,k越大,預取最值方法的命中率越高;但是并行度S較小時,加速器吞吐率也較小,因此合適的S值才能充分發(fā)揮Soft-NMS加速器的計算優(yōu)勢。
本文在XILINX KU-115 FPGA開發(fā)板及 XILINX ISE 18.3 設計環(huán)境下實現(xiàn)了該加速器。所有模塊均用 Verilog 編碼實現(xiàn),并在 XILINX ISE 18.3 環(huán)境下進行綜合、布線和實現(xiàn)。為了探索最合適的計算單元組個數(shù)S的值,本文從COCO_2017 val數(shù)據(jù)集中選取了50幅圖像,包含992個候選框進行實驗,觀察加速器吞吐率在不同PE數(shù)目下的變化情況(每個候選框的坐標信息用8 B數(shù)據(jù)表示)。如圖5所示,實驗結果表明,成倍增加PE的數(shù)量并不能成倍地提高加速器的吞吐率。這是因為PE數(shù)目過高導致計算單元組分批的數(shù)量減少,不能充分發(fā)揮PE的流水線計算優(yōu)勢。為了充分發(fā)揮PE流水線的計算優(yōu)勢,提高預取最值算法的命中率,實現(xiàn)性能與資源量的平衡,本文使用128個PE組成計算單元組實現(xiàn)候選框去冗余加速器,此時加速的工作頻率是100 MHz。
Figure 5 Relationship between throuthput and number of PE in the accelerator圖5 加速器中吞吐率與PE數(shù)目的關系
基于Soft-NMS的候選框去冗余加速器的綜合數(shù)據(jù)細節(jié)如表1所示,加速器沒有占用DSP資源,但由于FPGA片上邏輯的并行度在提高的過程中會消耗大量的BRAM,128個PE并行工作使得候選框去冗余加速器占用較多的BRAM資源。總體上,加速器資源占用較少。
Table 1 Resource occupancy of redundancy-reduced candidate box accelerator
為了評估加速器的性能,本文用R-FCN模型在COCO_2017 val數(shù)據(jù)集上分別測試了CPU實現(xiàn)的Hard-NMS、CPU實現(xiàn)的線性衰減函數(shù)Soft-NMS和候選框去冗余加速器的性能。如表2所示,實驗結果表明,候選框去冗余加速器與基于線性衰減函數(shù)的Soft-NMS相比幾乎不會有精度損失,表明了本文提出的體系結構的正確性。
Table 2 Accuracy of R-FCN model on coco dataset under different methods
為了評估候選框去冗余加速器的加速性能,本文選用Intel(R) Core(TM) i7-4790k CPU @4.00 GHz、NVIDIA GeForce GTX 1080 Ti、TSMC 28 nm作為對比平臺,實驗結果如表3所示,候選框去冗余加速器處理992個候選框的延時為168.95 μs,吞吐率為47.0 MB/s,比CPU平臺實現(xiàn)的Hard-NMS提高了32倍、比CPU平臺實現(xiàn)的Soft-NMS提高了36倍、比GPU平臺實現(xiàn)的Hard-NMS提高了3.9倍,但本文的硬件功耗僅為6.107 W,性能功耗比為CPU實現(xiàn)Hard-NMS的234倍、為CPU實現(xiàn)Soft-NMS的264倍、為GPU實現(xiàn)Hard-NMS的39倍。文獻[11]根據(jù)Hard-NMS在TSMC 28 nm平臺上使用1 024個計算單元CALU時,在100 MHz的頻率下的計算延時為51.13 μs,吞吐率為149.21 MB/s,本文基于Soft-NMS在FPGA平臺上實現(xiàn)1 024個PE,在100 MHz頻率下的吞吐率為108.83 MB/s。雖然本文方法的吞吐率稍稍低于文獻[11]的,但準確率較文獻[11]的提升了4%左右,并且文獻[11]沒有考慮對亂序候選框排序的時間。因此,本文提出的加速器體系結構是解決候選框去冗余問題的有效方法。
Table 3 Performance comparison of NMS implemented on different platforms
本文提出了一種高效加速Soft-NMS的體系結構,利用對數(shù)函數(shù)優(yōu)化復雜的浮點計算,采用細粒度流水和粗粒度模塊級并行組成2級優(yōu)化結構進一步提升算法的吞吐率。實驗結果表明,與以前的方法相比,本文方法準確率更高、效率更高、資源消耗更少。