专栏算法工具链yolov5模型转换使用问题

yolov5模型转换使用问题

已解决
clover2020-11-03
461
3

1. 我尝试转换最新的yolov5官方模型,先export成onnx再用地平线工具链转换,出现segmentation fault。我对比了1.1.17工具链中你们给出的yolov5模型,发现你们把hardswish激活函数全部替换成了leakyrelu。我也替换后重新训练模型后转换成功了。但是为什么hardswish转换会失败,因为在onnx中已经将hardswish拆解成add, clip, mul, div,而这几个运算你们都是支持的。当然从实际使用角度,我猜想可能换成leakyrelu会更快一些,因为conv+leakyrelu你们应该做了融合?

2. yolov5的训练推理都采用了letterbox的方式对图像进行预处理(保持宽高比resize,再将短边做padding)。而在你们给出的demo中,依然是直接resize。作为demo,确实可以正常运行,但如果实际使用,那就会对检测率和精度造成影响。

3. 1.1.17工具链中demo给出的yolov5模型,有optimized版本和原始版本,根据我的观察,好像只是把最后的输出形状做了调整,其他还有什么优化吗?

算法工具链
评论1
0/1000
  • chenze
    Lv.1
    您好。
    1. 我们样例使用的是yolov5 v2.0模型,https://github.com/ultralytics/yolov5/releases/tag/v2.0,默认使用的是leakrelu,官方v3.0修改成了hardswish。

    2. 参考我们sample的03_yolov5/mapper/data_transformer.py,默认采用的PadResizeTransformer,非直接resize的。

    3. 对模型没有别的修改了,修改形状是为了后处理过程的一个加速。

    2020-11-03
    0
    2
    • shantou08day回复chenze:

      没有c++的相关处理letterbox的代码?难道是直接用cpu的?BPU指定的模型输入是NV12格式的。

      2021-10-29
      0
    • admin回复shantou08day:

      前后处理的代码都是有的,ddk\package\source code 里面有完整的源码,以及编译的脚本

      2021-10-29
      0