91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DAC快速目標(biāo)檢測算法優(yōu)化和架構(gòu)設(shè)計優(yōu)化方案

電子設(shè)計 ? 來源:Pynq ? 作者:Pynq ? 2020-12-03 15:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 需求分析

1.1 背景

Design Automation Conference 自動設(shè)計大會是全球久負(fù)盛譽(yù)的產(chǎn)學(xué)研交流盛會,也是計算機(jī)學(xué)會推薦的A類會議之一。2019年第56屆DAC大會在拉斯維加斯舉行。其中系統(tǒng)設(shè)計競賽(System Design Contest, SDC)的任務(wù)為面向端側(cè)設(shè)備進(jìn)行快速的目標(biāo)檢測。該比賽由Xilinx、大疆英偉達(dá)贊助。該比賽針對比賽方給定無人機(jī)視角的訓(xùn)練數(shù)據(jù)集(9萬張分辨率為360x640的圖片,單目標(biāo)標(biāo)注)進(jìn)行訓(xùn)練,在比賽方自有的5萬張測試數(shù)據(jù)集上進(jìn)行測試。最終檢測精度IoU(Intersection over Union)高、且能量消耗低者勝出。

2018年該比賽第一次舉行,當(dāng)時提供了Pynq第一代平臺(Zynq7020),由清華大學(xué)汪玉教授團(tuán)隊(duì)的曾書霖博士獲得了全球第一名。2019比賽繼續(xù)進(jìn)行,Xilinx將平臺升級到了支持Pynq框架的Ultra96,該平臺搭載了Xilinx UltraScale+ ZU3器件。另一個賽道提供了Nivida的TX2。Ultra96是一款優(yōu)秀的Xilinx ZYNQ的開發(fā)板。其PS側(cè)搭載四核ARM Cortex-A53 CPU,主頻為1.5GHz;軟件方面可以使用基于Python的PYNQ框架進(jìn)行開發(fā)。Ultra96平臺以及ZU3的PL側(cè)資源如下圖所示。

1.2 動機(jī)

為了達(dá)到檢測精度與能耗的平衡,我們團(tuán)隊(duì)選擇并優(yōu)化了面向端側(cè)的輕量級神經(jīng)網(wǎng)絡(luò)框架。并針對ZU3的資源限制,精簡了我們團(tuán)隊(duì)設(shè)計的一個可以支持通用網(wǎng)絡(luò)的DNN加速器(HiPU),將其部署在ZU3的PL側(cè)。主要工作分為針對硬件平臺的算法優(yōu)化和架構(gòu)設(shè)計優(yōu)化兩部分:

算法上的優(yōu)化主要有:

1) 選擇ShuffleNet V2作為特征提取的主框架;

2) 選擇YOLO作為單目標(biāo)位置的回歸框架;

3) 對神經(jīng)網(wǎng)絡(luò)進(jìn)行8bit量化。

HiPU的優(yōu)化主要有:

1) 支持CONV,F(xiàn)C,Dep-wise CONV,Pooling,Ele-wise Add/Mul等操作,峰值算力為268Gops,效率大于80%;

2) 支持Channel shuffle、divide、concat操作,且不消耗額外時間;

3) 提供C、RISC-V匯編接口的API,調(diào)度靈活;

4) HiPU完全由PL側(cè)實(shí)現(xiàn),不依賴PS側(cè)。PS主要工作負(fù)載為圖片預(yù)處理和結(jié)果輸出上。

經(jīng)過上述優(yōu)化,我們團(tuán)隊(duì)的設(shè)計在比賽方的數(shù)據(jù)集上測得如下結(jié)果:準(zhǔn)確率IoU為61.5%;能耗為9537J,幀率為50.91Hz,功率為9.248W。

2. 算法框架設(shè)計

2.1 任務(wù)分析

本次競賽的訓(xùn)練集由大疆提供,部分圖片如下圖所示。在確定算法之前,我們團(tuán)隊(duì)首先對訓(xùn)練數(shù)據(jù)集的特點(diǎn)進(jìn)行了分析:

1) 圖片尺寸均為360x640,不需要對圖片進(jìn)行resize操作進(jìn)行歸一化;

2) 所有測試圖片均是無人機(jī)視角。標(biāo)定框的大小從36像素到7200像素不等,算法需要支持各種大小的目標(biāo)檢測;

