《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的深度學(xué)習(xí)目標檢測系統(tǒng)的設(shè)計與實現(xiàn)
基于FPGA的深度學(xué)習(xí)目標檢測系統(tǒng)的設(shè)計與實現(xiàn)
2019年電子技術(shù)應(yīng)用第8期
陳 辰1,嚴 偉2,夏 珺1,柴志雷1
1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫214122;2.北京大學(xué) 軟件與微電子學(xué)院,北京102600
摘要: 針對當(dāng)前深度學(xué)習(xí)目標檢測算法計算復(fù)雜度高和內(nèi)存需求大等問題,設(shè)計并實現(xiàn)了一種基于FPGA的深度學(xué)習(xí)目標檢測系統(tǒng)。設(shè)計對應(yīng)YOLOv2-Tiny目標檢測算法的硬件加速器,對加速器各模塊的處理時延建模,給出卷積計算模塊的詳細設(shè)計。實驗結(jié)果表明,與CPU相比,CPU+FPGA的異構(gòu)系統(tǒng)是雙核ARM-A9能效的67.5倍,Xeon的94.6倍;速度是雙核ARM-A9的84.4倍,Xeon的5.5倍左右。并且,當(dāng)前設(shè)計在性能上超過之前的工作。
中圖分類號: TP391
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190318
中文引用格式: 陳辰,嚴偉,夏珺,等. 基于FPGA的深度學(xué)習(xí)目標檢測系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2019,45(8):40-43,47.
英文引用格式: Chen Chen,Yan Wei,Xia Jun,et al. Design and implementation of FPGA-based deep learning object detection system[J]. Application of Electronic Technique,2019,45(8):40-43,47.
Design and implementation of FPGA-based deep learning object detection system
Chen Chen1,Yan Wei2,Xia Jun1,Chai Zhilei1
1.School of Internet of Things Engineering,Jiangnan University,Wuxi 214122,China; 2.School of Software & Microelectronics,Peking University,Beijing 102600,China
Abstract: Aiming at the problems of higher computational complexity and larger memory requirements of current object detection algorithm, we designed and implemented an FPGA-based deep learning object detection system. We also designed the hardware accelerator corresponding to the YOLOv2-Tiny object detection algorithm, modeled the processing delay of each accelerator module, and describe the design of the convolution module. The experimental results show that it is 5.5x and 94.6x of performance and energy gains respectively when comparing with the software Darknet on an 8-core Xeon server, and 84.8x and 67.5x over the software version on the dual-core ARM cortex-A9 on Zynq. Also, the current design outperforms the previous work in performance.
Key words : deep learning;object detection;FPGA;hardware accelerator

0 引言

    近年來,以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,DNN)為代表的深度學(xué)習(xí)算法在許多計算機視覺任務(wù)上取得了巨大突破,如圖像分類、目標檢測、畫質(zhì)增強等[1-2]。然而,隨著識別率的提高,深度學(xué)習(xí)算法的計算復(fù)雜度和內(nèi)存需求也急劇增加,當(dāng)前的通用處理器無法滿足其計算需求。主流的解決方法是采用圖形處理器(Graphics Processing Unit,GPU)、專用集成電路(Application Specific Integrated Circuit,ASIC)芯片或現(xiàn)場可編程門陣列(Field-Programmable Gate Array,FPGA)來提升計算性能。GPU采用單指令流多數(shù)據(jù)流架構(gòu),想要充分發(fā)揮計算性能,需要大批量數(shù)據(jù),并且由于高并行度導(dǎo)致的高功耗,很難應(yīng)用于對功耗有嚴格限制的場合[3]。ASIC對于具體應(yīng)用可以獲得最佳性能和能效,但是研發(fā)周期長,需要對市場有長久的預(yù)見性。FPGA作為一種高性能、低功耗的可編程芯片,可以使用硬件描述語言來設(shè)計數(shù)字電路,以形成對應(yīng)算法的加速電路結(jié)構(gòu)。與GPU相比,F(xiàn)PGA低功耗、低延時,適用于小批量流式應(yīng)用[4]。與ASIC相比,F(xiàn)PGA可以通過配置重新改變硬件結(jié)構(gòu),對具體應(yīng)用定制硬件,適用于深度學(xué)習(xí)這種日新月異、不斷改變的場景。

    本文首先介紹深度學(xué)習(xí)中的YOLOv2-Tiny目標檢測算法[5],然后設(shè)計對應(yīng)的硬件加速器,并且就加速器中各模塊的處理時延進行簡單建模,給出卷積模塊的詳細設(shè)計,最后,在Xilinx公司的Zedboard開發(fā)板上進行評估。

