<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

DeepStream Samples版的操作環境調試過程

NVIDIA英偉達企業解決方案 ? 來源:NVIDIA英偉達企業解決方案 ? 作者:NVIDIA英偉達企業解 ? 2022-08-03 10:18 ? 次閱讀

NVIDIA的DeepStream是目前業界最好開發而且功能強大的AI視頻分析工具,在NGC上https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstream-l4t為 Jetson 提供 4 個可使用的版本,分別如下:

  • Base 版(deepstream-l4t:6.1-base):作為 DeepStream SDK 一部分的插件、庫以及依賴項,如 CUDA、TensorRT、GStreamer 等,希望為自己創建 Docker 版的 DeepStream 應用程序用戶,建議使用此映像。請注意,這個鏡像不包含示例內容。

  • Samples 版(deepstream-l4t:6.1-samples):在 Base 版的基礎上添加范例的內容,包括 C/C++ 開源代碼、deepstream-app 范例配置文件、模型文件與測試視頻等,適合體驗與學習用途的初學者使用。

  • IoT 版(deepstream-l4t:6.1-iot):在 Base 版上擴充 IoT 應用所需的環境,包括 Kafka、Azure IoT、REDIS 和 MQTT 等協議、DeepStream test5 應用程序以及相關配置和模型,可啟用多視頻流應用程序,并將各種消息傳遞到服務器端進行統計分析。

  • Triton 部署版(deepstream-l4t:6.1-triton):這是配合 Triton 推理服務器使用的環境,開發者可以直接使用 TensorFlow、TensorFlow-TensorRT 與 ONNX-RT 等方式進行推理計算。

從上面的描述中可以看出 Samples 版本鏡像適合絕大部分初學者的使用,現在就以這個鏡像來做說明。

1、下載鏡像:

這里使用 JetPack 5.0 版的 Jetson Orin 開發套件,可以使用 DeepStream-6.1 版的容器,可以從 https://catalog.ngc.nvidia.com/orgs/nvidia/containers/deepstream-l4t網頁右上角 “Pull Tag” 按鈕中,選擇 “6.1-samples” 選項,這時就已經將執行指令復制到緩沖區,然后粘貼在 Jetson 上的命令終端,指令內容如下:

docker  pull  nvcr.io/nvidia/deepstream-l4t:6.1-samples

這樣就能從 NGC 服務器將 deepstream-l4t:6.1-samples 鏡像文件下載到 Jetson 設備上。下載完畢之后,執行以下指令看看結果:

docker  images

如下圖 TAG 欄中顯示 “6.1-samples” 就表示鏡像文件下載成功。

d27eddbc-1263-11ed-ba43-dac502259ad0.png

到此只是將鏡像文件下載到本地,但還不是可執行的容器狀態,接著就要使用 Docker 指令來創建工作容器。

如果是使用 JetPack 4.6.x 版的其他 Jetson 設備時,目前只能使用 DeepStream-6.0.1 版本,請使用以下指令下載鏡像文件到 Jetson 設備上:

docker  pull  nvcr.io/nvidia/deepstream-l4t:6.0.1-samples

2、創建臨時容器的指令:

以下是 NVIDIA 官方所提供的創建容器指令,由于指令內容較長,建議寫入 .sh 腳本中會比較方便執行:

# 允許外部應用程序連接到主機的X顯示器:xhost +# 允許外部應用程序連接到主機的X顯示器:dockerrun-it--rm--net=host--runtimenvidia-eDISPLAY=$DISPLAY-w/opt/nvidia/deepstream/deepstream-6.1-v/tmp/.X11-unix/:/tmp/.X11-unixnvcr.io/nvidia/deepstream-l4t:6.1-samples

以下對這段指令進行基本說明:

  • 使用 “docker run” 組合指令來創建容器;

  • 中間的參數可以用 “docker run --help” 查看,這里使用以下幾個參數:

-it:啟動互動式(-i)的終端(-t);

--rm:退出容器之后自動移除;

--net:讓容器內網絡使用指定網絡,這里指定 “host” 表示共用 Jetson 設備網絡;

--runtime:指定執行時的方式,這里指定為 “nvidia” 其實可以省略;

-e:配置環境變量,這里指定容器內 DISPLAY 變量為設備的 $DISPLAY 變量內容;

-w:指定容器內的工作目錄,進入容器就會直接進入到這個工作目錄下;

-v:將容器內的目錄與容器外的目錄形成映射;

  • 鏡像的完整路徑(nvcr.io/nvidia/deepstream-l4t:6.1-samples),放在最后面。

