tensorRT---认识cuda RuntimeAPI(YOLOv5后处理)

Yolov5是目标检测中比较经典的模型,学习对其后处理进行解码是非常有必要的。在这里我们仅使用核

函数对Yolov5推理的结果进行解码并恢复成框,掌握后处理所解决的问题,以及对于性能的考虑

经验之谈:

1. 对于后处理的代码研究,可以把 PyTorch 的数据通过转换成 numpy 后, tobytes 再写到文件,然后再到 c++ 中读取的方式,能够快速进行问题研究和排查,此时不需要 tensorRT 推理也可以做后处理研究。这也叫变量控制法
2. fast_nms_kernel 会在极端情况少框,但是这个极端情况一般不会出现,实测几乎没有影响
3. fast nms cuda 实现上比较简单,高效,不用排序

yolov5的输出tensor(n x 85)

其中85cx, cy, width, height, objness, classification * 80

CPU解码重点:

1. 避免多余的计算,需要知道有些数学运算需要的时间远超过很多 if ,减少他们的次数就是性能的关键
2. nms 的实现是可以优化的,例如 remove flag 并且预先分配内存, reserve 对输出分配内存
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值