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

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

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

3天內不再提示

如何使用NVIDIA DeepStream和Edge Impulse快速推進計算機視覺部署

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 2024-01-02 10:48 ? 次閱讀

基于 AI計算機視覺(CV)應用日益增多,這對于從視頻流中提取實時洞察至關重要。這項革命性的技術使作業人員能夠在沒有大量操作干預的情況下獲得有價值的信息,從而為創新和解決問題帶來了新的可能性。

NVIDIA DeepStream SDK 專門用于那些使用機器學習(ML)從視頻流中提取深入洞察的智能視頻分析(IVA)用例。在 NVIDIA 硬件上運行時,它使用 GPU 加速 ML,同時使用加速硬件實現預處理性能的最大化。

本文將探討用于模型開發的 Edge Impulse 與用于部署的 NVIDIA DeepStream SDK 相結合的潛力,以便快速創建端到端應用。

計算機視覺應用

在如今的環境中,快速構建復雜、可擴展的 CV 應用的能力至關重要。典型的 CV 應用涵蓋了各種用例,包括車輛識別、流量測量、檢測系統、生產線質量控制、通過監控加強安全和安保、智能結賬系統和過程測量等。

將機器智能進行集成來分析業務流程中的多媒體流可以帶來巨大的價值。憑借無與倫比的準確性和可靠性,機器智能可以幫助精簡運維,從而提高效率。

預建的 AI 模型有時并不是合適的解決方案,并且往往需要針對其未考慮到的特定問題來進行微調。

構建基于 AI 的 CV 應用通常需要三種技能:MLOps、CV 應用開發和部署(DevOps)。如果沒有這些專業技能,項目的投資回報率和交付時間都可能面臨風險。

過去,復雜的 CV 應用需要高度專業化的開發人員,因此需要耗費較長的學習周期和昂貴的資源。

Edge Impulse 與 NVIDIA DeepStream SDK 的組合提供了一個用戶友好的互補解決方案堆棧,可幫助開發人員快速創建 IVA 解決方案。您可以針對特定用例輕松自定義應用,將 NVIDIA 硬件直接集成到您的解決方案中。

DeepStream 可免費使用,Edge Impulse 則提供了一個免費層,適合許多 ML 模型構建用例。

0d952baa-a6eb-11ee-8b88-92fbcf53809c.jpg

圖 1. Edge Impulse 和 NVIDIADeepStream SDK 解決方案堆棧

使用 NVIDIA DeepStream

構建 CV 應用

Deepstream SDK 是 NVIDIA Metropolis 的一個組件,旨在支持大規模的視頻分析。您可以快速、輕松地創建可直接部署在 NVIDIA 硬件設備上的生產就緒 CV 管線。

DeepStream 應用的構建方法如下:

從命令行進行構建

使用 Graph Composer 以可視化的方式進行構建

使用 DeepStream 參考應用和配置文件進行構建,無需代碼

使用 C++Python 代碼進行進一步自定義

如果您不是開發人員,可以使用前三種方法中的任何一種,不到一小時就能搭建好管線,并與訓練好的 ML 模型一起運行。如果您需要更多自定義功能,可以使用現有模板來構建一個自定義編碼的解決方案。

部署 CV 應用

在創建管線后,您可以直接將其部署到 NVIDIA 硬件設備上,如邊緣設備(如 NVIDIA Jetson Nano)、高性能計算(HPC)和云部署,以及混合部署等。

您可以將應用部署在 NVIDIA 邊緣硬件上在本地運行,并直接連接視頻源,以減少延遲。如果您需要處理復雜的管線或容納超出 NVIDIA 邊緣設備能力的多個視頻源,可以將相同的管線部署到您首選的 IaaS 供應商的 NVIDIA 云實例上。

您也可以采用混合部署的方法,將管線部署到 NVIDIA 邊緣設備上,然后使用 NVIDIA Triton 推理服務器遠程執行推理。

Triton 能夠遠程執行模型,接收來自客戶端的輸入幀并返回結果。Triton 可使用 NVIDIA GPU,也可在 x86 上執行推理,并支持并發和動態批處理。Triton 還支持大多數常用的框架,包括 TensorFlow 和 PyTorch。

DeepStream 通過名為 Gst-nvinferserver 的 Gst-nvinfer 推理插件支持 Triton。通過使用該插件,您可以在 DeepStream 應用中使用 Triton 實例。

IVA 應用的好壞取決于構建時所使用的 ML 模型。雖然有許多預構建模型可以使用,但用例往往需要自定義模型和 MLOps 工作流。因此需要有一個易于使用的 MLOps 平臺來實現快速部署,尤其在與 DeepStream 快速應用開發相結合時。

