yolov5-seg使用tensorrtx部署遇到mat.at报错

在使用大佬的tensorrtx进行yolov5分割模型部署时遇到了一个问题,使用engine文件进行推理时每次都会报mat.at的错误,分类和目标检测可以正常运行。在这里插入图片描述
debug发现mask可以正常生成,怀疑生成的box超过图像范围,测试只输出box,如图,验证了猜测,回归得到的bounding box超过了图像边界,应该是有分割的像素在图像之外。

bus.jpg
解决方法:
先后处理中加入判断分割得到的点是否在图像范围内

    cv::Rect2i rect(0, 0, img_mask.cols, img_mask.rows);
    for (int x = r.x; x < r.x + r.width; x++) {
    float val ;
          if (rect.contains(cv::Point(x, y)))
          {
              val = img_mask.at<float>(y, x);
          }
          else 
          {
              val = -1;
          }
         if (val <= 0.5) continue;
     img.at<cv::Vec3b>(y, x)[0] = img.at<cv::Vec3b>(y, x)[0] / 2 + bgr[0] / 2;
     img.at<cv::Vec3b>(y, x)[1] = img.at<cv::Vec3b>(y, x)[1] / 2 + bgr[1] / 2;
     img.at<cv::Vec3b>(y, x)[2] = img.at<cv::Vec3b>(y, x)[2] / 2 + bgr[2] / 2;
     }
  

在这里插入图片描述
可以正常推理
请添加图片描述


参考:
https://blog.csdn.net/dusk_and_night/article/details/123315044

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值