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

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

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

3天內不再提示

了解集成式嵌入式視覺平臺應用設計

工程師兵營 ? 2018-09-18 14:57 ? 次閱讀

隨著攝像頭和其他設備產生的數據在快速增長,促使人們運用機器學習從汽車、安防和其他應用產生的影像中提取更多有用的信息。專用器件有望在嵌入式視覺應用中實現高性能機器學習 (ML) 推理。但是此類器件大都處于早期開發階段,因為設計人員正在努力尋找最有效的算法,甚至人工智能 (AI) 研究人員也在迅速推演新方法。

目前,開發人員一般使用針對 ML 的可用 FPGA 平臺來構建嵌入式視覺系統,以期滿足更高的性能要求。與此同時,他們可以保持所需的靈活性,以跟上機器學習發展的步伐。

本文將介紹 ML 處理的要求,以及為何 FPGA 能解決許多性能問題。然后,將介紹一個合適的基于 FPGA 的 ML 平臺及其使用方法。

機器學習算法和推理引擎

在 ML 算法中,卷積神經網絡 (CNN) 已成為圖像分類的首選解決方案。其圖像識別的準確率非常高,因而得以廣泛應用于多種應用,跨越不同的平臺,例如智能手機、安防系統和汽車駕駛員輔助系統。作為一種深度神經網絡 (DNN),CNN 使用的神經網絡架構由專用層構成。在對標注圖像進行訓練期間,它會從圖像中提取特征,并使用這些特征給圖像分類(參見“利用現成的軟硬件啟動機器學習”)。

CNN 開發人員通常在高性能系統或云平臺上進行訓練,使用圖形處理單元 (GPU) 加速在標注圖像數據集(通常數以百萬計)上訓練模型所需的巨量矩陣計算。訓練完成之后,訓練好的模型用在推理應用中,對視頻流中的新圖像或幀進行分類。推理部署完成后,訓練好的模型仍然需要執行同樣的矩陣計算,但由于輸入量要少很多,開發人員可以將 CNN 用于在通用硬件上運行的普通機器學習應用(參見“利用 Raspberry Pi 構建機器學習應用”)。

然而,對于許多應用而言,通用平臺缺乏在 CNN 推理中同時實現高準確率和高性能所需的性能。優化技術和替代 CNN 架構(如 MobileNet 或 SqueezeNet)有助于降低平臺要求,但通常會犧牲準確率并增加推理延時,而這可能與應用要求相沖突。

與此同時,快速發展的算法使得機器學習 IC 的設計工作變得復雜,因為需要機器學習 IC 既要足夠專門化以加速推理,又要足夠通用化以支持新算法。FPGA 多年來一直扮演著這一特定角色,提供加速關鍵算法所需的性能和靈活性,解決了通用處理器性能不足或沒有專用器件可用的問題。

FPGA 作為機器學習平臺

對于機器學習而言,GPU 仍然是標桿——這是早期的 FPGA 根本無法企及的。最近出現的一些器件,如 Intel Arria 10 GX FPGA 和 Lattice Semiconductor ECP5 FPGA,大大縮小了先進 FPGA 和 GPU 之間的差距。對于某些使用緊湊的整數數據類型的 DNN 架構來說,此類 FPGA 的性能/功耗比甚至高于主流 GPU。

高級 FPGA 組合了嵌入式存儲器和數字信號處理 (DSP) 資源,對于一般矩陣乘法 (GEMM) 運算能夠實現很高的性能。其嵌入式存儲器靠近計算引擎,從而緩解了 CPU 存儲器瓶頸,而這種瓶頸通常會限制通用處理器上機器學習算法的性能。反之,相比于典型 DSP 器件(圖 1),FPGA 上的嵌入式 DSP 計算引擎提供了更多的并行乘法器資源。FPGA 廠商在交付專門用于機器學習的 FPGA 開發平臺時充分利用了這些特性。

Lattice Semiconductor ECP5 高級 FPGA 示意圖

圖 1:Lattice Semiconductor ECP5 之類的高級 FPGA 提供了實現高性能推理所需的并行處理資源和嵌入式存儲器。(圖片來源:Lattice Semiconductor)

