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

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

3天內(nèi)不再提示

在NVIDIA Jetson Zoo中實現(xiàn)高性能推理

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-18 10:01 ? 次閱讀

Microsoft 和 NVIDIA 合作為 NVIDIA Jetson 平臺構(gòu)建、驗證和發(fā)布 ONNX 運行時 Python 包和 Docker 容器,現(xiàn)已在Jetson Zoo上提供。

今天發(fā)布的適用于 Jetson 的 ONNX Runtime 將 ONNX Runtime 的性能和可移植性優(yōu)勢擴展到了 Jetson 邊緣 AI 系統(tǒng),允許來自許多不同框架的模型以更少的功耗更快地運行。您可以轉(zhuǎn)換來自 PyTorch、TensorFlow、Scikit-Learn 和其他模型的模型,以在具有 ONNX 運行時的 Jetson 平臺上執(zhí)行推理。

ONNX 運行時優(yōu)化模型以利用設(shè)備上的加速器。此功能使用相同的 API 表面為應(yīng)用程序代碼提供跨不同硬件配置的最佳推理吞吐量,以管理和控制推理會話。

ONNX Runtime 在數(shù)億臺設(shè)備上運行,每天提供超過 200 億個推理請求。

Jetson 上 ONNX 運行時的優(yōu)勢

Jetson System-on-Modules (SOM) 的全系列產(chǎn)品以小巧的外形提供云原生支持,具有無與倫比的性能和能效,有效地將現(xiàn)代 AI、深度學習和推理的能力引入嵌入式系統(tǒng)邊緣。Jetson 為一系列應(yīng)用提供支持,從人工智能驅(qū)動的網(wǎng)絡(luò)錄像機 (NVR) 和高精度制造中的自動光學檢測 (AOI) 到自主移動機器人 (AMR)。

完整的 Jetson 系列由相同的軟件堆棧提供支持,并由 NVIDIA JetPack SDK 提供支持,其中包括板級支持包 (BSP)、Linux 操作系統(tǒng)和用于端到端 AI 管道加速的用戶級庫:

CUDA

cudDNN

用于加速 AI 推理的 TensorRT

用于加速計算的 cuBlas、cuFFT 等

用于計算機視覺和圖像處理的 Visionworks、OpenCV 和 VPI

用于相機 ISP 處理、多媒體和傳感器處理的庫

此 ONNX 運行時包利用 Jetson 邊緣 AI 平臺中的集成 GPU,使用 CUDA 和 cuDNN 庫為 ONNX 模型提供加速推理。您還可以通過從源代碼構(gòu)建 Python 包來將 ONNX 運行時與 TensorRT 庫一起使用。

專注于開發(fā)者

此版本為您在 Jetson 平臺上使用 ONNX 運行時提供了一條簡單的集成路徑。您可以在應(yīng)用程序代碼中集成 ONNX 運行時,以便在邊緣設(shè)備上運行 AI 應(yīng)用程序的推理。

ML 開發(fā)人員和 IoT 解決方案制造商可以使用預構(gòu)建的 Docker 映像在邊緣部署 AI 應(yīng)用程序或使用獨立的 Python 包。Jetson Zoo包含指向 ONNX 運行時包和示例的指針以供入門。

Microsoft Container Registry 中提供了 Jetpack4.4 上 ONNX Runtime 的 Docker 映像:

docker pull mcr.microsoft.com/azureml/onnxruntime:v.1.4.0-jetpack4.4-l4t-base-r32.4.3

或者,要直接在您的應(yīng)用程序中使用Python 包,請下載并將其安裝在您的 Jetson SOM 上:

wget https://nvidia.box.com/shared/static/8sc6j25orjcpl6vhq3a4ir8v219fglng.whl \
-O onnxruntime_gpu-1.4.0-cp36-cp36m-linux_aarch64.whl
pip3 安裝 onnxruntime_gpu-1.4.0-cp36-cp36m-linux_aarch64.whl

在 Jetson 上使用 ONNX 運行時的推理應(yīng)用程序


圖 1. 邊緣的端到端 IoT 應(yīng)用程序。

在NVIDIA Jetson 平臺(ARM64 設(shè)備)上集成 Azure 與機器學習執(zhí)行教程向您展示了如何使用 TinyYOLO 模型、Azure IoT Edge 和 ONNX Runtime 在您的 Jetson 設(shè)備上開發(fā)對象檢測應(yīng)用程序。