用于機器學習的 Edge Impulse

Edge Impulse 提供了一套功能強大的 ML 模型構建工具,這些模型可以直接部署到 NVIDIA 目標上并導入進 DeepStream 應用中。通過無縫集成 NVIDIA 硬件加速和 DeepStream SDK,Edge Impulse 能夠幫助您快速擴展項目。

Edge Impulse 在整個過程中為各級開發人員提供指導。經驗豐富的 ML 專業人員將享受到從不同來源導入數據的便捷性和端到端模型構建流程。您還可以將自定義模型與自定義學習塊功能集成在一起,為 MLOps 減輕繁重的工作。

如果您是機器學習新手,Edge Impulse 流程會在您使用該環境時指導構建基本模型。可以在 DeepStream 中使用的基本模型類型包括 YOLO 對象檢測和分類。

您還可以改造專為 tinyML 目標構建的模型,使其適用于邊緣用例和功能更強大的 NVIDIA 硬件。許多邊緣 AI 用例涉及復雜的應用,需要更強大的計算資源。NVIDIA 硬件可以幫助解決與受限設備的局限性相關的挑戰。

您可以使用 Edge Impulse 從頭開始創建自己的模型,Edge Impulse 還集成了 NVIDIA TAO 工具套件,可以使用 Computer Vision Model Zoo 中的一百多個預訓練模型。Edge Impulse 是 TAO 的補充,可用于將這些模型調整為自定義應用,這對企業用戶來說是一個很好的出發點。

0da26cac-a6eb-11ee-8b88-92fbcf53809c.png

圖 2. NVIDIA TAO 與

Edge Impulse Enterprise 相結合

使用 Edge Impulse 構建

適用于 DeepStream 的模型

在構建完模型后,將該模型部署到 DeepStream 中。從 Edge Impulse 導出模型文件并將其導入到 DeepStream 項目中。然后按照配置步驟操作,確保您的 Edge Impulse 模型能與 DeepStream 配合使用。該流程一般包括四個步驟(圖 3)。

0da9fcec-a6eb-11ee-8b88-92fbcf53809c.png

圖 3. 將模型文件從 Edge Impulse

部署到 NVIDIA DeepStream 的四個步驟

第 1 步:

在 Edge Impulse 中構建模型

首先在 Edge Impulse Studio 中構建 YOLO 或圖像分類模型。DeepStream 推理 Gst-nvinfer 插件要求輸入層的張量為 NCHW 格式。請務必選擇 Jetson Nano 作為目標,并使用 FP32 權重。

第 2 步:

從 Edge Impulse 導出模型

Edge Impulse 可以從 Edge Impulse Studio 的儀表盤頁面中導出模型。YOLOv5 可以導出為帶有 NCHW 輸入層的 ONNX,以便與 DeepStream 一起使用。

0db7c1ce-a6eb-11ee-8b88-92fbcf53809c.png

圖 4. Edge Impulse Studio 儀表盤

顯示如何導出為 ONNX 模型

DeepStream 中的 IVA 管線通常由一個主要推理(PGIE)步驟組成,該步驟使用邊界框坐標執行對象檢測。相關的對象類別會傳遞給二級推理步驟(SGIE),后者會對每個對象進行分類。每個步驟都以 Gst-nvinfer 插件實例的形式實現。

第 3 步:

將模型轉換成與 DeepStream

兼容的 ONNX 格式

在將 YOLO 與 DeepStream 結合使用時,需要使用一個自定義輸出層解析器來從輸出層中提取邊界框和對象類別,然后將其傳遞給下一個插件。有關自定義 YOLO 輸出解析器的詳細信息,請參見如何使用自定義 YOLO 模型:

https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_custom_YOLO.html

Edge Impulse 使用的 YOLOv5 是一種更新、性能更強大的模型,其輸出張量格式與 YOLOv3 略有不同。YOLOv3 有三個輸出層,分別負責檢測不同尺度的物體,而 YOLOv5 只有一個輸出層,使用錨框來處理各種尺寸的物體。

DeepStream 基于專門用于多媒體用例的 GStreamer。NVIDIA 在 GStreamer 管線中添加了支持深度學習的功能,包括額外的 ML 相關元數據,這些元數據通過 Gst-Buffer 在管線中傳遞,并通過 Gst-Buffer 封裝在 NvDsBatchMeta 結構中。

0dc61fda-a6eb-11ee-8b88-92fbcf53809c.png

圖 5. DeepStream 元數據層次

