如何使用 NVIDIA Jetson 和 Amazon SageMaker 結合打造智能邊緣

2021-02-24 NVIDIA英偉達企業解決方案

首先就是我們需要一個邊緣智能的開發板 NVIDIA Jetson Nano,雖然是入門級,但是足以應對大部分要求算力不高的場景。Jetson Nano 介紹參考:

https://developer.nvidia.com/embedded/jetson-nano-developer-kit

Jetson Nano Developer Kit SD Card image

因為Jetson Nano的系統是內核是tegra-ubuntu 4.9.140-tegra  aarch64架構,所以NVIDIA給了我們一個microSD card的鏡像來燒錄到板子上,但由於推理框架、庫、軟體、驅動等等都要遵循其架構。就導致了如果沒有一個好的工具,構建一個邊緣推理的環境極其複雜。所以就有了JetPack和SDK Manager。鏡像燒錄參考:

https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#write

NIVIDA JetPack 可以實現在 Jetson 平臺上快速構建機器學習環境,JetPack 包括系統鏡像、TensorRT、CUDA、各種庫和 API、開發工具、和示例代碼。我們可以利用 SDK Manager 來安裝Jetson的軟體環境,SDK Manager 要需要安裝到一臺 Ubuntu Host 主機上,然後由它來打包和推送環境到 Jetson Nano 上。

在使用 SDK Manager 部署環境之前,我們要確認完成以下工作:

然後部署安裝,部署時間取決於你 Host 主機的配置和網絡情況,燒錄過程中會彈出 Jetson nano 的 root 認證。具體步驟參考: 

https://docs.nvidia.com/sdk-manager/install-with-sdkm-jetson/index.html#install-with-sdkm-jetson

NVIDIA TensorRT 是 NVIDIA 推出的深度學習推理的框架,也可以理解為一個優化器。它能夠以更低延遲、高吞吐率來部署推理模型到嵌入式平臺。這個框架可以將 Caffe,TensorFlow 的網絡模型解析,然後與 TensorRT 中對應的層進行一一映射,把其他框架的模型統一全部轉換到 TensorRT 中,然後在 TensorRT 中可以針對NVIDIA 自家的 GPU 實施優化策略,並進行部署加速。TensorRT 已經能夠支持 TensorFlow、Caffe、Mxnet、Pytorch、Darknet 等深度學習框架,這裡我們用到的正是基於Darknet的Yolo。TensorRT可以直接解析他們的網絡模型;對於caffe2,pytorch,mxnet等框架則是首先要將模型轉為 ONNX 的通用深度學習模型,然後對 ONNX模型做解析。而 Tensorflow 和 MATLAB 已經將 TensorRT 集成到框架中去了。具體參考:

https://developer.nvidia.com/tensorrt

NVIDIA DeepStream SDK 提供了完整的流分析工具包,可用於基於 AI 的視頻和圖像分析。實時分析來自攝像頭或傳感器或物聯網網關的數據。底層基於 GStreamer 實現低延遲和高吞吐量。還可以將消息代理如 Kafka 和 MQTT 將邊緣集成到雲中。在 NVIDIA 平臺上的設備上可以加速 H.264 和 H.265 視頻解碼 ,來構建端到端 AI 驅動的應用程式比如:零售分析,停車管理,物流管理,光學檢查和缺陷檢測等。具體參考:

https://developer.nvidia.com/deepstream-sdk

Jetson Nano 可實時處理多達 8 個高清全運動視頻流,可作為用於網絡錄像機 (NVR)、智能攝像機和 IoT 網關的低功耗邊緣智能視頻分析平臺進行部署。NVIDIA 的 DeepStream SDK 使用 ZeroCopy 和 TensorRT 優化端到端推斷管道,以實現邊緣和本地伺服器的終極性能。下圖就是我跑的示例代碼,顯示 Jetson Nano 在 8 個 1080p 流上執行物體檢測,同時基於 ResNet 的模型以全解析度運行,吞吐量為 500MP/s,解碼率為  500 MP/s (H.264/H.265)和視頻編碼率(250 MP/s)H.264/H.265. 具體請參考連結:

https://devblogs.nvidia.com/jetson-nano-ai-computing/

