sophgo / sophon-stream

Other
68 stars 10 forks source link

怎么让一个视频跑2个或多个模型? #7

Closed ijiami-01 closed 6 months ago

ijiami-01 commented 6 months ago

如题, 比如下图这种情况,要怎么做呢? image

yizhou-xu commented 6 months ago

一张图里面elements是固定的,目前最多可以配置是否跳过画图和编码阶段,暂时不能跳过某个模型(需要的话也可以自己开发)。如果目的是希望一个视频跑多个模型,samples里面有很多个这样的例程了,可以参考下json配置。

ijiami-01 commented 6 months ago

一张图里面elements是固定的,目前最多可以配置是否跳过画图和编码阶段,暂时不能跳过某个模型(需要的话也可以自己开发)。如果目的是希望一个视频跑多个模型,samples里面有很多个这样的例程了,可以参考下json配置。

请问哪个例程?

yizhou-xu commented 6 months ago

车牌、结构化、行为识别等

ijiami-01 commented 6 months ago

我的目的是,跑一个视频,然后经过2个模型,输出2张不同模型经过推理后的图片,要参考哪个例程呢?

yizhou-xu commented 6 months ago

两个模型是串行还是并行

ijiami-01 commented 6 months ago

两个模型是串行还是并行

并行。互相不相关的。比如A模型检测帽子,B模型检测口罩。 简单说: 源数据流--->A模型--->A推理结果 源数据流--->B模型--->B推理结果

yizhou-xu commented 6 months ago

这个功能可以实现,但目前支持情况不是很优雅。可以参考下distributor这个插件,可以把图片分发给两个分支,两个分支各跑一个模型。

ijiami-01 commented 6 months ago

这个功能可以实现,但目前支持情况不是很优雅。可以参考下distributor这个插件,可以把图片分发给两个分支,两个分支各跑一个模型。

方便给我提供一段吗?就拿YOLOV5举例,让每个视频都用2个模型并行推理。

yizhou-xu commented 6 months ago
decode --> distributor --> yolov5_1 ----->converger --> output
                          ↓                                          ↑
                          ----------> yolov5_2 -----> ↑         
                          ↓                                          ↑
                          ---------------------------->

这样搭一下就可以了。

ijiami-01 commented 6 months ago
decode --> distributor --> yolov5_1 ----->converger --> output
                          ↓                                          ↑
                          ----------> yolov5_2 -----> ↑         
                          ↓                                          ↑
                          ---------------------------->

这样搭一下就可以了。

是这样吗? flowchart drawio

yizhou-xu commented 6 months ago
decode --> distributor --> yolov5_1 ----->converger --> output
                          ↓                                          ↑
                          ----------> yolov5_2 -----> ↑         
                          ↓                                          ↑
                          ---------------------------->

这样搭一下就可以了。

是这样吗? flowchart drawio

distributor也要连到converger上,可以参考下车牌识别例程

ijiami-01 commented 6 months ago
decode --> distributor --> yolov5_1 ----->converger --> output
                          ↓                                          ↑
                          ----------> yolov5_2 -----> ↑         
                          ↓                                          ↑
                          ---------------------------->

这样搭一下就可以了。

是这样吗? flowchart drawio

distributor也要连到converger上,可以参考下车牌识别例程

但是车牌识别例程是,从decoder----->YOLOV5,而不是从decoder----->Distributor----->YOLOV5, 所以有点困惑,因为这看上去有点像2个模型是串行的,而不是并行。

yizhou-xu commented 6 months ago
decode --> distributor --> yolov5_1 ----->converger --> output
                          ↓                                          ↑
                          ----------> yolov5_2 -----> ↑         
                          ↓                                          ↑
                          ---------------------------->

这样搭一下就可以了。

是这样吗? flowchart drawio

distributor也要连到converger上,可以参考下车牌识别例程

但是车牌识别例程是,从decoder----->YOLOV5,而不是从decoder----->Distributor----->YOLOV5, 所以有点困惑,因为这看上去有点像2个模型是串行的,而不是并行。

车牌那个是两个串行的。从哪里连到yolov5无所谓。参考车牌例程主要是参考distributor的用法

ijiami-01 commented 6 months ago
decode --> distributor --> yolov5_1 ----->converger --> output
                          ↓                                          ↑
                          ----------> yolov5_2 -----> ↑         
                          ↓                                          ↑
                          ---------------------------->

这样搭一下就可以了。

是这样吗? flowchart drawio

distributor也要连到converger上,可以参考下车牌识别例程

但是车牌识别例程是,从decoder----->YOLOV5,而不是从decoder----->Distributor----->YOLOV5, 所以有点困惑,因为这看上去有点像2个模型是串行的,而不是并行。

车牌那个是两个串行的。从哪里连到yolov5无所谓。参考车牌例程主要是参考distributor的用法

能否直接给我一个demo呢?比如yolov5和yolox,2个模型并行对1个视频推理 ,求求别给图了,真的看不懂。