3) 所有圖片共12大類(95個子類),包括boat (7), building (3), car (24), drone (4), group (2), horse-ride(1), paraglider(1), person (29), riding (17), truck (2), wakeboard(4), whale(1)類別。算法在設(shè)計時需要對這12類物體進(jìn)行分類;

4) 即使測試圖片中出現(xiàn)多個相似的目標(biāo),標(biāo)定框也是指定固定的一個目標(biāo)。即訓(xùn)練時需要適當(dāng)?shù)倪^擬合。

圖 2 訓(xùn)練集的部分圖片

2.2 單目標(biāo)檢測網(wǎng)絡(luò)選擇

為滿足移動端的檢測實(shí)時性,我們團(tuán)隊(duì)最終選定了YOLO作為基礎(chǔ)檢測算法。并將其中的特征提取網(wǎng)絡(luò)替換為輕量級的ShuffleNet V2,其參數(shù)規(guī)模略大于1X。如下圖所示為我們定制的單目標(biāo)檢測網(wǎng)絡(luò),ShuffleDet。

圖 3 ShuffleDet的網(wǎng)絡(luò)結(jié)構(gòu)示意圖

2.3 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練與量化

我們團(tuán)隊(duì)首先在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練一個標(biāo)準(zhǔn)的ShuffleNet V2分類網(wǎng)絡(luò)。待模型收斂后,將其中的特征提取部分的參數(shù)遷移到ShuffleDet網(wǎng)絡(luò)中。使用比賽方的訓(xùn)練集進(jìn)行其他層的參數(shù)的訓(xùn)練。

為了適應(yīng)FPGA的定點(diǎn)運(yùn)算,待整體參數(shù)訓(xùn)練完成后,需要對所有參數(shù)進(jìn)行量化操作。我們團(tuán)隊(duì)將網(wǎng)絡(luò)參數(shù)和feature map均量化為8bit定點(diǎn)。

量化過程主要分為以下幾步:
1) 將BN層合并到參數(shù)中;
2) 將合并后的參數(shù)進(jìn)行對稱量化;
3) 量化后的參數(shù)如果直接使用,精度損失過于嚴(yán)重。因此量化后還需要對參數(shù)進(jìn)行fine tune。

如下圖所示為量化操作的示意圖。

圖 4 網(wǎng)絡(luò)參數(shù)的量化流程

經(jīng)過量化后,我們使用的ShuffleDet網(wǎng)絡(luò)的卷積層數(shù)約為74層,權(quán)重約為1.94MB,Bias約為78KB。

3. 計算架構(gòu)框架設(shè)計

3.1 HiPU整體介紹

針對賽方提供的計算平臺,我們進(jìn)行適當(dāng)?shù)牟眉?,以適應(yīng)ZU3的資源。如下圖所示為裁剪后的HiPU設(shè)計框圖,及其特性。HiPU工作在233MHz,其峰值算力為268Gops;采用C/RISC-V匯編作為編程接口,卷積效率平均在80%以上。

圖 5 HiPU的結(jié)構(gòu)框圖與特性

HiPU支持各種常見的NN運(yùn)算,包括:CONV,F(xiàn)C,Dep-wise CONV,Pooling,Ele-wise Add/Mul等運(yùn)算。其中FC也可以做到接近100%的計算效率。

HiPU支持channel方向的shuffle,divide,concat操作。當(dāng)這些操作緊接在卷積運(yùn)算之后時,可以在硬件上進(jìn)行合并,不消耗額外的時間。

HiPU可以工作在任何種類的Xilinx FPGA上,不受Zynq架構(gòu)的限制。

HiPU底層實(shí)現(xiàn)矩陣運(yùn)算,向量運(yùn)算,以及標(biāo)量運(yùn)算。在做好調(diào)度的情況下,可以支持任意類型的并行計算。未來將實(shí)現(xiàn)稀疏矩陣運(yùn)算的優(yōu)化,從而支持高效率的DeCONV運(yùn)算,feature map稀疏優(yōu)化。

3.2 HiPU優(yōu)化點(diǎn)分析

1) 通過層間級聯(lián)減少所需的DDR帶寬

