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

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

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

DeepStream如何實現(xiàn)“組合信息”

GLeX_murata_eet ? 來源:NVIDIA英偉達中國 ? 作者:NVIDIA英偉達中國 ? 2021-08-04 09:41 ? 次閱讀

前面已經(jīng)介紹過關(guān)于 DeepStream 各種輸入源的使用方式,而且 Jetson Nano 2GB 上開啟 4 路輸入(兩個攝像頭+兩個視頻文件),都能得到 25FPS 以上的實時性能,但畢竟“單一檢測器(detector)”檢測出來的物件是離散型的內(nèi)容,例如車、人、腳踏車這些各自獨立的信息。有沒有什么方法能夠?qū)崿F(xiàn)“組合信息”呢?例如“黑色/大眾/SUV 車”!

DeepStream 有一個非常強大的功能,就是多模型組合檢測的功能,以一個主(Primary)推理引擎(GIE:GPU Inference Engine)去帶著多個次(Secondary)推理引擎,就能實現(xiàn)前面所說的功能。

本實驗在 Jetson Nano 2GB 上,執(zhí)行 4 種模型的組合檢測功能,能將檢測到的車輛再往下區(qū)分顏色、廠牌、車種等進一步信息,在 4 路輸入視頻狀態(tài)下能得到 20+FPS 性能,并且我們將顯示的信息做中文化處理。

nvidia@nano2g-jp450:/opt/nvidia/deepstream/deepstream/samples/models$ ls -l

總用量 24

drwxrwxrwx 2 root root 4096 7月 13 23:49 Primary_Detector

drwxrwxrwx 2 root root 4096 7月 13 22:45 Primary_Detector_Nano

drwxrwxrwx 2 root root 4096 2月 8 21:50 Secondary_CarColor

drwxrwxrwx 2 root root 4096 2月 8 21:50 Secondary_CarMake

drwxrwxrwx 2 root root 4096 2月 8 21:50 Secondary_VehicleTypes

drwxrwxrwx 4 root root 4096 2月 8 21:49 Segmentation

簡單說明一下每個目錄所代表的的意義:

Primary_Detector:作為項目的主檢測器,這是用 Caffe 框架以 ResNet10 網(wǎng)絡所訓練的 4 類檢測器,能檢測“Car”、“Bicycle”、“Person”、“Roadsign”四種物件,這個數(shù)據(jù)可以在目錄下的 labels.txt 中找到。

Primary_Detector_Nano:將Primary_Detector里的模型,針對 Jetson Nano(含 2GB)的計算資源進行優(yōu)化的版本。

Secondary_CarColor:車子顏色的次級檢測器

Secondary_CarMake:生產(chǎn)廠商的次級檢測器

Secondary_VehicleTypes:車子種類的次級檢測器

組成結(jié)構(gòu)也十分簡單,其中主(Primary)檢測器只有一個,而且必須有一個,否則 DeepStream 無法進行推理識別。次(Secondary)檢測器可以有好幾個,這里的范例就是針對“Car”這個類別,再添加“Color”、“Maker”、“Type”這三類元素,就能獲取視頻圖像中物件的更完整信息。

在 Jetson Nano 的/opt/nvidia/deepstream/deepstream/samples/config/deepstream-app 下面的 source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt,就已經(jīng)把這個組合檢測器的配置調(diào)試好,現(xiàn)在直接執(zhí)行以下指令:

cd/opt/nvidia/deepstream/deepstream/samples/config/deepstream-app

deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

現(xiàn)在看到啟動四個視頻窗,但是每個視窗的執(zhí)行性能只有 8FPS,總性能大約 32FPS,并不是太理想。

接下來看看怎么優(yōu)化這個配置文件

首先要執(zhí)行模型組合功能功能,必須把“tracker”功能打開,不過可以關(guān)閉追蹤號的顯示,因此保留“enable=1”,將下面的“display-tracking-id=”設為“0”

由于我們在 Jetson Nano 2GB 版本上進行實驗,需要進行以下的調(diào)整。如果您要在 AGX Xavier 或 Xavier NX 上上執(zhí)行的活,請忽略這個步驟。

修改主檢測器[primary-gie]的模型:配置文件中預設的是“Primary_Detector”檢測器,這里得修改成專為 Nano 所訓練的版本,這里修改以下幾個地方:

(1) model-engine-file路徑的“Primary_Detector”部分改成“Primary_Detector_Nano”

(2) config-file 的文件改成 config_infer_primary_nano.txt

因為 Jetson Nano(含2GB)并不支持 int8 計算精度,因此還需要做以下修改:

(3) 將“_b4_gpu0_int8.engine”改成“_b8_gpu0_fp16.engine”

(4) 將所有“xx_gpu0_int8.engine”改成“xx_gpu0_fp16.engine”

3. 將追蹤器從原本的 ibnvds_mot_klt.so 改成 libnvds_mot_iou.so,用“#”變更注釋的位置就可以。

