当前位置:   article > 正文

yolov5训练得到的pt模型转rknn模型应用到rk3588开发平台上,测试结果出错:出现重复框选,选框混乱(包含rknn转换完整流程)_yolov5瑞芯微rknn显示好多框

yolov5瑞芯微rknn显示好多框

yolov5训练得到的pt模型转rknn模型,测试结果出错:出现重复框选,选框混乱的情况,如下图所示。

请添加图片描述

首先检查确认模型pt转onnx、onnx转rknn的整个流程步骤没出错,是按照教程来的:

  1. 确认是rk官方给的yolov5包,链接在这,是用的转换后的relu函数。
  2. 下载预训练权重yolov5s.pt,放入对应目录下,并修改相关路径(这一步可查找到很详细的教程,这里就不多叙述了),运行train.py训练模型。
  3. 得到训练后的best.pt模型后,修改yolo.py中的forward(运行train.py的时候不需要修改)
# 原来的forward代码
    def forward(self, x):
        # x = x.copy()  # for profiling
        z = []  # inference output
        self.training |= self.export
        for i in range(self.nl):
            x[i] = self.m[i](x[i])  # conv
            bs, _, ny, nx = x[i].shape  # x(bs,255,20,20) to x(bs,3,20,20,85)
            x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()

            if not self.training:  # inference
                if self.grid[i].shape[2:4] != x[i].shape[2:4]:
                    self.grid[i] = self._make_grid(nx, ny).to(x[i].device)

                y = x[i].sigmoid()
                y[..., 0:2] = (y[..., 0:2] * 2. - 0.5 + self.grid[i].to(x[i].device)) * self.stride[i]  # xy
                y[...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/854467
推荐阅读
相关标签
  

闽ICP备14008679号