這樣的指令有個最大的缺點,就是每次啟動都只能是個臨時用途的容器,一旦退出之后就會刪除工作容器,表示過程中所有執行修改與步驟都將付之一炬,因此這樣指令適合做簡單的測試用途,但并不適合作為開發階段的使用,必須做些調整。

3、將源代碼與范例復制到容器外:

在容器中的 DeepStream 源代碼有兩個部分:

  • Sources:在容器內 /opt/nvidia/deepstream/deepstream/sources

  • Samples:在容器內 /opt/nvidia/deepstream/deepstream/samples

我們先將這兩個部分的內容復制到容器外,然后啟動容器的時候再用 “-v” 進行路徑映射,這樣過程中修改的內容就會保存在容器外,即便退出后銷毀容器也沒關系。不過這個復制的過程必須在 “容器啟動” 的狀態下執行,可以先執行下面最簡單的容器啟動指令:

# 在第一個命令終端dockerrun-it--rmnvcr.io/nvidia/deepstream-l4t:6.1-samples

現在進入容器之內,可能看到以下的顯示信息

root@1c03f4d7628a:/opt/nvidia/deepstream/deepstream-6.1#

“1c03f4d7628a” 是這個容器目前的編號,現在需要開啟一個指令終端進行操作,這個過程是在容器外進行處理,請執行以下指令列出執行中的容器編號與狀態:

# 在第二個命令終端dockerps

下圖顯示目前有個正在執行的容器,其編號(CONTAINER ID)為 1c03f4d7628a,正好是上面看到容器內所顯示的編號。

d2aaaabe-1263-11ed-ba43-dac502259ad0.png

現在執行以下指令,將容器內的 sources 與 samples 目錄內容,復制到容器外的指定路徑之下,例如 ~/deepstream/sources~/deepstream/samples

# 在第二個命令終端mkdir  -p  ~/deepstream export  CONTAINER_ID=’根據實際編號’docker  cp  $CONTAINER_ID:/opt/nvidia/deepstream/deepstream/sources ~/deepstream/sourcesdockercp$CONTAINER_ID:/opt/nvidia/deepstream/deepstream/samples~/deepstream/samples

現在看看在 Jetson 設備上 ~/deepstream 目錄下是否多了 sources 與 samples 兩個目錄?比對一下里面的內容是否與容器內的一致。

接下來就可以調整一下執行的指令,讓所有的代碼與配置文件的修改部分,保留在容器外面,這樣過程中的修改就不會白白浪費。請執行以下指令創建另一容器:

# 在第二個命令終端sudo  xhost +docker  run  -it  --rm  --net=host  --runtime  nvidia  -e  DISPLAY=$DISPLAY -w  /opt/nvidia/deepstream/deepstream  -v /tmp/.X11-unix/:/tmp/.X11-unix -v  ~/deepstream/sources:/opt/nvidia/deepstream/deepstream/sources -v  ~/deepstream/samples:/opt/nvidia/deepstream/deepstream/samples nvcr.io/nvidia/deepstream-l4t:6.1-samples

現在再開啟一個指令窗口,執行以下指令檢查以下容器的狀態:

# 在第三個命令終端dockerps

應該會看到類似下面截屏中的兩個 “執行中容器” 的信息:

d2cfcace-1263-11ed-ba43-dac502259ad0.png

在容器外試著在 ~/deepstream/sources 目錄下添加個子目錄:

# 在第三個命令終端mkdir-p~/deepstream/sources/outsideContainer

然后到第二個終端里執行以下指令,看看是否也多了 “outsideContainer” 目錄?

# 在第二個命令終端ls/opt/nvidia/deepstream/deepstream/sources

如果能對應的上,就表示后面在容器內修改的代碼文件,都存放在容器外面的指定路徑下,這樣就不用擔心每次退出容器之后的問題。

4、在容器內執行范例

現在就在第二個終端里執行 DeepStream 的標準范例,請執行以下指令:

# 在第二個命令終端cd  /samples/configs/deepstream-appdeepstream-app-csource4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

就能看到下面這個大家相當熟悉的執行結果。

以上就完成 DeepStream Samples 版的操作環境調試過程,開發人員可以在容器外用編輯器去修改配置文件或 C/C++ 源代碼,然后在容器內執行編譯或操作,這樣就會非常方便。

審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    4644

    瀏覽量

    101989
  • 容器
    +關注

    關注

    0

    文章

    481

    瀏覽量

    21914
  • 鏡像
    +關注

    關注

    0

    文章

    156

    瀏覽量

    10607