1 YOLOv2-Tiny模型簡介

    YOLOv2-Tiny目標檢測算法由以下3步組成:

    (1)對任意分辨率的RGB圖像,將各像素除以255轉(zhuǎn)化到[0,1]區(qū)間,按原圖長寬比縮放至416×416,不足處填充0.5。

    (2)將步驟(1)得到的416×416×3大小的數(shù)組輸入YOLOv2-Tiny網(wǎng)絡(luò)檢測,檢測后輸出13×13×425大小的數(shù)組。對于13×13×425數(shù)組的理解:將416×416的圖像劃分為13×13的網(wǎng)格。針對每個網(wǎng)格,預(yù)測5個邊框,每個邊框包含85維特征(共5×85=425維)。85維特征由3部分組成:對應(yīng)邊框中包含的80類物體的概率(80維),邊框中心的相對偏移以及相對長寬比的預(yù)測(4維),邊框是否包含物體的可信度(1維)。

    (3)處理步驟(2)中得到的13×13×425大小的數(shù)組,得到邊框的中心和長寬。根據(jù)各邊框覆蓋度、可信度和物體的預(yù)測概率等,對13×13×5個邊框進行處理,得到最有可能包含某物體的邊框。根據(jù)原圖的長寬比,將得到的邊框調(diào)整到原圖尺度,即得到物體的位置與類別信息。

    YOLOv2-Tiny由16層組成,涉及3種層:卷積層(9層)、最大池化層(6層)以及最后的檢測層(最后1層)。其中,卷積層起到特征提取的作用,池化層用于抽樣和縮小特征圖規(guī)模。將步驟(1)稱為圖像的預(yù)處理,步驟(3)稱為圖像的后處理(后處理包含檢測層的處理)。

1.1 卷積層

    對輸入特征圖以對應(yīng)的卷積核進行卷積來實現(xiàn)特征提取,偽代碼如下:

rgzn2-1.1-x1.gif

其中(Noy,Nox)、Nof、Nif、(Nky,Nkx)、S分別代表輸出特征圖、輸出特征圖數(shù)、輸入特征圖數(shù)、卷積核大小和步長。pixelL(m,r,c)代表輸出特征圖m中r行c列的像素。

1.2 池化層

    對輸入特征圖降采樣,縮小特征圖的規(guī)模,一般跟在卷積層后。YOLOv2-Tiny采用最大池化層,最大池化層偽代碼如下所示:

rgzn2-1.2-x1.gif

其中Max函數(shù)表示返回兩者中較大的值,MIN表示某最小值常量,其他參數(shù)含義與卷積層類似。由于池化層與卷積層類似,只是將卷積層的乘加運算替換為比較運算;同時,考慮到卷積層往往在網(wǎng)絡(luò)中占據(jù)90%以上的計算量,因此下文主要討論卷積模塊的設(shè)計。

2 基于FPGA的YOLOv2-Tiny加速器設(shè)計

