在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

使用NVIDIA DeepStream對特定幀區域應用推理

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-10-10 15:16 ? 次閱讀

在高分辨率輸入中檢測物體是計算機視覺中的一個眾所周知的問題。當感興趣的是框架的某個區域時,不需要對整個框架進行推理。解決這個問題有兩種方法:

使用具有高輸入分辨率的大型模型。

將大圖像分為塊,并將較小的模型應用于每個塊。

在許多方面,第一種方法是困難的。訓練輸入量大的模型通常需要更大的主干,使整個模型更笨重。訓練或部署這樣的模型也需要更多的計算資源。較大的模型被認為不適合在較小的設備上部署邊緣。

第二種方法,將整個圖像劃分為塊,并對每個塊應用較小的模型,具有明顯的優勢。使用較小的模型,因此在訓練和推理中需要較小的計算能力。將模型應用于高分辨率輸入不需要再培訓。較小的模型也被認為有利于邊緣部署。

在這篇文章中,我們將討論如何 NVIDIA DeepStream 可以幫助將較小的模型應用于高分辨率輸入,以檢測特定的幀區域。

視頻監控系統概述

視頻監控系統用于解決各種問題,例如識別行人、車輛和汽車。如今, 4K 和 8K 攝像機用于捕捉場景細節。軍方將航空攝影用于各種目的,這也涵蓋了大片區域。

隨著分辨率的增加,像素數呈指數增長。處理如此大量的像素需要大量的計算能力,尤其是使用深度神經網絡

基于在建模過程中選擇的輸入維數,深度神經網絡對固定形狀的輸入進行操作。這種固定大小的輸入也稱為感受野模型的。通常,在檢測和分割網絡中,感受野從 256 × 256 到 1280 × 1280 不等。

您可能會發現感興趣的區域是一個小區域,而不是整個幀。在這種情況下,如果檢測應用于整個幀,則不必要地使用計算資源。 DeepStream NvDsPreprocess 插件使您能夠在框架的特定區域上進行計算。

DeepStream NvDsPreprocessing 插件

然而,當平鋪應用于圖像或幀時,尤其是在視頻饋送上,您需要在推理管道中增加一個元素。這樣的元素預計將執行可按流配置的分塊機制、分塊推理以及將多個分塊的推理組合到單個幀上。

有趣的是, DeepStream 中提供了所有這些功能 Gst-NvDsPreprocess 可自定義插件。它提供了一個用于預處理輸入流的自定義庫接口。每個流都有自己的預處理要求。

默認插件實現提供以下功能:

具有預定義感興趣區域( ROI )或分片的流根據推理的網絡要求進行縮放和格式轉換。每流 ROI 在配置文件中指定。

它從縮放和轉換的 ROI 中準備一個原始張量,并通過用戶元數據傳遞給下游插件。下游插件可以訪問該張量進行推理。

DeepStream NvDsPreprocessing 插件

下一步是修改現有代碼以支持平鋪。

使用 NvdsPreprocessing 插件

定義管道內的預處理元素:

preprocess = Gst.ElementFactory.make("nvdspreprocess", "preprocess-plugin")

NvDsPreprocess需要一個配置文件作為輸入:

preprocess.set_property("config-file", "config_preprocess.txt")

將預處理元素添加到管道:

pipeline.add(preprocess)

將元素鏈接到管道:

streammux.link(preprocess)
preprocess.link(pgie)

讓 NvdsPreprocess 插件進行預處理

推斷是通過NvDsInfer插件完成的,該插件具有幀預處理功能。

當您在NvDsInfer之前使用NvdsPreprocess插件時,您希望預處理(縮放或格式轉換)由 NvdsPreprocess而不是NvDsInfer完成。為此,請將NvDsInfer的input-tensor-meta屬性設置為 true 。這使得NvdsPreprocess可以進行預處理,并使用附加為元數據的預處理輸入張量,而不是NvDsInfer本身內部的預處理。

將Gst-nvdspreprocess功能合并到現有管道中需要以下步驟。

定義nvdspreprocess插件并將其添加到管道:

