yolov7 C++部署若干问题

项目场景: 

yolov7 导出模型在C++中实际应用


问题描述

参照大神:https://github.com/hpc203/yolov7-opencv-onnxrun-cpp-py,进行部署,分为OpenCV和ONNXRuntime两种方法,用大神提供的模型均能跑通,但是按照Yolo7官方导出方法导出的模型预测有问题。


原因分析:

采用netron对比自己导出的模型和大神提供的模型,最后输出不一样;

解决方案:

几番折腾,仅采用--weights weights/yolov7.pt --grid命令导出模型能使输出维度一致,后查阅相关资料,----simplify是模型裁剪的指令,最后通过如下指令来导出模型:

--weights weights/yolov7.pt --grid ----simplify

以上导出模型能在ONNXRuntime中预测,但在Opencv中forward时会出错,至今未找到原因,做做应用一种方法就够了,后面没再研究

另外此过程中有怀疑ONNXRuntime版本问题,导致预测不对,将ONNXRuntime升到1.12后出现了如下的提示:

The given version [12] is not supported, only version 1 to 11 is supported in this build.

也是几番折腾发现将onnxruntime.dll,onnxruntime_providers_shared.dll拷贝到根目录下不再报错,本人对C++不咋熟悉,仅记下这个问题

至此能用yolov7系列网络来做做实际的应用

你可能感兴趣的:(c++)