YOLO 的輸出張量不同于 DeepStream 所需的邊界框數據,這些邊界框數據保存在 NvDsObjectMeta 中。為了將 YOLO 與 DeepStream 結合使用,就需要一個自定義輸出解析器來轉換 YOLO 輸出,以滿足 NvDsObjectMeta 在運行時的要求。NVIDIA 提供了一個通過 YOLOv3 運行的示例插件。

Edge Impulse 使用 YOLOv5。YOLOv3 和 YOLOv5 在輸出層之間的差異使得 YOLOv3 插件不適合與 YOLOv5 一起使用(圖 6)。

0dd7bbdc-a6eb-11ee-8b88-92fbcf53809c.png

圖 6. YOLOv3 和 YOLOv5 輸出張量結構的比較

要使用在 Edge Impulse 中訓練的 YOLOv5 模型,必須創建一個自定義的 YOLOv5 輸出解析器來處理單個輸出張量。可以使用的一種實現方式是與 Edge Impulse ONNX 格式導出模型一起工作的第三方輸出解析器。

對于圖像分類模型,需要將 Edge Impulse 以 NHWC 格式提供的默認 TFLite Float32 及其輸入層轉換為 NCHW 格式。

0de431e6-a6eb-11ee-8b88-92fbcf53809c.png

圖 7. Edge Impulse Studio 儀表盤

顯示 TFLight Float32 的位置

使用以下 tf2onnx 命令即可輕松實現:

python -m tf2onnx.convert --inputs-as-nchw serving_default_x:0 --opset 13 --tflite MODELFILE --output OUTPUT.ONNX

MODELFILE 是輸入文件,OUTPUT.ONNX 是輸出文件,Edge Impulse 生成的輸入層名稱被指定為 serving_default_x:0。因此,該輸入層經過轉換后符合 DeepStream 的要求。

0dff0214-a6eb-11ee-8b88-92fbcf53809c.png

圖 8. Edge Impulse 默認輸入層形狀

與 DeepStream Gst-nvinfer 插件比較

第 4 步:

創建推理插件配置文件

DeepStream 要求為 Gst-nvinfer 插件的每個實例創建純文本配置文件,以指定運行時要求,其中包括 ONNX 模型文件或生成的 TRT 引擎文件,以及包含標簽名稱的文本文件。圖 9 顯示了使用 Edge Impulse YOLOv5 和分類模型所需的最小參數集。

0e055b3c-a6eb-11ee-8b88-92fbcf53809c.png

圖 9. 使用 Edge Impulse 所創建的模型

的 Gst-nvinfer 插件配置參數

請注意,雖然為了便于說明,注釋與參數并列顯示,但所有配置參數都應另起一行。

process-mode參數可用于指定插件是一級還是二級。請注意,在指定 ONNX 文件后,DeepStream 會使用 trtexec 生成 NVIDIA TensorRT 在 NVIDIA GPU 上執行的 TensorRT 引擎。

創建該引擎后,使用model-engine-file參數指定該引擎。可以注釋掉 model-file參數,以防止在每次運行時都重新創建引擎,從而節省啟動時間。

根據 model-color-mode(模型是 RGB 還是灰度)的不同,該參數必須分別設置為 0 或 2。這將與 Edge Impulse Studio 中設置的顏色深度相對應。

上例展示了如何將該模型用作主推理插件。通過設置 process-mode屬性,也可以將該模型用作第二階段分類器:

process-mode=2 #SGIE

圖 9 中的示例還顯示了兩階段管線所需的最小配置文件,其中 YOLO 模型會首先檢測對象,然后在第二階段分類器中對它們單獨分類。對于 YOLO 模型,可以編輯默認的 YOLO 標簽文件,并根據 YOLO 標準格式,將標簽替換為自定義模型的標簽,每個標簽另起一行。

在分類模型中,標簽用分號分隔。在運行期間,將根據這些文件對模型進行相應的索引,并顯示您指定的文本。

DeepStream 可通過引用管線中嵌入這些設置的配置文件來使用。







審核編輯:劉清

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

    關注

    14

    文章

    4940

    瀏覽量

    102818
  • 計算機視覺
    +關注

    關注

    8

    文章

    1696

    瀏覽量

    45928
  • 機器學習
    +關注

    關注

    66

    文章

    8378

    瀏覽量

    132424
  • python
    +關注

    關注

    56

    文章

    4782

    瀏覽量

    84461

