专栏算法工具链J5 用yolov5 v6版本训练的模型推理检测框尺寸不对

J5 用yolov5 v6版本训练的模型推理检测框尺寸不对

已解决
默认823682024-09-14
160
9

按照ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection/03_yolov5x中示例代码:

使用下载的yolov5 v2.0版本onnx模型转化到bin,python和c++推理均正常。

使用自己训练的模型(yolov5 v6.0版本),python和c++的推理框均尺寸错误,wh偏大。但使用yolo自身代码推理结果正常。

请问有遇到过这种情况吗?

算法工具链
征程5
评论1
0/1000
  • 你想活出怎样的人生
    Lv.1

    是不是 anchor 不一样?

    2024-09-14
    1
    8
    • 默认82368回复你想活出怎样的人生:

      anchor用的都是默认的,这个确认过了。

      而且后处理也是 (sigmoid(wh)*2)^2 * anchor

      感觉这里也没啥太大问题。

      2024-09-14
      0
    • 你想活出怎样的人生回复默认82368:

      OE yolov5 V2.0 和 yolov5 6.0 后处理不完全一样,OE的输出改为了4维,yolov5 6.0 上也这么改过模型吗?

      2024-09-14
      0
    • 默认82368回复你想活出怎样的人生:

      是的,按照手册上在yolo.py中修改过再export的:


      现在输出与示例的形状是对齐的。请问OE中有提供yolov5 6.0的后处理示例吗?
      2024-09-14
      0
    • 你想活出怎样的人生回复默认82368:

      没有6.0 的,看位置是对的,检测的目标如果渲染在640x640 的图片上应该就是正确的,应该按比例处理下检测框的 scale, scale 到 1080P的图片上

      2024-09-14
      0
    • 默认82368回复你想活出怎样的人生:

      是的,实际上我尝试过在decoder w和h时乘以一个scale:

      确实可以得到一个很接近正确检测框的尺寸,但是如果输入图像的大小不是1920*1080,例如直接输入640*640的图像,此时scale为1,会导致检测框的尺寸还是偏大。

      2024-09-14
      0
    • 你想活出怎样的人生回复默认82368:

      这种情况需要动态的scale, 根据image 的大小自动计算 scale

      2024-09-14
      0
    • 你想活出怎样的人生回复你想活出怎样的人生:
      有这部分代码吗
      2024-09-14
      0
    • 默认82368回复你想活出怎样的人生:

      有的,参考官方提供的YOLOv5x代码。但:


      附上目前后处理的代码:

      另外我关掉NMS之后,发现是有正常比例的检测框,只是置信度低于上述的比例错误的检测框,被NMS去掉了。

      2024-09-18
      0