在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DAC快速目標檢測算法優化和架構設計優化方案

電子設計 ? 來源:Pynq ? 作者:Pynq ? 2020-12-03 15:26 ? 次閱讀

1. 需求分析

1.1 背景

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

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

1.2 動機

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

算法上的優化主要有:

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

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

3) 對神經網絡進行8bit量化。

HiPU的優化主要有:

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

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

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

4) HiPU完全由PL側實現,不依賴PS側。PS主要工作負載為圖片預處理和結果輸出上。

經過上述優化,我們團隊的設計在比賽方的數據集上測得如下結果:準確率IoU為61.5%;能耗為9537J,幀率為50.91Hz,功率為9.248W。

2. 算法框架設計

2.1 任務分析

本次競賽的訓練集由大疆提供,部分圖片如下圖所示。在確定算法之前,我們團隊首先對訓練數據集的特點進行了分析:

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

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

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)類別。算法在設計時需要對這12類物體進行分類;

4) 即使測試圖片中出現多個相似的目標,標定框也是指定固定的一個目標。即訓練時需要適當的過擬合。

圖 2 訓練集的部分圖片

2.2 單目標檢測網絡選擇

為滿足移動端的檢測實時性,我們團隊最終選定了YOLO作為基礎檢測算法。并將其中的特征提取網絡替換為輕量級的ShuffleNet V2,其參數規模略大于1X。如下圖所示為我們定制的單目標檢測網絡,ShuffleDet。

圖 3 ShuffleDet的網絡結構示意圖

2.3 神經網絡的訓練與量化

我們團隊首先在ImageNet數據集上預訓練一個標準的ShuffleNet V2分類網絡。待模型收斂后,將其中的特征提取部分的參數遷移到ShuffleDet網絡中。使用比賽方的訓練集進行其他層的參數的訓練。

為了適應FPGA的定點運算,待整體參數訓練完成后,需要對所有參數進行量化操作。我們團隊將網絡參數和feature map均量化為8bit定點。

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

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

圖 4 網絡參數的量化流程

經過量化后,我們使用的ShuffleDet網絡的卷積層數約為74層,權重約為1.94MB,Bias約為78KB。

3. 計算架構框架設計

3.1 HiPU整體介紹

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

圖 5 HiPU的結構框圖與特性

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

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

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

HiPU底層實現矩陣運算,向量運算,以及標量運算。在做好調度的情況下,可以支持任意類型的并行計算。未來將實現稀疏矩陣運算的優化,從而支持高效率的DeCONV運算,feature map稀疏優化。

3.2 HiPU優化點分析

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

HiPU設計性能有兩個重要的方面:一個方面是MAC運算單元的利用率;一個是數據傳輸網絡是否可以匹配MAC所需的數據。其中數據傳輸網絡的限制大多數來自DDR接口。本設計針對DDR接口進行專門的優化。

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

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

圖 6 Module-C采用層間級聯計算方式

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

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

圖 7 輸入圖像在行方向上的轉換

3.3 系統優化設計

1) 圖像解碼與卷積神經網絡計算并行化

由于HiPU僅僅依賴Zynq的PL側的資源進行設計,PS側的資源可以空出來做系統IO相關的工作。我們團隊在處理當前圖片的檢測運算時,在PS側預讀并解碼下一幅圖片,提高處理的并行度,從而使整體檢測幀率從30.3Hz提高到50.9Hz。

如下圖所示為圖像解碼與卷積神經網絡并行化的示意圖。

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

(b) 并行化之后的工作流程 圖 8 圖像解碼與卷積神經網絡并行化的示意圖

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

使用C代碼重構PS側比較耗時的操作,并在Pynq框架中采用ctypes接口調用重構的C代碼:
① 預先計算PL側數據中置信度和bbox坐標的地址指針;
② 找到最大的置信度和對應的BBox的坐標,然后根據相對坐標計算出絕對坐標;

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

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

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

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

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

4. 競賽結果分析

如下表所示為DAC19的競賽結果,全球共有58支隊伍注冊了FPGA比賽任務。最終我們團隊獲得了第2名的成績。冠軍為iSmart3,由UIUC、IBM、Inspirit IoT公司聯合組隊,季軍為SystemsETHZ來自ETH Zurich的隊伍。通過與其他團隊的交流,我們團隊使用的神經網絡規模是最大的,優勢是高性能的DNN加速器,遺憾是算法方面的優化還不到位,最終競賽成績如下:

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

