常用目标检测算法loss总结(持续更新)

R-cnn,Fast Rcnn

输入层设置

特征输入分别输出到两个并行的全连接层,即传统意义上的,分类+回归

  • cls_score层:分类层,输出K+1维的数组,pi 表示是分类还是背景的概率
  • bbox_predict层: 候选框需要调整层,输出4*K维数组,表示属于第K类时应该缩放平移的参数

Loss fuction

  • loss_cls : 对分类进行评估,采用真实分类概率决定: Lcls=logpu
  • loss_bbox:对bbox定位进行评估,用于比较真实分类对应的预测参数 tu 和真实平移缩放参数为 v 的差别: Lloc=Σi=14g(tiuvi)
    • 其中,g为L1正则,故对离群点不敏感: g(x)={0.5x2|x|<1|x|0.5otherwise

总代价为两个loss加权和:L={Lcls+λLlocuLclsu
并且,当分类为背景的时候不考虑加权loss

Faster Rcnn

  • loss_cls : 分类loss和前者不同,这里是两类(是物体和不是物体)的loss,Lcls(pi,pi)=log[pipi+(1pi)(1pi)]
  • loss_bbox:同fast rcnn使用L1正则
    • 注:在bounding box regression中,对四个参数化坐标需要进行约束以防差值过大,即相减后还分别除以各自的宽高。

Yolo

所有的参数计算都纳入回归中, 每个格子都有B个bounding box信息,以及C个物体属于某类别的概率。且每个bounding box有五个参数 x,y,w,h,Confidence,confidence反应的是bounding box是否包含物体和物体位置的准确性,Confidence=P(object)Iou,由于只有在包含物体P(object)=1奏效,因此如果不包含则置信度为0

  • Loss=Σi=0s2coordError+iouError+classError
    • 作者认为位置(坐标,IOU)相关误差和分类误差贡献不同,λcoord=5coordError修正。之所以对w,h开根号是因为图像宽高可能会很大,相减差距过大导致平方爆炸
    • 计算IOU误差时,将包含和不包含分成了两个部分进行概率计算,但二者IOU的误差会变相改变对立IOU的值导致难训练,因此使 λnoobj=0.5 来修正不包含物体的IOU框。
    • 引用别人的一张图,解释的很好,重点是confidence的预测常用目标检测算法loss总结(持续更新)

参考博文:
https://blog.****.net/shenxiaolu1984/article/details/51036677
https://zhuanlan.zhihu.com/p/25236464
https://blog.****.net/u014381600/article/details/55505231