專案地址: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上的效果:
新增15個sample說明
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 ↓
演示紀錄檔介面使用。