XJTU-Tripler是由西安交通大學 人工智能機器人研究所 任鵬舉副教授所在的認知計算架構小組完成的設計。

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

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    211

    文章

    28745

    瀏覽量

    208872
  • Xilinx
    +關注

    關注

    71

    文章

    2172

    瀏覽量

    122323
  • 人工智能
    +關注

    關注

    1797

    文章

    47867

    瀏覽量

    240781
收藏 人收藏

    評論

    相關推薦

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

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

    汽車電子電氣架構設計及優化措施

    制造技術。在方案解決數據庫中,其綜合了自身的電子電氣及車型對比數據結構、市場發展數據庫、基準數據庫,進而通過對其進行分析、研究、對比,規劃好了電子電氣架構的最總目標設計。1.2 優化
    發表于 10-18 22:10

    雷達目標檢測算法研究及優化

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

    雷達目標檢測算法研究及優化

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

    PowerPC小目標檢測算法怎么實現?

    檢測系統在低功耗、輕小型化等方面提出了更高的要求。因此,完成小目標檢測任務不僅需要尋求合理的小目標檢測算法,在實現時還需要考慮處理性能和體積
    發表于 08-09 07:07

    【HarmonyOS HiSpark AI Camera】基于深度學習的目標檢測系統設計

    、并行處理、從目標檢測算法嵌入式平臺的實現的設計要求出發,基于深度學習的目標檢測算法特點,采用軟硬件協同設計思想進行總體架構設計,使得可編程
    發表于 09-25 10:11

    目標優化算法有哪些

    目標優化算法有哪些,該文圍繞包含柴油發電機、風力發電、光伏發電和鉛酸蓄電池的獨立微網系統中的容量配置問題,提出了包含微網全壽命周期內的總成本現值、負荷容量缺失率和污染物排放的多目標
    發表于 07-12 06:52

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

    目前優化了一款高速人臉檢測算法,在 ARM設備的A73單核CPU(圖像大小:860*540最小人臉大小:60*60)速度可以高達10-15ms每幀,真正的實時人臉檢測算法算法準確率在
    發表于 12-15 07:01

    基于YOLOX目標檢測算法的改進

    實時性的前提下,進一步提升了近兩個百分點的精度。在本文的研究中,基于 YOLOX 目標檢測算法 進行損失函數的優化,以改善遮擋目標和小目標
    發表于 03-06 13:55

    基于閾值優化的圖像模糊邊緣檢測算法

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

    基于碼本模型的運動目標檢測算法

    本內容提供了基于碼本模型的運動目標檢測算法
    發表于 05-19 10:54 ?32次下載
    基于碼本模型的運動<b class='flag-5'>目標</b><b class='flag-5'>檢測算法</b>

    基于粒子群優化算法的屬性異常檢測算法

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

    基于深度學習的目標檢測算法

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

    快速入門自動駕駛中目標檢測算法

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

    基于Transformer的目標檢測算法

    掌握基于Transformer的目標檢測算法的思路和創新點,一些Transformer論文涉及的新概念比較多,話術沒有那么通俗易懂,讀完論文仍然不理解算法的細節部分。
    發表于 08-16 10:51 ?694次閱讀
    基于Transformer的<b class='flag-5'>目標</b><b class='flag-5'>檢測算法</b>
    主站蜘蛛池模板: 午夜骚| 亚洲精品系列 | 狼狼色丁香久久女婷婷综合 | 黄色小毛片| 狠狠操人人| 久久精品免费在线观看 | 四虎永久网址 | 狠狠色狠狠色综合日日不卡 | 欧美日本一区二区三区 | 欧美福利视频网站 | 午夜在线观看免费观看大全 | 国产福利小视频在线观看 | 五月婷婷丁香在线视频 | 免费91视频 | 免费a网址| 就去干综合| 国产成人综合自拍 | 国产手机在线 | 我把美女日出白浆 | 中文字幕区 | 国产综合图区 | 欧美五月婷婷 | 激情综合五月天丁香婷婷 | 国产网站在线 | 免费看男女做好爽好硬视频 | 美女视频很黄很a免费国产 美女视频很黄很暴黄是免费的 | 色成人免费网站 | 中文在线三级中文字幕 | 精品美女在线 | 两性午夜欧美高清做性 | 天天综合网天天综合色不卡 | 五月丁香啪啪 | 国产一二三区精品 | 手机毛片 | 亚洲成人免费网站 | 欧美色吧视频在线观看 | 添人人躁日日躁夜夜躁夜夜揉 | 有坂深雪在线 | 激情五月婷婷色 | 日本wwwxx| 亚洲人成影网站~色 |