原文標題:NVIDIA Jetson 系列文章(6):使用容器版DeepStream

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    初步掌握嵌入式程序的編譯和調試過程

    實驗一 嵌入式開發環境的建立 一、實驗目的1,掌握嵌入式軟件開發環境的建立過程;2,初步掌握嵌入式程序的編譯和調試過程。二、實驗步驟1,安裝集成開發
    發表于 11-05 08:51

    最小系統板的調試過程

    關鍵字:NXP LPC1768 最小系統 Keil MDK 開發環境 J-Link 仿真器概述:以 MDK4.74版本配合 J-Link 仿真器為例演示一下最小系統板的調試過程。首先運行
    發表于 11-25 06:56

    USMART調試過程是怎樣的

    對應的相關函數,并執行,同時支持返回結果。USMART調試過程:USMART配置步驟:將USMART包添加到工程中,頭文件要包含到path。添加需要調用的函數到usmart_config.c文件中。主函數中調用usmart_dev.init函數初始化usmart。即可通過助手發送命令,調用在usmar
    發表于 01-13 06:41

    RFID串口調試過程是怎樣的?

    RFID串口調試過程是怎樣的?
    發表于 02-09 07:52

    簡化Xilinx和Altera FPGA調試過程

    簡化Xilinx和Altera FPGA調試過程:通過FPGAViewTM 解決方案,如混合信號示波器(MSO)和邏輯分析儀,您可以在Xilinx 和Altera FPGA 內部迅速移動探點,而無需重新編譯設計方案。能夠把內部FPGA
    發表于 11-20 17:46 ?26次下載

    電源設計調試過程中的異?,F象分析

    調試過程中所看到的一些異?,F象,以及后來的解決辦法。其實很多工程師認為設計電源是非常重經驗的一門技術,要見多識廣。這種經
    發表于 10-09 10:49 ?1628次閱讀

    APM四軸 初級安裝調試過程

    ACM四軸 安裝調試過程 此教程主要講解軟件調試 首先要確認自己想飛哪種模式,X還是十模式 根據自己的飛行模式插好線 本章以X模式為例
    發表于 11-03 10:23 ?6次下載

    單片機驅動DM9000網卡芯片詳細調試過程

    單片機驅動DM9000網卡芯片詳細調試過程
    發表于 11-02 11:03 ?0次下載

    單片機調試過程中的調試組件導致的問題

    單片機調試過程中,經常會遇到類似第3只眼的問題。何謂第3只眼呢?
    的頭像 發表于 12-30 17:12 ?7144次閱讀
    單片機<b class='flag-5'>調試過程</b>中的<b class='flag-5'>調試</b>組件導致的問題

    淺析STM32調試過程中的幾個相關問題

    總的來講,單片機調試是單片機開發工作必不可少的環節。不管你愿不愿意,調試過程中總會有各種不期而遇的問題出現在我們面前來磨礪我們。這里分享幾點STM32調試過程中與開發工具及IDE有關的幾個常見問題,以供參考。
    的頭像 發表于 01-21 13:50 ?4987次閱讀

    GT9271觸控屏芯片移植調試過程的詳細教程說明

    本文檔的主要內容詳細介紹的是GT9271觸控屏芯片移植調試過程的詳細教程說明
    發表于 08-05 17:34 ?46次下載
    GT9271觸控屏芯片移植<b class='flag-5'>調試過程</b>的詳細教程說明

    直接阻抗匹配的調試過程

    直接匹配阻抗,天線與射頻芯片在同一塊板子,調試步驟與50歐姆阻抗匹配調試天線參數差不多,多了一部分射頻芯片端的濾波部分的參數計算。下面介紹調試過程。
    的頭像 發表于 10-03 16:18 ?9031次閱讀
    直接阻抗匹配的<b class='flag-5'>調試過程</b>

    S7-1200系列PLC調試過程小結

    S7-1200系列PLC調試過程小結
    發表于 12-20 09:25 ?3次下載

    DeepStream容器執行Python的開發操作

    前面一篇文章已經帶著大家將 DeepStream 容器配置 Python 使用環境,本文的重點就是繼續執行實際的開發操作。
    的頭像 發表于 08-17 10:22 ?1600次閱讀

    電磁流量計調試過程中存在的問題以及解決措施

    跟其他類型的儀表調試相比,電磁流量計的調試方法存在很大的差異性,它的復雜程度會更高,稍不注意,調試過程中就會出現人工失誤操作問題,影響電磁流量計的正常運行。進行電磁流量計
    的頭像 發表于 10-27 09:08 ?1233次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>