精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

利用reVISION? 堆棧實現應用算法

C29F_xilinx_inc ? 來源:未知 ? 作者:佚名 ? 2017-09-20 17:40 ? 次閱讀

作者:Nick Ni 和 Adam Taylor

監控系統嚴重依靠嵌入式視覺系統提供的功能加速在廣泛市場和系統中的部署。這些監控系統的用途非常廣泛,包括事件和流量監控、安全與安防用途、ISR 和商業智能。用途的多樣性也帶來了幾大挑戰,需要系統設計人員在解決方案中加以解決。它們是:

多攝像頭視覺– 能夠連接多個同類或異類傳感器類型。

計算機視覺技術- 能夠使用高級庫和框架(例如 OpenCV 和 OpenVX)進行開發。

機器學習技術– 能夠使用框架(例如 Caffe)來實現機器學習推斷引擎。

提高分辨率和幀率– 提高每個圖像幀所需的數據處理

根據用途,監控系統會實現相應算法(例如光流法)以檢測圖像內的運動。立體視覺提供圖像內的深度知覺,也使用機器學習技術來檢測和分類圖像中的對象。

圖 1 - 實例應用(上:面部檢測與分類,下:光流)

異構系統器件,例如 All Programmable Zynq?-7000 和 Zynq? Ultrascale+? MPSoC,正越來越多地應用于監控系統的開發。這些器件是可編程邏輯(PL)架構與高性能 ARM? 內核處理器系統(PS)的完美結合。

與傳統方案相比,PL 與 PS 的緊密耦合使得創建的系統具有更強的響應能力、可重配置能力以及更高的能效。基于 CPU/GPU 的傳統 SoC 需要使用系統存儲器將圖像從一個處理階段傳送到下個階段。這會降低確定性并增大功耗和系統響應時延,因為多個資源需要訪問同一個存儲器,造成處理算法瓶頸。該瓶頸隨幀率和圖像分辨率增加而加重。

當解決方案采用 Zynq-7000 或 Zynq UltraScale+ MPSoC 器件實現時,就會打破這個瓶頸。這些器件允許設計人員在器件的 PL 中實現圖像處理流水線。在 PL 中創建真正的并行圖像流水線,其中一個階段的輸出被傳送到另一個階段的輸入。這樣能獲得確定的響應時間,縮短時延,實現功耗最佳解決方案。

利用 PL 實現圖像處理流水線,還能獲得比傳統 CPU/GPU SoC 方案更寬的接口能力,而后者只能獲得固定接口。PL IO 接口的靈活特性允許任意連接,支持 MIPI、Camera Link、HDMI 等行業標準接口。這種靈活特性還能實現定制傳統接口,而且能進行升級以支持最新接口標準。利用 PL,還可以讓系統并行連接多個攝像頭。

不過,最關鍵的是實現應用算法,而且無需用硬件描述語言(例如 Verilog 或 VHDL)重新編寫所有高級算法。這正是 reVISION? 堆棧的用武之地。

圖 2 - 傳統 CPU/GPU 方案與 Zynq-7000/Zynq UltraScale+ MPSoC 的對比

reVISION 堆棧

reVISION 堆棧使開發人員能夠實現計算機視覺和機器學習技術。在這里,針對 Zynq-7000 和 Zynq UltraScale+ MPSoC 的高級框架和庫同樣適用。為此,reVISION 將支持平臺、應用和算法開發的多種資源完美結合在一起。該堆棧分為三個不同等級:

  1. 平臺開發 - 這是堆棧的最底層,是剩余堆棧層的構建基礎。該層為 SDSoC? 工具提供平臺定義。

  2. 算法開發 – 這是堆棧的中間層,為所需算法的實現提供支持。該層有助于圖像處理和機器學習推斷引擎加快向可編程邏輯中轉移。

  3. 應用開發 – 這是堆棧的最高層,可提供行業標準框架支持。該層用來開發應用,以便利用平臺開發和算法開發層。

