VideoPipe視覺化視訊結構化框架更新總結(2022-12-9)

2022-12-09 18:01:27

專案地址:https://github.com/sherlockchou86/video_pipe_c

往期文章:https://www.cnblogs.com/xiaozhi_5638/p/16857995.html

11月有3個更新,有興趣的掃碼加群交流。

支援推理結果序列化(vp_message_broker外掛)

基於creal第三方庫,對pipeline中的推理結果進行序列化輸出。 序列化格式支援json和xml,輸出位置支援Console、File、Socket(UDP)以及Kafka。

針對普通檢測目標,序列化屬性包括:

 1 通道號channel_index
 2 幀序列號frame_index
 3 原始幀寬度width
 4 原始幀高度height
 5 原始幀fps
 6 目標集合 [
 7 目標一級推理檢測ID primary_class_id
 8 目標一級推理標籤 primary_label
 9 目標一級推理置信度 primary_score
10 目標位置x
11 目標位置y
12 目標寬度width
13 目標高度height
14 目標二級推理分類ID集合 secondary_class_ids
15 目標二級推理分類標籤集合 secondary_labels
16 目標二級推理分類置信度集合 secondary_scores
17 目標包含子目標 sub_targets集合 [
18          子目標位置x
19          子目標位置y
20          子目標寬度width
21          子目標高度height
22          子目標檢測ID class_id
23          子目標檢測標籤 label
24          子目標檢測置信度 score
25          子目標附加資料 attachments
26 ]
27 目標特徵 embeddings
28 目標跟蹤ID track_id
29 ]

 

適配jetson嵌入式裝置(或其他arm64平臺)

程式碼在jetson tx2上調通執行,推理後端支援opencv::dnn 和 tenssorrt(其他硬體平臺使用對應的推理SDK),下面是程式碼執行在jetson tx2上的效果:

 

新增15sample說明

1-1-1_sample ↓

1個視訊源輸入,1種推理任務,1個輸出。

1-1-N_sample ↓

1個視訊源輸入,1種推理任務,2個輸出。

1-N-N_sample ↓

1個視訊源輸入,然後拆分成2個分支、2種推理任務,最後各自1個輸出。

N-1-N_sample 

2個視訊源輸入,然後合併成1個分支、1種推理任務,最後拆開各自有多個輸出。

N_N_sample 

各個pipeline獨立執行互不干擾,每個pipe都是1-1-1結構(也可以是其他結構)。

paddle_infer_sample ↓

基於paddle推理後端的ocr文字識別。

trt_infer_sample ↓

基於tenssorrt推理後端的車輛檢測。

src_des_sample ↓

演示SRC節點和DES節點如何工作,3種SRC節點(FILE,RTSP,UDP)和3種DES節點(SCREEN,RTMP,FAKE)。

face_tracking_sample ↓

演示基於vp_tracker_node的人臉跟蹤。

vehicle_tracking_sample ↓

演示基於vp_tracker_node的車輛跟蹤。

message_broker_sample ↓

演示推理結果序列化(xml->socket)

 

message_broker_sample2 ↓

演示推理結果序列化(json->console)

interaction_with_pipe_sample ↓

演示如何控制pipelien,比如開始、暫停某個通道。

record_sample ↓

演示錄影功能。

vp_logger_sample ↓

演示紀錄檔介面使用。