例如,Intel 最近推出的支持 FPGA 的 OPENVINO? 擴展了該平臺將推理模型部署到不同類型設備(包括 GPU、CPU 和 FPGA)的能力。在該平臺上,開發人員可使用 Intel 的深度學習推理引擎工作流程,其中整合了 Intel 深度學習部署工具包和在 Intel OPENVINO 工具包中提供的 Intel 計算機視覺軟件開發套件 (SDK)。開發人員使用 SDK 的應用編程接口 (API) 構建模型,并且可利用 Intel 的運行模型優化器針對不同硬件平臺進行優化。

深度學習部署工具包旨在與 Intel DK-DEV-10AX115S-A Arria 10 GX FPGA 開發套件配合使用,讓開發人員能從領先的 ML 框架(包括 Caffe 和 TensorFlow)導入訓練好的模型(圖 2)。在諸如 Arria 10 GX FPGA 開發套件之類目標平臺或使用 Arria 10 GX FPGA 器件的定制設計上,工具包中的模型優化器和推理引擎分別處理模型轉換和部署。

圖 2:支持 FPGA 的 Intel OPENVINO 工具包提供了一套必需的完整工具鏈,可將在 Caffe、TensorFlow 和其他框架上訓練的模型部署到 Arria 10 GX FPGA 開發套件或圍繞 Arria 10 GX FPGA 構建的定制設計上。(圖片來源:Intel)

為了遷移預訓練模型,開發人員使用基于 Python 的模型優化器生成了一個中間表示 (IR),該表示包含在一個提供網絡拓撲的 xml 文件和一個以二進制值提供模型參數的 bin 文件中。除了生成 IR 之外,模型優化器還會執行一項關鍵功能——移除模型中用于訓練但對推理毫無作用的層。此外,該工具會在可能的情況下將每個提供獨立數學運算的層合并到一個組合層中。

通過這種網絡修剪和合并,模型變得更緊湊,進而加快推理時間并減少對目標平臺的存儲器需求。

Intel 推理引擎是一個 C++ 庫,其中包含一組 C++ 類。這些類對于受支持的目標硬件平臺來說是通用的,因此可以在各個平臺上實現推理。對于推理應用而言,開發人員使用像 CNNNetReader 這樣的類來讀取 xml 文件 (ReadNetwork) 中包含的 CNN 拓撲以及 bin 文件 (ReadWeights) 中包含的模型參數。模型加載完成后,調用類方法 Infer() 執行阻塞推理,同時調用類方法 StartAsync() 執行異步推理,當推理完成時使用等待或完成例程處理結果。

Intel 在 OPENVINO 環境提供的多個示例應用程序中演示了完整的工作流程和詳細的推理引擎 API 調用。例如,安全屏障攝像機示例應用程序展示了使用推理模型流水線,以首先確定車輛邊界框(圖 3)。流水線中的下一個模型檢查了邊界框中的內容,識別車輛類別、顏色和車牌位置等車輛屬性。

圖 3:Intel 安全屏障攝像機示例應用程序演示了使用推理流水線,先識別車輛(綠色邊界框),再識別顏色、類型和車牌位置(紅色框)等車輛屬性,最后識別車牌字符(紅色文本)。(圖片來源:Intel Corp.)

流水線中的最后一個模型使用這些車輛屬性從車牌中提取字符。為了使用該模型進行推理,示例代碼顯示了利用推理模型 C++ 庫創建對象 (LPR),而該對象則是名為 LPRDetection 的結構的一個實例。此結構使用推理引擎 API 類對象來讀取 (CNNNetReader) 并驗證模型輸入和輸出(列表 1)。

