sophgo / sophon-stream

Other
68 stars 10 forks source link

不同通道如何在一个插件同个配置文件用各自的配置 #38

Closed lilihongjava closed 1 month ago

lilihongjava commented 1 month ago

输入视频是多路的,我现在用osd插件,如果用以下的配置,每一路画线的逻辑是一样的,我希望不同路不同的画线逻辑 即 我希望不同路用不同的如下 upper_line、lower_line等 配置项,实现思路能否提供 { "configure": { "osd_type": "TRACK", "class_names_file": "../data/coco.names", "draw_utils": "OPENCV", "draw_interval": false, "put_text": true, "upper_line": [[428, 318], [802, 290], [1100, 280], [1918, 340], [1878, 820]], "lower_line": [[2, 312], [210, 438], [1180, 710], [1180, 710], [1870, 830]], "left_line": [[716, 246], [1228, 194]], "right_line": [[1794, 172], [1818, 826]], "push_url": "XXXXX", "shop_id": 66666666 }, "shared_object": "../lib/libosd.so", "name": "osd", "side": "sophgo", "thread_number": 2 }

Yi-sir commented 1 month ago

目前没法区分,只能配置不同的graph。不过也可以在osd element里面加channel_id和绘画rules这样的属性来控制。

lilihongjava commented 1 month ago
"draw_lines": [
  {
  "channel_id": 1,
  "upper_line": [[428, 318], [802, 290], [1100, 280], [1918, 340], [1878, 820]],
  "lower_line": [[2, 312], [210, 438], [1180, 710], [1180, 710], [1870, 830]], 
  "left_line": [[716, 246], [1228, 194]],
  "right_line": [[1794, 172], [1818, 826]]
  },
  {
    "channel_id": 2,
    "upper_line": [[428, 318], [802, 290]],
    "lower_line": [[2, 312], [210, 438]], 
    "left_line": [[716, 246], [1228, 194]],
    "right_line": [[1794, 172], [1818, 826]]
    }
]

},是这样意思吗

Yi-sir commented 1 month ago

对的,这个功能目前没有设计,需要自行实现

lilihongjava commented 1 month ago

那在common::ErrorCode Osd::initInternal(const std::string& json)里面,需要获取当前运行的channel是哪个,做对比,如何获取。代码示例麻烦给个

Yi-sir commented 1 month ago

ObjectMetadata->mFrame->mChannelId,这个是json文件里配置的channel_id

ObjectMetadata->mFrame->mChannelIdInternal,这个是程序内部计算的,从0开始递增1的id

lilihongjava commented 1 month ago

解决了,谢谢