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

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

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

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

星星科技指導(dǎo)員 ? 來源: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)勢擴(kuò)展到了 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、深度學(xué)習(xí)和推理的能力引入嵌入式系統(tǒng)邊緣。Jetson 為一系列應(yīng)用提供支持,從人工智能驅(qū)動的網(wǎng)絡(luò)錄像機(jī) (NVR) 和高精度制造中的自動光學(xué)檢測 (AOI) 到自主移動機(jī)器人 (AMR)。

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

CUDA

cudDNN

用于加速 AI 推理的 TensorRT

用于加速計算的 cuBlas、cuFFT 等

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

用于相機(jī) 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 解決方案制造商可以使用預(yù)構(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 與機(jī)器學(xué)習(xí)執(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)用程序從相機(jī)讀取幀,執(zhí)行對象檢測,并將檢測到的對象結(jié)果發(fā)送到云存儲。從那里,它們可以被可視化和進(jìn)一步處理。

樣本異議檢測代碼

您可以使用為 Jetson 預(yù)先構(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 來預(yù)處理圖像,運行對象檢測,并將原始圖像與檢測到的對象一起保存:

導(dǎo)入簡歷2
將 numpy 導(dǎo)入為 np
導(dǎo)入 preprocess_yolov4 作為 pre
導(dǎo)入 postprocess_yolov4 作為帖子
從 PIL 導(dǎo)入圖像
輸入大小 = 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("預(yù)處理后的圖像形狀:",image_data.shape) # 預(yù)處理輸入的形狀
將 onnxruntime 導(dǎo)入為 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("風(fēng)箏與對象.jpg")

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

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

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

ONNX 運行時 v1.4 更新

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

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

關(guān)于作者

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

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

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

審核編輯:郭婷

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

    關(guān)注

    2552

    文章

    51307

    瀏覽量

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

    關(guān)注

    87

    文章

    31316

    瀏覽量

    269659
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4802

    瀏覽量

    84885
收藏 人收藏

    評論

    相關(guān)推薦

    解鎖NVIDIA TensorRT-LLM的卓越性能

    Batching、Paged KV Caching、量化技術(shù) (FP8、INT4 AWQ、INT8 SmoothQuant 等) 以及更多功能,確保您的 NVIDIA GPU 能發(fā)揮出卓越的推理性能。
    的頭像 發(fā)表于 12-17 17:47 ?228次閱讀

    u-blox深化與NVIDIA JetsonNVIDIA DRIVE Hyperion平臺合作

    近日,作為提供定位和無線通信技術(shù)及服務(wù)的全球領(lǐng)先供應(yīng)商u-blox(SIX:UBXN)宣布,作為工業(yè)和汽車市場高精度定位領(lǐng)域的戰(zhàn)略增長計劃的關(guān)鍵一環(huán),u-blox公司現(xiàn)已加強(qiáng)對NVIDIA Jetson
    的頭像 發(fā)表于 12-09 14:08 ?263次閱讀

    初創(chuàng)公司借助NVIDIA Metropolis和Jetson提高生產(chǎn)線效率

    初創(chuàng)公司使用 NVIDIA Metropolis 視覺 AI 和 Jetson 邊緣 AI 平臺提高生產(chǎn)線效率。
    的頭像 發(fā)表于 11-19 14:39 ?226次閱讀

    使用NVIDIA Jetson打造機(jī)器人導(dǎo)盲犬

    Selin Alara Ornek 是一名富有遠(yuǎn)見的高中生。她使用機(jī)器學(xué)習(xí)和 NVIDIA Jetson邊緣 AI 和機(jī)器人平臺,為視障人士打造了機(jī)器人導(dǎo)盲犬。
    的頭像 發(fā)表于 11-09 13:51 ?288次閱讀

    NVIDIA助力麗蟾科技打造AI訓(xùn)練與推理加速解決方案

    麗蟾科技通過 Leaper 資源管理平臺集成 NVIDIA AI Enterprise,為企業(yè)和科研機(jī)構(gòu)提供了一套高效、靈活的 AI 訓(xùn)練與推理加速解決方案。無論是復(fù)雜的 AI 開發(fā)任務(wù)
    的頭像 發(fā)表于 10-27 10:03 ?279次閱讀
    <b class='flag-5'>NVIDIA</b>助力麗蟾科技打造AI訓(xùn)練與<b class='flag-5'>推理</b>加速解決方案

    澎峰科技高性能大模型推理引擎PerfXLM解析

    自ChatGPT問世以來,大模型遍地開花,承載大模型應(yīng)用的高性能推理框架也不斷推出,大有百家爭鳴之勢。在這種情況下,澎峰科技作為全球領(lǐng)先的智能計算服務(wù)提供商,2023年11月25日發(fā)布了針對大語言
    的頭像 發(fā)表于 09-29 10:14 ?520次閱讀
    澎峰科技<b class='flag-5'>高性能</b>大模型<b class='flag-5'>推理</b>引擎PerfXLM解析

    英偉達(dá)推出全新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 ?746次閱讀

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

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

    進(jìn)一步解讀英偉達(dá) Blackwell 架構(gòu)、NVlink及GB200 超級芯片

    冷卻技術(shù),提高計算密度,減少占地面積,并通過高帶寬、低延遲的GPU通信,有效減少數(shù)據(jù)中心的碳足跡和能源消耗。相較于傳統(tǒng)的NVIDIA H100風(fēng)冷基礎(chǔ)設(shè)施,GB200相同功耗下實現(xiàn)25倍的
    發(fā)表于 05-13 17:16

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

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

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

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

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

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

    使用NVIDIA Triton推理服務(wù)器來加速AI預(yù)測

    這家云計算巨頭的計算機(jī)視覺和數(shù)據(jù)科學(xué)服務(wù)使用 NVIDIA Triton 推理服務(wù)器來加速 AI 預(yù)測。
    的頭像 發(fā)表于 02-29 14:04 ?605次閱讀

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

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