在 Jetson 平臺上運行的物聯(lián)網(wǎng)邊緣應(yīng)用程序在 Azure 云中有一個數(shù)字孿生。推理應(yīng)用程序代碼在由集成的 Jetson ONNX 運行時基礎(chǔ)映像構(gòu)建的 Docker 容器中運行。應(yīng)用程序從相機讀取幀,執(zhí)行對象檢測,并將檢測到的對象結(jié)果發(fā)送到云存儲。從那里,它們可以被可視化和進一步處理。

樣本異議檢測代碼

您可以使用為 Jetson 預先構(gòu)建的 ONNX Runtime Docker 映像開發(fā)自己的應(yīng)用程序。

使用 Jetson ONNX 運行時 Docker 映像創(chuàng)建 Dockerfile 并添加應(yīng)用程序依賴項:

來自 mcr.microsoft.com/azureml/onnxruntime:v.1.4.0-jetpack4.4-l4t-base-r32.4.3
工作目錄。
運行 apt-get update && apt-get install -y python3-pip libprotobuf-dev protobuf-compiler python-scipy
RUN python3 -m pip install onnx==1.6.0 easydict matplotlib
CMD ["/bin/bash"]

從 Dockerfile 構(gòu)建一個新鏡像:

docker build -t jetson-onnxruntime-yolov4 。

從 ONNX 模型動物園下載 Yolov4 模型、對象檢測錨位置和類名:

wget https://github.com/onnx/models/blob/master/vision/object_detection_segmentation/yolov4/model/yolov4.onnx?raw=true -O yolov4.onnx
wget https://raw.githubusercontent.com/onnx/models/master/vision/object_detection_segmentation/yolov4/dependencies/yolov4_anchors.txt
wget https://raw.githubusercontent.com/natke/onnxruntime-jetson/master/coco.names

下載 Yolov4 對象檢測前后處理代碼:

wget https://raw.githubusercontent.com/natke/onnxruntime-jetson/master/preprocess_yolov4.py
wget https://raw.githubusercontent.com/natke/onnxruntime-jetson/master/postprocess_yolov4.py

下載一個或多個測試圖像:

wget https://raw.githubusercontent.com/SoloSynth1/tensorflow-yolov4/master/data/kite.jpg

創(chuàng)建一個應(yīng)用程序 main.py 來預處理圖像,運行對象檢測,并將原始圖像與檢測到的對象一起保存:

導入簡歷2
將 numpy 導入為 np
導入 preprocess_yolov4 作為 pre
導入 postprocess_yolov4 作為帖子
從 PIL 導入圖像
輸入大小 = 416
original_image = cv2.imread("kite.jpg")
original_image = cv2.cvtColor(original_image, cv2.COLOR_BGR2RGB)
original_image_size = original_image.shape[:2]
image_data = pre.image_preprocess(np.copy(original_image), [input_size, input_size])
image_data = image_data[np.newaxis, ...].astype(np.float32)
print("預處理后的圖像形狀:",image_data.shape) # 預處理輸入的形狀
將 onnxruntime 導入為 rt

sess = rt.InferenceSession("yolov4.onnx")

output_name = sess.get_outputs()[0].name
input_name = sess.get_inputs()[0].name

detections = sess.run([output_name], {input_name: image_data})[0]

print("輸出形狀:", detections.shape)

image = post.image_postprocess(original_image,input_size,檢測)

圖像 = Image.fromarray(圖像)
image.save("風箏與對象.jpg")

運行應(yīng)用程序:

nvidia-docker run -it --rm -v $PWD:/workspace/ --workdir=/workspace/ jetson-onnxruntime-yolov4 python3 main.py

應(yīng)用程序讀取風箏圖像并定位圖像中的所有對象。您可以嘗試使用不同的圖像并擴展應(yīng)用程序以使用視頻流,如前面的 Azure IoT 邊緣應(yīng)用程序所示。

ONNX 運行時 v1.4 更新

此軟件包基于 2020 年 7 月發(fā)布的最新ONNX Runtime v1.4 版本。此最新版本提供了許多針對流行的 Transformer 模型(GPT2、BERT)的更新,包括性能優(yōu)化、新運算符的改進量化支持和優(yōu)化技術(shù)。該版本還通過新硬件加速器的預覽版擴展了 ONNX 運行時硬件生態(tài)系統(tǒng)的兼容性,包括對 NVIDIA Jetpack 4.4 的 ARM-NN 和 Python 包的支持。

除了這些加速推理更新之外,1.4 版本繼續(xù)在加速訓練前沿的先前版本中引入的創(chuàng)新基礎(chǔ)上構(gòu)建,包括通過使用 Huggingface GPT-2 模型的新樣本擴展操作員支持。

