opencv Onyx推断不正确Yolov5

mlmc2os5  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(164)

我在我的自定义数据集上训练了YoloV5。我想使用Opencv(dnn::readnet)在C++中推断训练好的模型,所以我尝试了以下两个命令:

pythonexport.py--数据...\lp.yaml --imgsz 480 --权重best.pt--包括onnx
pythonexport.py--数据...\lp.yaml --imgsz 480 --权重best.pt--包括一个--simplify

在C++和Python中,通过推理best.onnx得到的结果(来自两个命令)很奇怪。为了检查训练文件的完整性,我在Python中使用了以下命令(with and without --dnn在1和2中):

  • -detect.py----------------------------------------------------------------
    检测:如果您有任何问题,请联系我们。如果您有任何问题,请联系我们。如果您有任何问题,请联系我们。存在_确定=假,线厚度=3,隐藏_标签=假,隐藏_配置=假,一半=假,dnn=假,vid_stride=1 YOLOv 5 75 f2 b42 Python-3.8.3 Torch -1.8.0+cpu CPU
    正在为ONNX运行时推断加载最佳.onnx... image 1/1 E:\Projects\yolov5_alpr_win10\img3.BMP:480 x480每秒11次,13.0毫秒速度:1.0ms预处理,13.0ms推断,形状(1、3、480、480)下每张图像1.0ms NMS结果保存到运行\检测\exp 58
  • -detect.py----------------------------------------------------
    检测:如果您有任何问题,请联系我们。如果您有任何问题,请联系我们。如果您有任何问题,请联系我们。存在_确定=假,线厚度=3,隐藏_标签=假,隐藏_配置=假,一半=假,dnn=真,vid_stride=1 YOLOv 5 75 f2 b42 Python-3.8.3 Torch -1.8.0+cpu CPU
    正在加载用于ONNX OpenCV DNN推理的最佳.onnx... image 1/1 E:\项目\yolov5_alpr_win10\img3.BMP:480 x480每秒11拍,62.8毫秒速度:1.0ms预处理,62.8ms推断,0.0ms形状(1、3、480、480)下每张图像的NMS结果保存到运行\检测\exp 59
    每个结果必须包括2 lps,但正如你所看到的,它不是。结果似乎随机边界框没有任何关系的预期结果,但当我尝试以下命令(使用.pt file),结果是完美的:
  • detect.py ------------------------------------------------
    检测:如果您有任何问题,请与我们联系。如果您有任何问题,请与我们联系。如果您有任何问题,请与我们联系。存在_确定=假,线厚度=3,隐藏_标签=假,隐藏_配置=假,一半=假,dnn=假,vid_stride=1 YOLOv 5 75 f2 b42 Python-3.8.3 Torch -1.8.0+cpu CPU
    融合图层... YOLOv 5 ng摘要:157个图层,1760518个参数,0个梯度,4.1 GFLOPs图像1/1 E:\项目\yolov 5_alpr_win10\img 3. BMP:320 x480像素,每秒2拍,41.9毫秒速度:1.0ms预处理,41.9ms推断,形状(1、3、480、480)下每张图像1.0ms NMS结果保存到运行\检测\exp 60

我的环境:

Win 10游戏机
第一次
| Package 件|版本|
| - -|- -|
| 一个|两个|
| 绝对-绝对|1.2.0版本|
| asttoken标记|第2.0.8节|
| 语法分析|第1.6.3节|
| 回叫|0.2.0版本|
| 美味的汤4|第4.11.1节|
| 四分之一|0.0.1版本|
| 缓存工具|第5.2.0节|
| 证书|二零二二年九月十四日|
| 字符集规格化器|二、一、一|
| 科罗拉多|0.4.5分|
| 彩色原木|第15.0.1节|
| 通用标记|0.9.1版|
| 轮廓|1.0.5版本|
| 循环器|0.11.0版本|
| 装饰工|第5.1.1节|
| 正在执行|版本1.0.0|
| 平坦缓冲区|九月二十四日|
| 字体工具|第4.37.2节|
| 胃|0.4.0版本|
| 谷歌认证|2.11.0版本|
| 谷歌认证库|0.4.6版本|
| 谷歌意大利面|0.2.0版本|
| 格普乔|1.49.0版本|
| 氢吡啶|第3.7.0节|
| 人性化的|10.0版本|
| 伊德纳|三、四|
| 导入库元数据|第4.12.0节|
| 伊普森|第8.5.0节|
| 绝地武士|0.18.1版本|
| 凯拉斯|2.10.0版本|
| Keras预处理|第1.1.2节|
| 奇异果|第1.4.4节|
| 利布朗|14.0.6节|
| 减价|三、四、一|
| 标记安全|二、一、一|
| matplotlib |第3.6.0节|
| matplotlib内嵌|0.1.6版本|
| 数学|第1.2.1节|
| numpy |第1.23.3节|
| 奥特里布|三、二、一|
| 奥尼克斯|1.12.0版本|
| onnx简化器|0.4.1版|
| onnx运行时|第1.12.1节|
| opencv-Python| www4.6.0.66|
| 选项单一|第3.3.0节|
| Package |二十一点三|
| Pandas|第1.1.4节|
| 帕尔索|0.8.3版本|
| 腌菜|0.7.5分|
| 枕头|第7.1.2节|
| 尖点|二、二、二|
| 管道搜索|0.0.12版本|
| 提示工具包|3.0.31版|
| 原buf|第3.19.5节|
| 普苏蒂尔|第5.9.2节|
| 纯评价|0.2.2版|
| 派阿斯恩1| 0.4.8版本|
| pyasn 1-模|0.2.8版本|
| 皮格斯|第2.13.0节|
| 分解|第3.0.9节|
| pyreadline 3的缩写|三、四、一|
| 蛇枣|二、八、二|
| 皮茨|二〇二二年二月一日|
| PyYAML基因|6.0版本|
| 要求|二、二十八、一|
| 请求-oauthlib|第1.3.1节|
| 丰富的|第12.6.0节|
| 放射性核素分析|四点九|
| scipy |第1.9.1节|
| 海运的|0.12.0版本|
| 安装工具|第65.3.0条|
| 六个|1.16.0版本|

| 汤筛| 2.3.2.post1 |
| 堆栈数据|0.5.0版本|
| 症状|第1.11.1节|
| 张拉板|2.10.0版本|
| Tensor板数据服务器|0.6.1版|
| 张拉板插件|第1.8.1节|
| tensorflow CPU| 2.10.0版本|
| tensorflow 估计量|2.10.0版本|
| tensorflow _英特尔|2.10.0版本|
| tensorflow -io-gcs文件系统|0.27.0英寸|
| 术语颜色|2.0.1版|
| 砰| 0.1.1.post2209072238 |
| Torch |1.8.0版本|
| Torch 视觉|0.9.0版本|
| 传输质量管理|第4.64.0节|
| 小项|第5.4.0节|
| 键入扩展名(_E)|第4.3.0节|
| 网址3|十二月二十六日|
| 宽度|0.2.5分|
| 刀具|二、二、二|
| 车轮|0.37.1分|
| 包裹|第1.14.1节|
| 一种拉链|第3.8.1节|
如何解决此问题?

k2arahey

k2arahey1#

您的torch版本相当旧。您是否使用了yolov 5的制造商ultralytics的github存储库?ultralytics/yolov5您应该安装requirements.txt中列出的要求
Ultralytics建议导出版本为1.11。我在google collab上使用--simplify标志进行了导出,否则opencv无法加载它:python export.py --weights path/to/best.pt --include onnx --simplify

p1tboqfb

p1tboqfb2#

尝试按照我放在这里的步骤检查我的回复在这里:https://github.com/ultralytics/yolov5/issues/5533

相关问题