這一點很重要,我們要先把示例代碼跑通。

當我們通過 SDK Manager 將 DeepStream 成功燒錄系統後,在路徑在opt:/opt/nvidia/deepstream/deepstream-4.0/samples/configs/deepstream-app/ 運行nano.txt 的Demo code,如果運行成功,那麼 Jetson Nano 平臺的推理環境就部署成功了。步驟 5 就是我們通過 DeepStream 的 Demo code 運行成功的截圖。

相關焦點

  • NVIDIA論壇常見Jetson問題匯總(1)
    /opt/nvidia/deepstream/deepstream-4.0/sources/objectDetector_Yolo/6.我面臨的問題是「無法啟動nvpmodel服務」。我使用NX SoM和第三方載板。我刷JetPack 4.4 DP,添加了第三方配置。ubuntu第一次啟動是可以的,但是我無法登錄。其日誌I確認顯示「無法啟動nvpmodel服務」。
  • jetson nano開發使用的基礎詳細分享
    通過實現圖像識別,對象檢測和定位,姿勢估計,語義分割,視頻增強和智能分析等強大功能,這些網絡可用於構建自動機器和複雜AI系統。多流視頻分析,Jetson Nano可實時處理多達8個高清全動態視頻流,並可部署為網絡視頻錄像機(NVR),智能相機和物聯網網關的低功耗邊緣智能視頻分析平臺。
  • Jetson-Xavier-NX使用教程
    NX的電路板以防止靜電和短路導致電路損壞。(optional)docker一般來說,使用NVIDIA官網上下載的sdk image燒寫入SD卡或者使用sdk manager/jet package連到板子安裝全部軟體後,裡面什麼都有了,包括docker和nvidia docker裡面都有了,使用
  • 用Jetson NANO做一個防疲勞駕駛的神器
    該系統的功能分為嗜睡檢測,情緒檢測和行車監控(使用Yolov3)模塊。睡意和情感模塊使用OpenCV的Haar Cascades方法進行面部檢測。一旦檢測到駕駛員的面部,這些模塊就會使用內置在PyTorch中並在Jetson Nano上運行的卷積神經網絡來檢測駕駛員的眼睛狀態(張開/閉合)和駕駛員的情緒。
  • 在NVIDIA Jetson集群上運行集群管理軟體K3s
    Docker容器是軟體發展的大趨勢,也包括人工智慧應用2. Kubernet是目前作為Docker領域普及度最高的管理方案3. K3S輕量級管理工具,使用資源更節省、安裝更容易。下載 l4t-ml:r32.4.4-py3 鏡像docker pull nvcr.io/nvidia/l4t-ml:r32.4.4-py32.
  • 10+位機器學習大神測評 Amazon SageMaker 全流程實戰
    為深入了解 Amazon SageMaker 在開發者群體中的使用情況,近期,AWS 聯合 InfoQ 做了一次 Amazon SageMaker 的產品測評。整個測評歷時近 2 個月,從數十份開發者使用報告中精選出 15 份,以 5 份為一組進行整理總結,分別代表初、中、高三個等級的開發者群體使用體驗。現將整理結果分享出來,以饗讀者。
  • 用NVIDIA Jetson TX1構建更好的自動化機器(NV官網學習資源匯總篇)
    如何用NVIDIA Jetson TX1構建更好的自動化機器
  • 【用戶經驗分享】NVIDIA Jetson TX2開發板運行 jetson-inference 出現問題的終極解決辦法
    說說的遇到的情況吧,就是git clone  jetson-inference後,執行cmake ../後老是報nvidia.app.box.com連接不上,有的開發者的解決辦法是fan牆 ,然後下載,即使能翻出去,也是運氣好的情況下才能運行,最後不報錯。
  • NVIDIA論壇常見Jetson問題匯總(2)
    答:請參考NVIDIA Jetson Module EEPROM Layout(網址:https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fjetson_eeprom_layout.html
  • 再教一招NVIDIA Jetson TX2上的騷操作
    上周NVIDIA 發布新版本Deepstream SDK,支持Tesla和Jetson產品 ,這個SDK藉助NVIDIA Tesla GPU和Jetson 的硬體特性(包括卓越的解碼性能,通過降低精度進行高速推理以及低功耗),幫助開發人員快速構建高效、高性能的視頻分析應用程式。
  • 15分鐘連接Jetson Nano與K8S,輕鬆搭建機器學習集群
    在成功將節點連接到集群後,我還將展示如何在Jetson Nano上使用GPU運行簡單的TensorFlow 2訓練會話。K3s是一個輕量級Kubernetes發行版,其大小不超過100MB。在我看來,它是單板計算機的理想選擇,因為它所需的資源明顯減少。你可以查看我們的往期文章,了解更多關於K3s的教程和生態。
  • 【他山之石】如何將MATLAB中開發的深度學習應用部署到NVIDIA Jetson Xavier NX
    從nvidia下載最新的Jetson Xavier NX Developer Kit SD Card Image[6]4. 開機成功,配置機器名及用戶帳戶,並順手更新一下系統5.但咱們得注意區分opencv3和opencv4的引用,否則可能生成代碼後編譯會出錯。
  • Nvidia推出史上最小計算機Jetson Nano
    Talla透露,目前,移動或嵌入式設備上的邊緣計算Jetson系統已被20萬開發人員使用。邊緣計算有助於機器人,無人機,安全攝像頭以及許多其他不希望依賴網際網路連接的設備進行本地處理。Nano,TX2和AGX Xavier可用於創建機器人,比如配備了Isaac機器人引擎和Isaac Gym機器人模擬器的KAYA,CARTER和LINK機器人。
  • AWS發布SageMaker:省略數據清洗、建模、調參等步驟
    在免費範圍之外,具體計費標準因實際服務區而定,但總體成本包含每秒實例使用、每 GB 存儲容量使用以及每 GB 數據傳入 / 傳出等因素。(小編註: 大家可以先試用之後看看 Amazon SageMaker 是否真如 Jassy 所說的這麼智能。)
  • 英偉達NVIDIA Jetson Nano 2GB點亮篇
    考試前的最後一篇文章https://developer.download.nvidia.com/assets/embedded/downloads/jetson-nano-2gb-jp441-sd-card-image/jetson-nano-2gb-jp441-sd-card-image.zip?
  • Jetson Nano安裝tensorflow2.5(英偉達版本)
    JetPack SDK 支持所有 Jetson 模塊和開發者套件。(我的TX1有救了)JetPack SDK 包含適用於 Linux 作業系統的最新 Linux 驅動包 (L4T) 以及用於深度學習、計算機視覺、加速計算和多媒體的 CUDA-X 加速庫與 API。
  • Jetson-inference的安裝
    下載模型和pytorch時,可進行換源後下載,在 「/jetson-inference/tools」 下執行如下命令:$sed -in-place -e 's@https://nvidia.box.com/shared/static@https://bbs.gpuworld.cn/mirror@g' download-models.sh
  • NVIDIA Jetson TX2上的對象檢測
    使用JetPack安裝程序使用最新的作業系統映像刷新Jetson Developer Kit,為主機PC和Developer Kit安裝開發人員工具,並安裝快速啟動開發環境所需的庫和API,示例和文檔。撰寫本文時的最新版本是JetPack 4.1.1。 在大多數情況下,安裝很容易。
  • 使用Python+Dlib構建人臉識別系統(在Nvidia Jetson Nano 2GB開發板上)
    他們還將電源輸入升級到了更現代的USB-C埠,並且在軟體方面,一些粗糙的邊緣已被磨掉,例如,你無需執行諸如啟用交換文件之類的基本操作。讓我們組裝系統對於任何硬體項目,第一步都是收集我們需要的所有零件:1. Nvidia Jetson Nano 2GB主板(59美元)我不知道發行後的初始可用性會如何,但是先前的Jetson Nano機型在發行後的幾個月中供不應求。
  • 當ROS2遇到NVIDIA Jetson平臺,這些開原始碼你必須要知道的.
    利用ros2_jetson_stats庫並構建ROS 2診斷消息和服務。ros2_jetson_stats軟體包具有以下ROS 2診斷消息:    GPU / CPU使用率     EMC / SWAP /內存狀態(使用百分比)     SoC的功率和溫度 ROS 2節點用於人體姿勢估計 Github:https://github.com/NVIDIA-AI-IOT