堆棧的算法和應用層支持傳統圖像處理流程和機器學習流程。在算法層中,支持用 OpenCV 庫開發圖像處理算法。這包括:能將多種 OpenCV 功能(包括 OpenVX 內核子集)加速放在可編程邏輯中實現。為支持機器學習,算法開發層提供幾種可以放在 PL 中用以實現機器學習推斷引擎的預定義硬件功能。然后,由應用開發層訪問這些圖像處理算法和機器學習推斷引擎,用以創建最終應用,并為 OpenVX 和 Caffe 等高級框架提供支持。

圖 3 - reVISION 堆棧

reVISION 堆棧能提供所有必要元素,用以實現高性能監控系統所需的算法。

在 reVISION 中加速 OpenCV

算法開發層的最重要優勢之一是能夠加速多種 OpenCV 功能。該層中,可加速的 OpenCV 功能被分成四個高級類別。

  1. 計算 – 包括的功能有:兩個幀的絕對偏差、像素運算(加、減和乘)、梯度和積分運算。

  2. 輸入處理 – 支持位深度轉換、通道運算、直方圖均衡化、重新映射和尺寸重調整。

  3. 濾波 - 支持多種濾波器,包括 Sobel、自定義卷積和高斯濾波器。

  4. 其他 – 提供多種功能,包括 Canny/Fast/Harris 邊緣檢測、閥值以及 SVM 和 HoG 分級器。

這些功能構成了 OpenVX 子集的核心功能,能夠針對 OpenVX 與應用開發層緊密集成。開發團隊可利用這些功能在可編程邏輯中創建算法流水線。以此方式在邏輯中實現這些功能,這樣能顯著提高算法實現性能。

reVISION 中的機器學習

reVISION 提供與 Caffe 的集成,能夠實現機器學習推斷引擎。與 Caffe 的集成發生在算法開發層和應用開發層。Caffe 框架在 C++ 庫中為開發人員提供大量函數庫、模型和預訓練的權重,以及 Python? 和 MATLAB? 捆綁程序。該框架使用戶能夠創建和訓練網絡,以執行所需的運算,無需重新開始。為便于模型重用,Caffe 用戶可通過模型庫(model zoo)共享模型;庫中提供多個網絡模型,用戶可針對專門的任務實現和更新網絡模型。在 prototxt 文件中定義這些網絡和權重,當在機器學習環境中部署時,使用該文件來定義推斷引擎。

reVISION 提供 Caffe 集成功能,使機器學習推斷引擎的實現非常簡單,只需提供 prototxt 文件即可;剩下的工作由框架來完成。然后,使用這個 prototxt 文件來配置處理系統以及可編程邏輯中的硬件優化庫。可編程邏輯用來實現推斷引擎,并包含 Conv、ReLu、Pooling 等功能。

圖 4 - Caffe 流程集成

機器學習推斷引擎中的數字表達對性能也起到重要作用。機器學習越來越多地使用更為高效、降低精度的定點數字系統,例如 INT8 表達法。與傳統的浮點 32 (FP32)方法相比,定點降精度數字系統不會造成較大精度損失。與浮點相比,定點運算更易于實現,因此改用 INT8 后能實現更高效、快速的解決方案。可編程邏輯解決方案最適合使用定點數字,reVISION 能在 PL 中使用 INT8 表達法。采用 INT8 表達法后,可在 PL 中使用專用 DSP 模塊。有了這些 DSP 模塊的架構,當使用相同的內核權重時,可同時執行兩個 INT8 乘法累積運算。這樣不僅能獲得高性能實現方案,而且可以降低功耗。憑借可編程邏輯的靈活特性,也可以輕松實現精度更低的定點數字表達形式。

結論

reVISION 使開發人員能夠利用 Zynq-7000 和 Zynq UltraScale+ MPSoC 器件所提供的功能。而且,即使不是專家也能利用可編程邏輯來實現算法。這些算法和機器學習應用可通過高級的行業標準框架來實現,從而縮短系統開發時間。這使開發人員能夠提供響應性和可重配置能力更強而且功耗更加優化的系統。

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

    關注

    32

    文章

    1794

    瀏覽量

    131166
  • reVISION
    +關注

    關注

    0

    文章

    3

    瀏覽量

    4100

原文標題:借助 reVISION 加速監控系統的開發