副本CNNNetworkread()override{
std::cout<second;
inputInfoFirst->setInputPrecision(Precision::U8);
inputInfoFirst->getInputData()->setLayout(Layout::NCHW);
inputImageName=inputInfo.begin()->first;
autosequenceInput=(++inputInfo.begin());
inputSeqName=sequenceInput->first;
if(sequenceInput->second->getTensorDesc().getDims()[0]!=maxSequenceSizePerPlate){
throwstd::logic_error("LPRpost-processingassumescertainmaximumsequences");
}

//---------------------------Checkoutputs
std::cout<first;
std::cout<

列表 1:此代碼片段來自 Intel OPENVINO 工具包中的安全屏障攝像機示例應用程序,演示了使用 Intel 推理引擎 C++ 庫 API 將模型及其參數讀入推理引擎的設計模式。(代碼來源:Intel)

為了執行推理,該代碼加載數據并調用 submitRequest 方法,該方法啟動推理周期并等待結果,然后顯示識別的車牌字符(列表 2)。

副本if(LPR.enabled()){//licenceplate
//expandingaboundingboxabit,betterforthelicenseplaterecognition
result.location.x-=5;
result.location.y-=5;
result.location.width+=10;
result.location.height+=10;
autoclippedRect=result.location&cv::Rect(0,0,width,height);
cv::MatPlate=frame(clippedRect);
//----------------------------RunLicensePlateRecognition
LPR.enqueue(Plate);
t0=std::chrono::high_resolution_clock::now();
LPR.submitRequest();
LPR.wait();
t1=std::chrono::high_resolution_clock::now();
LPRNetworktime+=std::chrono::duration_cast(t1-t0);
LPRInferred++;
//----------------------------Processoutputs
cv::putText(frame,
LPR.GetLicencePlateText(),
cv::Point2f(result.location.x,result.location.y+result.location.height+15),
cv::FONT_HERSHEY_COMPLEX_SMALL,
0.8,
cv::Scalar(0,0,255));
if(FLAGS_r){
std::cout<

列表 2:此代碼片段來自 Intel OPENVINO 工具包中的安全屏障攝像機示例應用程序,展示了加載模型、執行推理和生成結果的設計模式。(代碼來源:Intel)

集成式嵌入式視覺平臺

Intel 的 OPENVINO 方法強調平臺重定向,而 Lattice 的 SensAI 平臺完全聚焦于 FPGA 推理。SensAI 平臺的特性之一是為 DNN 架構(包括 CNN 和一個稱為二值化神經網絡 (BNN) 的緊湊架構)提供 FPGA IP。針對嵌入式視覺,SensAI CNN IP 為完整的推理引擎提供框架,將控制子系統、存儲器、輸入和輸出的接口與實現不同類型模型層(包括卷積、BatchNorm 歸一化、ReLu 激活、池化和其他)的資源結合在一起(圖 4)。

圖 4:Lattice Semiconductor CNN IP 實現了一個完整的推理系統框架,將專用引擎和用于控制、存儲器、輸入、輸出的接口結合在一起。(圖片來源:Lattice Semiconductor)

為了實現 CNN 模型,開發人員首先要在針對 ECP5 FPGA 的 Lattice Diamond 設計環境中或針對其他 Lattice FPGA 系列的 Radiant 設計環境中,利用 Lattice Clarity 配置工具配置 CNN。這里,開發人員可以指定模型類型(CNN 或 BNN)、卷積引擎數(最多 8 個)及每層的內部存儲大小(最多 16 Kb)或二進制大對象 (blob)。配置 CNN 之后,開發人員使用設計環境生成核心,作為 FPGA 比特流。

開發人員單獨將通過 Caffe 或 TensorFlow 開發并訓練好的模型導入 SensAI 平臺。這里,Lattice 神經網絡編譯器將訓練好的 Caffe 或 TensorFlow 模型轉換為一組包含神經網絡模型參數和執行命令序列的文件。SensAI 平臺將來自設計環境和編譯器的單獨輸出一起并入 FPGA,以提供最終的推理模型(圖 5)。

圖 5:Lattice Semiconductor SensAI 平臺將其 CNN 和 BNN IP 與其神經網絡編譯器結合在一起,使開發人員能夠轉換 Caffe 或 TensorFlow 模型,以在 Lattice FPGA 上作為推理引擎來運行。(圖片來源:Lattice Semiconductor)

針對嵌入式視覺應用,Lattice LF-EVDK1-EVN 嵌入式視覺開發套件 (EVDK) 為運行 CNN 模型推理提供了理想的目標平臺。EVDK 提供了一個完整的 80 x 80 mm 三板堆疊式視頻平臺,包括 Lattice CrossLink 視頻輸入板、帶 ECP5 FPGA 的處理器板和 HDMI 輸出板。開發人員可以將 EVDK 用作 Lattice 提供的多個示例 CNN 應用的目標平臺。例如,Lattice 速度標志檢測參考設計運用 EVDK 來展示 SensAI CNN IP 在典型汽車應用中的應用(圖 6)。

Lattice Semiconductor 速度標志檢測參考設計示意圖

圖 6:Lattice Semiconductor 速度標志檢測參考設計利用 SensAI 平臺和 Lattice LF_EVDK1-EVN 嵌入式視覺開發套件提供一個完整的推理應用,開發人員可以對其立即操作或詳細探索。(圖片來源:Lattice Semiconductor)

此示例應用程序的項目文件包括全套文件,從 Caffe caffemodel 和 TensorFlow pb 格式的模型開始。因此,開發人員可以探索這些模型的細節。例如,使用 TensorFlow import_pb_to_tensorboard.py 實用程序,開發人員可以導入 Lattice 提供的 pb 模型,以查看此示例應用程序中使用的 CNN 的細節(圖 7)。本例中,所提供的模型是由四個“Fire”模塊組成的序列,每個模塊包括:

  • Conv2D 層,執行 3 x 3 卷積以從輸入流中提取特征

  • 激活層,執行 BatchNorm 歸一化,然后執行修正線性單元 (ReLU) 激活

  • MaxPool 池化層,用于對前一層的輸出進行采樣

圖 7:Lattice 速度標志檢測示例應用程序包括 TensorFlow pb 模型,開發人員可以將其導入 TensorBoard 進行詳細檢查。注意:數據向上流過此圖中的各層。(圖片來源:Digi-Key Electronics)

開發人員可以使用 SensAI 平臺生成模型文件,完成前面描述的模型流程。或者,開發人員可以使用所提供的文件直接跳轉到部署階段。任一情況下,文件都是通過接有適配器的 microSD 卡加載到 EVDK 中。

在操作中,EVDK 上的攝像機向 ECP5 FPGA 提供視頻流,其中配置的 CNN 加速器 IP 執行命令序列以執行推理。同任何推理引擎一樣,每個輸出通道都會產生一個結果,指出與該輸出通道相關聯的標簽即為輸入圖像的校正標簽的概率。本例中,模型是用每小時 25、30、35、40、45、50、55、60 和 65 英里的限速標志的標注圖像進行訓練的。因此,當模型在其輸入字段中的任何位置檢測到限速標志時,它會顯示檢測到的標志對應于每小時 25、30、35、40、45、50、55、60 或 65 英里限速的概率(圖 8)。

圖 8:Lattice 速度標志檢測演示運行在 Lattice EVDK 上,對視頻輸入流執行推理,生成輸出值,指示捕獲到的圖像對應于與該特定輸出相關聯的標簽的可能性。本例中,它顯示限速標志最有可能是 25 mph。(圖片來源:Lattice Semiconductor)

總結

為在嵌入式視覺應用中運用機器學習,開發人員使用可用硬件平臺實現所需性能水平的能力受到了限制。然而,高性能 FPGA 的出現使得開發人員可以構建性能接近 GPU 的推理引擎。采用專為嵌入式視覺設計的機器學習 FPGA 平臺,開發人員可以專注于特定需求,使用標準機器學習框架訓練模型,并依靠 FPGA 平臺實現高性能推理。

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

    關注

    1629

    文章

    21736

    瀏覽量

    603389
  • 嵌入式
    +關注

    關注

    5082

    文章

    19126

    瀏覽量

    305207
  • 機器視覺
    +關注

    關注

    162

    文章

    4372

    瀏覽量

    120320
收藏 人收藏

    評論

    相關推薦

    新手怎么學嵌入式?

    。但面對這個復雜的領域,很多人可能會感到迷茫,不知從何處入手。別擔心,本文將為你提供一些入門學習嵌入式技術的建議。 新手入門學習嵌入式技術的途徑 1. 了解基礎知識 首先,要對嵌入式
    發表于 12-12 10:51

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    嵌入式系統開發與硬件的關系 嵌入式系統是專為特定應用設計的計算機系統,它們通常嵌入在所控制的設備中。這些系統的關鍵特點是它們與硬件的緊密集成,這意味著軟件必須為特定的硬件
    的頭像 發表于 12-09 09:38 ?257次閱讀

    ARMxy嵌入式計算機在機器視覺中的卓越表現

    處理系統和輸出顯示系統三部分組成。嵌入式視覺系統硬件集成攝像頭模組和處理板,將圖像捕獲和圖像處理功能結合在一臺設備中。設備支持邊緣計算,接收和處理數據,做出決策,然后將數據發送到其他設備,或本地或基于云的處
    的頭像 發表于 10-10 14:47 ?253次閱讀
    ARMxy<b class='flag-5'>嵌入式</b>計算機在機器<b class='flag-5'>視覺</b>中的卓越表現

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統的核心組件,是一種用于控制和數據處理的計算機硬件,其設計旨在嵌入特定設備中執行專門任務。嵌入式主板如同是設備的“大腦”,主要功能是根據需要管理和控制設備
    的頭像 發表于 09-30 10:05 ?471次閱讀

    嵌入式linux開發板芯片的工作原理

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。 嵌入式Linux開發板概述
    的頭像 發表于 09-02 09:07 ?392次閱讀

    嵌入式系統中的實時操作系統

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。在本節中,您將了解嵌入式軟件開發人員使用哪些流行RTOS以及它們運行的嵌入式
    的頭像 發表于 08-20 11:28 ?493次閱讀

    機器視覺嵌入式中的應用

    機器視覺嵌入式系統中的應用是一個廣泛而深入的話題,涉及到許多不同的領域和技術。 機器視覺嵌入式系統中的應用 1. 引言 機器視覺是一種模
    的頭像 發表于 07-16 10:30 ?528次閱讀

    深度學習算法在嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法在各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰性的任務。本文將從嵌入式平臺的特點、深度學習算法的
    的頭像 發表于 07-15 10:03 ?1399次閱讀

    嵌入式系統怎么學?

    工具:熟悉常用的嵌入式系統開發工具,包括集成開發環境(IDE)、編譯器、調試器(如Keil、IAREmbedded Workbench、Eclipse)等。 5、實時操作系統(RTOS):了解實時
    發表于 07-02 10:10

    嵌入式技術領域的視覺、安全與AI應用

    本次2024年度德國版嵌入式世界展的大獎評選共收到全球百余家企業的申請,經由評審團嚴格篩選,最終選出三項候選提名,并于會場進行了隆重的頒獎儀式。其中,嵌入式視覺、安全與安防、人工智能等應用領域備受矚目。
    的頭像 發表于 04-29 11:20 ?372次閱讀

    嵌入式主板,你了解多少?

    嵌入式主板,也稱為嵌入式計算機主板,是一種專門設計用于嵌入式系統的計算機主板。與臺式機和筆記本電腦中使用的常規主板不同,嵌入式主板設計用于集成
    的頭像 發表于 04-17 15:11 ?1458次閱讀

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術集成嵌入式系統中的一種解決方案。嵌入式系統是一種為特定應用而設計的計算機系統,它通常包括處理器、內存、外設接口等組件,并且被
    的頭像 發表于 03-15 14:29 ?1260次閱讀

    fpga是嵌入式

    FPGA(現場可編程門陣列)不是嵌入式系統,但FPGA在嵌入式系統中有著重要的應用。
    的頭像 發表于 03-14 17:19 ?2321次閱讀

    嵌入式學習步驟

    開發。 嵌入式學習步驟總結如下: (1).確定目標平臺:選擇適合您要開發的嵌入式系統的硬件平臺。這取決于您要控制的設備以及您需要執行的任務。 (2).選擇編程語言:
    發表于 02-02 15:24

    高端嵌入式實驗平臺

    一、整體概述 該嵌入式平臺具有前沿性、專業性、高集成度、功能豐富等特點,平臺涵蓋嵌入式計算機技術、嵌入式
    的頭像 發表于 01-29 09:55 ?528次閱讀
    高端<b class='flag-5'>嵌入式</b>實驗<b class='flag-5'>平臺</b>
    主站蜘蛛池模板: 免费国产小视频| 人人舔| 欧美色综合高清视频在线| 日韩乱轮| 女人张开腿让男人桶免费最新| 欧美亚洲三级| 亚洲久久在线| 久久毛片视频| 又粗又长又色又爽视频| 在线免费日韩| 久久观看视频| 亚洲天堂va| 在线观看日本一区| 日本黄色三级视频| 五月天婷婷影院| 51精品国产| 男同小黄文| 你懂的网址免费国产| 失禁h啪肉尿出来高h健身房| 午夜小网站| 国产人人爱| 婷婷午夜影院| 欧美二级黄色片| 又长又大又粗又硬3p免费视频| 嘿嘿午夜| 深点再深一点好爽好多水| 五月婷婷基地| 亚洲激情综合| 乱轮黄色小说| 七月婷婷在线视频综合| 4虎影院永久地址www| www.日日爱| 色婷婷资源网| 天天操天| 日本免费不卡一区| 久久婷婷丁香七月色综合| 操一操日一日| 日本大片在线看| 国产伦精品一区二区三区女| 四虎国产精品免费视| 天天干夜夜做|