關(guān)于作者

Natalie Kershaw 是 Microsoft 人工智能框架團隊的項目經(jīng)理,專門研究開發(fā)人員體驗。她在澳大利亞的阿德萊德大學和悉尼大學學習電氣電子工程以及數(shù)學/創(chuàng)意寫作。在加入微軟之前,她曾在西雅圖的 RFID 芯片制造商 Impinj 工作。

Suhas Sheshadri 是 NVIDIA 的產(chǎn)品經(jīng)理,專注于 Jetson 軟件。他之前曾在 NVIDIA 的自動駕駛團隊工作,為 NVIDIA Drive 平臺優(yōu)化系統(tǒng)軟件。在空閑時間,Suhas 喜歡閱讀有關(guān)量子物理學和博弈論的書籍。

Dustin 是 NVIDIA Jetson 團隊的一名開發(fā)人員推廣員。Dustin 擁有機器人技術(shù)和嵌入式系統(tǒng)方面的背景,喜歡在社區(qū)中提供幫助并與 Jetson 合作開展項目。您可以在NVIDIA 開發(fā)者論壇或GitHub 上找到他。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2541

    文章

    49963

    瀏覽量

    747560
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    28877

    瀏覽量

    266248
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84081
收藏 人收藏

    評論

    相關(guān)推薦

    英偉達推出全新NVIDIA AI Foundry服務(wù)和NVIDIA NIM推理微服務(wù)

    NVIDIA 宣布推出全新 NVIDIA AI Foundry 服務(wù)和 NVIDIA NIM 推理微服務(wù),與同樣剛推出的 Llama 3.1 系列開源模型一起,為全球企業(yè)的生成式 AI
    的頭像 發(fā)表于 07-25 09:48 ?569次閱讀

    超級電容器高性能電源應(yīng)用的優(yōu)勢

    ,備受市場關(guān)注。下面我們將從以下幾方面來介紹超級電容器高性能電源應(yīng)用的優(yōu)勢。1、快速響應(yīng)和高效能儲能相比于傳統(tǒng)儲能設(shè)備,超級電容器的充放電速度非???,可以實現(xiàn)
    的頭像 發(fā)表于 06-04 09:31 ?284次閱讀
    超級電容器<b class='flag-5'>在</b><b class='flag-5'>高性能</b>電源應(yīng)用<b class='flag-5'>中</b>的優(yōu)勢

    Nvidia Jetson Nano + CYW55573/AWXB327MA-PUR M.2無法使用操作系統(tǒng)內(nèi)置的網(wǎng)絡(luò)管理器管理Wi-Fi如何解決?

    我們使用的是 Nvidia Jetson Nano + CYW55573/AWXB327MA-PUR M.2 ,請參閱 Nvidia Jetson 與英飛凌 AIROC Wi-Fi 6
    發(fā)表于 05-23 06:47

    NVIDIA AI賦能水面自動駕駛技術(shù),實現(xiàn)多種標準落地應(yīng)用

    本案例,歐卡智舶無人船系統(tǒng)搭載了多種傳感器,并選擇了 NVIDIA Jetson 系列產(chǎn)品作為邊緣計算硬件。
    的頭像 發(fā)表于 04-30 16:46 ?1116次閱讀
    <b class='flag-5'>NVIDIA</b> AI賦能水面自動駕駛技術(shù),<b class='flag-5'>實現(xiàn)</b>多種標準落地應(yīng)用

    利用NVIDIA組件提升GPU推理的吞吐

    本實踐,唯品會 AI 平臺與 NVIDIA 團隊合作,結(jié)合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將
    的頭像 發(fā)表于 04-20 09:39 ?508次閱讀

    基于OpenCV DNN實現(xiàn)YOLOv8的模型部署與推理演示

    基于OpenCV DNN實現(xiàn)YOLOv8推理的好處就是一套代碼就可以部署Windows10系統(tǒng)、烏班圖系統(tǒng)、Jetson的Jetpack系統(tǒng)
    的頭像 發(fā)表于 03-01 15:52 ?1031次閱讀
    基于OpenCV DNN<b class='flag-5'>實現(xiàn)</b>YOLOv8的模型部署與<b class='flag-5'>推理</b>演示

    基于NVIDIA DOCA 2.6實現(xiàn)高性能和安全的AI云設(shè)計

    作為專為 NVIDIA? BlueField? 網(wǎng)絡(luò)平臺而設(shè)計的數(shù)據(jù)中心基礎(chǔ)設(shè)施軟件框架,NVIDIA? DOCA? 使廣大開發(fā)者能夠利用其行業(yè)標準 API NVIDIA Blue
    的頭像 發(fā)表于 02-23 10:02 ?366次閱讀

    NVIDIA 第九屆 Sky Hackathon 優(yōu)秀作品展示 | 靜語畫韻:藝術(shù)的無聲詩篇

    使用 NVIDIA Jetson 平臺,親身體驗了大模型圖像識別和生成式模型調(diào)用方面的應(yīng)用。從 Resnet50 模型的優(yōu)化到 TensorRT 推理引擎的生成,每一步都呈現(xiàn)了
    的頭像 發(fā)表于 12-21 19:35 ?733次閱讀
    <b class='flag-5'>NVIDIA</b> 第九屆 Sky Hackathon 優(yōu)秀作品展示 | 靜語畫韻:藝術(shù)<b class='flag-5'>中</b>的無聲詩篇

    NVIDIA Jetson 的嵌入式系統(tǒng)AI應(yīng)用

    在這個平臺上可以使用多個不同的芯片 ,案例的主角是AIMobile AIM Edge Ncox,一款基于NVIDIA Jetson Orin NX的小型被動冷卻嵌入式系統(tǒng)。該系統(tǒng)具有6-8個Arm內(nèi)核和NVIDIA Ampere
    發(fā)表于 12-11 17:37 ?423次閱讀

    利用 NVIDIA Jetson 實現(xiàn)生成式 AI

    近日,NVIDIA 發(fā)布了 Jetson 生成式 AI 實驗室(Jetson Generative AI Lab),使開發(fā)者能夠通過 NVIDIA
    的頭像 發(fā)表于 11-07 21:25 ?775次閱讀
    利用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> <b class='flag-5'>實現(xiàn)</b>生成式 AI

    Banana Pi為何選擇rk3588開發(fā)與Jetson Nano引腳兼容的嵌入式產(chǎn)品

    。這篇文章將解釋我們選擇RK3588的原因以及如何實現(xiàn)Jetson Nano引腳的兼容性。 Jetson Nano一直是嵌入式計算領(lǐng)域的領(lǐng)先產(chǎn)品,具有強大的性能和豐富的功能,廣受開發(fā)
    發(fā)表于 11-02 12:30

    現(xiàn)已公開發(fā)布!歡迎使用 NVIDIA TensorRT-LLM 優(yōu)化大語言模型推理

    NVIDIA 于 2023 年 10 月 19 日公開發(fā)布 TensorRT-LLM ,可在 NVIDIA GPU 上加速和優(yōu)化最新的大語言模型(Large Language Models)的推理性能
    的頭像 發(fā)表于 10-27 20:05 ?804次閱讀
    現(xiàn)已公開發(fā)布!歡迎使用 <b class='flag-5'>NVIDIA</b> TensorRT-LLM 優(yōu)化大語言模型<b class='flag-5'>推理</b>

    周四研討會預告 | 注冊報名 NVIDIA AI Inference Day - 大模型推理線上研討會

    推理加速和部署的服務(wù)化實現(xiàn)管道、性能收益,以及金融行業(yè)加速計算解決方案,為您 LLM 和生成式 AI 開發(fā)的增效降本提供領(lǐng)先的技術(shù)路線參考和知識儲備。建議 A
    的頭像 發(fā)表于 10-26 09:05 ?285次閱讀

    使用 NVIDIA Jetson 優(yōu)化功率

    使用 Jetson 模組等嵌入式系統(tǒng)時,必須根據(jù)功率分配和計算資源來優(yōu)化應(yīng)用。為避免性能以及熱節(jié)流問題,進行監(jiān)控就顯得格外重要。 Jetson 模組自帶 GPU、CPU 和各種 AI
    的頭像 發(fā)表于 10-19 11:10 ?556次閱讀
    使用 <b class='flag-5'>NVIDIA</b> <b class='flag-5'>Jetson</b> 優(yōu)化功率

    armsom:為何選擇rk3588開發(fā)與Jetson Nano引腳兼容的嵌入式產(chǎn)品

    的原因以及如何實現(xiàn)Jetson Nano引腳的兼容性。Jetson Nano一直是嵌入式計算領(lǐng)域的領(lǐng)先產(chǎn)品,具有強大的性能和豐富的功能,廣受開發(fā)者和制造商的歡迎。然而,armsom認
    發(fā)表于 10-18 17:35