一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

在DeepStream上使用自己的Pytorch模型

jf_cVC5iyAO ? 來(lái)源:易心Microbit編程 ? 作者:易心Microbit編程 ? 2022-11-25 16:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

DeepStream是NVIDIA專為處理多個(gè)串流影像,并進(jìn)行智能辨識(shí)而整合出的強(qiáng)大工具。開(kāi)發(fā)語(yǔ)言除了原先的C++,從DeepStream SDK 5.1也支持基于原先安裝,再掛上Python套件的方式,讓較熟悉Python程序語(yǔ)言的使用者也能使用DeepStream。

本文主要將其應(yīng)用在Jetson Nano上,并于DeepStream導(dǎo)入自己的模型執(zhí)行辨識(shí)。

c8987b76-6c97-11ed-8abf-dac502259ad0.png

在Jetson Nano上面安裝DeepStream

筆者使用的硬件為Jetson Nano 2GB/4GB,參照官方提供的步驟與對(duì)應(yīng)的版本,幾乎可以說(shuō)是無(wú)痛安裝。對(duì)比同樣采用干凈映像檔,使用源碼或是Docker安裝的JetBot與Jetson Inference要快上許多。

c8b97b00-6c97-11ed-8abf-dac502259ad0.png

執(zhí)行官方范例

DeepStream有提供不少范例,不論是從CSIUSB接口的攝影機(jī)取得畫面,或是多影像辨識(shí)結(jié)果顯示,都能經(jīng)由查看這些范例,學(xué)習(xí)如何設(shè)定。

c8e2d50e-6c97-11ed-8abf-dac502259ad0.png

透過(guò)下列指令執(zhí)行一個(gè)配置文件,查看DeepStream是否安裝成功,這個(gè)配置文件會(huì)開(kāi)啟一部mp4影片,并模擬產(chǎn)生8個(gè)輸入來(lái)源,經(jīng)模型推論處理過(guò)后于同一個(gè)畫面顯示,點(diǎn)擊單一個(gè)區(qū)塊可以顯示該來(lái)源的詳細(xì)信息。實(shí)際應(yīng)用上可以將各部攝影機(jī)的畫面同時(shí)輸出并進(jìn)行處理。

deepstream-app -c source8_1080p_dec_infer-resnet_tracker_tiled_display_fp16_nano.txt

c917e2bc-6c97-11ed-8abf-dac502259ad0.png

使用自己的模型

如果您與筆者一樣是NVIDIA官方課程小粉絲,從擁有Jetson Nano開(kāi)始,就按部就班的跟著課程學(xué)習(xí),那您一定看過(guò)下列三種不同主題的課程。

c94d3020-6c97-11ed-8abf-dac502259ad0.png

從入門的Section 1開(kāi)始,到執(zhí)行Section 2的JetBot自駕車項(xiàng)目,最后Section 3 Hello AI World。經(jīng)過(guò)三個(gè)Section,您應(yīng)該稍微熟悉Pytorch,并且也訓(xùn)練了不少自己的模型,特別是在Hello AI World有訓(xùn)練了Object Detection模型。既然都有自己的模型,何不放到DeepStream上面制作專屬的串流辨識(shí)項(xiàng)目,針對(duì)想要辨識(shí)的項(xiàng)目導(dǎo)入適合的模型。

在Hello AI World項(xiàng)目訓(xùn)練Object Detection模型的時(shí)候,我們使用的是SSD-Mobilenet,在DeepStream的對(duì)象辨識(shí)范例中有提供使用自己的SSD模型方法,可在下列路徑找到參考文件,文件中使用的例子是使用coco數(shù)據(jù)集預(yù)訓(xùn)練的SSD-Inception。

/opt/nvidia/deepstream/deepstream-5.1/sources/objectDetector_SSD

可惜的是文件中使用的是從Tensorflow訓(xùn)練的模型,經(jīng)由轉(zhuǎn)換.uff再喂給DeepStream,與官方課程使用的Pytorch是不同路線。筆者在網(wǎng)上尋找解決方法,看是否有DeepStream使用Pytorch模型的方案,也于NVIDIA開(kāi)發(fā)者論壇找到幾個(gè)同樣的提問(wèn),但最終都是導(dǎo)到上述提到的參考文件。

