yolo v5 confidence相对较小

最近使用yolo v5进行人脸检测,发现对于相同的数据集,yolo v5输出的confidence相较于SSD,retinaface等其他检测网络会低很多。

大概原因如下:
一般检测网络的分类头,在计算loss阶段,标签往往是非0即1的状态,即是否为当前类别。
yolo v5 则是将anchor与目标匹配时的giou(ciou)作为该位置样本的标签值。giou值在0-1之间,label值的缩小导致了最后预测结果值偏小。

目的:
引入了大量正样本anchor,但是不同anchor和gt bbox匹配度是不一样,预测框和gt bbox 的 匹配度也不一样,如果权重设置一样肯定不是最优的,故作者将预测框和bbox的giou作为权重乘到conf分支,用于表征预测质量。

#代码:utils.compute_loss()中,tobj为前景和背景的分类label。
#例如:tensor([0.53693, 0.51600, 0.59551, 0.60385, 0.54978, 0.75129], device='cuda:0')
#通过model.gr可以修改giou值所占权重,默认是1.0,即用giou值完全作为标签值。
tobj[b, a, gj, gi] = (1.0 - model.gr) + model.gr * giou.detach().clamp(0).type(tobj.dtype)

#loss 仍然采用nn.BCEWithLogitsLoss()
#当input=0.3,label=0.6
>>> -(0.6*math.log(1/(1+math.exp(-0.3)))+(1-0.6)*math.log(1-1/(1+math.exp(-0.3))))
0.674355244468527
>>>BCEcls(torch.tensor([0.3]).to(device),torch.tensor([0.6]).to(device))
tensor(0.67436, device='cuda:0')

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 业界对于目标检测的热度只增不减,但目前的框架也难于逾越RCNN系列、SSD、YOLO系列这三座大山,很多新的方法也...
    技术大渣渣阅读 6,012评论 0 1
  • (1920,被识别为泰迪熊?有排面) 背景 2017年底,我已毕业多年了。用起Excel和PPT、研究车的质量问题...
    YueTan阅读 16,835评论 2 3
  • 目标检测介绍 目标检测是与计算机视觉和图像处理相关的计算机技术,用于在一张图片中识别出些物体的种类,同时要求标出物...
    小奥蕉阅读 8,862评论 0 3
  • 本文依次讲解YOLOv1,v2,v3。博客地址https://blog.csdn.net/hancoder/art...
    HAN_望向阅读 12,263评论 2 4
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,187评论 16 22