2.1 加速器架構(gòu)介紹

    如圖1所示,加速器采用三層存儲架構(gòu):片外存儲、片上緩存和處理單元內(nèi)的局部寄存器。加速器從片外存儲中讀取卷積核權(quán)重參數(shù)與輸入特征圖像素到FPGA的片上緩存,通過多次復(fù)用片上緩存中的數(shù)據(jù)來減少訪存次數(shù)和數(shù)據(jù)量。同時,計算得到的中間結(jié)果都保留在片上輸出緩存或者局部寄存器中,直至計算出最終的結(jié)果才寫回片外存儲。同時,也可以看出,加速器的時延主要由三部分組成:訪存時延、片上傳輸時延和計算時延。對應(yīng)于該加速器架構(gòu),實際可以分為4個模塊:輸入讀取模塊、權(quán)重讀取模塊、計算模塊與輸出寫回模塊。

rgzn2-t1.gif

    對應(yīng)的加速器數(shù)據(jù)流偽代碼如下:

rgzn2-gs1-2.gif

2.2 卷積模塊

    對卷積循環(huán)中輸出特征圖數(shù)和輸入特征圖數(shù)兩維展開,形成Tof×Tif個并行乘法單元和Tof個rgzn2-2.2-x1.gif深度的加法樹,流水地處理乘加計算。以Tof=2,Tif=3為例,如圖2所示。

rgzn2-t2.gif

    充滿流水線后,每個時鐘從Tif個輸入緩存中讀入Tif個像素,從Tof×Tif個權(quán)重緩存中讀入相同位置的參數(shù),Tof×Tif個并行乘法單元復(fù)用Tif個輸入像素進行乘法計算。Tof個加法樹將乘積兩兩相加,得到的結(jié)果和中間結(jié)果累加后,寫回對應(yīng)輸出緩存。卷積模塊對應(yīng)的處理時延為:

    rgzn2-gs3.gif

其中Const表示流水線初始化等其他操作所需時鐘,F(xiàn)req表示加速器的工作時鐘頻率。

2.3 各模塊的時延建模

    本節(jié)介紹除卷積計算模塊外,另外三個模塊(輸入讀取模塊、權(quán)重讀取模塊、輸出寫回模塊)的處理時延。在此約定,MM(Data Length, Burst Lengthmax)表示以最大突發(fā)長度Burst Lengthmax訪存讀取或?qū)懭隓ata Length長度的連續(xù)數(shù)據(jù)所需的訪存時延。

2.3.1 輸入讀取模塊

    輸入讀取模塊的時延LatencyLoad IFM由兩部分組成:

    (1)通過DMA從片外讀取Tif張輸入特征圖像Tiy×Tix大小的像素塊到片上的訪存時延:

    rgzn2-gs4.gif

    (2)將輸入特征圖像素塊傳輸?shù)狡暇彺娴膫鬏敃r延:

    rgzn2-gs5.gif

    一般對兩個過程乒乓,輸入讀取時模塊的處理時延為:

    rgzn2-gs6.gif

2.3.2 權(quán)重讀取模塊

    權(quán)重讀取模塊的時延LatencyLoad W由兩部分組成:

    (1)通過DMA從片外讀取Tof個卷積核中對應(yīng)Tif張輸入特征圖的Nky×Nkx個權(quán)重到片上的訪存時延:

    rgzn2-gs7.gif

    (2)將權(quán)重參數(shù)傳輸?shù)狡暇彺娴膫鬏敃r延:

    rgzn2-gs8-9.gif

2.3.3 輸出寫回模塊

    輸出寫回模塊的時延LatencyStore由兩部分組成:

    (1)將輸出特征圖像素塊傳輸?shù)紻MA的傳輸時延:

    rgzn2-gs10.gif

    (2)通過DMA將Tof張輸出特征圖Toy×Tox大小的像素塊寫回片外的訪存時延:

    rgzn2-gs11-13.gif

    通過乒乓緩沖設(shè)計,將輸入讀取模塊的時延LatencyLoad、卷積模塊的計算時延LatencyCompute和輸出寫回模塊的時延LatencyStore相互掩蓋,以減少總時延。

3 實驗評估