從Hello AI World訓(xùn)練的Object Detection模型,經(jīng)過(guò)執(zhí)行推論的步驟,您應(yīng)該會(huì)有三個(gè)與模型有關(guān)的檔案,分別是用Pytorch訓(xùn)練好的.pth,以及為了使用TensorRT加速而將.pth轉(zhuǎn)換的.onnx,最后是執(zhí)行過(guò)程中產(chǎn)生的.engine。既然Pytorch模型找不到解決方案,那就從ONNX模型下手吧,所幸經(jīng)過(guò)一番折騰,終于讓筆者找到方法。

https://github.com/neilyoung/nvdsinfer_custom_impl_onnx

neilyoung提供的方法主要是能產(chǎn)生動(dòng)態(tài)函式庫(kù),以便我們能在DeepStream使用ONNX模型,除了準(zhǔn)備好自己訓(xùn)練的ONNX模型檔案與Labels檔案,只要再新增設(shè)定模型路徑與類型的config檔案,與deepstream配置文件就能實(shí)現(xiàn)使用自己的模型進(jìn)行推論啰!

STEP 1:

首先于以下路徑底下新增執(zhí)行ONNX項(xiàng)目的文件夾,筆者命名為objectDetector_ONNX。

/opt/nvidia/deepstream/deepstream-5.1/sources

c9758192-6c97-11ed-8abf-dac502259ad0.png

STEP 2:

新增專案文件夾后,請(qǐng)clone方才的nvdsinfer_custom_impl_onnx專案到文件夾內(nèi)。

c9a19570-6c97-11ed-8abf-dac502259ad0.png

STEP 3:

打開(kāi)Terminal進(jìn)到nvdsinfer_custom_impl_onnx項(xiàng)目里面,透過(guò)sudo make指令產(chǎn)生動(dòng)態(tài)函式庫(kù)。

c9d524d0-6c97-11ed-8abf-dac502259ad0.png

STEP 4:

接著將自己從Hello AI World項(xiàng)目訓(xùn)練的Object Detection模型與卷標(biāo)復(fù)制到objectDetector_ONNX項(xiàng)目文件夾。

ca257f5c-6c97-11ed-8abf-dac502259ad0.png

STEP 5:

從別的項(xiàng)目文件夾復(fù)制config檔案與deepstream配置文件到我們的文件夾內(nèi),這邊復(fù)制objectDetector_SSD,因?yàn)槟P皖愋拖嘟?,只要稍微修改即可?/p>

ca5449e0-6c97-11ed-8abf-dac502259ad0.png

STEP 6:

首先修改config檔案,如下圖所示,將模型路徑與卷標(biāo)路徑,修正為自己的模型與卷標(biāo)名稱,engine檔案的部份與Hello AI World項(xiàng)目一樣,在執(zhí)行ONNX檔案進(jìn)行TensorRT加速時(shí)會(huì)自動(dòng)產(chǎn)生,只需給路徑與名稱即可。對(duì)于classes的部份,切記在Hello AI World項(xiàng)目訓(xùn)練的模型會(huì)加上BACKGROUND這一個(gè)類別,所以若是您辨識(shí)的對(duì)象有三種,就得在classes這邊填上3+1。

下方三項(xiàng)的設(shè)定則依照nvdsinfer_custom_impl_onnx項(xiàng)目github上的說(shuō)明,記得動(dòng)態(tài)函式庫(kù)的路徑請(qǐng)改成自己的路徑。

output-blob-names="boxes;scores"

parse-bbox-func-name="NvDsInferParseCustomONNX"

custom-lib-path="/path/to/lib/libnvdsinfer_custom_impl_onnx.so"

接著依照個(gè)人需求設(shè)定辨識(shí)的參數(shù),例如希望信心指數(shù)達(dá)多少%才認(rèn)定對(duì)象類別,可以修改threshold。

ca7cc0be-6c97-11ed-8abf-dac502259ad0.png

STEP 7:

接著修改deepstream配置文件,筆者在這邊設(shè)定為USB Webcam輸入,并輸出單一窗口顯示,除了正常調(diào)整輸入與輸出之外,請(qǐng)將config檔案與Labels檔案導(dǎo)引至自己的路徑,engine的部份與config設(shè)定相同即可,如下圖所示。

caaf0092-6c97-11ed-8abf-dac502259ad0.png