HiPU設(shè)計性能有兩個重要的方面:一個方面是MAC運(yùn)算單元的利用率;一個是數(shù)據(jù)傳輸網(wǎng)絡(luò)是否可以匹配MAC所需的數(shù)據(jù)。其中數(shù)據(jù)傳輸網(wǎng)絡(luò)的限制大多數(shù)來自DDR接口。本設(shè)計針對DDR接口進(jìn)行專門的優(yōu)化。

由于HiPU中SRAM的大小限制,無法將一層feature map的數(shù)據(jù)完全放在HiPU的SRAM中。采用平常的計算次序則需要將每一層的feature map計算結(jié)果返回到DDR中存儲。這樣一來每一層的feature map數(shù)據(jù)都需要一次DDR的訪問,對DDR的帶寬需求非常大,也會消耗額外的功耗

我們團(tuán)隊(duì)通過層間級聯(lián)的方式降低DDR的帶寬需求。以ShuffleNet的bottleneck為分界,從每個bottleneck的輸入處從DDR讀取一行feature map,依次計算完所有的層后,輸出的一行feature map才寫回到DDR。依次計算完所有行。如下圖所示為Module C的層間級聯(lián)計算次序。

圖 6 Module-C采用層間級聯(lián)計算方式

2) 輸入圖像格式轉(zhuǎn)換以提升處理效率

HiPU一次并行計算8個輸入channel。然而網(wǎng)絡(luò)第一層輸入圖像僅有RGB這3個通道,導(dǎo)致HiPU計算效率僅為3/8。因此,我們團(tuán)隊(duì)針對輸入圖像設(shè)計了一個轉(zhuǎn)換模塊。如果Conv1的kernel的width為3,則將輸入圖像的通道從3擴(kuò)展到9。最終使得第一層的處理效率從0.38提升到了0.56,其轉(zhuǎn)換示意圖如下圖所示。

圖 7 輸入圖像在行方向上的轉(zhuǎn)換

3.3 系統(tǒng)優(yōu)化設(shè)計

1) 圖像解碼與卷積神經(jīng)網(wǎng)絡(luò)計算并行化

由于HiPU僅僅依賴Zynq的PL側(cè)的資源進(jìn)行設(shè)計,PS側(cè)的資源可以空出來做系統(tǒng)IO相關(guān)的工作。我們團(tuán)隊(duì)在處理當(dāng)前圖片的檢測運(yùn)算時,在PS側(cè)預(yù)讀并解碼下一幅圖片,提高處理的并行度,從而使整體檢測幀率從30.3Hz提高到50.9Hz。

如下圖所示為圖像解碼與卷積神經(jīng)網(wǎng)絡(luò)并行化的示意圖。

(a) 并行化之前的工作流程

(b) 并行化之后的工作流程 圖 8 圖像解碼與卷積神經(jīng)網(wǎng)絡(luò)并行化的示意圖

2) 使用C代碼加速PS側(cè)原來的Python代碼

使用C代碼重構(gòu)PS側(cè)比較耗時的操作,并在Pynq框架中采用ctypes接口調(diào)用重構(gòu)的C代碼:
① 預(yù)先計算PL側(cè)數(shù)據(jù)中置信度和bbox坐標(biāo)的地址指針;
② 找到最大的置信度和對應(yīng)的BBox的坐標(biāo),然后根據(jù)相對坐標(biāo)計算出絕對坐標(biāo);

3) 使用門控時鐘降低PL側(cè)的能耗

為了降低系統(tǒng)的能量消耗,設(shè)計了門控時鐘策略。當(dāng)HiPU計算完一張圖片的時候自動關(guān)閉時鐘,下一張圖片開始計算的時候再激活時鐘。設(shè)置這個策略主要基于以下兩個原因:

首先,系統(tǒng)對jpg格式圖片解算的時間不固定,當(dāng)SD卡型號不固定的時候,其均值在7ms-12ms之間,部分圖片解算時間最大值可以到達(dá)100ms;

其次,系統(tǒng)的功耗測量進(jìn)程和其他額外開銷會占用一部分的cpu時間,并且PS和PL共享DDR帶寬,這導(dǎo)致了HiPU在166Mhz的時幀率到達(dá)約50hz,但是升高HiPU到200Mhz時,系統(tǒng)處理幀率仍然保持在50hz左右。