3.1 實驗環(huán)境

    基于Xilinx公司的Zedboard開發(fā)板(Dual-core ARM-A9+FPGA),其中FPGA的BRAM_18Kb、DSP48E、FF和LUT資源數(shù)分別為280、220、106 400和53 200。雙核 ARM-A9,時鐘頻率667 MHz,內(nèi)存512 MB。采用Logitech C210攝像頭,最大分辨率為640×480,最高可達到30 f/s。當(dāng)前目標檢測系統(tǒng)的FPGA資源耗費如表1所示。

rgzn2-b1.gif

    對比的其他CPU平臺:服務(wù)器CPU Intel E5-2620 v4(8 cores)工作頻率為2.1 GHz,內(nèi)存為256 GB。

3.2 總體架構(gòu)

    如圖3所示,從USB攝像頭處得到采集圖像,存儲在內(nèi)存中,由ARM進行預(yù)處理后交由FPGA端的YOLOv2-Tiny加速器進行目標檢測,檢測后的相關(guān)數(shù)據(jù)仍存放在內(nèi)存中。經(jīng)ARM后處理后,將帶有檢測類別與位置的圖像寫回內(nèi)存中某地址,并交由FPGA端的HDMI控制器顯示在顯示屏上。

rgzn2-t3.gif

    對應(yīng)的顯示屏上的檢測結(jié)果如圖4所示。COCO數(shù)據(jù)集中圖片進行驗證的檢測結(jié)果如圖5所示。

rgzn2-t4.gif

rgzn2-t5.gif

3.3 性能評估

    當(dāng)前的設(shè)計在性能上超過了之前的工作,如表2所示。文獻[6]中的設(shè)計雖然通過縮小模型以及減小數(shù)據(jù)精度等方式將簡化后的整個YOLOv2-Tiny網(wǎng)絡(luò)按層全部映射到FPGA上,但是各層間由于沒有使用乒乓緩沖,導(dǎo)致訪存與數(shù)據(jù)傳輸時延無法與計算時延重疊。文獻[7]中的設(shè)計將卷積運算轉(zhuǎn)化為通用矩陣乘法運算,并通過矩陣分塊的方式并行計算多個矩陣分塊,但是將卷積轉(zhuǎn)化為通用矩陣乘法需要在每次計算前對卷積核參數(shù)復(fù)制與重排序,增加了額外的時延與復(fù)雜度。

rgzn2-b2.gif

    矩陣分塊的方式,并行計算多個矩陣分塊,但是將卷積轉(zhuǎn)化為通用矩陣乘法需要在每次計算前對卷積核參數(shù)復(fù)制與重排序,增加了額外的時延與復(fù)雜度。

    如表3所示,與CPU相比,CPU+FPGA的異構(gòu)系統(tǒng)是雙核ARM-A9能效的67.5倍,Xeon的94.6倍;速度是雙核ARM-A9的84.4倍,Xeon的5.5倍左右。

rgzn2-b3.gif

4 結(jié)論

    基于深度學(xué)習(xí)的目標檢測算法在準確度上已超過了傳統(tǒng)方法,然而隨著準確度的提高,計算復(fù)雜度和內(nèi)存需求也急劇增加,當(dāng)前的通用處理器無法滿足其計算需求。本文設(shè)計并實現(xiàn)了一種基于FPGA的深度學(xué)習(xí)目標檢測系統(tǒng),設(shè)計了YOLOv2-Tiny硬件加速器,就加速器中各模塊的處理時延進行簡單建模,給出卷積模塊的詳細設(shè)計,最終實現(xiàn)的設(shè)計性能超過了當(dāng)前的工作。

參考文獻

[1] RUSSAKOVSKY O,DENG J,SU H,et al.Imagenet large scale visual recognition challenge[J].International Journal of Computer Vision,2015,115(3):211-252.

[2] LIN T Y,MAIRE M,BELONGIE S,et al.Microsoft coco:common objects in context[C].European Conference on Computer Vision. Springer,Cham,2014:740-755.