完成上述7步驟后,就能執(zhí)行配置文件查看是否有正確執(zhí)行我們的ONNX模型,第一次執(zhí)行會(huì)較久,過(guò)程會(huì)產(chǎn)生engine檔案,一旦有了engine檔,之后執(zhí)行就不會(huì)再重復(fù)產(chǎn)生。

cad82972-6c97-11ed-8abf-dac502259ad0.png

成功執(zhí)行自定義模型的結(jié)果。

cb1ae4ec-6c97-11ed-8abf-dac502259ad0.png

結(jié)論

原官方范例大多執(zhí)行車流檢測(cè),若是想執(zhí)行別的應(yīng)用就得自己研究。本篇透過(guò)將自己訓(xùn)練好的Pytorch模型轉(zhuǎn)換為ONNX,經(jīng)7步驟后讓DeepStream可以使用我們自己的模型進(jìn)行辨識(shí),使其能應(yīng)用在交通以外的場(chǎng)景,例如室內(nèi)監(jiān)控、多機(jī)臺(tái)管控…等。

審核編輯 :李倩

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

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75321
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    13963

原文標(biāo)題:在DeepStream上使用自己的Pytorch模型

文章出處:【微信號(hào):易心Microbit編程,微信公眾號(hào):易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    無(wú)法GPU運(yùn)行ONNX模型的Benchmark_app怎么解決?

    CPU 和 GPU 運(yùn)行OpenVINO? 2023.0 Benchmark_app推斷的 ONNX 模型。 CPU 推理成功
    發(fā)表于 03-06 08:02

    使用OpenVINO? 2021.4將經(jīng)過(guò)訓(xùn)練的自定義PyTorch模型加載為IR格式時(shí)遇到錯(cuò)誤怎么解決?

    使用 OpenVINO? 2021.4 將經(jīng)過(guò)訓(xùn)練的自定義 PyTorch 模型加載為 IR 格式時(shí)遇到錯(cuò)誤: RuntimeError: [ GENERAL_ERROR ] Failed
    發(fā)表于 03-05 08:40

    如何在Arm Ethos-U85使用ExecuTorch

    快速發(fā)展的機(jī)器學(xué)習(xí)領(lǐng)域,PyTorch 憑借其靈活性和全面的生態(tài)系統(tǒng),已成為模型開(kāi)發(fā)的熱門框架。Arm 與 Meta 合作 ExecuTorch 中引入了對(duì) Arm 平臺(tái)的支持,進(jìn)
    的頭像 發(fā)表于 02-14 14:23 ?645次閱讀
    如何在Arm Ethos-U85<b class='flag-5'>上</b>使用ExecuTorch

    Arm KleidiAI助力提升PyTorchLLM推理性能

    熱門的深度學(xué)習(xí)框架尤為突出,許多企業(yè)均會(huì)選擇其作為開(kāi)發(fā) AI 應(yīng)用的庫(kù)。通過(guò)部署 Arm Kleidi 技術(shù),Arm 正在努力優(yōu)化 PyTorch,以加速基于 Arm 架構(gòu)的處理器運(yùn)行 LLM 的性能。Arm 通過(guò)將 Kle
    的頭像 發(fā)表于 12-03 17:05 ?1489次閱讀
    Arm KleidiAI助力提升<b class='flag-5'>PyTorch</b><b class='flag-5'>上</b>LLM推理性能

    PyTorch 2.5.1: Bugs修復(fù)版發(fā)布

    ? 一,前言 深度學(xué)習(xí)框架的不斷迭代中,PyTorch 社區(qū)始終致力于提供更穩(wěn)定、更高效的工具。最近,PyTorch 2.5.1 版本正式發(fā)布,這個(gè)版本主要針對(duì) 2.5.0 中發(fā)現(xiàn)的問(wèn)題進(jìn)行了修復(fù)
    的頭像 發(fā)表于 12-03 16:11 ?1622次閱讀
    <b class='flag-5'>PyTorch</b> 2.5.1: Bugs修復(fù)版發(fā)布

    設(shè)備利用AI Edge Torch生成式API部署自定義大語(yǔ)言模型

    使用 TFLite 運(yùn)行時(shí)的設(shè)備實(shí)現(xiàn)高性能的 PyTorch 模型推理。 AI Edge Torch 生成式 API 使開(kāi)發(fā)者能夠設(shè)備
    的頭像 發(fā)表于 11-14 10:23 ?1141次閱讀
    <b class='flag-5'>在</b>設(shè)備<b class='flag-5'>上</b>利用AI Edge Torch生成式API部署自定義大語(yǔ)言<b class='flag-5'>模型</b>

    如何訓(xùn)練自己的LLM模型

    訓(xùn)練自己的大型語(yǔ)言模型(LLM)是一個(gè)復(fù)雜且資源密集的過(guò)程,涉及到大量的數(shù)據(jù)、計(jì)算資源和專業(yè)知識(shí)。以下是訓(xùn)練LLM模型的一般步驟,以及一些關(guān)鍵考慮因素: 定義目標(biāo)和需求 : 確定你的LLM將用
    的頭像 發(fā)表于 11-08 09:30 ?1523次閱讀

    PyTorch GPU 加速訓(xùn)練模型方法

    深度學(xué)習(xí)領(lǐng)域,GPU加速訓(xùn)練模型已經(jīng)成為提高訓(xùn)練效率和縮短訓(xùn)練時(shí)間的重要手段。PyTorch作為一個(gè)流行的深度學(xué)習(xí)框架,提供了豐富的工具和方法來(lái)利用GPU進(jìn)行模型訓(xùn)練。 1. 了解G
    的頭像 發(fā)表于 11-05 17:43 ?1409次閱讀

    PyTorch 數(shù)據(jù)加載與處理方法

    PyTorch 是一個(gè)流行的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它提供了強(qiáng)大的工具來(lái)構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型。構(gòu)建模型之前,一個(gè)重要的步驟是加載和處理數(shù)據(jù)。 1. Py
    的頭像 發(fā)表于 11-05 17:37 ?937次閱讀

    如何在 PyTorch 中訓(xùn)練模型

    PyTorch 是一個(gè)流行的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),廣泛用于計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理等領(lǐng)域。它提供了強(qiáng)大的計(jì)算圖功能和動(dòng)態(tài)圖特性,使得模型的構(gòu)建和調(diào)試變得更加靈活和直觀。 數(shù)據(jù)準(zhǔn)備 訓(xùn)練模型
    的頭像 發(fā)表于 11-05 17:36 ?931次閱讀

    使用PyTorch英特爾獨(dú)立顯卡訓(xùn)練模型

    PyTorch 2.5重磅更新:性能優(yōu)化+新特性》中的一個(gè)新特性就是:正式支持英特爾獨(dú)立顯卡訓(xùn)練模型!
    的頭像 發(fā)表于 11-01 14:21 ?2054次閱讀
    使用<b class='flag-5'>PyTorch</b><b class='flag-5'>在</b>英特爾獨(dú)立顯卡<b class='flag-5'>上</b>訓(xùn)練<b class='flag-5'>模型</b>

    如何訓(xùn)練自己的AI大模型

    訓(xùn)練自己的AI大模型是一個(gè)復(fù)雜且耗時(shí)的過(guò)程,涉及多個(gè)關(guān)鍵步驟。以下是一個(gè)詳細(xì)的訓(xùn)練流程: 一、明確需求和目標(biāo) 首先,需要明確自己的需求和目標(biāo)。不同的任務(wù)和應(yīng)用領(lǐng)域需要不同類型的AI模型
    的頭像 發(fā)表于 10-23 15:07 ?4987次閱讀

    新手小白怎么通過(guò)云服務(wù)器跑pytorch?

    安裝PyTorch的步驟可以根據(jù)不同的操作系統(tǒng)和需求有所差異,通過(guò)云服務(wù)器運(yùn)行PyTorch的過(guò)程主要包括選擇GPU云服務(wù)器平臺(tái)、配置服務(wù)器環(huán)境、部署和運(yùn)行PyTorch模型、優(yōu)化性能
    的頭像 發(fā)表于 09-25 11:35 ?565次閱讀

    基于Pytorch訓(xùn)練并部署ONNX模型TDA4應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《基于Pytorch訓(xùn)練并部署ONNX模型TDA4應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:24 ?0次下載
    基于<b class='flag-5'>Pytorch</b>訓(xùn)練并部署ONNX<b class='flag-5'>模型</b><b class='flag-5'>在</b>TDA4應(yīng)用筆記

    pytorch怎么pycharm中運(yùn)行

    第一部分:PyTorch和PyCharm的安裝 1.1 安裝PyTorch PyTorch是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。要在PyCharm中使用PyTorch,首先需
    的頭像 發(fā)表于 08-01 16:22 ?2550次閱讀