修改完后重新執(zhí)行,可以看到每個窗口的檢測性能提升到 10~12FPS,總性能提升到 40~48FPS,比原本提升12~50%,不過距離理想中的 25FPS 還有很大的差距。

執(zhí)行過程中如果遇到“Theremay be a timestamping problem, or this computer is too slow.”這樣的信息,就把[sink0]下面的“sync=”設定值改為“0”就可以。

現(xiàn)在看看是否還有什么可調(diào)整的空間?參考前一篇文章“DeepStream-04:Jetson Nano 攝像頭實時性能”所提到的,將[primary-gie]下面的“interval=”設定為“1”,然后再執(zhí)行應用時,發(fā)現(xiàn)每個輸入源的識別性能立即提升到 20FPS 左右,總性能已經(jīng)能到 80FPS 左右,比最初的 32FPS 提升大約 2.5倍,這已經(jīng)很接近實時識別的性能。

好了,在Jetson Nano 2GB 上已經(jīng)能達到接近實時推理的性能,是相當好的狀態(tài)。

如果對于顯示輸出的狀態(tài)有些不滿意的話,我們按照下面的步驟去執(zhí)行,將“英文”類別名改成“中文”,并且將邊框變粗、字體放大,就能更輕松看到推理的效果:

1. 所有的顯示名稱,都在 models 目錄下個別模型目錄里的labels.txt,可以將里面的內(nèi)容全部改成中文。

例如

deepstream/samples/models/Secondary_CarMake的“l(fā)abels.txt”內(nèi)容改為“廣汽;奧迪;寶馬;雪佛蘭;克萊斯勒;道奇;福特;通用;本田;現(xiàn)代;英菲尼迪;吉普;起亞;雷克薩斯;馬自達;奔馳;日產(chǎn);速霸路;豐田;大眾”,其他的就比照辦理。

注意:這個順序不能改變!

2. 邊框?qū)挾龋盒薷模踥sd]下面的“board-width”值,推薦 2~4 比較合適;

3. 字體大?。盒薷模踥sd]下面的“texe-size”值,推薦 15~18 比較合適;

4. 其他:請自行設定

如何?這樣的效果與性能就是在 Jetson Nano 2GB 實現(xiàn)的!

編輯:jq

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

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128955

原文標題:NVIDIA Jetson Nano 2GB 系列文章(31):DeepStream 多模型組合檢測-1

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

