国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

在DeepStream上使用自己的Pytorch模型

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

掃碼添加小助手

加入工程師交流群

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

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

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

在Jetson Nano上面安裝DeepStream

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

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

執(zhí)行官方范例

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

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

透過下列指令執(zhí)行一個配置文件,查看DeepStream是否安裝成功,這個配置文件會開啟一部mp4影片,并模擬產(chǎn)生8個輸入來源,經(jīng)模型推論處理過后于同一個畫面顯示,點擊單一個區(qū)塊可以顯示該來源的詳細(xì)信息。實際應(yīng)用上可以將各部攝影機的畫面同時輸出并進(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開始,就按部就班的跟著課程學(xué)習(xí),那您一定看過下列三種不同主題的課程。

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

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

在Hello AI World項目訓(xùn)練Object Detection模型的時候,我們使用的是SSD-Mobilenet,在DeepStream的對象辨識范例中有提供使用自己的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開發(fā)者論壇找到幾個同樣的提問,但最終都是導(dǎo)到上述提到的參考文件。

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

https://github.com/neilyoung/nvdsinfer_custom_impl_onnx

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

STEP 1:

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

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

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

STEP 2:

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

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

STEP 3:

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

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

STEP 4:

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

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

STEP 5:

從別的項目文件夾復(fù)制config檔案與deepstream配置文件到我們的文件夾內(nèi),這邊復(fù)制objectDetector_SSD,因為模型類型相近,只要稍微修改即可。

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

STEP 6:

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

下方三項的設(shè)定則依照nvdsinfer_custom_impl_onnx項目github上的說明,記得動態(tài)函式庫的路徑請改成自己的路徑。

output-blob-names="boxes;scores"

parse-bbox-func-name="NvDsInferParseCustomONNX"

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

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

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

STEP 7:

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

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

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

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

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

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

結(jié)論

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

審核編輯 :李倩

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

    關(guān)注

    22

    文章

    2124

    瀏覽量

    77157
  • pytorch
    +關(guān)注

    關(guān)注

    2

    文章

    813

    瀏覽量

    14857

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    PyTorch 中RuntimeError分析

    ? 錯誤原因 這個 RuntimeError 是因為 PyTorch 中,upsample_nearest2d_out_frame(最近鄰2D采樣)操作尚未對 BFloat16 數(shù)據(jù)類型提供
    發(fā)表于 03-06 06:02

    Pytorch 與 Visionfive2 兼容嗎?

    Pytorch 與 Visionfive2 兼容嗎? $ pip3 install torch torchvision torchaudio --index-url https
    發(fā)表于 02-06 08:28

    以下嵌入式軟件設(shè)計模型中,屬于數(shù)據(jù)流模型的是,哪里有設(shè)計模型的介紹?

    以下嵌入式軟件設(shè)計模型中,屬于數(shù)據(jù)流模型的是()。A. CCSB. CSPC. FSMD. Petri Net
    發(fā)表于 11-24 15:55

    如何自己設(shè)計一個基于RISC-V的SoC架構(gòu),最后可以FPGA跑起來?

    如何自己設(shè)計一個基于RISC-V的SoC架構(gòu),最后可以FPGA跑起來
    發(fā)表于 11-11 08:03

    詳解SPICE器件模型的分類

    今天我們來聊聊工程師仿真時比較關(guān)注的問題。眾多的器件模型,我仿真的時候到底應(yīng)該怎么選擇一個器件的模型?我使用的這個器件模型的精確度夠嗎?
    的頭像 發(fā)表于 08-28 13:42 ?1487次閱讀
    詳解SPICE器件<b class='flag-5'>模型</b>的分類

    Arm方案 基于Arm架構(gòu)的邊緣側(cè)設(shè)備(樹莓派或 NVIDIA Jetson Nano)上部署PyTorch模型

    本文將為你展示如何在樹莓派或 NVIDIA Jetson Nano 等基于 Arm 架構(gòu)的邊緣側(cè)設(shè)備上部署 PyTorch 模型
    的頭像 發(fā)表于 07-28 11:50 ?2889次閱讀

    無法NPU推理OpenVINO?優(yōu)化的 TinyLlama 模型怎么解決?

    NPU 推斷 OpenVINO?優(yōu)化的 TinyLlama 模型。 遇到的錯誤: get_shape was called on a descriptor::Tensor with dynamic shape
    發(fā)表于 07-11 06:58

    請問如何在C++中使用NPU模型緩存?

    無法確定如何在 C++ 中的 NPU 使用模型緩存
    發(fā)表于 06-24 07:25

    為什么無法GPU使用INT8 和 INT4量化模型獲得輸出?

    安裝OpenVINO? 2024.0 版本。 使用 optimum-intel 程序包將 whisper-large-v3 模型轉(zhuǎn)換為 int 4 和 int8,并在 GPU 使用 OpenVINO? 運行推理。 沒有可用的輸出。
    發(fā)表于 06-23 07:11

    FA模型訪問Stage模型DataShareExtensionAbility說明

    DataShareExtensionAbility提供數(shù)據(jù)庫的讀寫服務(wù)。 服務(wù)端由FA模型升級到Stage模型后,會導(dǎo)致FA模型的客戶端API 9(含)之后的版本
    發(fā)表于 06-04 07:53

    同樣的代碼官方開發(fā)板運行正常,自己板子就跑不起來,怎么辦?

    同樣的代碼Nordic官方開發(fā)板可以運行正常,但在自己板子就跑不起來,如果你碰到了上述情況,建議按照如下步驟進(jìn)行自檢: 首先確認(rèn)用戶板元器件焊接良好,功能正常。如果你的板子有LE
    的頭像 發(fā)表于 05-12 15:26 ?790次閱讀
    同樣的代碼<b class='flag-5'>在</b>官方開發(fā)板<b class='flag-5'>上</b>運行正常,<b class='flag-5'>在</b><b class='flag-5'>自己</b>板子<b class='flag-5'>上</b>就跑不起來,怎么辦?

    摩爾線程發(fā)布Torch-MUSA v2.0.0版本 支持原生FP8和PyTorch 2.5.0

    , 支持原生FP8數(shù)據(jù)類型,支持PyTorch 2.5.0 ,并通過多項針對MUSA計算平臺的性能優(yōu)化,進(jìn)一步提升了對AI模型和大規(guī)模數(shù)據(jù)處理的支持能力。 FP8原生支持,國產(chǎn)GPU的技術(shù)突破 作為
    的頭像 發(fā)表于 05-11 16:41 ?1741次閱讀

    KaihongOS操作系統(tǒng)FA模型與Stage模型介紹

    (Feature Ability) FA模型是KaihongOS 從API 7開始支持的模型,已經(jīng)不再被主推。FA模型中,每個應(yīng)用組件獨享一個ArkTS引擎實例,這意味著每個應(yīng)用組
    發(fā)表于 04-24 07:27

    DeepSeek昇騰模型部署的常見問題及解決方案

    開發(fā)者。 本文將為你詳細(xì)闡述昇騰DeepSeek模型部署的優(yōu)秀實踐。 昇騰DeepSeek模型部署的常見問題及解決方案見: DeepSeek昇騰
    的頭像 發(fā)表于 03-25 16:53 ?2431次閱讀
    DeepSeek<b class='flag-5'>在</b>昇騰<b class='flag-5'>上</b>的<b class='flag-5'>模型</b>部署的常見問題及解決方案

    小身板大能量:樹莓派玩轉(zhuǎn) Phi-2、Mistral 和 LLaVA 等AI大模型~

    你是否想過自己的設(shè)備運行自己的大型語言模型(LLMs)或視覺語言模型(VLMs)?你可能有過
    的頭像 發(fā)表于 03-25 09:32 ?949次閱讀
    小身板大能量:樹莓派玩轉(zhuǎn) Phi-2、Mistral 和 LLaVA 等AI大<b class='flag-5'>模型</b>~