上述兩個原因會導(dǎo)致HiPU處理時間和圖片jpeg解算時間匹配變得不固定;當(dāng)HiPU處理圖像時間比圖像解算時間短時, HiPU會“空跑”浪費(fèi)能量。另外,針對搶占DDR帶寬的情況,還需繼續(xù)優(yōu)化。

4. 競賽結(jié)果分析

如下表所示為DAC19的競賽結(jié)果,全球共有58支隊(duì)伍注冊了FPGA比賽任務(wù)。最終我們團(tuán)隊(duì)獲得了第2名的成績。冠軍為iSmart3,由UIUC、IBM、Inspirit IoT公司聯(lián)合組隊(duì),季軍為SystemsETHZ來自ETH Zurich的隊(duì)伍。通過與其他團(tuán)隊(duì)的交流,我們團(tuán)隊(duì)使用的神經(jīng)網(wǎng)絡(luò)規(guī)模是最大的,優(yōu)勢是高性能的DNN加速器,遺憾是算法方面的優(yōu)化還不到位,最終競賽成績?nèi)缦拢?/p>

我們設(shè)計的ShuffleDet算法同時在TX2平臺上也進(jìn)行了部署,下表是兩者的分析對比。可以看出8bits量化后造成了0.056的IoU損失(-8.3%),但帶來了28.87的幀率提升(+131%)和8309J的能量減少(-46.56%)。

XJTU-Tripler是由西安交通大學(xué) 人工智能機(jī)器人研究所 任鵬舉副教授所在的認(rèn)知計算架構(gòu)小組完成的設(shè)計。