原文標題:使用 NVIDIA DeepStream 和 Edge Impulse 快速推進計算機視覺部署

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    什么是計算機視覺計算機視覺的三種方法

    計算機視覺是指通過為計算機賦予人類視覺這一技術目標,從而賦能裝配線檢查到駕駛輔助和機器人等應用。計算機缺乏像人類一樣憑直覺產生
    的頭像 發表于 11-16 16:38 ?4474次閱讀
    什么是<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>?<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>的三種方法

    機器視覺計算機視覺的關系簡述

    初涉機器視覺領域,總是容易將其與計算機視覺這一概念混淆。實際上兩者確實存在一定的相同之處,但也不能因此而將這兩者視為同一概念,因為這兩者還存在著顯著的差別。而與此同時,兩者也還有著密不可分的關系
    發表于 05-13 14:57

    深度學習與傳統計算機視覺簡介

    文章目錄1 簡介1.1 深度學習與傳統計算機視覺1.2 性能考量1.3 社區支持2 結論3 參考在計算機視覺領域中,不同的場景不同的應用程序需要不同的解決方案。在本文中,我們將
    發表于 12-23 06:17

    基于OpenCV的計算機視覺技術實現

    基于OpenCV的計算機視覺技術實現OpencV是用來實現計算機視覺相關技術的開放源碼工作庫,是計算機
    發表于 11-23 21:06 ?0次下載
    基于OpenCV的<b class='flag-5'>計算機</b><b class='flag-5'>視覺</b>技術實現

    計算機視覺講義

    計算機視覺講義:機器視覺是研究用計算機來模擬生物外顯或宏觀視覺功能的科學和技術.機器視覺系統的首
    發表于 03-19 08:08 ?0次下載

    計算機視覺與機器視覺區別

     “計算機視覺”,是指用計算機實現人的視覺功能,對客觀世界的三維場景的感知、識別和理解。計算機視覺
    的頭像 發表于 12-08 09:27 ?1.2w次閱讀

    計算機視覺的發展歷史_計算機視覺的應用方向

    計算機視覺40多年的發展中,盡管人們提出了大量的理論和方法,但總體上說,計算機視覺經歷了4個主要歷程。即: 馬爾計算
    的頭像 發表于 07-30 17:21 ?7073次閱讀

    計算機視覺常用算法_計算機視覺有哪些分類

    本文主要介紹了計算機視覺常用算法及計算機視覺的分類。
    的頭像 發表于 07-30 17:34 ?1.4w次閱讀

    計算機視覺入門指南

    這是一篇計算機視覺入門指南,從概念、原理、用例等角度介紹了計算機視覺。 「機器能夠模擬人類視覺系統」的幻想已經過時了。自 1960 年代第一
    的頭像 發表于 11-27 09:52 ?2818次閱讀

    NVIDIA DeepStream SDK是什么 有哪些特性

    快速開發和部署視覺 AI 應用和服務。DeepStream 提供多平臺、可擴展、TLS 加密的安全性,可以部署在本地、邊緣和云端。
    的頭像 發表于 06-30 10:55 ?2060次閱讀

    計算機視覺的基礎概念和現實應用

    本文將介紹計算機視覺的基礎概念和現實應用,對任何聽說過計算機視覺但不確定它是什么以及如何應用的人,本文是了解計算機
    的頭像 發表于 11-08 10:10 ?1468次閱讀

    NVIDIA 攜手微軟打造大規模云端 AI 計算機

    快速、經濟的 AI 開發和部署 NVIDIA 于昨日宣布與微軟展開一項為期多年的合作,雙方將共同打造全球最強大的 AI 超級計算機。微軟 Azure 的先進超級
    的頭像 發表于 11-17 19:25 ?681次閱讀

    使用Edge ImpulseNvidia Jetson的面罩檢測器

    電子發燒友網站提供《使用Edge ImpulseNvidia Jetson的面罩檢測器.zip》資料免費下載
    發表于 06-26 11:29 ?1次下載
    使用<b class='flag-5'>Edge</b> <b class='flag-5'>Impulse</b>和<b class='flag-5'>Nvidia</b> Jetson的面罩檢測器

    Edge Impulse發布新工具,助 NVIDIA 模型大規模部署

    借助 Edge ImpulseNVIDIA TAO 工具包的協同效應,工程師得以快速構建并部署至邊緣優化硬件(如上述型號)的
    的頭像 發表于 03-25 16:00 ?686次閱讀

    計算機視覺的主要研究方向

    計算機視覺(Computer Vision, CV)作為人工智能領域的一個重要分支,致力于使計算機能夠像人眼一樣理解和解釋圖像和視頻中的信息。隨著深度學習、大數據等技術的快速發展,
    的頭像 發表于 06-06 17:17 ?850次閱讀