美文网首页
yolo v5 confidence相对较小

yolo v5 confidence相对较小

作者: cshun | 来源:发表于2021-01-26 14:58 被阅读0次

    最近使用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')
    
    

    相关文章

      网友评论

          本文标题:yolo v5 confidence相对较小

          本文链接:https://www.haomeiwen.com/subject/numgzktx.html