文章出處:【微信號:xilinx_inc,微信公眾號:賽靈思】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    reVISION堆棧宣告Xilinx進入視覺導向機器學習終端市場

    Xilinx可重配置加速堆棧面向云,reVISION堆棧面向端,它可使得沒有或很少硬件專業知識的嵌入式軟件和系統工程師,也可以很輕松、很快速地開發視覺導向的機器學習應用。
    發表于 03-16 09:47 ?2891次閱讀

    《Visual C# 2008程序設計經典案例設計與實現》---利用希爾算法實現從大到小排序

    《Visual C# 2008程序設計經典案例設計與實現》---利用希爾算法實現從大到小排序
    發表于 05-17 13:27

    如何使用Zedboard運行reVision堆棧

    /revision-overview.pdf,第6頁,也沒有提到過:http://forums.xilinx.com/t5/Xcell-Daily-Blog
    發表于 10-10 06:25

    如何利用FPGA來實現RC6算法的設計?

    RC6的工作原理是什么?如何利用FPGA來實現RC6算法的設計?
    發表于 05-08 06:50

    如何利用FPGA設計實現GNSS信號的頻域快速捕獲算法

    如何利用FPGA設計實現GNSS信號的頻域快速捕獲算法
    發表于 05-20 06:40

    如何利用查理復用算法Charlieplexing實現數碼管?

    如何利用查理復用算法Charlieplexing實現數碼管?
    發表于 02-09 07:14

    利用KNN算法實現基于系統調用的入侵檢測技術

    算法來自一種文本分類算法-KNN 算法,文中給出了用該算法實現的入侵檢測系統模型.利用
    發表于 06-13 11:01 ?18次下載

    HT MCU 軟件堆棧的應用

    HT MCU 軟件堆棧的應用介紹:對于 Holtek 八位元單片機來說,堆棧資源往往是有限的。例如,HT48R10A-1 就只有兩級堆棧。本文將介紹如何利用軟件
    發表于 03-26 08:33 ?16次下載

    PCI Express Revision 2 Receive

    This document describes the RX jitter tolerance test requirements for PCI Express revision 2.
    發表于 07-26 12:02 ?14次下載

    利用FFT IP Core實現FFT算法

    利用FFT IP Core實現FFT算法 摘要:結合工程實踐,介紹了一種利用FFT IP Core實現FFT的方法,設計能同時對兩路實數序
    發表于 01-16 10:04 ?6896次閱讀
    <b class='flag-5'>利用</b>FFT IP Core<b class='flag-5'>實現</b>FFT<b class='flag-5'>算法</b>

    SSD1309-Revision 1.1

    SSD1309-Revision 1.1,感興趣的小伙伴們可以看看。
    發表于 07-29 17:46 ?232次下載

    堆棧指針sp的內容是什么

    堆棧是一塊保存數據的連續內存。一個名為堆棧指針(SP)的寄存器指向堆棧的頂部。 堆棧的底部在一個固定的地址。堆棧的大小在運行時由內核動態地調
    發表于 11-13 09:04 ?3.4w次閱讀
    <b class='flag-5'>堆棧</b>指針sp的內容是什么

    reVISION堆棧為視覺導向應用鋪路

    全新的reVISION?堆棧能夠支持更廣泛的沒有或者很少硬件設計專業知識的嵌入式軟件和系統工程師,使其也可以使用賽靈思技術更輕松,更快速地開發視覺導向的智能系統。 傳統的高端消費市場,汽車,工業
    的頭像 發表于 11-22 06:23 ?2681次閱讀

    利用FFT算法實現快速傅里葉變換

    簡 介: 利用FFT算法實現快速傅里葉變換, 在理論、工程中具有非常廣泛的應用。除了能夠在合適的計算平臺完成FFT算法,同時還需要注意到它在頻譜分析中可能帶來的頻率混疊以及頻率泄露等問
    的頭像 發表于 07-10 09:07 ?3233次閱讀

    PLC編程實現堆棧功能

    本文主要介紹堆棧原理、PLC編程如何實現堆棧功能以及仿真演示等幾部分,PLC編程使用的軟件為博圖V15.仿真演示為其自帶的PLCSIM軟件。 堆棧主要用于數據處理,是將數據進行先后順
    發表于 04-17 11:49 ?3次下載
    PLC編程<b class='flag-5'>實現</b><b class='flag-5'>堆棧</b>功能