Laugh
Laugh
@timarnoldev You might want to first try using [TensorRT-YOLO's demo/detect](https://github.com/laugh12321/TensorRT-YOLO/tree/main/demo/detect) to verify if the accuracy is correct. All the C++ inference results we discussed earlier were obtained using this `demo/detect`.
> Thanks for your detailed reply @laugh12321 I use the engine file for the python version as well as the c++ version but with your EfficientNMS plugin as discussed in...
@zoulee24 你用 ONNX 的 [NonMaxSuppression](https://onnx.ai/onnx/operators/onnx__NonMaxSuppression.html) 算子在构建引擎时自动会被解析为 INMSLayer,具体参考这个回答https://github.com/NVIDIA/TensorRT/issues/3807#issuecomment-2067550187
@zoulee24 - 首先,TensorRT 的各个版本都是支持 [efficientNMSPlugin](https://github.com/NVIDIA/TensorRT/tree/release/10.6/plugin/efficientNMSPlugin) 的,只不过在 9.0 将废弃其中 `EfficientNMS_ONNX_TRT` (`EfficientNMS_TRT` 与 `EfficientNMS_ONNX_TRT` 是两个插件), 如果需要使用 `EfficientNMS_ONNX_TRT` 请用 `INMSLayer` 替代。  - 其次,如果你只是在 NVIDIA 设备上进行部署的话,这里建议使用 `EfficientNMS_TRT` 来加速后处理。我这边经过测试`EfficientNMS_TRT` 的速度要比 `EfficientNMS_ONNX_TRT` 与 `INMSLayer` 快,因为后两者返回的是索引还需要二次处理,并且...
@SuperJinggg 使用 DeployCGDet 必须要求是静态模型,也就是Batch确定的,并且输入输入要与Batch一样, DeployDet 没有这个限制 (因为 DeployCGDet 使用了 cuda graph)。  假设 Batch 是 4, 那么predict传递的vector 长度也必须为4。怀疑是batch与输入大小不匹配。
> 但错误是在创建model时报的错,这时候并没有进行predict,即没有输入。 如果是在创建时出现问题,那只可能是你的模型节点个数与期望不符,发我你的ONNX在netron可视化的截图,看看输入和输出。
> 应该不是模型的问题,如果按照您的教程运行是完全成功的,只是我在打包成动态库后出现的问题。 @SuperJinggg 那就只能是你打包或者是调用代码写的问题,不可能是源码的问题。源码中报错`vector subscript out of range`只能是模型中的输入输出与源码不匹配,而且Demo中的例子本身就是以动态库的方式运行。
> 好吧,感谢大佬解惑,我只是将demo中的代码写进一个简单的mfc框架。我再仔细去康康 你可以发我下你的MFC调用部分的代码,我帮你看看。
Plugin文件夹的代码不需要,这个是编译插件的。只需要include和source文件夹的代码。source中的pybind下的代码也不需要,这个是用来映射到Python的。
@SuperJinggg 上述议题长时间没有进展即将关闭。