[3] YU J,GUO K,HU Y,et al.Real-time object detection towards high power efficiency[C].2018 Design,Automation & Test in Europe Conference & Exhibition(DATE).IEEE,2018:704-708.

[4] CONG J,F(xiàn)ANG Z,LO M,et al.Understanding performance differences of FPGAs and GPUs[C].2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines(FCCM).IEEE,2018.

[5] REDMON J, FARHADI A.YOLO9000:better,faster,stronger[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2017:7263-7271.

[6] 張雲(yún)軻,劉丹.基于小型Zynq SoC硬件加速的改進TINYYOLO實時車輛檢測算法實現(xiàn)[J].計算機應(yīng)用,2019,39(1):192-198.

[7] WAI Y J,YUSSOF Z B M,SALIM S I B,et al.Fixed point implementation of Tiny-Yolo-v2 using OpenCL on FPGA[J].International Journal of Advanced Computer Science and Applications,2018,9(10).



作者信息:

陳  辰1,嚴  偉2,夏  珺1,柴志雷1

(1.江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫214122;2.北京大學(xué) 軟件與微電子學(xué)院,北京102600)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
韩国一区二区三区美女美女秀| 狠狠操狠狠色综合网| 午夜精品久久久| 一区二区三区成人精品| 狠狠色综合网| 欧美日韩中文字幕| 毛片av中文字幕一区二区| 日韩一级免费观看| 亚洲第一福利视频| 亚洲欧美三级伦理| 日韩视频免费观看高清完整版| 国产综合在线视频| 国产精品剧情在线亚洲| 欧美国产欧美综合 | 久久精品国内一区二区三区| 一区二区三区毛片| 亚洲韩日在线| 激情久久久久| 国产欧美日韩麻豆91| 欧美成人情趣视频| 久久人人97超碰国产公开结果| 午夜一区在线| 一本色道久久综合狠狠躁篇的优点| 欧美亚洲色图校园春色| 亚洲一区二区三区精品动漫| 亚洲第一区在线观看| 国产在线观看精品一区二区三区| 国产精品女同互慰在线看| 欧美日韩亚洲一区二区| 久久久之久亚州精品露出| 欧美一区二区性| 亚洲欧美韩国| 亚洲综合二区| 亚洲资源在线观看| 中日韩高清电影网| 亚洲三级影院| 亚洲日韩视频| 亚洲日本久久| 久久国产视频网| 欧美在线首页| 欧美在线视频二区| 久久精品夜色噜噜亚洲aⅴ| 最新国产成人在线观看| 99精品欧美一区二区三区综合在线| 在线一区免费观看| 欧美亚洲一区二区在线观看| 久久琪琪电影院| 欧美精品电影在线| 国产精品第三页| 国产色综合天天综合网| 在线免费观看视频一区| aa成人免费视频| 欧美一区亚洲二区| 日韩视频一区二区在线观看| 亚洲欧美国产日韩中文字幕| 久久久久久一区| 欧美久久久久久| 国产欧美日韩麻豆91| 亚洲第一级黄色片| 亚洲一区二区三区四区五区午夜| 久久国产欧美| 国产精品99久久久久久久久久久久 | 亚洲欧美日韩另类精品一区二区三区| 久久精品国产99精品国产亚洲性色 | 欧美~级网站不卡| 国产精品国产一区二区| 国内久久精品| 一区二区三区波多野结衣在线观看| 亚洲欧美一区二区原创| 亚洲精品国产品国语在线app| 亚洲尤物在线视频观看| 久久五月天婷婷| 国产精品草草| 亚洲电影av在线| 亚洲欧美一区二区原创| 日韩午夜激情av| 久久久久免费| 国产精品久久一级| 亚洲精品国产品国语在线app | 久久久久久久久久久久久女国产乱 | 欧美尤物一区| 欧美日韩精品一区二区在线播放| 国产亚洲精久久久久久| 一本久久综合亚洲鲁鲁五月天 | 亚洲第一黄网| 午夜精品久久久久久久久久久久久| 欧美69视频| 国产亚洲精品久久久久久| 99re热这里只有精品免费视频| 久久精品一区中文字幕| 午夜宅男欧美| 欧美日韩一区二区在线| 亚洲第一中文字幕| 香蕉久久精品日日躁夜夜躁| 亚洲天堂网在线观看| 美女在线一区二区| 国产日韩精品在线观看| 一区二区三区日韩欧美精品| 亚洲精品国产精品国自产观看| 久久精品国产99精品国产亚洲性色| 国产精品大片| 日韩午夜中文字幕| 亚洲麻豆av| 牛人盗摄一区二区三区视频| 国产日韩欧美三级| 亚洲尤物在线视频观看| 中日韩美女免费视频网站在线观看| 另类国产ts人妖高潮视频| 国产私拍一区| 亚洲欧美日韩视频二区| 亚洲欧美日韩中文视频| 欧美视频免费在线观看| 亚洲精品乱码久久久久久黑人| 亚洲精品在线电影| 免费美女久久99| 精品动漫一区| 亚洲电影观看| 久久久之久亚州精品露出| 国产日韩欧美在线播放| 亚洲女性裸体视频| 欧美一区二区性| 国产欧美日韩视频在线观看| 亚洲一区三区视频在线观看| 亚洲女同性videos| 国产精品视频免费观看www| 在线视频精品一| 亚洲一区二区高清| 欧美视频三区在线播放| 99精品国产福利在线观看免费| 在线一区观看| 欧美偷拍另类| 亚洲一区二区成人| 欧美影院成人| 国产在线观看91精品一区| 久久成人精品| 久热爱精品视频线路一| 亚洲国产成人精品久久| 亚洲日本无吗高清不卡| 欧美激情视频网站| 日韩亚洲精品在线| 亚洲综合色婷婷| 国产精品色一区二区三区| 亚洲综合欧美日韩| 久久久久9999亚洲精品| 精品二区久久| 日韩一级网站| 欧美性理论片在线观看片免费| 中文国产一区| 久久国产免费看| 1024日韩| 一区二区三区欧美| 国产精品美女一区二区| 先锋a资源在线看亚洲| 久久嫩草精品久久久精品一| 在线观看日韩av先锋影音电影院| 亚洲精品自在久久| 国产精品福利网| 性欧美18~19sex高清播放| 免费国产自线拍一欧美视频| 亚洲精品一区二区网址| 午夜精品久久久久久久久久久久 | 久久亚洲精品一区二区| 亚洲国产成人av| 亚洲性线免费观看视频成熟| 国产精品一区二区在线观看网站| 久久国产精品久久w女人spa| 欧美福利电影网| 亚洲一区免费| 欧美va亚洲va香蕉在线| 99视频在线观看一区三区| 欧美在线一二三四区| 亚洲国产精品热久久| 亚欧美中日韩视频| 亚洲国产综合在线看不卡| 亚洲天堂av高清| 国产综合视频| 一本色道久久综合亚洲精品高清 | 欧美在线观看网址综合| 欧美经典一区二区| 亚洲一区观看| 免费视频一区| 亚洲综合久久久久| 欧美大片专区| 亚洲一区二区免费| 欧美大片在线影院| 亚洲欧美国产精品桃花| 免费在线看成人av| 亚洲中字在线| 欧美乱在线观看| 欧美一区二区三区四区夜夜大片 | 欧美日韩中文字幕精品| 欧美自拍丝袜亚洲| 欧美午夜精品久久久久久孕妇| 久久国产免费| 国产精品日日摸夜夜摸av| 最新日韩在线| 国产日韩欧美一区二区| 亚洲小视频在线观看| 一区二区三区在线视频免费观看 | 牛人盗摄一区二区三区视频|