对YOLOv5目标检测正确与否的理解

学习目标检测有一段时间了,然而对目标检测怎么才算正确一直没有透彻的理解,也许有人会说,那不是很简单嘛,预测框与目标框IOU大于设定的阈值就认为是正确的呀,但是当真正写代码计算PR时,会有些细节性的问题。


  1. 哪些框是应该与目标框计算的
  2. 同一张图片同类物体有两个,如何与预测框对应
  3. 为什么要选iou最大的预测框作为最终框

先举个例子,假如在一张图片上给出狗子的位置,现在模型输出三个狗子位置,其中一个是预测正确的(IOU大于阈值),另外两个位置是没有狗子的,即错误的,问预测的准确率是多少?三分之一吗,我之前也是这样想的。实际上YOLOv5是这样计算的,计算这三个预测结果与目标位置的IOU,取其中最大的IOU对应的预测结果为最终预测结果,如果这个最大的IOU大于阈值则认为是正确的,反之错误。也就是说,对于同一个目标的预测,只看最佳预测!对应代码为:

ious, i = box_iou(predn[pi, :4], tbox[ti]).max(1)  # best ious, indices

现在回到开头的三个问题,哪些框是应该与目标框计算的

YOLOv5预测的每个结果中是有类别这一值的,目标框也有类别,与目标框类别相同的预测框即是参与IOU计算的框,最后选出IOU值最高的预测框作为该目标预测结果。

同一张图片同类物体有两个,如何与预测框对应?

一样道理,物体同类但位置不同,与目标框类别相同的预测框即是参与IOU计算的框,最后选出IOU值最高的预测框作为该目标预测结果。

为什么要选IOU最大的预测框作为最终框?

个人觉得,每个预测框的置信度不同,所以不能一视同仁而是取最优?暂时还没完全想明白。

计算TP和FP是用到哪些预测类别正确,置信度低,但IOU小的结果的。在YOLOv5的测试过程中,发现个问题,改变NMS的参数值(conf-thres和iou-thres)会影响最后的P、R、AP,那官方的设置应该是多少呢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值