preprocess = Gst.ElementFactory.make("nvdspreprocess", "preprocess-plugin")
pipeline.add(preprocess)

NvDsInferinput-tensor-meta屬性設置為 true :

pgie.set_property("input-tensor-meta", True)

定義nvdspreprocess插件的配置文件屬性:

preprocess.set_property("config-file", "config_preprocess.txt")

將預處理插件鏈接到主推理機(pgie)之前:

streammux.link(preprocess)
preprocess.link(pgie)

創建配置文件

Gst-nvdspreprocess配置文件使用密鑰文件格式。有關更多信息,請參閱 Python 和 C 源代碼中的config_preprocess.txt。

[property]組配置插件的一般行為。

[group-《id》]組使用自定義庫中的src-id值和custom-input-transformation-function為一組流配置 ROI 、 TILE 和 ull 幀。

[user-configs]組配置自定義庫所需的參數,自定義庫通過《string, string》的映射作為鍵值對傳遞給自定義庫。然后,自定義庫必須相應地解析這些值。

所需的最小值config_preprocess.txt類似于以下代碼示例:

[property]
enable=1
target-unique-ids=1 # 0=NCHW, 1=NHWC, 2=CUSTOM
network-input-order=0 network-input-order=0
processing-width=960
processing-height=544
scaling-buf-pool-size=6
tensor-buf-pool-size=6 # tensor shape based on network-input-order
network-input-shape=12;3;544;960 # 0=RGB, 1=BGR, 2=GRAY network-color-format=0 # 0=FP32, 1=UINT8, 2=INT8, 3=UINT32, 4=INT32, 5=FP16
tensor-data-type=0
tensor-name=input_1 # 0=NVBUF_MEM_DEFAULT 1=NVBUF_MEM_CUDA_PINNED 2=NVBUF_MEM_CUDA_DEVICE 3=NVBUF_MEM_CUDA_UNIFIED
scaling-pool-memory-type=0 # 0=NvBufSurfTransformCompute_Default 1=NvBufSurfTransformCompute_GPU 2=NvBufSurfTransformCompute_VIC
scaling-pool-compute-hw=0 # Scaling Interpolation method # 0=NvBufSurfTransformInter_Nearest 1=NvBufSurfTransformInter_Bilinear 2=NvBufSurfTransformInter_Algo1 # 3=NvBufSurfTransformInter_Algo2 4=NvBufSurfTransformInter_Algo3 5=NvBufSurfTransformInter_Algo4 # 6=NvBufSurfTransformInter_Default
scaling-filter=0
custom-lib-path=/opt/nvidia/deepstream/deepstream/lib/gst-plugins/libcustom2d_preprocess.so
custom-tensor-preparation-function=CustomTensorPreparation [user-configs]
pixel-normalization-factor=0.003921568
#mean-file=
#offsets= [group-0]
src-ids=0;1;2;3
custom-input-transformation-function=CustomAsyncTransformation
process-on-roi=1
roi-params-src-0=0;540;900;500;960;0;900;500;0;0;540;900;
roi-params-src-1=0;540;900;500;960;0;900;500;0;0;540;900;
roi-params-src-2=0;540;900;500;960;0;900;500;0;0;540;900;
roi-params-src-3=0;540;900;500;960;0;900;500;0;0;540;900;

Processing-width和processing-height是指切片在整個幀上的寬度和高度。

對于network-input-shape,當前配置文件配置為最多運行 12 個 ROI 。要增加 ROI 計數,請將第一維度增加到所需數量,例如network-input-shape=12;3;544;960。

在當前配置文件config-preprocess.txt中,每個源有三個 ROI ,所有四個源總共有 12 個 ROI 。所有源的總 ROI 不得超過network-input-shape參數中指定的第一個維度。

Roi-params-src-《id》表示source-《id》的 III 坐標。如果啟用了process-on-roi,則為每個 ROI 指定定義 ROI 的left;top;width;height。Gst-nvdspreprocess沒有將重疊塊中的對象檢測和計數結合起來。

密碼

C 代碼可從/ opt / NVIDIA / deepstream / deepstream-6.0 / source / app / sample _ app / deepstream-preprocess-test 下載