收藏 人收藏

    評論

    相關(guān)推薦

    高精度GNSS+INS組合導航:速度、位置、姿態(tài)全掌握

    GNSS結(jié)合INS的組合導航系統(tǒng)可以彌補GNSS在信號遮擋或中斷時的不足以及衛(wèi)星刷新率低的問題,實現(xiàn)更優(yōu)的導航性能。我們的組合導航ER-GNSS/MINS-01,擁有測繪級超高精度??商峁┻B續(xù)、高精度的位置、速度和姿態(tài)
    的頭像 發(fā)表于 12-11 16:51 ?234次閱讀
    高精度GNSS+INS<b class='flag-5'>組合</b>導航:速度、位置、姿態(tài)全掌握

    HarmonyOS NEXT應用元服務開發(fā)組合場景

    在一些場景中,一個功能上完整的UI對象可能是由若干個更小的UI組件組合而成的。若每一個小的UI組件都可以獲焦并朗讀,則會造成信息冗余和效率降低。同時由于可聚焦的組件過多過細,也會影響觸摸瀏覽時走焦
    發(fā)表于 10-30 15:33

    繼電器組合組合架的作用

    繼電器組合組合架是電氣控制系統(tǒng)中的重要組成部分,它們在電路中起到保護、控制和信號傳遞的作用。繼電器組合組合架的設計和應用對于確保電氣系統(tǒng)的穩(wěn)定運行至關(guān)重要。 1. 繼電器的基本概念
    的頭像 發(fā)表于 09-27 14:35 ?601次閱讀

    組合繼電器的起動系如何實現(xiàn)驅(qū)動保護的?

    組合繼電器的起動系實現(xiàn)驅(qū)動保護的方式主要依賴于其內(nèi)部各元件的協(xié)同工作,這些元件包括接觸器、熱繼電器、斷路器以及控制繼電器等。以下是具體的實現(xiàn)方式: 一、主要元件及其功能 接觸器 功能 :接觸器是起動
    的頭像 發(fā)表于 09-27 14:28 ?269次閱讀

    MSP430的模擬組合實現(xiàn)了真正的單芯片脈搏血氧儀設計

    電子發(fā)燒友網(wǎng)站提供《MSP430的模擬組合實現(xiàn)了真正的單芯片脈搏血氧儀設計.pdf》資料免費下載
    發(fā)表于 09-14 10:48 ?1次下載
    MSP430的模擬<b class='flag-5'>組合</b><b class='flag-5'>實現(xiàn)</b>了真正的單芯片脈搏血氧儀設計

    組合邏輯電路設計時應遵循什么原則

    一、引言 組合邏輯電路是數(shù)字電路中的一種基本類型,它由邏輯門、觸發(fā)器等基本元件組成,通過邏輯門的組合實現(xiàn)特定的邏輯功能。組合邏輯電路廣泛應用于計算機、通信、控制等領(lǐng)域。在設計
    的頭像 發(fā)表于 08-11 11:26 ?1481次閱讀

    組合邏輯電路的結(jié)構(gòu)特點是什么?

    組合邏輯電路是一種基本的數(shù)字電路,它由邏輯門組成,用于實現(xiàn)各種邏輯功能。組合邏輯電路的結(jié)構(gòu)特點主要包括以下幾個方面: 無記憶功能 :組合邏輯電路的輸出僅取決于當前的輸入狀態(tài),與過去的狀
    的頭像 發(fā)表于 08-11 11:14 ?1000次閱讀

    組合邏輯控制器是什么設備

    組合邏輯控制器(Combinatorial Logic Controller,簡稱CLC)是一種用于控制和管理復雜系統(tǒng)或設備的電子設備。它通常由多個邏輯門、觸發(fā)器和其他邏輯元件組成,能夠實現(xiàn)各種復雜
    的頭像 發(fā)表于 06-30 10:29 ?658次閱讀

    組合邏輯控制器的基本概念、實現(xiàn)原理及設計方法

    組合邏輯控制器(Combinatorial Logic Controller)是一種在數(shù)字電路中實現(xiàn)邏輯功能的設備,它根據(jù)輸入信號的當前狀態(tài)來產(chǎn)生輸出信號,而不考慮輸入信號的歷史狀態(tài)。組合邏輯控制器
    的頭像 發(fā)表于 06-30 10:26 ?2104次閱讀

    組合邏輯控制器的工作原理是什么

    基本概念、設計方法、實現(xiàn)技術(shù)以及應用領(lǐng)域。 組合邏輯控制器的基本概念 1.1 組合邏輯的定義 組合邏輯是一種數(shù)字電路,其輸出僅取決于當前的輸入值,而與輸入信號的歷史無關(guān)。這種邏輯電路的
    的頭像 發(fā)表于 06-30 10:15 ?1125次閱讀

    組合邏輯控制器是用什么實現(xiàn)

    組合邏輯控制器是一種用于控制和管理復雜系統(tǒng)中各個組件之間交互的邏輯設備。它可以應用于各種領(lǐng)域,如計算機科學、通信、自動化控制等。在這篇文章中,我們將詳細探討組合邏輯控制器的實現(xiàn)方法、原理和應用。 一
    的頭像 發(fā)表于 06-30 10:11 ?508次閱讀

    如何借用物聯(lián)網(wǎng)快速實現(xiàn)高標準農(nóng)田信息

    如何借用物聯(lián)網(wǎng)快速實現(xiàn)高標準農(nóng)田信息化 高標準農(nóng)田信息化,作為現(xiàn)代農(nóng)業(yè)發(fā)展的重要基石,是指在建設高產(chǎn)、穩(wěn)產(chǎn)、節(jié)水、環(huán)保的農(nóng)田基礎(chǔ)上,深度融合現(xiàn)代信息技術(shù),
    的頭像 發(fā)表于 06-24 13:50 ?311次閱讀
    如何借用物聯(lián)網(wǎng)快速<b class='flag-5'>實現(xiàn)</b>高標準農(nóng)田<b class='flag-5'>信息</b>化

    NVIDIA發(fā)布DeepStream 7.0,助力下一代視覺AI開發(fā)

    NVIDIA DeepStream 是一款功能強大的 SDK,能夠提供用于構(gòu)建端到端視覺 AI 管線的 GPU 加速構(gòu)建模塊。
    的頭像 發(fā)表于 05-23 10:09 ?670次閱讀
    NVIDIA發(fā)布<b class='flag-5'>DeepStream</b> 7.0,助力下一代視覺AI開發(fā)

    是否有命令組合可以實現(xiàn)SD卡不擦除寫入?

    常規(guī)的串行FLASH有帶擦除的寫命令和不擦除的寫命令,SD相對來說也是FLASH,但看命令沒有不擦除的寫命令; 疑問,是否有命令組合可以實現(xiàn)SD卡不擦除寫入?
    發(fā)表于 05-09 06:48

    光纖傳輸信息時的工作過程

    光電轉(zhuǎn)換工作過程如下: 變頻器主控芯片將驅(qū)動IGBT開關(guān)的信息由電信號信號轉(zhuǎn)換成光信號,請問這個轉(zhuǎn)換過程是通過什么電路完成的,而且傳輸驅(qū)動信息時是同一相的上下橋臂同時發(fā)送的,在發(fā)送端是怎么組合驅(qū)動
    發(fā)表于 02-03 11:33