专栏算法工具链yolov5s官方权值pt转换为onnx再转换为bin,推理后处理失败,详见截图

yolov5s官方权值pt转换为onnx再转换为bin,推理后处理失败,详见截图

已解决
默认589762025-02-19
82
6

采用官方的yolov5s权值文件yolov5s.pt以及自训练的yolovs权值文件,转换为Onnx以及bin之后,在x86架构下进行推理,采用OE包里自带YOLOV5后处理代码进行推理,出现如图所示错误。分析了OE包里的bin文件,发现输出为三个分支,为未concat之前的三个分支。但yolov5官方输出层默认为concat之后的,导致输出层不一致,无法进行推理。采用的OE包为最新版本。

附件:
算法工具链
征程5
评论2
0/1000
  • Huanghui
    Lv.5

    你好OE包是J5的1.1.77版本吗

    2025-02-19
    0
    4
    • 默认58976回复Huanghui:

      J5的1.1.68版本

      2025-02-19
      0
    • Huanghui回复默认58976:
      根据你描述的,解决方法有两种,
      1.改原模型,使其适应OE包里的推理形式,也就是不进行concat。
      2.改OE包里面的推理逻辑。
      2025-02-19
      0
    • Huanghui回复默认58976:
      2025-02-19
      0
    • Huanghui:

      另外你的问题应该是在output的输出和postprocess的形状不匹配吧原模型是concat之后的输出是一个列表,这里按你说的应该是三个列表?所以要么改后处理逻辑要么改原模型就ok

      2025-02-19
      0
  • DR_KAN
    Lv.4

    如果对输出做concat,可能导致这部分实现在板子上的运行效率比较低,所以更建议按照官方这样分清楚三个输出头,此外三个输出头还可以安排三个线程并行地处理,加速后处理

    2025-02-19
    0
    0