Python 代碼可從 NVIDIA-AI-IOT/deepstream_python_apps github 回購。

后果

Gst-nvdspreprocess允許對視頻的特定部分(磁貼或感興趣區域)應用推理。使用Gst-nvdspreprocess,可以在單個幀上指定一個或多個平鋪。

以下是在整個幀上應用yolov4與在磁貼上應用yolov4時的性能指標。通過將流的數量增加到解碼器或計算飽和點來收集性能指標,并且進一步增加流不會顯示性能增益。

1080p 的視頻分辨率用于 NVIDIA V100 GPU 的性能基準。考慮性能和磁貼數量之間的權衡,因為放置太多的磁貼會增加計算需求。

使用NvDsPreprocess平鋪有助于對視頻中需要的部分進行選擇性推斷。例如,在圖 1 中,推理只能在人行道上使用,而不能在整個框架上使用。

GST-NVDSAnalytics 對nvinfer(主檢測器)和nvtracker附加的元數據執行分析。Gst-nvdsanalytics可應用于瓷磚,用于 ROI 過濾、過度擁擠檢測、方向檢測和線交叉。

關于作者

Sunil Patel 作為一名深入學習的數據科學家為 NVIDIA 工作。他的專長包括開發NVIDIA 平臺上的智能視頻分析和會話人工智能的高度可擴展的人工智能解決方案。 Sunil 主要關注應用程序擴展和性能優化。他畢業于印度阿拉哈巴德信息技術學院,獲得技術碩士學位。

Alvin Clark 是 DeepStream 的產品營銷經理。阿爾文的職業生涯始于設計工程師,然后轉向技術銷售和市場營銷。他曾與多個行業的客戶合作,應用范圍從衛星系統、外科機器人到深海潛水器。阿爾文持有圣地亞哥加利福尼亞大學的工程學學位,目前正在喬治亞理工大學攻讀碩士學位。

審核編輯:郭婷

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

    關注

    14

    文章

    5026

    瀏覽量

    103298
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4754

    瀏覽量

    129096
  • python
    +關注

    關注

    56

    文章

    4800

    瀏覽量

    84842
