Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于distributor插件的疑问 #19

Open
fygroup opened this issue Mar 14, 2024 · 6 comments
Open

关于distributor插件的疑问 #19

fygroup opened this issue Mar 14, 2024 · 6 comments

Comments

@fygroup
Copy link

fygroup commented Mar 14, 2024

我现在在做全结构化,假如我检测到类型为car,要分发给多个模型进行处理比如号牌颜色、车辆颜色、车辆品牌等分为多个模型,这个要要怎么通过distributor处理。

@yizhou-xu
Copy link
Collaborator

串联就可以吧

@fygroup
Copy link
Author

fygroup commented Mar 14, 2024

串联,那么
问题一:最后提取数据的时候,假设我这些号牌颜色、车辆颜色、车辆品牌这些小模型都是采用yolo的话,metadata里的mClassify假设都是0,那么我怎么区分这是哪个属性。
问题二:假设号牌颜色->车辆颜色->车辆品牌,假如我的号牌颜色没有推理结果,后满是不是都没结果了?
问题三:整个处理时间会不会很长?

@yizhou-xu
Copy link
Collaborator

  1. 我理解号牌颜色、车辆颜色、车辆品牌应该是分类任务吧?这里按照resnet的代码来说明:代码里看,后处理末尾的保存结果是obj->mRecognizedObjectMetadatas.push_back(RecogObj);,所以识别结果是顺序push_back的。也就是说:只要知道graph中element的顺序,就可以区分;
  2. 不会,各个模型是独立的;
  3. 时间应该会比并联的长。如果要并联可以这样修改:由于目前json里port属性是int,所以可以重复写{ "classes":["car"], "port" : x }。查阅sophon-stream/element/tools/distributor/src
    /distributor.cc 525-548行代码,类别-端口分发关系会在每次触发分发动作时更新,所以不会有重复的crop。

@fygroup
Copy link
Author

fygroup commented Mar 14, 2024

  1. 我理解号牌颜色、车辆颜色、车辆品牌应该是分类任务吧?这里按照resnet的代码来说明:代码里看,后处理末尾的保存结果是obj->mRecognizedObjectMetadatas.push_back(RecogObj);,所以识别结果是顺序push_back的。也就是说:只要知道graph中element的顺序,就可以区分;
  2. 不会,各个模型是独立的;
  3. 时间应该会比并联的长。如果要并联可以这样修改:由于目前json里port属性是int,所以可以重复写{ "classes":["car"], "port" : x }。查阅sophon-stream/element/tools/distributor/src
    /distributor.cc 525-548行代码,类别-端口分发关系会在每次触发分发动作时更新,所以不会有重复的crop。

好的大概明白了,但是1还有个问题,我们有个场景是一张图片要经过多次yolo检测,结果都是mDetectedObjectMetadata,我通过objectMetadata->mSubObjectMetadatas->mDetectedObjectMetadatas是可以取到,但是我不知道他的mClassify是哪个模型的

@yizhou-xu
Copy link
Collaborator

这个问题暂时看确实没法区分。可以考虑在Box里面加入一个element_id的字段,标识来自哪个yolo element,这样就可以在最后用它来区分模型。element的id属性可以通过getId()接口获取,在后处理填入Box。

@fygroup
Copy link
Author

fygroup commented Mar 14, 2024

这个问题暂时看确实没法区分。可以考虑在Box里面加入一个element_id的字段,标识来自哪个yolo element,这样就可以在最后用它来区分模型。element的id属性可以通过getId()接口获取,在后处理填入Box。

收到,明白

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants