Closed wojiazaiyugang closed 3 years ago
Can we give some help? @RunningLeon @RangiLyu
又训练了一个ssd的检测,还是skip-postprocess然后转onnx转trt,发现trt的输出是12个list,也就是对于不同的模型输出的size是不一样的,那么我该去哪里查看这个结果是如何生成的,以及如何把结果处理成有意义的数值呢
@wojiazaiyugang You may consider end2end deployment with mmcv-full compiled through MMCV_TRT=1 MMCV_ORT=1 MMCV_OPS=1 pip install -e .
@wojiazaiyugang You may consider end2end deployment with mmcv-full compiled through
MMCV_TRT=1 MMCV_ORT=1 MMCV_OPS=1 pip install -e .
使用mm部署之前考虑过,放弃的原因在于这要求部署的时候机器也要装一整套完整的mm环境比较麻烦,如果转成了onnx之后,部署的时候只要把onnx扔到服务器里,用的时候就可以自动转换了比较方便
@wojiazaiyugang You may consider end2end deployment with mmcv-full compiled through
MMCV_TRT=1 MMCV_ORT=1 MMCV_OPS=1 pip install -e .
使用mm部署之前考虑过,放弃的原因在于这要求部署的时候机器也要装一整套完整的mm环境比较麻烦,如果转成了onnx之后,部署的时候只要把onnx扔到服务器里,用的时候就可以自动转换了比较方便
in that case, you may have to write decoding and the post-processing by yourself. You could refer to Python code in MMDetection.
@wojiazaiyugang You may consider end2end deployment with mmcv-full compiled through
MMCV_TRT=1 MMCV_ORT=1 MMCV_OPS=1 pip install -e .
使用mm部署之前考虑过,放弃的原因在于这要求部署的时候机器也要装一整套完整的mm环境比较麻烦,如果转成了onnx之后,部署的时候只要把onnx扔到服务器里,用的时候就可以自动转换了比较方便
in that case, you may have to write decoding and the post-processing by yourself. You could refer to Python code in MMDetection.
是的,我想了解一下我该参考哪部分的代码,有没有一个完整的后处理的例子呢
@RangiLyu
@wojiazaiyugang You may consider end2end deployment with mmcv-full compiled through
MMCV_TRT=1 MMCV_ORT=1 MMCV_OPS=1 pip install -e .
使用mm部署之前考虑过,放弃的原因在于这要求部署的时候机器也要装一整套完整的mm环境比较麻烦,如果转成了onnx之后,部署的时候只要把onnx扔到服务器里,用的时候就可以自动转换了比较方便
in that case, you may have to write decoding and the post-processing by yourself. You could refer to Python code in MMDetection.
是的,我想了解一下我该参考哪部分的代码,有没有一个完整的后处理的例子呢
@RangiLyu Could take a look at this?
I'm still waiting for a helpful answer....
If you use --skip-postprocess, you have to implement the post-process part in cpp by yourself. For example, if you use YOLOX, you need to refer to the get_bboxes
function in https://github.com/open-mmlab/mmdetection/blob/fe396572839f30351aa862d2b2702f57698cefea/mmdet/models/dense_heads/yolox_head.py
Feel free to reopen the issue if there is any question
感谢各位开发者,我对深度学习的理论理解的并不是非常深入,目前在完成一些关于目标检测相关功能的开发希望将mmdet作为一个工具来使用,我想咨询一个问题,我想使用mmdet来训练一个检测模型在自己的数据集上进行训练然后进行检测,我的训练配置文件是
使用的是yolox的配置,训练之后得到一些.pth文件,我希望将训练好的模型在不同的机器上(Ubuntu 18)使用tensorrt进行部署,经过查阅了一些资料决定将.pth文件转换为.onnx文件,然后在目标机器上转化为.trt文件进行部署 我的加载trt文件然后推理的代码是
一开始我使用pth转onnx 的命令是
得到了tmp.onnx 然后使用Python用tensorrt将onnx转换为trt尝试推理,出现了以下错误
我的理解是mmdet可能有什么tensorrt中不支持的操作,因此我把命令改为
即多加了--skip-postprocess,这次得到的onnx可以成功转换为trt
在我的推理代码中,对于图像前处理和后处理的代码我是从YOLOX的项目中迁移过来,在yolox的项目中使用是没有问题的,但是现在使用mmdet,在infer函数中
trt_outputs = self.do_inference()
这句话返回的结果是一个list我不清楚如何把trt输出的结果转换为我需要的格式(若干个bbox和置信度) 因此想了解我该如何把trt输出的结果转换为有意义的数据 同时也想请教对于我的需求,我目前的流程是否合理,是否有更加优雅的解决方案
我的环境是