VideoPipe可视化视频结构化框架更新总结(2022-12-9)
阅读原文时间:2023年07月08日阅读:9

项目地址: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 ****

演示日志接口使用。