隨著自動化設備、電力調度和配網自動化等系統的發展。國家電網通過對變電站的升級,無人值守變電站已經成為常態?;谇度胧焦た貦C的電力巡檢機器人,已經能夠完成大多數的重復性巡檢作業,包括各類儀表的讀數抄錄、狀態標志檢查、刀閘分合狀態檢查、設備紅外測溫、線圈類設備運行噪聲監測等。
同時具備3D激光導航、高清視頻監控、智能紅外測溫、自主充電等功能,具備多方式建圖、自由路徑規劃、對溫濕度快速監測、快速采集圖像、配套專業智能管控平臺等優勢,適用于變電站、核電站、大型園區、燃氣化工廠、礦區等場所。在嵌入式工控機上運行視頻處理類模型,會使用到的就是deepstream。如何使用deepstream,NVIDIA提供了官方的示例,deepstream-app。
01
什么是deepstream-app?
安裝完deepstream框架,會在系統執行目錄內有可執行文件,文件名字是deepstream-app。這是一個可執行腳本文件,通過deepstream框架中的代碼在安裝的時候編譯后install到系統根目錄內。此腳本文件可以通過終端命令行使用,使用的同時必須使用txt文本文件作為配置文件。此腳本可以通過txt配置一個deepstream管道,管道中的視頻源可以通過txt文本設置為各種輸入,包括但不限于本地視頻文件,網絡上的rtsp推流等等。管道中的堆疊,一級、二級推理、跟蹤、OSD等也可以通過txt文本文件進行相當簡單快速的配置。
這個deepstream-app程序是安裝deepstream的時候就已經編譯好安裝在系統里,可以在任意位置的命令終端進行調用。App分為deepstream-app和deepstream-test5-app兩種。兩者功能上的差別就是tset5支持類型設置為6的sink,也就是向kafka服務器收發數據的組件。其余二者大致相同。
02
deepstream-app有什么用?
deepstream-app腳本存在主要有兩大作用。
一是用于工程快速驗證性開發。因為deepstream-app是一個通過文本文件就能配置的管道,因此可以進行深度學習網絡性能和設備硬件性能的快速測試。譬如要部署一個網絡到Jetson上面,需要實時處理8路視頻,為了快速驗證可行性,可通過deepstream-app腳本裝載到簡單管道里做一下壓力測試。這樣可以快速驗證項目可行性。
其次,deepstream-app可以驗證網絡性能瓶頸和輔助排除Bug。通過deepstream-app配置一個多路視頻同時輸入的管道,檢測其卡頓推理的情況。如果deepstream-app都沒問題,就需要排查代碼部分。
03
deepstream-app怎么用?
deepstream-app的用法非常簡潔。即腳本+配置文件。具體寫法如下所示:
deepstream-app -c 配置文件.txt
腳本會自動解析配置文件里面的內容然后組成管道。以下是對配置一些重要參數的講解。
[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=3
uri=rtsp://admin:HuaWei123@113.128.197.19:54388/LiveMedia/ch1/Media1
#uri=file:///home/jetson/vedio/1.mp4 本地視頻文件
num-sources=1
gpu-id=0
cudadec-memtype=0
source是deepstream的輸入源,可以在這個組件進行視頻流輸入的配置。enable不用說了還是一個使能設置,0則關閉1則開啟。type類型是告訴deepstream-app大概是什么類型的輸入,1是V4L2也就是linux硬件設備樹上面的攝像頭,2是網絡URI,3是萬能設置,比2更好,可以讀取本地文件。4是指定的RTSP視頻流。
然后是Uri鏈接,如果是網絡連接或者是ip攝像頭,直接把rtsp地址copy過來即可。
[streammux]
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=1
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000
## Set muxer output width and height
width=1920
height=1080
## If set to TRUE, system timestamp will be attached as ntp timestamp
## If set to FALSE, ntp timestamp from rtspsrc, if available, will be attached
# attach-sys-ts-as-ntp=1
Streammux插件是deepstream的混流插件,比如你輸入是30路視頻流,需要通過Streammux插件將視頻流混流到一起,組成一個視頻流。這里需要注意的是batch-size改成了1,還有輸入輸出的尺寸需要設計好。
[primary-gie]
enable=1
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
gie-unique-id=1
config-file=./Models/config.txt
primary-gie插件就是我們需要用到的推理插件,這個插件在deepstream-app的txt配置文件中需要寫的東西不多,上面的幾個參數分別是使能,bbox框顏色,bbox框是否生成唯一id。網絡推理的相關參數都在這個config-file文本內。
04
效果展示
驗證平臺:Jetson Nano 8GB、deeepstream 6.1.1
05
相關資料
上面也是一些主要的步驟,如果在使用中遇到任何問題可以聯系我們協助解決。同時我們能按照您的需求,定制化嵌入式工控機設備。例如:
容天AIX115:
l 預裝Xavier NX核心模組(8GB/16GB可選)
l 可選256GB、512GB、1TB NVMe SSD 擴展存儲
l 支持上電自動開機
l 改良的散熱設計
l 產品尺寸:190mm×160mm×76.3mm(H*W*D)