收藏 人收藏

    評論

    相關推薦

    解鎖NVIDIA TensorRT-LLM的卓越性能

    NVIDIA TensorRT-LLM 是一個專為優化大語言模型 (LLM) 推理而設計的庫。它提供了多種先進的優化技術,包括自定義 Attention Kernel、Inflight
    的頭像 發表于 12-17 17:47 ?212次閱讀

    NVIDIA助力Amdocs打造生成式AI智能體

    正在使用NVIDIA DGX Cloud 與 NVIDIA AI Enterprise軟件開發和交付基于商用大語言模型(LLM)和領域適配模型的解決方案。該公司還在使用NVIDIA NIM,這是一套易于使用的
    的頭像 發表于 11-19 14:48 ?376次閱讀

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

    麗蟾科技通過 Leaper 資源管理平臺集成 NVIDIA AI Enterprise,為企業和科研機構提供了一套高效、靈活的 AI 訓練與推理加速解決方案。無論是在復雜的 AI 開發任務中,還是在高并發推理場景下,都能夠確保項
    的頭像 發表于 10-27 10:03 ?251次閱讀
    <b class='flag-5'>NVIDIA</b>助力麗蟾科技打造AI訓練與<b class='flag-5'>推理</b>加速解決方案

    NVIDIA與思科合作打造企業級生成式AI基礎設施

    NVIDIA 加速計算平臺、NVIDIA AI Enterprise 軟件和 NVIDIA NIM 推理微服務加持的思科 Nexus HyperFabric AI 集群解決方案在
    的頭像 發表于 10-10 09:35 ?383次閱讀

    魔搭社區借助NVIDIA TensorRT-LLM提升LLM推理效率

    “魔搭社區是中國最具影響力的模型開源社區,致力給開發者提供模型即服務的體驗。魔搭社區利用NVIDIA TensorRT-LLM,大大提高了大語言模型的推理性能,方便了模型應用部署,提高了大模型產業應用效率,更大規模地釋放大模型的應用價值。”
    的頭像 發表于 08-23 15:48 ?474次閱讀

    英偉達推出全新NVIDIA AI Foundry服務和NVIDIA NIM推理微服務

    NVIDIA 宣布推出全新 NVIDIA AI Foundry 服務和 NVIDIA NIM 推理微服務,與同樣剛推出的 Llama 3.1 系列開源模型一起,為全球企業的生成式 AI
    的頭像 發表于 07-25 09:48 ?735次閱讀

    can標準和擴展的區別

    CAN(Controller Area Network)是一種用于汽車和工業領域的通信協議,它允許多個設備在同一總線上進行通信。CAN協議有兩種類型:標準和擴展。這兩種類型在結
    的頭像 發表于 07-24 15:20 ?2016次閱讀

    CAN數據的各個域及其作用

    CAN數據由多個域組成,包括起始、仲裁域、控制域、數據域和結束。每個域都有其特定的作用,共同構成了一個完整的數據。下面將詳細介紹這
    的頭像 發表于 07-24 15:10 ?1512次閱讀

    LLM大模型推理加速的關鍵技術

    LLM(大型語言模型)大模型推理加速是當前人工智能領域的一個研究熱點,旨在提高模型在處理復雜任務時的效率和響應速度。以下是對LLM大模型推理加速關鍵技術的詳細探討,內容將涵蓋模型壓縮、解碼方法優化、底層優化、分布式并行推理以及
    的頭像 發表于 07-24 11:38 ?934次閱讀

    英偉達推出AI模型推理服務NVIDIA NIM

    英偉達近日宣布推出一項革命性的AI模型推理服務——NVIDIA NIM。這項服務將極大地簡化AI模型部署過程,為全球的2800萬英偉達開發者提供前所未有的便利。
    的頭像 發表于 06-04 09:15 ?693次閱讀

    NVIDIA發布DeepStream 7.0,助力下一代視覺AI開發

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

    NVIDIA與Google DeepMind合作推動大語言模型創新

    支持 NVIDIA NIM 推理微服務的谷歌最新開源模型 PaliGemma 首次亮相。
    的頭像 發表于 05-16 09:44 ?463次閱讀

    NVIDIA全面加快Meta Llama 3的推理速度

    Meta 最新開源大語言模型采用 NVIDIA 技術構建,其經過優化后可在云、數據中心、邊緣和 PC 的 NVIDIA GPU 上運行。
    的頭像 發表于 04-23 09:52 ?484次閱讀

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

    本實踐中,唯品會 AI 平臺與 NVIDIA 團隊合作,結合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將推理的稠密網絡和熱
    的頭像 發表于 04-20 09:39 ?772次閱讀

    使用NVIDIA Triton推理服務器來加速AI預測

    這家云計算巨頭的計算機視覺和數據科學服務使用 NVIDIA Triton 推理服務器來加速 AI 預測。
    的頭像 發表于 02-29 14:04 ?597次閱讀
    主站蜘蛛池模板: 色综合久久网女同蕾丝边| 私色综合网| 最近2018中文字幕免费看手机| 国产精品不卡片视频免费观看| 四虎影院免费在线| 国产盗摄女厕美女嘘嘘| 亚洲一区二区影院| 啪啪免费视频| 操爽视频| 久久天天| 哪里可以看免费毛片| 午夜撸| 91色蝌蚪| 俺来也俺去啦久久综合网| 好爽毛片一区二区三区四| 噜噜噜狠狠夜夜躁| 欧美sese| 欧美色图在线视频| 青草99| 日韩免费网站| 色中涩| 性欧美日本| 亚洲精品在线不卡| 亚洲人成亚洲人成在线观看| 国产精品一久久香蕉产线看| 性xxxxbbbb在线| 亚色成人| 欧美一二三区| www在线小视频免费| 日韩亚色| 国产又爽又黄又粗又大| 九九福利| 1024亚洲视频| 欧美人成网| 亚洲一区二区三区中文字幕| 一级毛片在线免费视频| 亚洲色图在线播放| 日本www在线观看| 黄色三级在线看| 二级黄色大片| 午夜大片男女免费观看爽爽爽尤物|