團(tuán)隊(duì)成員:趙博然,趙文哲,夏天,陳飛,樊瓏,宗鵬陳,魏亞東,涂志俊,趙之旭,董志偉等

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    31125

    瀏覽量

    222444
  • Xilinx
    +關(guān)注

    關(guān)注

    73

    文章

    2201

    瀏覽量

    131252
  • 人工智能
    +關(guān)注

    關(guān)注

    1818

    文章

    50127

    瀏覽量

    265626
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    人臉檢測算法及新的快速算法

    人臉檢測算法及新的快速算法人臉識別設(shè)備憑借著便捷的應(yīng)用,以及更加新潮的技術(shù),俘獲了不少人的好感。于是,它的應(yīng)用也在日益的變得更加的廣泛。由中國電子學(xué)會主辦的全國圖形圖像技術(shù)應(yīng)用大會,行業(yè)專家將介紹
    發(fā)表于 09-26 15:13

    汽車電子電氣架構(gòu)設(shè)計及優(yōu)化措施

    制造技術(shù)。在方案解決數(shù)據(jù)庫中,其綜合了自身的電子電氣及車型對比數(shù)據(jù)結(jié)構(gòu)、市場發(fā)展數(shù)據(jù)庫、基準(zhǔn)數(shù)據(jù)庫,進(jìn)而通過對其進(jìn)行分析、研究、對比,規(guī)劃好了電子電氣架構(gòu)的最總目標(biāo)設(shè)計。1.2 優(yōu)化設(shè)
    發(fā)表于 10-18 22:10

    雷達(dá)目標(biāo)檢測算法研究及優(yōu)化

    題在檢測 單 元 的速度維采用 SO- C FA民 算法 。 S O- CFAR 屬 于均 值 類 的 檢測 器 , 在 估 算背 景 雜 波功 率時 ,二維多 策略恒虛警檢測算法
    發(fā)表于 02-28 09:19

    雷達(dá)目標(biāo)檢測算法研究及優(yōu)化

    SO- C FA民 算法 。 S O- CFAR 屬 于均 值 類 的 檢測 器 , 在 估 算背 景 雜 波功 率時 ,二維多 策略恒虛警檢測算法優(yōu)化本 文在 第 4 章 對雷 達(dá)
    發(fā)表于 03-29 10:53

    PowerPC小目標(biāo)檢測算法怎么實(shí)現(xiàn)?

    檢測系統(tǒng)在低功耗、輕小型化等方面提出了更高的要求。因此,完成小目標(biāo)檢測任務(wù)不僅需要尋求合理的小目標(biāo)檢測算法,在實(shí)現(xiàn)時還需要考慮處理性能和體積
    發(fā)表于 08-09 07:07

    【HarmonyOS HiSpark AI Camera】基于深度學(xué)習(xí)的目標(biāo)檢測系統(tǒng)設(shè)計

    、并行處理、從目標(biāo)檢測算法嵌入式平臺的實(shí)現(xiàn)的設(shè)計要求出發(fā),基于深度學(xué)習(xí)的目標(biāo)檢測算法特點(diǎn),采用軟硬件協(xié)同設(shè)計思想進(jìn)行總體架構(gòu)設(shè)計,使得可編程
    發(fā)表于 09-25 10:11

    目標(biāo)優(yōu)化算法有哪些

    目標(biāo)優(yōu)化算法有哪些,該文圍繞包含柴油發(fā)電機(jī)、風(fēng)力發(fā)電、光伏發(fā)電和鉛酸蓄電池的獨(dú)立微網(wǎng)系統(tǒng)中的容量配置問題,提出了包含微網(wǎng)全壽命周期內(nèi)的總成本現(xiàn)值、負(fù)荷容量缺失率和污染物排放的多目標(biāo)
    發(fā)表于 07-12 06:52

    分享一款高速人臉檢測算法

    目前優(yōu)化了一款高速人臉檢測算法,在 ARM設(shè)備的A73單核CPU(圖像大小:860*540最小人臉大?。?0*60)速度可以高達(dá)10-15ms每幀,真正的實(shí)時人臉檢測算法算法準(zhǔn)確率在
    發(fā)表于 12-15 07:01

    基于YOLOX目標(biāo)檢測算法的改進(jìn)

    實(shí)時性的前提下,進(jìn)一步提升了近兩個百分點(diǎn)的精度。在本文的研究中,基于 YOLOX 目標(biāo)檢測算法 進(jìn)行損失函數(shù)的優(yōu)化,以改善遮擋目標(biāo)和小目標(biāo)
    發(fā)表于 03-06 13:55

    基于閾值優(yōu)化的圖像模糊邊緣檢測算法

    邊緣檢測是圖像預(yù)處理中最重要的內(nèi)容之一,本文使用遺傳算法對閾值優(yōu)化得到最佳閾值參數(shù),對模糊邊緣檢測算法進(jìn)行改進(jìn),根據(jù)此最佳閾值來定義一個新的簡單隸屬度函數(shù),簡
    發(fā)表于 06-06 15:49 ?26次下載

    基于碼本模型的運(yùn)動目標(biāo)檢測算法

    本內(nèi)容提供了基于碼本模型的運(yùn)動目標(biāo)檢測算法
    發(fā)表于 05-19 10:54 ?32次下載
    基于碼本模型的運(yùn)動<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測算法</b>

    基于粒子群優(yōu)化算法的屬性異常檢測算法

    提出一種新的基于粒子群優(yōu)化算法的屬性異常檢測算法。該算法利用粒子群優(yōu)化算法簡單、尋優(yōu)速度快的優(yōu)點(diǎn)
    發(fā)表于 11-20 09:21 ?4次下載

    基于深度學(xué)習(xí)的目標(biāo)檢測算法

    整體框架 目標(biāo)檢測算法主要包括:【兩階段】目標(biāo)檢測算法、【多階段】目標(biāo)檢測算法、【單階段】
    的頭像 發(fā)表于 04-30 10:22 ?1.2w次閱讀
    基于深度學(xué)習(xí)的<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測算法</b>

    快速入門自動駕駛中目標(biāo)檢測算法

    現(xiàn)在目標(biāo)檢測算法總結(jié) 1. 目標(biāo)檢測算法在機(jī)動車和行人檢測識別上應(yīng)用較多,在非機(jī)動車上應(yīng)用較少 2. 對于
    發(fā)表于 06-06 09:40 ?0次下載
    <b class='flag-5'>快速</b>入門自動駕駛中<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測算法</b>

    基于Transformer的目標(biāo)檢測算法

    掌握基于Transformer的目標(biāo)檢測算法的思路和創(chuàng)新點(diǎn),一些Transformer論文涉及的新概念比較多,話術(shù)沒有那么通俗易懂,讀完論文仍然不理解算法的細(xì)節(jié)部分。
    發(fā)表于 08-16 10:51 ?1093次閱讀
    基于Transformer的<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測算法</b>